blockchain public

44
Understanding Blockchain Marie-Paule Odini HPE CT Office PUBLIC

Upload: marie-paule-odini

Post on 21-Feb-2017

170 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: BlockChain Public

Understanding BlockchainMarie-Paule Odini – HPE CT Office

PUBLIC

Page 2: BlockChain Public

Summary

Page 3: BlockChain Public

Blockchain Introduction

Page 4: BlockChain Public

Basics to understand Blockchain

Public Key Cryptography. Alice has a public key and private key. She can use her private key to create a digital signature, and Bob can use Alice’s public key to verify that a signature is really from Alice’s private key, i.e., really from Alice. When you create an Ethereum or Bitcoin wallet the long ‘0xdf…5f’ address is a public key and the private key is stored somewhere. A Bitcoin wallet service like Coinbase stores your wallet’s complementary private key for you, or you can store it yourself. If you lose your private key for a wallet with real funds you’ll lose all your funds forever, so it’s good to back up your keys. It hurts to learn this the hard way! I’ve done it.

Peer-to-Peer Networking. Like BitTorrent, all Ethereum nodes are peers in a distributed network, there’s no centralized server.

[In the future, there’ll be hybrid semi-centralized services for Ethereum as a convenience to users and developers, more on that later.]

Smart Contracts.

Confidential 4

Page 5: BlockChain Public

Blockchain Overview

Whenever a transaction happens

between A & B, an encrypted

record of the transaction is sent out

to all other nodes in the Blockchain

network. The other nodes verify the

transaction by performing complex

cryptographic calculations on the

data in the record, and notify one

another each time a new “block” of

transactions is confirmed as

legitimate . When a majority of the

nodes agree that a block passes

muster, they all add it to the ledger

and use the updated version as a

cryptographic basis for encrypting

and verifying future transactions.

Page 6: BlockChain Public

Blockchain versus traditional server architecture

On traditional server architectures, every application has to set up its own servers that run their own code in isolated silos, making sharing of data hard.

– If a single app is compromised or goes offline, many users and other apps are affected.

– On a blockchain, anyone can set up a node that replicates the necessary data for all nodes to reach an agreement and be compensated by users and app developers.

– This allows user data to remain private and apps to be decentralized like the Internet was supposed to work

This is for permissionless blockchain where’anyone’ can set up a node

In permission oriented blockchain, only authorized entity can set up a node and access the blockchain

Confidential 6

Page 7: BlockChain Public

Public vs Private Blockchain

– Public blockchains (unpermissioned): a public blockchain is a blockchain that anyone in the world can read, anyone in the world can send transactions to and expect to see them included if they are valid, and anyone in the world can participate in the consensus process – the process for determining what blocks get added to the chain and what the current state is. As a substitute for centralized or quasi-centralized trust, public blockchainsare secured by cryptoeconomics – the combination of economic incentives and cryptographic verification using mechanisms such as proof of work or proof of stake, following a general principle that the degree to which someone can have an influence in the consensus process is proportional to the quantity of economic resources that they can bring to bear. These blockchains are generally considered to be “fully decentralized”.

– Consortium blockchains: a consortium blockchain is a blockchain where the consensus process is controlled by a pre-selected set of nodes; for example, one might imagine a consortium of 15 financial institutions, each of which operates a node and of which 10 must sign every block in order for the block to be valid. The right to read the blockchain may be public, or restricted to the participants, and there are also hybrid routes such as the root hashes of the blocks being public together with an API that allows members of the public to make a limited number of queries and get back cryptographic proofs of some parts of the blockchain state. These blockchainsmay be considered “partially decentralized”.

– Fully private blockchains (permissioned) : a fully private blockchain is a blockchain where write permissions are kept centralized to one organization. Read permissions may be public or restricted to an arbitrary extent. Likely applications include database management, auditing, etc internal to a single company, and so public readability may not be necessary in many cases at all, though in other cases public auditability is desired.

Confidential 7

Page 8: BlockChain Public

Private & Public keys

approach for a digital token. We create an obfuscated smart contract which contains a private key, and accepts instructions encrypted with the corresponding public key. The contract stores account balances in storage encrypted, and if the contract wants to read the storage it decrypts it internally, and if the contract wants to write to storage it encrypts the desired result before writing it. If someone wants to read a balance of their account, then they encode that request as a transaction, and simulate it on their own machine; the obfuscated smart contract code will check the signature on the transaction to see if that user is entitled to read the balance, and if they are entitled to read the balance it will return the decrypted balance; otherwise the code will return an error, and the user has no way of extracting the information.

