Understand distributed ledgers and how they work and what problems they are able to solve, in particular how the Bitcoin protocol achieves security, anonymity, and eventual consistency.
2. Who am I?
James Turner
Polyglot programmer
Worked for ebay , BBC, BSkyB
CTO @ magnr.com
2
3. Agenda
•How you might know Bitcoin
•What is Bitcoin?
•How Bitcoin solves certain problems
•What is this magical Blockchain everyone is talking about?
•It’s not all shiny
•Recap
•Questions
3
4. This is NOT Bitcoin
4
http://www.wired.com/2015/04/silk-road-1/
6. The Bitcoin protocol
• A method of exchanging data over a network
• A set of rules that everyone adheres to.
• These rules can be verified to check for errors
• Describes a transaction between 1 or more parties
6
7. Bank Alice and Bob
7
Send £100 to Bob
pretty please?
BOB YOU’RE RICH!
Alice Bob
When Who Amount
20 Aug Alice -100
21 Aug Graham +25
22 Aug Steve -80
23 Aug Chen -10
When Who Amount
21 Aug Bob +100
21 Aug Ian +25
21 Aug Dave +10
24 Aug Joe -99
COORDINATED EFFORTBANK A BANK B
Bank A Ledger Bank B Ledger
8. Banking problems?
• Centralised system failure (NatWest/RBS ATM glitch)
• Centralised trust failure (Northern Rock)
• Separated Ledgers (no single view of state - impractical auditing)
8
http://www.theguardian.com/business/2016/jan/01/natwest-rbs-customers-hit-another-banking-glitch
http://news.bbc.co.uk/1/hi/business/6996136.stm
9. Bitcoin Alice and Bob
9
Alice Bob
When Who Amount
20 Aug Alice -100
21 Aug Bob +100
21 Aug Ian +25
21 Aug Dave +10
21 Aug Graham
a
+25
22 Aug Steve -80
Graham
Dave
Steve
When Who Amount
20 Aug Alice -100
21 Aug Bob +100
21 Aug Ian +25
21 Aug Dave +10
21 Aug Graham
a
+25
22 Aug Steve -80
W W A
20 Ali-100
21 B +
21 Ia +
21 D +
21 Gr +
22 St -80
W W A
20 Ali-100
21 B +
21 Ia +
21 D +
21 Gr +
22 St -80
W W A
20 Ali-100
21 B +
21 Ia +
21 D +
21 Gr +
22 St -80
10. Bitcoin Alice and Bob Transaction
10
Alice Bob
Graham
Dave
Steve
Who Amt
Alice -20
Bob +20
Who Amt
Alice -20
Bob +20
Who Amt
Alice -20
Bob +20
Who Amt
Alice -20
Bob +20
When Who Amount
20 Aug Alice -100
21 Aug Bob +100
21 Aug Ian +25
21 Aug Dave +10
21 Aug Graham
a
+25
22 Aug Steve -80
23 Aug Alice -20
23 Aug Bob +20
When Who Amount
20 Aug Alice -100
21 Aug Bob +100
21 Aug Ian +25
21 Aug Dave +10
21 Aug Graham
a
+25
22 Aug Steve -80
When Who Amt
23 Aug Alice -20
23 Aug Bob +20
+
W W A20 Ali-10021 B +21 Ia +
21 D +21 Gr +22 St -80
23 Ali -2023 B +
W W A20 Ali-10021 B +21 Ia +
21 D +21 Gr +22 St -80
23 Ali -2023 B +
W W A20 Ali-10021 B +21 Ia +
21 D +21 Gr +22 St -80
23 Ali -2023 B +
14. EVIL ALICE - Double Spending
14
Alice Bob
When Who Amount
20 Aug Alice -100
20 Aug Bob +100
When Who Amount
20 Aug Alice -100
20 Aug Graham +100
Graham
When Who Amount
19 Aug Steve +50
19 Aug Ian +10
19 Aug Joe -90
20 Aug Alice -100
20 Aug Bob +100
When Who Amount
19 Aug Steve +50
19 Aug Ian +10
19 Aug Joe -90
20 Aug Alice -100
20 Aug Bob +100
When Who Amount
19 Aug Steve +50
19 Aug Ian +10
19 Aug Joe -90
20 Aug Alice -100
20 Aug Graham +100
???
15. Changing the ledger a little (part 1)
15
When From To Amount
20 Aug Alice Bob 80
20 Aug Alice Alice 20
21 Aug Bob Graham 80
22 Aug Graham Bob 10
22 Aug Graham Graham 70
Let’s assume Alice has £100
We can split a transaction into giving some money
and receiving some change in return. Much like a cash transaction
16. Changing the ledger a little (part 2)
16
TX ID When From To Amount
1,0 20 Aug Alice Bob 80
1,1 20 Aug Alice Alice 20
2,0 21 Aug Bob Graham 80
3,0 22 Aug Graham Bob 10
3,1 22 Aug Graham Graham 70
Let’s give each Transaction an Identity and Index
17. Changing the ledger a little (part 3)
17
TX ID SPENDS When From To Amount SPENT?
1,0 0,0 20 Aug Alice Bob 80 YES
1,1 0,0 20 Aug Alice Alice 20 NO
2,0 1,0 21 Aug Bob Graham 80 YES
3,0 2,0 22 Aug Graham Bob 10 NO
3,1 2,0 22 Aug Graham Graham 70 NO
Who Balance
Alice 20
Bob 10
Graham 70
Each transaction references a previous transaction
18. Blockchain the Magical Unicorn
18
Block 2
Block 1
reference
TX ID SPENDS When From To Amount SPENT?
1,0 0,0 20 Aug Alice Bob 80 YES
1,1 0,0 20 Aug Alice Alice 20 NO
2,0 1,0 21 Aug Bob Graham 80 YES
3,0 2,0 22 Aug Graham Bob 10 NO
3,1 2,0 22 Aug Graham Graham 70 NO
TX1
TX2
TX3
19. Creating a block
• Take some recent transaction data and a reference to a previous block
• Produce a hash (algorithmic computational function) of this data
• Add the new block to the chain of blocks you know about
• Rinse, repeat…
19
20. What the hash?
“The quick brown fox jumps over the lazy dog”
d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592
“The quick brown fox jumps over the lazy doh”
631386c0ac66eafac3a28dbe68a76c6cbc0ba6382011481d59e6795243499196
1 letter difference in characters results in extremely different hash results.
20
https://en.wikipedia.org/wiki/SHA-2
23. Block difficulty
• What’s to stop Alice from re-writing all historical blocks?
• Hashing has to be sufficiently complex so as to take time to produce
• Thus Alice cannot guarantee she will be the next person to “mine” a block.
• Most cryptocurrencies rely on the difficulty being a hash with a certain
number of 0 prefixes, e.g.
• 000000000000000006c7cdecaf9dbe50a5fc693e7a555550d57aa1706f3f964b
• THIS IS PROOF OF WORK (AKA MINING)!
23
24. EVIL ALICE - Double Spending
24
Alice Bob
When Who Amount
20 Aug Alice -100
20 Aug Bob +100
When Who Amount
20 Aug Alice -100
20 Aug Graham +100
Graham
When Who Amount
19 Aug Steve +50
19 Aug Ian +10
19 Aug Joe -90
20 Aug Alice -100
20 Aug Bob +100
When Who Amount
19 Aug Steve +50
19 Aug Ian +10
19 Aug Joe -90
20 Aug Alice -100
20 Aug Bob +100
When Who Amount
19 Aug Steve +50
19 Aug Ian +10
19 Aug Joe -90
20 Aug Alice -100
20 Aug Graham +100
When Who Amount
19 Aug Steve +50
19 Aug Ian +10
19 Aug Joe -90
20 Aug Alice -100
20 Aug Bob +100
NEW
BLOCK
FOUND
25. Why bother?
• Each new block is rewarded with bitcoins
• Thus, there is a greater benefit from being a good citizen
25
28. EVIL ALICE - Spending Graham’s Money
28
Alice Bob
When Who Amount
20 Aug Graham -100
20 Aug Alice +100
Graham
When Who Amount
19 Aug Steve +50
19 Aug Ian +10
19 Aug Joe -90
20 Aug Graham -100
20 Aug Alice +100
When Who Amount
19 Aug Steve +50
19 Aug Ian +10
19 Aug Joe -90
20 Aug Graham -100
20 Aug Alice +100
When Who Amount
19 Aug Steve +50
19 Aug Ian +10
19 Aug Joe -90
When Who Amount
20 Aug Graham -100
20 Aug Alice +100
???
UM NO!
29. So…
How do I know that the cash you’re giving me, belongs to you?
29
30. Introducing Cryptography
• Cryptography is mathematics (i.e. provable)
• Bitcoin uses asymmetric key cryptography based on ECDSA
• Bitcoin uses the public key component as the “address”.
• No reliance on an intermediary party to provide account numbers.
30
https://en.bitcoin.it/wiki/How_bitcoin_works
https://en.wikipedia.org/wiki/Public-key_cryptography
32. The Ledger
32
TX ID SPENDS When From To Amount SPENT?
1,0 0,0 20 Aug Alice Bob 80 YES
1,1 0,0 20 Aug Alice Alice 20 NO
2,0 1,0 21 Aug Bob Graham 80 YES
3,0 2,0 22 Aug Graham Bob 10 NO
3,1 2,0 22 Aug Graham Graham 70 NO
33. The Anonymous Ledger
33
TX ID SPENDS When From To Amount SPENT?
1,0 0,0 20 Aug aabc4d
Alice
8392a1
Bob
80 YES
1,1 0,0 20 Aug aabc4d
Alice
aabc4d
Alice
20 NO
2,0 1,0 21 Aug 8392a1
Bob
1b1b78
Graham
80 YES
3,0 2,0 22 Aug 1b1b78
Graham
8392a1
Bob
10 NO
3,1 2,0 22 Aug 1b1b78
Graham
1b1b78
Graham
70 NO
34. The Signed Anonymous Ledger
34
TX ID SPENDS When From To Amount SPENT? SIG
1,0 0,0 20 Aug aabc4d
Alice
8392a1
Bob
80 YES 41c1a8
1,1 0,0 20 Aug aabc4d
Alice
aabc4d
Alice
20 NO 6219dd
2,0 1,0 21 Aug 8392a1
Bob
1b1b78
Graham
80 YES 98fbca
3,0 2,0 22 Aug 1b1b78
Graham
8392a1
Bob
10 NO d38628
3,1 2,0 22 Aug 1b1b78
Graham
1b1b78
Graham
70 NO a8239c8
35. EVIL ALICE - Spending Grahams
35
Alice Bob
When Who Amount SIG
20 Aug Graham -100 ???
20 Aug Alice +100 ???
Graham
When Who Amount
19 Aug Steve +50
19 Aug Ian +10
19 Aug Joe -90
20 Aug Graham -100
20 Aug Alice +100
When Who Amount
19 Aug Steve +50
19 Aug Ian +10
19 Aug Joe -90
When Who Amount
19 Aug Steve +50
19 Aug Ian +10
19 Aug Joe -90
Invalid Sig, Reject
When Who Amount SIG
20 Aug Graham -100 ???
20 Aug Alice +100 ???
Invalid Sig, Reject
X
X
37. But, it’s not all shiny
• Bitcoin is “eventually consistent” (~10 mins)
• Non-rescindable, once it’s gone, it’s gone!
• Loss of private keys = loss of all money, can’t print any more
• ~1% loss of bitcoin per year
• Change rollouts are hard
37
39. So what are people doing with bitcoin?
39
R3 Blockchain
Consortium
Purse.io spending power XAPO Debit Card
Gift cards
Smart Contracts
Blockchain in the Linux Kernel
Immutable record keeping
Diamond tracking and verification of source
Bitcoin Savings