Cryptocurrencies bitcoin, blockchain & beyond Roger Wattenhofer ETH Zurich – Distributed Computing Group
Cryptocurrencies
What is Bitcoin? = + +
Technology
The Bank of Bitcoin
The Bank of Bitcoin User Balance A 2 B 5 C 8
The Bank of Bitcoin TX B − → A User Balance A 2 B 5 C 8
The Bank of Bitcoin TX B − → A User Balance A 2 4 B 5 3 C 8
Opening an Account in Bitcoin Private Key Public Key Address
Transferring Bitcoins TX: 41b221
Transferring Bitcoins 0 . 1 B TX: 41b221
Transferring Bitcoins 4 . 899 0 . 1 A B TX: 41b221 4 . 798 A
Transferring Bitcoins 4 . 899 0 . 1 A B TX: 41b221 4 . 798 A
Transferring Bitcoins Outputs Inputs 4 . 899 0 . 1 A B TX: 41b221 4 . 798 A
Transferring Bitcoins Fee Outputs Inputs 0 . 001 4 . 899 0 . 1 A B TX: 41b221 4 . 798 A
Transferring Bitcoins Fee Outputs | Outputs Inputs 0 . 001 4 . 899 4 . 899 0 . 1 A B Prev. TX: 0 TX: 41b221 a1a53743 4 . 798 ... C A 1
Distributing the Bank TX User Balance A 2 B 5 C 8
Distributing the Bank
Distributing the Bank TX
Distributing the Bank TX
Distributing the Bank
Distributing the Bank
Let’s Buy a Snack [Bamert, Decker, Elsen, W, Welten, 2013]
Doublespending TX 1 Inputs 1 A
Doublespending TX 1 Inputs 1 A 1 TX’
Doublespending TX 1 Inputs 1 ✓ A 1 TX’
Transaction Conflicts
Transaction Conflicts TX TX
Transaction Conflicts TX TX
Transaction Conflicts
Resolving Conflicts
Resolving Conflicts Green!
Resolving Conflicts
How to Choose a Leader?
Proof-of-Work TX TX TX TX
Proof-of-Work Block TX TX TX TX
Proof-of-Work Block H(Previous Block) TX TX TX TX
Proof-of-Work Block H(Previous Block) TX TX TX TX I H(Block) → fd2e2055f117bfa261b5a6c7e11df367. . .
Proof-of-Work Block H(Previous Block) TX TX TX TX Nonce I H(Block | 0) → 094d66aa7c844a9dbb516a41259b5877. . .
Proof-of-Work Block H(Previous Block) TX TX TX TX Nonce I H(Block | 0) → 094d66aa7c844a9dbb516a41259b5877. . . I H(Block | 1) → f2496854af8bf989171587a9259f634f. . .
Proof-of-Work Block H(Previous Block) TX TX TX TX Nonce I H(Block | 0) → 094d66aa7c844a9dbb516a41259b5877. . . I H(Block | 1) → f2496854af8bf989171587a9259f634f. . . I H(Block | 2) → aec87c0ca2e5eb3f23111092f1089ada. . .
Proof-of-Work Block H(Previous Block) TX TX TX TX Nonce I H(Block | 0) → 094d66aa7c844a9dbb516a41259b5877. . . I H(Block | 1) → f2496854af8bf989171587a9259f634f. . . I H(Block | 2) → aec87c0ca2e5eb3f23111092f1089ada. . . I H(Block | 3) → 777f75b2a8ecfdc8026c236fc1d2 ff a0. . . . . . I H(Block | 961127) → 0000014823419622d4c133672a7d657e. . .
The Blockchain Time
The Blockchain Time
Is Bitcoin stable?
The Blockchain Time
The Blockchain Time
Propagation Speed http://bitcoinstats.com [Decker, W, 2013]
Propagation Speed http://bitcoinstats.com [Decker, W, 2013]
Blockchain Forks 1.69% [Decker, W, 2013]
Aside: Mining Evolution
Aside: Mining Evolution
Aside: Mining Evolution
500 MW
Summary Green! TX Block H(Previous Block) TX TX TX TX Nonce Time
Stories
How to Lose 500M
Addressing Transaction Malleability: MtGox has detected unusual activity on its Bitcoin wallets and performed investigations during the past weeks.
The MtGox Incident I July 2010: First trade on MtGox I May 2011: Transaction malleability identified as low priority issue I February 7, 2014: MtGox halts withdrawals I February 10, 2014: MtGox announces loss of 850,000 bitcoins (620 millio USD) and cites transaction malleability as root cause I February 28, 2014: MtGox files for bankruptcy I March 7 2014: MtGox finds 200,000 bitcoins I August 2015: MtGox CEO is arrested
Signatures 61 af bb 4d e9 f8 b8 74 86 1e
Signatures 00 00 61 af bb 4d e9 f8 b8 74 86 1e There are multiple ways to serialize a signature: I Multiple push operations (1 byte, 2 byte, 4 byte) I Non-canonical DER encodings I Padding I . . .
Transaction Malleability Attack
Transaction Malleability Attack TX TX
Transaction Malleability Attack TX TX TX
Transaction Malleability Attack
Transaction Malleability Attack Red! TX?
Transaction Malleability Attack Refund
Incident Timeline [Decker, W, 2014]
Incident Timeline 386 BTC [Decker, W, 2014]
Is Bitcoin Secure?
Securing Your Bitcoins [Bamert, Decker, W, 2013]
Does Bitcoin Scale?
The Bitcoin Ecosystem is Growing
Scalability Limits I Disk space: < 500 transactions per second
Scalability Limits I Disk space: < 500 transactions per second I Processing power: < 200 transactions per second
Scalability Limits I Disk space: < 500 transactions per second I Processing power: < 200 transactions per second I Network bandwidth: < 100 transactions per second
Scalability Limits I Disk space: < 500 transactions per second I Processing power: < 200 transactions per second I Network bandwidth: < 100 transactions per second I Artificial 1MB limit: < 3 transactions per second
Scalability Limits I Disk space: < 500 transactions per second I Processing power: < 200 transactions per second I Network bandwidth: < 100 transactions per second I Artificial 1MB limit: < 3 transactions per second Today: I Bitcoin: 1 transaction per second I Credit Cards: > 10 , 000 transactions per second
Payment Network
Payment Network
Payment Network
Micropayment Channels 5
Micropayment Channels 5 5
Micropayment Channels 5 5 T=100 5
Micropayment Channels 5 5 T=100 5
Micropayment Channels 5 5 T=100 5
Micropayment Channels 5 5 5 0 T=100 5
Micropayment Channels 5 4 5 5 0 1 T=100 5
Micropayment Channels 5 4 3 5 5 0 1 2 T=100 5
Micropayment Channels 5 4 3 5 5 0 1 2 T=100 5
Duplex Micropayment Channels T = 100 T = 100 T = 100 T = 99 T = 100 T = 100 T = 99 T = 100 T = 99 Setup Invalidation Tree Micropayment Channels
Summary Red! T = 100 T = 100 T = 100 Refund TX? T = 99 T = 100 T = 100 T = 99 T = 100 T = 99
Economy
BTC in USD
Inflation
Fungibility ? =
Improving Bitcoin? saver miner relay payer payee
Recommend
More recommend