Source: https://blog.ethereum.org/2016/01/15/privacy-on-the-blockchain/

Confidential 8

Page 9: BlockChain Public

Blockchain use cases

Confidential 9

Page 10: BlockChain Public

Ethereum

Confidential 10

Page 11: BlockChain Public

Ethereum

The project was crowdfunded during August 2014 by fans all around the world. It is developed by the Ethereum Foundation, a Swiss nonprofit

Ethereum has at its core a way to apply arbitrary rules for :

• Ownership

• transaction formats and

• state transition functions

taking both the state of a blockchain and a transaction for that chain, and then outputting a new state as its result. It does this by way of an internal scripting language that is aware of a system’s state while being Turing-complete, which means it can encode any computation that may be performed by the system.

The state is made of objects called accounts, which have a 20-byte address and state transitions that exist between accounts. Accounts have four fields: a nonce, so each transaction is processed only once; a balance of ether, or the internal numbers used to pay fees; a contract code that may be empty; and storage, which may also be empty.

There are two kinds of Ethereum accounts: externally owned and contract accounts.

– Externally owned accounts are controlled by private keys and contain no code. Sending messages from an externally owned account is done by creating and signing a transaction.

– Contract accounts are controlled by their contract code. Every time the contract account receives a message, its code activates, allowing it to read and write to internal storage, send other messages or create contracts in turn.

– must be understood that contract here does not mean a legal arrangement: It is instead an agent inside the framework that executes code when it is stimulated by a message or transaction. It also has control over its own ether balance as well as other internal variables.

Code inside of contracts is written in Ethereum virtual machine (EVM) code, a series of bytes each representing an operation. It is much like assembly code in concept. Serpent is a higher-level language that compiles to EVM

The Ethereum Wallet is a gateway to decentralized applications on the Ethereum blockchain. It allows you to hold and secure ETHER and other crypto-assets built on Ethereum, as well as write, deploy and use smart contracts.

Confidential 11

Page 12: BlockChain Public

Blockchain/Ethereum key terms

Blockchain. Like a global ledger or simple database of all transactions, the entire history of all transactions on the network.

Ethereum Virtual Machine. So you can write more powerful programs than on top of Bitcoin. It refers to the blockchain, what executes smart contracts, everything.

Node. Using this to mean you can run a node and through it read and write to the Ethereum blockchain, i.e., use the Ethereum Virtual Machine. A full node has to download the entire blockchain. Light nodes are possible but in the works.

Miner. A node on the network that mines, i.e., works to process blocks on the blockchain. You can see a partial list of live Ethereum miners here: stats.ethdev.com.

Proof of Work. Miners compete to do some math problem. The first one to solve the problem (the next block on the Blockchain) wins a reward: some ether. Every node then updates to that new block. Every miner wants to win the next new block so are incentivized to keep up to date and have the one true blockchain everybody else has, so the network always achieves consensus. [Note: Ethereum is planning to move to a Proof of Stake system without miners eventually, but that’s beyond noob scope.]

– Ether. Or ETH for short. It’s a real digital currency you can buy and use! Here’s a chart from one of several exchanges for it. On July 21, 2016, 1 ETH is worth about 12$ in USD.

– Gas. Running and storing things on Ethereum costs small amounts of ether. Keeps things efficient.

– DApp. Decentralized App, what applications using smart contracts are called in the Ethereum community. The goal of a DApp is (well, should be) to have a nice UI to your smart contracts plus any extra niceties like IPFS (a neat way to store and serve stuff in a decentralized network, not made by Ethereum but a kindred spirit). While DApps can be run from a central server if that server can talk to an Ethereum node, they can also be run locally on top of any Ethereum node peer. [Take a minute: unlike normal webapps, DApps may not be served from a server. They may use the blockchain to submit transactions and retrieve data (important data!) rather than a central database. Instead of a typical user login system, users may be represented by a wallet addresses and keep any user data local. Many things can be architected differently from the current web.]

Confidential 12

Page 13: BlockChain Public

Ethereum applications

Ethereum has been used as a platform for decentralized applications, decentralized autonomous organizations and smart contracts.Thescope of applications include projects related to finance, the internet-of-things, identity management, farm to table produce, electricity sourcing and pricing, and sports betting.Decentralized autonomous organizations may enable a wide range of possible business models that were previously impossible or too costly to run.

Notable Ethereum applications include:

