KEMBAR78
Ethereum: From there to here, and ownards yonder | PDF
ethereum 
From there to here, and onwards yonder 
Dr. Gavin Wood 
co-founder and lead developer, ethereum project
Overview 
Decentralisation 
Consensus 
Blockchain 
Bitcoin 
Direction 
Ethereum 
Hacking Society
The problem 
Agreement necessary for collaboration. 
Internet is great for comms but... 
Too easy to lie.
The old solution 
1. Identify authority 
2. Allow authority to impose “truth” 
3. Blindly trust authority
How things are :-( 
Someone, 
somewhere
How things are :-( 
Someone, 
somewhere
Centralisation & Central Authorities 
Single point of control 
Single point of failure 
Single bottleneck
The limitation 
Authority may be: 
incompetent (Sony &c. vs. thieves) 
compromised (Google/Facebook &c. vs. NSA) 
biased (Visa/Mastercard/Paypal vs. Wikileaks) 
corrupt 
unavailable 
unknown
Technology! 
Can’t we do better?
The new solution 
Avoid relying on authority. 
Use consensus of peers.
How things should be :-)
How things should be :-)
Basic Premise 
“The truth is more common than any one lie” 
Liars can try but, ultimately, they’ll be ignored 
by all others.
Which makes... 
A decentralised solution for any sort of 
chronicling. 
Chronicling: Time-series of archivable data
Block chain? 
Digital messages (transactions) bundled into: 
...Blocks. 
Blocks linked in a chain to form chronicle.
The “Block Chain” 
The “Genesis” block 
0 
1 
2 
Proof-of-Work 
Timestamp 
Proof-of-Work 
Timestamp
PoW: A Buttress of waste 
“Why your chain and not mine?” 
Longest chain is “best” 
shorter chains are ignored 
Non-trivial to make long chains as energy must be wasted 
(proof-of-work) in order to create blocks.
Chain to State 
It’s one thing to have a single chronicle, 
it’s another to know what it means 
What is the language?
Transaction Semantics 
...or the meaning of a transaction. 
And thus the accumulated meaning of the 
chronicle.
Bitcoin 
Transaction: the transfer of some value so it 
can only be transferred onwards by using 
(signing with) some secret. 
Chronicle: The total value accessible by each 
secret key. 
i.e. the account balances
Why form consensus? 
Alice starts with $100 
At the same time: 
Alice transfers $100 to Bob 
Alice transfers $100 to Charlie 
What happens?
The “double-spend” solution 
A chronicle that everyone agrees on forces a 
single order. This is required. 
$100 goes to either Bob or Charlie, but never 
both. 
Second transfer ignored as no funds left. 
Everyone agrees upon the recipient
The Alts 
Attributes altered such as: 
Proof-of-Stake: virtual “proof-of-work” 
Supply: increase, reduce, fixed, random, select 
Best: GHOST rather than length 
Speed: Lower block-time
Where are we going? 
CRYPTO-FINANCE 
CRYPTO-CURRENCY 
APP-COINS 
CRYPTO-LAW 
Boolean Structured 
Language 
Rules 
Trivial Ammendable General 
Numeric Discrete 
(Less Relevant) (More Relevant)
ethereum
Formally... 
Collective of Non-Localised Singleton 
Programmable Data-Structures 
no authority, no centre, no server
Simile 
Internet is to communication 
as 
Ethereum is to agreements
Another Simile 
Ethereum is to Bitcoin 
as 
a smart-phone is to a calculator
Bitcoin & Crypto-currencies 
Used blockchain to implement basic clearing 
house contract without a central server
Ethereum & Crypto-law 
Uses blockchain to implement arbitrary 
social contracts without a central server
Ethereum: State 
Like Bitcoin, accounts with balances. 
Unlike Bitcoin, accounts can be contracts: 
code to execute; 
storage for structured data
Ethereum: Transactions 
Like in Bitcoin, transfer funds. 
Also 
Transactions have data attached. 
If destination omitted, creates a contract. 
If destination is contract, code gets executed.
Extensible semantics 
Bitcoin: single accepted semantic for all data. 
(ownership of funds) 
Ethereum: semantic dependent on contract.
Hacking Society 
What does a contract look like?
Code Execution: Virtual Machine 
Arbitrary size stack 
PUSH, POP, SWAP, DUP 
Arbitrary temp memory (2256 bytes 
addressable) 
MLOAD, MSTORE 
Code stored in virtual ROM 
CODESIZE, CODECOPY
Virtual Machine 
Arithmetic/Logic & Crypto 
ADD, EXP, EQ, AND, LT, BYTE, SHA3 &c 
Flow control 
JUMP, JUMPI, PC
VM: Environment 
Can read message input data 
CALLDATALOAD, CALLDATASIZE, CALLDATACOPY 
Can halt & give message output data 
RETURN, STOP, SUICIDE
VM: Environment 
Arbitrary storage (2256 words addressable) 
ISOLATED FROM OTHER ACCOUNTS 
SLOAD, SSTORE 
Can create & send messages. 
CREATE, CALL
VM: Environment 
Can query blockchain information 
TIMESTAMP, PREVHASH, NUMBER, COINBASE, &c. 
Other information 
ADDRESS, BALANCE, ORIGIN, CALLER
VM 
Storage, memory & processing costs ETH 
(actually, costs GAS but 
GAS ⇔ ETH)
LLL: Basics 
expression := ( <op-code> [<operand> ...] ) 
<operand> is just expression 
0 -> PUSH 0 
(mload 0x20) -> PUSH 0x20 MLOAD
LLL: Advanced 
variables: (set ‘name <expression>) 
(mload x) / (mstore y z): @x / [y] z 
(sload x) / (store y z): @@x / [[y]] z 
(calldataload x): $x
Simple Currency 
[[ (caller) ]] 0x1000000000000 
(returnlll (when (= (calldatasize) 64) { 
(set ‘a @@(caller)) 
(when (>= @a $32) { 
[[(caller)]] (- @a $32) 
[[$0]] (+ @@ $0 $32) 
}) 
}))
LLL: More 
variadic arithmetic/logic 
macros: (def ‘sqr (x) (* x x)) (sqr 4): (* 4 4)
LLL: Name Registration 
(def ‘registrar 
0x50441127ea5b9dfd835a9aba4e1dc9c1257b58ca) 
[0] 'register 
[32] 'Exchange 
(call (- (gas) 21) registrar 0 0 64 0 0)
Possible uses? 
Virtual currencies (Bitcoin) 
Digital proxy currencies (CFD, ‘Goldcoin’) 
Financial instruments (Derivatives, Futures) 
Insurance & gaming 
Registrars (ICANN, Namecoin, land) 
Reputation systems (Facebook, eBay)
And eventually... 
Trust systems (Verisign) 
Deeds & ownership 
Document revision control 
Voting systems 
DAOs 
Your imagination!
The Project 
100% Free Software 
Inclusive development, open source code. 
Official C++, Go, Python implementations. 
Unofficial Java & Javascript
Development lead by 
Ethereum ÐΞV team: 
Jeff Wilcke 
Gavin Wood 
Vitalik Buterin 
& many contributors...
Specifications & Implementations: 
White paper (Buterin) 
Yellow paper (Wood) 
C++ (Wood) 
Go (Wilcke) 
Python (Buterin et al) 
Javascript (Becze) 
Java (Mandeleil, Savers)
Crowd Sale 
Recently received over 30,000 BTC from sale 
of the future “crypto-fuel”. 
Development underway at 
github.com/ethereum 
(Great C++ coders walk this way!)
And Web 3.0? 
The decentralised Web 
- or - 
The Web without any web servers
ethereum 
From there to here, and onwards yonder 
Questions?

