O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Ethereum: From there to here, and ownards yonder

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Próximos SlideShares
Ethereum: Next steps...
Ethereum: Next steps...
Carregando em…3
×

Confira estes a seguir

1 de 58 Anúncio
Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Quem viu também gostou (20)

Anúncio

Semelhante a Ethereum: From there to here, and ownards yonder (20)

Anúncio

Mais recentes (20)

Ethereum: From there to here, and ownards yonder

  1. 1. ethereum From there to here, and onwards yonder Dr. Gavin Wood co-founder and lead developer, ethereum project
  2. 2. Overview Decentralisation Consensus Blockchain Bitcoin Direction Ethereum Hacking Society
  3. 3. The problem Agreement necessary for collaboration. Internet is great for comms but... Too easy to lie.
  4. 4. The old solution 1. Identify authority 2. Allow authority to impose “truth” 3. Blindly trust authority
  5. 5. How things are :-( Someone, somewhere
  6. 6. How things are :-( Someone, somewhere
  7. 7. Centralisation & Central Authorities Single point of control Single point of failure Single bottleneck
  8. 8. 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
  9. 9. Technology! Can’t we do better?
  10. 10. The new solution Avoid relying on authority. Use consensus of peers.
  11. 11. How things should be :-)
  12. 12. How things should be :-)
  13. 13. Basic Premise “The truth is more common than any one lie” Liars can try but, ultimately, they’ll be ignored by all others.
  14. 14. Which makes... A decentralised solution for any sort of chronicling. Chronicling: Time-series of archivable data
  15. 15. Block chain? Digital messages (transactions) bundled into: ...Blocks. Blocks linked in a chain to form chronicle.
  16. 16. The “Block Chain” The “Genesis” block 0 1 2 Proof-of-Work Timestamp Proof-of-Work Timestamp
  17. 17. 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.
  18. 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. 19. Transaction Semantics ...or the meaning of a transaction. And thus the accumulated meaning of the chronicle.
  20. 20. 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
  21. 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. 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. 23. 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
  24. 24. 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)
  25. 25. ethereum
  26. 26. Formally... Collective of Non-Localised Singleton Programmable Data-Structures no authority, no centre, no server
  27. 27. Simile Internet is to communication as Ethereum is to agreements
  28. 28. Another Simile Ethereum is to Bitcoin as a smart-phone is to a calculator
  29. 29. Bitcoin & Crypto-currencies Used blockchain to implement basic clearing house contract without a central server
  30. 30. Ethereum & Crypto-law Uses blockchain to implement arbitrary social contracts without a central server
  31. 31. Ethereum: State Like Bitcoin, accounts with balances. Unlike Bitcoin, accounts can be contracts: code to execute; storage for structured data
  32. 32. 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.
  33. 33. Extensible semantics Bitcoin: single accepted semantic for all data. (ownership of funds) Ethereum: semantic dependent on contract.
  34. 34. Hacking Society What does a contract look like?
  35. 35. 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
  36. 36. Virtual Machine Arithmetic/Logic & Crypto ADD, EXP, EQ, AND, LT, BYTE, SHA3 &c Flow control JUMP, JUMPI, PC
  37. 37. VM: Environment Can read message input data CALLDATALOAD, CALLDATASIZE, CALLDATACOPY Can halt & give message output data RETURN, STOP, SUICIDE
  38. 38. VM: Environment Arbitrary storage (2256 words addressable) ISOLATED FROM OTHER ACCOUNTS SLOAD, SSTORE Can create & send messages. CREATE, CALL
  39. 39. VM: Environment Can query blockchain information TIMESTAMP, PREVHASH, NUMBER, COINBASE, &c. Other information ADDRESS, BALANCE, ORIGIN, CALLER
  40. 40. VM Storage, memory & processing costs ETH (actually, costs GAS but GAS ⇔ ETH)
  41. 41. LLL: Basics expression := ( <op-code> [<operand> ...] ) <operand> is just expression 0 -> PUSH 0 (mload 0x20) -> PUSH 0x20 MLOAD
  42. 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. 43. Simple Currency [[ (caller) ]] 0x1000000000000 (returnlll (when (= (calldatasize) 64) { (set ‘a @@(caller)) (when (>= @a $32) { [[(caller)]] (- @a $32) [[$0]] (+ @@ $0 $32) }) }))
  44. 44. LLL: More variadic arithmetic/logic macros: (def ‘sqr (x) (* x x)) (sqr 4): (* 4 4)
  45. 45. LLL: Name Registration (def ‘registrar 0x50441127ea5b9dfd835a9aba4e1dc9c1257b58ca) [0] 'register [32] 'Exchange (call (- (gas) 21) registrar 0 0 64 0 0)
  46. 46. Possible uses? Virtual currencies (Bitcoin) Digital proxy currencies (CFD, ‘Goldcoin’) Financial instruments (Derivatives, Futures) Insurance & gaming Registrars (ICANN, Namecoin, land) Reputation systems (Facebook, eBay)
  47. 47. And eventually... Trust systems (Verisign) Deeds & ownership Document revision control Voting systems DAOs Your imagination!
  48. 48. The Project 100% Free Software Inclusive development, open source code. Official C++, Go, Python implementations. Unofficial Java & Javascript
  49. 49. Development lead by Ethereum ÐΞV team: Jeff Wilcke Gavin Wood Vitalik Buterin & many contributors...
  50. 50. Specifications & Implementations: White paper (Buterin) Yellow paper (Wood) C++ (Wood) Go (Wilcke) Python (Buterin et al) Javascript (Becze) Java (Mandeleil, Savers)
  51. 51. 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!)
  52. 52. And Web 3.0? The decentralised Web - or - The Web without any web servers
  53. 53. ethereum From there to here, and onwards yonder Questions?

×