– Augur decentralized, distributed prediction market software.

– ConsenSys, a blockchain startup focused on Ethereum technology is developing both enterprise software and Dapps The DAO with the objective to "provide a new decentralized business model for organizing both commercial and non-profit enterprises".The DAO was funded with Ether.

– Backfeed, socioeconomic platform

– Ethcore, an Ethereum-based private venture focusing on light clients and Internet of Things (IoT).

– FreeMyVunk, a gaming value platform.

– The Rudimental, an equity crowdfunding portal for arts and media.

– TransActive Grid

– Slock.It, a system for building smart locks with Ethereum.

– Etheropt, a decentralized options exchange.

– Digix A value token, called DigixDAO has also been created and the token began trading on exchanges on 28 April 2016.

– Ujo Music : Imogen Heap used the technology with her single "Tiny Human".

Confidential 13

Page 14: BlockChain Public

Ethereum enterprise adoption

– Ethereum is also being either tested or implemented by enterprise software companies for various applications.

– Deloitte and ConsenSys announced plans in 2016 to create a digital bank called Project ConsenSys.

– R3 Project, which connects 11 banks to distributed ledger using a private Ethereum blockchain running on Microsoft Azure.

– IBM ADEPT, an IoT system using Ethereum for smart contracts support.

– Microsoft Visual Studio is making the Ethereum Solidity language available to application developers.

– Ethereum Blockchain As a Service (EBaaS) on Microsoft Azure, which provides enterprise clients and developers with a cloud-based blockchain developer environment.

– Innovate UK provided 248,000GBP in funding to Tramonex to develop cross border payments prototype using Ethereum.

Confidential 14

Page 15: BlockChain Public

Ethereum block structure

Confidential 15

In 2014, Ethereum founders Vitalik Buterin, Gavin Wood

and Jeffrey Wilcke began work on a next-generation

blockchain that had the ambitions to implement a general,

fully trustless smart contract platform.

Page 16: BlockChain Public

Contract Creation Transaction with Ethereum

Confidential 16

??No Notification • Contract posted• Contract update

??No Subscribe• Potential users can Retrieve updates

Page 17: BlockChain Public

Hyperledger

Linux Foundation Project

Confidential 17

Page 18: BlockChain Public

Linux Foundation Hyperledger project

Confidential 18

Feb 16, 2016 - IBM has open sourced a significant chunk of the blockchain code it has been working

on, putting its weight behind the Linux Foundation and its Hyperledger project.

Big Blue has dumped the Apache 2.0-licensed source on GitHub, providing a limited but functional

dev environment to build on. The IT giant has pledged to maintain the code as others build on top of

it, including big-name Hyperledger partners that include Intel, Fujitsu, Cisco, JP Morgan, Accenture

and others.

Key elements in the code dump are a "consensus algorithm" which is vital for proper functioning of a

decentralized system, and a contract template that helps people code agreements into the system in

Java.

Page 19: BlockChain Public

Hyperledger

Hyperledger’s current goals are to combine three projects into practical blockchain applications:

• Rippled, a public distributed ledger written in C++ that handles cross-currency payments using order books

• IBM’s Open Blockchain, a low level fabric that implements smart contracts, digital assets, record repositories, consensus oriented networks, and cryptographic security

• Digital Asset’s Hyperledger, which is a ready to deploy blockchain server with a client API currently intended for use by financial services enterprises. It works by using an addition-only log of transactions that are designed to be replicated across multiple separate organizations all without a nexus of control. (The parent company, Digital Asset Holdings, lent the Hyperledger trademark name to the open source project as part of its contribution.)

Confidential 19

Page 20: BlockChain Public

Hyperledger Reference Architecture

Confidential 20

Page 21: BlockChain Public

Blockchain & IoT

Confidential 21

Page 22: BlockChain Public

IoT Use Caseuse case: connected device A (car A) wants to exchange information with connected device B (car B) about traffic – via a blockchainassumption: Car A is a full node+Dapp, Car B is only a Dapp and talks to a node

Confidential 22

miner

miner

miner

node

Dapp

node

Dapp

Car A

Car B

Private Network ATo build Car A request

Private Network BTo build Car A request

keys

keys keys

keys

Question? Where are the keys stored

Page 23: BlockChain Public

Potential use cases

Confidential 23

Electric car and charging station

TransactionsProcessed& stored inblockchain

Home Care remote monitoring

Records Processed& stored inblockchain

?? Missing NotificationSubscribe mechanism

