Upload
james-turner
View
156
Download
0
Embed Size (px)
Citation preview
Bitcoin & Blockchain 101
Who am I?
James Turner Polyglot programmer
Worked for ebay , BBC, BSkyB CTO @ magnr.com
2
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
This is NOT Bitcoin
4http://www.wired.com/2015/04/silk-road-1/
This is
5
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
Bank Alice and Bob
7
Send £100 to Bobpretty please? BOB YOU’RE RICH!
Alice Bob
When Who Amount20 Aug Alice -10021 Aug Graham +2522 Aug Steve -8023 Aug Chen -10
When Who Amount21 Aug Bob +10021 Aug Ian +2521 Aug Dave +1024 Aug Joe -99
COORDINATED EFFORTBANK A BANK B
Bank A Ledger Bank B Ledger
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-glitchhttp://news.bbc.co.uk/1/hi/business/6996136.stm
Bitcoin Alice and Bob
9
Alice Bob
When Who Amount20 Aug Alice -10021 Aug Bob +10021 Aug Ian +2521 Aug Dave +1021 Aug Graham
a+25
22 Aug Steve -80
Graham
Dave
Steve
When Who Amount20 Aug Alice -10021 Aug Bob +10021 Aug Ian +2521 Aug Dave +1021 Aug Graham
a+25
22 Aug Steve -80
W W A20 Ali-10021 B +21 Ia +21 D +21 Gr +22 St -80
W W A20 Ali-10021 B +21 Ia +21 D +21 Gr +22 St -80W W A20 Ali-10021 B +21 Ia +21 D +21 Gr +22 St -80
Bitcoin Alice and Bob Transaction
10
Alice Bob
Graham
Dave
Steve
Who AmtAlice -20Bob +20
Who AmtAlice -20Bob +20
Who AmtAlice -20Bob +20
Who AmtAlice -20Bob +20
When Who Amount20 Aug Alice -10021 Aug Bob +10021 Aug Ian +2521 Aug Dave +1021 Aug Graham
a+25
22 Aug Steve -8023 Aug Alice -2023 Aug Bob +20
When Who Amount20 Aug Alice -10021 Aug Bob +10021 Aug Ian +2521 Aug Dave +1021 Aug Graham
a+25
22 Aug Steve -80
When Who Amt23 Aug Alice -2023 Aug Bob +20
+
W W A20 Ali-10021 B +21 Ia +21 D +21 Gr +22 St -8023 Ali -2023 B +
W W A20 Ali-10021 B +21 Ia +21 D +21 Gr +22 St -8023 Ali -2023 B + W W A20 Ali-10021 B +21 Ia +21 D +21 Gr +22 St -8023 Ali -2023 B +
Bitcoin Properties
• Fault tolerance
• No centralised trust
• Auditable
11
Problems Solved…
12
Not quite…
13
EVIL ALICE - Double Spending
14
Alice Bob
When Who Amount20 Aug Alice -10020 Aug Bob +100
When Who Amount20 Aug Alice -10020 Aug Graham +100
Graham
When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -9020 Aug Alice -10020 Aug Bob +100
When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -9020 Aug Alice -10020 Aug Bob +100
When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -9020 Aug Alice -10020 Aug Graham +100
???
Changing the ledger a little (part 1)
15
When From To Amount20 Aug Alice Bob 8020 Aug Alice Alice 2021 Aug Bob Graham 8022 Aug Graham Bob 1022 Aug Graham Graham 70
Let’s assume Alice has £100
We can split a transaction into giving some moneyand receiving some change in return. Much like a cash transaction
Changing the ledger a little (part 2)
16
TX ID When From To Amount1,0 20 Aug Alice Bob 801,1 20 Aug Alice Alice 202,0 21 Aug Bob Graham 803,0 22 Aug Graham Bob 103,1 22 Aug Graham Graham 70
Let’s give each Transaction an Identity and Index
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 YES1,1 0,0 20 Aug Alice Alice 20 NO2,0 1,0 21 Aug Bob Graham 80 YES3,0 2,0 22 Aug Graham Bob 10 NO3,1 2,0 22 Aug Graham Graham 70 NO
Who Balance
Alice 20
Bob 10
Graham 70
Each transaction references a previous transaction
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
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
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.
20https://en.wikipedia.org/wiki/SHA-2
Blockchain
21
Block 1
2cf24d…8b9824
Block 2
5a936e…c5850cPrevious:Previous:
Block 3
Previous:91e924…78f0ab
5a936e…c5850c
Hashed
91e924…78f0ab
Hashed Hashed
TX 1
TX 2
TX 3 TX 4
4101e9…09809f
HEIGHT: 0 HEIGHT: 1 HEIGHT: 2
Blockchain immutability
22
Block 1 Block 2 Block 3
5a936e…c5850c 91e924…78f0ab
TX 1
TX 2
TX 3 TX 4
4101e9…09809f
Block 1 Block 2 Block 3
5a936e…c5850c
TX 1
TX 2
TX 3.1 TX 4
4101e9…09809f60da4a…a2f738
XPrevious:91e924…78f0ab
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
EVIL ALICE - Double Spending
24
Alice Bob
When Who Amount20 Aug Alice -10020 Aug Bob +100
When Who Amount20 Aug Alice -10020 Aug Graham +100
Graham
When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -9020 Aug Alice -10020 Aug Bob +100
When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -9020 Aug Alice -10020 Aug Bob +100
When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -9020 Aug Alice -10020 Aug Graham +100
When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -9020 Aug Alice -10020 Aug Bob +100
NEW BLOCK FOUND
Why bother?
• Each new block is rewarded with bitcoins
• Thus, there is a greater benefit from being a good citizen
25
26
27
EVIL ALICE - Spending Graham’s Money
28
Alice Bob
When Who Amount20 Aug Graham -10020 Aug Alice +100
Graham
When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -9020 Aug Graham -10020 Aug Alice +100
When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -9020 Aug Graham -10020 Aug Alice +100
When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -90
When Who Amount20 Aug Graham -10020 Aug Alice +100
???UM NO!
So…
How do I know that the cash you’re giving me, belongs to you?
29
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_workshttps://en.wikipedia.org/wiki/Public-key_cryptography
Public/Private Keys
31
WHO PUBLIC KEY PRIVATE KEY
Alice aabc4d 982831
Bob 8392a1 471829
Graham 1b1b78 747173
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
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
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
EVIL ALICE - Spending Grahams
35
Alice Bob
When Who Amount SIG20 Aug Graham -100 ???20 Aug Alice +100 ???
Graham
When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -9020 Aug Graham -10020 Aug Alice +100
When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -90
When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -90
Invalid Sig, Reject
When Who Amount SIG20 Aug Graham -100 ???20 Aug Alice +100 ???
Invalid Sig, Reject
X
X
36
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
Recap
• Distributed ledger of transactions
• Fault tolerant
• Immutable
• Auditable
• Secure
• Anonymised
• Rewards participation
38
So what are people doing with bitcoin?
39
R3 BlockchainConsortium
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
Questions?
40