Upgrade to Pro — share decks privately, control downloads, hide ads and more …

John Feminella on Bitcoin: A Peer-to-Peer Electronic Cash System

pwl
July 10, 2018

John Feminella on Bitcoin: A Peer-to-Peer Electronic Cash System

The original Bitcoin paper was published by a pseudonymous individual named Satoshi Nakamoto on Halloween 2008, in the quiet recesses of a small cryptography mailing list, where it was mostly ignored. A couple of months afterwards, Satoshi published the original Bitcoin client software that implemented the ideas in the paper.

Ten years later, a lot has happened both about cryptocurrency, and a lot of money has changed hands. In this talk, we explore the core ideas laid out in the paper, the historical background around digital currencies, and how these ideas and history were implemented in the original Bitcoin client.

pwl

July 10, 2018
Tweet

More Decks by pwl

Other Decks in Technology

Transcript

  1. let’s build a blockchain an overview of Satoshi Nakamoto’s paper,

    “Bitcoin: A Peer-to-Peer Electronic Cash System” by: John Feminella at: Papers We Love NYC in: Two Sigma, New York, NY on: July 10, 2018
  2. http://jxf.me · @jxxf "A purely peer-to-peer version of electronic cash

    would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer- to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers."
  3. http://jxf.me · @jxxf "A purely peer-to-peer version of electronic cash

    would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer- to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers."
  4. http://jxf.me · @jxxf "A purely peer-to-peer version of electronic cash

    would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer- to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers."
  5. http://jxf.me · @jxxf "A purely peer-to-peer version of electronic cash

    would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer- to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers."
  6. http://jxf.me · @jxxf "A purely peer-to-peer version of electronic cash

    would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer- to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers."
  7. http://jxf.me · @jxxf "A purely peer-to-peer version of electronic cash

    would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer- to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers."
  8. http://jxf.me · @jxxf "A purely peer-to-peer version of electronic cash

    would allow online payments to be sent directly from one party to another without going through a financial institution."
  9. http://jxf.me · @jxxf ≡ ⋯ 0101 0010 1010 1110 0110

    0101 1000 0011 trust rules history
  10. http://jxf.me · @jxxf 0101 0010 1010 1110 0110 0101 1000

    0011 trust rules history + + ≡ ⋯
  11. http://jxf.me · @jxxf each currency’s rules and history make it

    unique 0101 0010 1010 1110 0110 0101 1000 0011 rules history +
  12. a very different kind of money http://jxf.me · @jxxf is

    it really money at all? we’ll come back to this
  13. http://jxf.me · @jxxf Alice gets $100 Bob gets $100 Carol

    gets $100 Alice paid Carol $15 (...) Ledger
  14. http://jxf.me · @jxxf Alice gets $100 Bob gets $100 Carol

    gets $100 Alice paid Carol $15 Bob paid Alice $20 Bob paid Carol $30
  15. http://jxf.me · @jxxf Alice gets 100 Bob gets 100 Carol

    gets 100 Alice paid Carol 15 Bob paid Alice 20 Bob paid Carol 30 (...)
  16. problem: can’t trust the ledger forgery: actors can add lines

    that aren’t valid erasure: actors can remove lines that are valid http://jxf.me · @jxxf
  17. http://jxf.me · @jxxf Alice paid Carol 15 Alice Bob paid

    Alice 20 Bob Bob paid Carol 30 Bob Alice paid Bob 50 Alice B
  18. http://jxf.me · @jxxf changes in m produce unpredictable signatures sign(m’,sk)

    sign lines to authorize transactions signature 1010 1101 0010 0110 0111 0101 [⋯] =
  19. http://jxf.me · @jxxf sign(m,sk) sign lines to authorize transactions verify(m,s,pk)

    sign lines to authorize transactions = signature 0101 1101 1110 1010 0001 0111 [⋯]
  20. http://jxf.me · @jxxf sign(m,sk) sign lines to authorize transactions verify(m,s,pk)

    sign lines to authorize transactions = signature 0101 1101 1110 1010 0001 0111 [⋯]
  21. http://jxf.me · @jxxf sign(m,sk) sign lines to authorize transactions verify(m,s,pk)

    sign lines to authorize transactions = signature 0101 1101 1110 1010 0001 0111 [⋯]
  22. http://jxf.me · @jxxf sign(m,sk) sign lines to authorize transactions verify(m,s,pk)

    sign lines to authorize transactions = signature 0101 1101 1110 1010 0001 0111 [⋯]
  23. http://jxf.me · @jxxf sign(m,sk) sign lines to authorize transactions signature

    0101 1101 1110 1010 0001 0111 [⋯] verify(m,s,pk) sign lines to authorize transactions = = validation {true, false}
  24. http://jxf.me · @jxxf sign(m,sk) sign lines to authorize transactions =

    signature 0101 1101 1110 1010 0001 0111 [⋯] virtually impossible very easy!
  25. http://jxf.me · @jxxf sign(m,sk) sign lines to authorize transactions =

    signature 0101 1101 1110 1010 0001 0111 [⋯] virtually impossible very easy!
  26. http://jxf.me · @jxxf sign(m,sk) sign lines to authorize transactions =

    signature 0101 1101 1110 1010 0001 0111 [⋯] computationally infeasible very easy!
  27. http://jxf.me · @jxxf protocol: 1. anyone can add valid lines

    2. no overspending 3. must sign lines to be valid
  28. http://jxf.me · @jxxf sign(m,sk) sign lines to authorize transactions secret

    key (sk) 1 Alice paid Carol 15 message (m) add id to message
  29. http://jxf.me · @jxxf protocol: 1. anyone can add valid lines

    2. no overspending 3. must sign lines to be valid 4. lines have unique identifiers
  30. http://jxf.me · @jxxf Ledger Ledger 2 Bob paid Alice 50

    1011⋯ 2 Bob paid Alice 50 1011⋯ 2 Bob paid Alice 50 1011⋯ Ledger B
  31. http://jxf.me · @jxxf Ledger Ledger 2 Bob paid Alice 50

    1011⋯ 2 Bob paid Alice 50 1011⋯ 2 Bob paid Alice 50 1011⋯ Ledger B
  32. http://jxf.me · @jxxf protocol: 1. anyone can add valid lines

    2. no overspending 3. must sign lines to be valid 4. lines have unique identifiers 5. distribute the ledger
  33. http://jxf.me · @jxxf 2 Alice paid Dave 30 1001⋯ 2

    Alice paid Carol 30 0101⋯ Ledger B
  34. http://jxf.me · @jxxf 2 Alice paid Dave 30 1001⋯ 2

    Alice paid Carol 30 0101⋯ Ledger B double spending!
  35. http://jxf.me · @jxxf protocol: 1. anyone can add valid lines

    2. no overspending 3. must sign lines to be valid 4. lines have unique identifiers 5. distribute the ledger (how?!)
  36. http://jxf.me · @jxxf 0101 0010 1010 1110 0110 0101 1000

    0011 trust rules history + + ≡ ⋯
  37. http://jxf.me · @jxxf 0101 0010 1010 1110 0110 0101 1000

    0011 trust rules history + + ≡ ⋯
  38. takeaways Bitcoin is a trustless, permissionless set of rules in

    software, those rules allow us to trustlessly exchange value the protocol has some serious problems blockchains have enormous potential … if we get it right http://jxf.me · @jxxf
  39. takeaways Bitcoin is a trustless, permissionless set of rules in

    software, those rules allow us to trustlessly exchange value the protocol has some serious problems blockchains have enormous potential … if we get it right http://jxf.me · @jxxf
  40. takeaways Bitcoin is a trustless, permissionless set of rules in

    software, those rules allow us to trustlessly exchange value the protocol has some serious problems blockchains have enormous potential … if we get it right http://jxf.me · @jxxf
  41. takeaways Bitcoin is a trustless, permissionless set of rules in

    software, those rules allow us to trustlessly exchange value the protocol has some serious problems blockchains have enormous potential … if we get it right http://jxf.me · @jxxf