Autonomous Car anti-collision

Each car is a node of the blockchainAll transactions are secured, stored,Time stamped etc

Missing localization, broadcast,Or notification/subscribe mechanism??

Page 24: BlockChain Public

Blockchain in OSI Stack

Application Layer

Blockchain is at the applicationLevel

The underlying layers for communication remain the same – ex Telco network

Page 25: BlockChain Public

IoT, Blockchain & Telco

25

Ex: M2M

Mobile

LPWAN

SDN Switch

SDN controllers

Core network

NW applications

M2M/IoT device

Traffic Control

Policies

Traffic

PGW

Fixed

Access network

Service provider

Blockchain

Service Providers/TelcoProvide Connectivity

Theycarry blockchainpackets like any other packet

If unlicencedspectrum is used, some ad-hoc networks could be used that are not Telco

Note: even LPWAN unlicenced is often Telco (ex Sigfox, Orange LORA)

Page 26: BlockChain Public

Different Models

Confidential 26

1- Device to Device – no Telco

Telco Telco

Server/Application

2- Device to Device – via Telco

3- Device to Server/application – via Telco

Page 27: BlockChain Public

Ethereum IoT Dapp

27

Page 28: BlockChain Public

IBM IoT ADEPT project

Confidential 28

IBM has unveiled its proof of concept for ADEPT, a system developed in partnership with Samsung that uses

elements of bitcoin’s underlying design to build a distributed network of devices – a decentralized Internet of

Things.

The ADEPT concept, or Autonomous Decentralized Peer-to-Peer Telemetry, taps blockchains to provide the

backbone of the system, utilizing a mix of proof-of-work and proof-of-stake to secure transactions.

IBM and Samsung chose three protocols – BitTorrent (file sharing), Ethereum (smart contracts) and TeleHash

(peer-to-peer messaging) – to underpin the ADEPT concept. ADEPT was formally unveiled at CES 2015 in Las

Vegas.

Page 29: BlockChain Public

Autonomous Device Coordination: The devices would be able to autonomously authenticate peers and self-maintain

Confidential 29

To implement these contract-based device interactions and to achieve

consensus based device coordination across a global network of devices, the

blockchain technology platform was chosen.

Page 30: BlockChain Public

Blockchain in ADEPT

The blockchain is a long ledger of transactions shared by participants of the network. A full copy of the blockchain will have a record of every transaction ever completed in the network. Every participant in the blockchain can maintain its own copy of this ledger of transactions, though ideally, the amount of data stored would vary based on capability, need and preference. Every block contains a hash of the previous block. This enables the blocks be traced back even to the first, the genesis block. It is computationally prohibitively difficult and impractical to modify a block once it is created, especially as the chain of subsequent blocks get generated. Blocks in shorter chains are automatically invalidated by virtue of there being a longer chain – all participants adopt the longest chain available.

Blocks are generated by a computation-intensive process called mining. Mining allows nodes to reach a secure, tamper-resistant consensus. Mining is also the mechanism used to introduce new coins or tokens of transaction into the system: Miners are paid any transaction fees as well as new tokens, based on the specific implementation model. There are various mining algorithms, primarily based on Proof of Stake or Proof of Work approaches. The cryptocurrency space is actively engaged in investigations on optimizing different aspects of the technology including addressing challenges like scalability.

Confidential 30

Page 31: BlockChain Public

Light Peer: The light peers are devices with low memory and storage capabilities

Confidential 31

Page 32: BlockChain Public

Standard Peer: A standard device, at the core protocol level is very similar to a light device, but it would retain a part of the blockchain based on its capabilities.

Confidential 32

Page 33: BlockChain Public

Peer Exchange: Peer exchanges are high end devices with vast compute and storage capabilities.

Confidential 33

The peer exchange will be able to offer commercial business solutions in the new decentralized IoT world.

It would have core services that enable features like Blockchain analytics and running payment exchanges.

It would also have marketplace components

Page 34: BlockChain Public

EthCore

Ethcore is a new venture built by many of the people who brought Ethereum from an initial whitepaper to the first global smart-contract network administering over $200m of value.

Founded by Dr. Gavin Wood (Co-designer of the Ethereum protocol and the EVM, and Inventor of the Solidity language) together with Dr. Jutta Steiner (Chief Security Manager, Ethereum, and Co-founder, Provenance), Dr. Aeron Buchanan (Head of Operations, Ethereum), Kenneth Kappler (Communications Manager, Ethereum) and TJ Saw (CEO, OxLegal), Ethcore will be working with trail-blazing startups and global industry leaders alike to help unleash the immense potential of the Ethereum protocol throughout key verticals such as energy, IoT, finance and asset-tracking.