Ethereum: From there to here, and ownards yonder

  • 1.
    ethereum From thereto here, and onwards yonder Dr. Gavin Wood co-founder and lead developer, ethereum project
  • 2.
    Overview Decentralisation Consensus Blockchain Bitcoin Direction Ethereum Hacking Society
  • 3.
    The problem Agreementnecessary for collaboration. Internet is great for comms but... Too easy to lie.
  • 4.
    The old solution 1. Identify authority 2. Allow authority to impose “truth” 3. Blindly trust authority
  • 5.
    How things are:-( Someone, somewhere
  • 6.
    How things are:-( Someone, somewhere
  • 7.
    Centralisation & CentralAuthorities Single point of control Single point of failure Single bottleneck
  • 8.
    The limitation Authoritymay be: incompetent (Sony &c. vs. thieves) compromised (Google/Facebook &c. vs. NSA) biased (Visa/Mastercard/Paypal vs. Wikileaks) corrupt unavailable unknown
  • 9.
  • 10.
    The new solution Avoid relying on authority. Use consensus of peers.
  • 11.
  • 12.
  • 13.
    Basic Premise “Thetruth is more common than any one lie” Liars can try but, ultimately, they’ll be ignored by all others.
  • 14.
    Which makes... Adecentralised solution for any sort of chronicling. Chronicling: Time-series of archivable data
  • 15.
    Block chain? Digitalmessages (transactions) bundled into: ...Blocks. Blocks linked in a chain to form chronicle.
  • 16.
    The “Block Chain” The “Genesis” block 0 1 2 Proof-of-Work Timestamp Proof-of-Work Timestamp
  • 17.
    PoW: A Buttressof waste “Why your chain and not mine?” Longest chain is “best” shorter chains are ignored Non-trivial to make long chains as energy must be wasted (proof-of-work) in order to create blocks.
  • 18.
    Chain to State It’s one thing to have a single chronicle, it’s another to know what it means What is the language?
  • 19.
    Transaction Semantics ...orthe meaning of a transaction. And thus the accumulated meaning of the chronicle.
  • 20.
    Bitcoin Transaction: thetransfer of some value so it can only be transferred onwards by using (signing with) some secret. Chronicle: The total value accessible by each secret key. i.e. the account balances
  • 21.
    Why form consensus? Alice starts with $100 At the same time: Alice transfers $100 to Bob Alice transfers $100 to Charlie What happens?
  • 22.
    The “double-spend” solution A chronicle that everyone agrees on forces a single order. This is required. $100 goes to either Bob or Charlie, but never both. Second transfer ignored as no funds left. Everyone agrees upon the recipient
  • 23.
    The Alts Attributesaltered such as: Proof-of-Stake: virtual “proof-of-work” Supply: increase, reduce, fixed, random, select Best: GHOST rather than length Speed: Lower block-time
  • 24.
    Where are wegoing? CRYPTO-FINANCE CRYPTO-CURRENCY APP-COINS CRYPTO-LAW Boolean Structured Language Rules Trivial Ammendable General Numeric Discrete (Less Relevant) (More Relevant)
  • 25.
  • 26.
    Formally... Collective ofNon-Localised Singleton Programmable Data-Structures no authority, no centre, no server
  • 27.
    Simile Internet isto communication as Ethereum is to agreements
  • 28.
    Another Simile Ethereumis to Bitcoin as a smart-phone is to a calculator
  • 29.
    Bitcoin & Crypto-currencies Used blockchain to implement basic clearing house contract without a central server
  • 30.
    Ethereum & Crypto-law Uses blockchain to implement arbitrary social contracts without a central server
  • 31.
    Ethereum: State LikeBitcoin, accounts with balances. Unlike Bitcoin, accounts can be contracts: code to execute; storage for structured data
  • 32.
    Ethereum: Transactions Likein Bitcoin, transfer funds. Also Transactions have data attached. If destination omitted, creates a contract. If destination is contract, code gets executed.
  • 33.
    Extensible semantics Bitcoin:single accepted semantic for all data. (ownership of funds) Ethereum: semantic dependent on contract.
  • 34.
    Hacking Society Whatdoes a contract look like?
  • 35.
    Code Execution: VirtualMachine Arbitrary size stack PUSH, POP, SWAP, DUP Arbitrary temp memory (2256 bytes addressable) MLOAD, MSTORE Code stored in virtual ROM CODESIZE, CODECOPY
  • 36.
    Virtual Machine Arithmetic/Logic& Crypto ADD, EXP, EQ, AND, LT, BYTE, SHA3 &c Flow control JUMP, JUMPI, PC
  • 37.
    VM: Environment Canread message input data CALLDATALOAD, CALLDATASIZE, CALLDATACOPY Can halt & give message output data RETURN, STOP, SUICIDE
  • 38.
    VM: Environment Arbitrarystorage (2256 words addressable) ISOLATED FROM OTHER ACCOUNTS SLOAD, SSTORE Can create & send messages. CREATE, CALL
  • 39.
    VM: Environment Canquery blockchain information TIMESTAMP, PREVHASH, NUMBER, COINBASE, &c. Other information ADDRESS, BALANCE, ORIGIN, CALLER
  • 40.
    VM Storage, memory& processing costs ETH (actually, costs GAS but GAS ⇔ ETH)
  • 41.
    LLL: Basics expression:= ( <op-code> [<operand> ...] ) <operand> is just expression 0 -> PUSH 0 (mload 0x20) -> PUSH 0x20 MLOAD
  • 42.
    LLL: Advanced variables:(set ‘name <expression>) (mload x) / (mstore y z): @x / [y] z (sload x) / (store y z): @@x / [[y]] z (calldataload x): $x
  • 43.
    Simple Currency [[(caller) ]] 0x1000000000000 (returnlll (when (= (calldatasize) 64) { (set ‘a @@(caller)) (when (>= @a $32) { [[(caller)]] (- @a $32) [[$0]] (+ @@ $0 $32) }) }))
  • 44.
    LLL: More variadicarithmetic/logic macros: (def ‘sqr (x) (* x x)) (sqr 4): (* 4 4)
  • 45.
    LLL: Name Registration (def ‘registrar 0x50441127ea5b9dfd835a9aba4e1dc9c1257b58ca) [0] 'register [32] 'Exchange (call (- (gas) 21) registrar 0 0 64 0 0)
  • 46.
    Possible uses? Virtualcurrencies (Bitcoin) Digital proxy currencies (CFD, ‘Goldcoin’) Financial instruments (Derivatives, Futures) Insurance & gaming Registrars (ICANN, Namecoin, land) Reputation systems (Facebook, eBay)
  • 47.
    And eventually... Trustsystems (Verisign) Deeds & ownership Document revision control Voting systems DAOs Your imagination!
  • 48.
    The Project 100%Free Software Inclusive development, open source code. Official C++, Go, Python implementations. Unofficial Java & Javascript
  • 49.
    Development lead by Ethereum ÐΞV team: Jeff Wilcke Gavin Wood Vitalik Buterin & many contributors...
  • 50.
    Specifications & Implementations: White paper (Buterin) Yellow paper (Wood) C++ (Wood) Go (Wilcke) Python (Buterin et al) Javascript (Becze) Java (Mandeleil, Savers)
  • 51.
    Crowd Sale Recentlyreceived over 30,000 BTC from sale of the future “crypto-fuel”. Development underway at github.com/ethereum (Great C++ coders walk this way!)
  • 52.
    And Web 3.0? The decentralised Web - or - The Web without any web servers
  • 58.
    ethereum From thereto here, and onwards yonder Questions?