Ethcore has secured funding of US$750,000 in April 2016 in a preliminary, pre-seed funding round. The funding round is led by San Francisco-based Blockchain Capital and Shanghai-based Fenbushi Capital

Despite this growth, there have been concerns that until issues around scalability and privacy are tackled there are limits to the potential impact blockchain could have.

=> Ethcore is addressing this directly and working on modifications to the blockchain architecture to enable large scale and higher value transactions as well as to allow for the preservation of privacy when institutions or individuals deal with each other over a blockchain.

Confidential 34

Page 35: BlockChain Public

EthCore Parity

Ethcore recently released the first version of their premium Ethereum client, Parity, the fastest and lightest Ethereum client available.

The Parity software client forms the bedrock for the company’s continued innovation in concert with the Ethereumcommunity. Ethcore’s software technology roadmap includes light-client technology for secure IoT applications, permissioned chains, scalability and confidentiality features as well as application level libraries for use by developers and third-party projects.

Free software licence GNU GPL v3, exactly the same as the Linux kernel

Parity is actively developed as an open source project on githubCurrently available for Ubuntu/Debian, OSX and as a Docker container, Parity can be used to sync with both Homestead and Morden networks, can mine when used with ethminer, can power a Web3 Javascript console when used with eth attach and can be used for Ethereum JSONRPC applications such as a netstats client (allowing you to show off on the Ethereum public network page).

Parity is available through Rust Cargogit clone https://github.com/ethcore/parity.git && cd parity cargo run --release

Confidential 35

Page 36: BlockChain Public

Blockchain Challenges

Confidential 36

Page 37: BlockChain Public

1- Security Holes

A blockchain-based smart contract is visible to all users of said blockchain. However, this leads to a situation where bugs, including security holes, are visible to all but may not be able to be quickly fixed. Such an attack, difficult to fix quickly, was successfully executed on The DAO in June 2016, draining US$50 million in Ether while developers attempted to come to a solution that would gain consensus.

The DAO is a digital decentralized autonomous organization and a form of investor-directed venture capital fund created in May 2016.

There may be multiple security holes:

• At the node or Dapp level : the code may be corrupted or hacked, spoofing etc

• The private keys may be hacked, or corrupted preventing the user to access the blockchain

• The miners may be corrupted or hacked too. The blockchain is supposed to be self-healing based but if >50% of the miners are attacked, the service may come down

• etc

Confidential 37

Page 38: BlockChain Public

Security Risksuse case: connected device A (car A) wants to exchange information with connected device B (car B) about traffic – via a blockchainassumption: Car A is a full node+Dapp, Car B is only a Dapp and talks to a node

Confidential 38

miner

miner

miner

node

Dapp

node

Dapp

5

1

2

4Car A

Car B

Private Network ATo build Car A request

Private Network BTo build Car A request

4

3

keys

keys keys

keys

Question? Where are the keys stored

Page 39: BlockChain Public

2- scalability & Performance

– With millions/billions of nodes (IoT, money transfers etc), the blockchain needs to be highly scalable

– Either processing & storage capacity of the miners

– Or number of miners

– Scalability of the databases storing the keys (public and private keys)

– Scalability of underlying networks to carry the traffic

– The latency between the node and the blockchain, and between the miners needs to be very low

– It would be good if the node was able to connect to the closest miner at a given time

– The node needs to be able to access the blockchain anytime anywhere:

– Connectivity requirement

– Availability of the blockchain itself in terms of capacity to process the request

Confidential 39

Page 40: BlockChain Public

3- potential feature gaps

– No Notification mechanism

– No Localization mechanism of the closest miner (latency issue)

– No Localization of the stored information (regulation issue)

– No subscribe mechanism

– No broadcast mechanism

– etc

Confidential 40

Page 41: BlockChain Public

4- management

– Management system to upload/update/configure the client devices app

– Management of the different nodes, ?NFV Management for VM

– Management of the miners , configuration etc

– Management of the storage/databases, cleaning old records, old keys never used etc ??

– Backup

– Many ‘cloud management’ functions …

Confidential 41

Page 42: BlockChain Public

Backup

Page 43: BlockChain Public

Blockchain stack

Confidential 43

Page 44: BlockChain Public

Bitcoin block structure

Confidential 44