Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Trick or Treat?
Bitcoin for Non-Believers,
Cryptocurrencies for
Cypherpunks
David Evans
University of Virginia
www.cs.virg...
Plan
Tutorial Introduction to Bitcoin
Hype vs. Reality in Bitcoin Today
Scaling Bitcoin
Ombuds (Nick Skelsey)
1
What is money?
2
3
Aristotle’s Politics 350 BCE
Fiat Currency
4
5
With a strong enough army,
anything can be a fiat currency
Centralized Digital Currency
6
Trusted Bank
Account No. Owner’s Identify Value
3022493 Alice 2033.23
3022494 Bob 85733.03
...
7
Communications of the ACM
October 1985
8
Communications of the ACM
October 1985
First Wave Cryptocurrency
9
David Chaum
First Wave Cryptocurrency
10
David Chaum
Bankrupt, 1998
Decentralized Currency
Currency without trust
11
Double Spending Challenge
12
M = transfer X to Bob SignKRA
[H(M)]
Bob wants to verify:
1. Alice owns X
2. Alice hasn’t tra...
Double Spending Challenge
13
M = transfer X to Bob SignKRA
[H(M)]
Bob wants to verify:
1. Alice owns X
2. Alice hasn’t tra...
14
M = transfer X to Bob SignKRA
[H(M)]
Bob wants to verify:
1. Alice owns X
2. Alice hasn’t transferred X
3. The coin wil...
15
M = transfer X to Bob SignKRA
[H(M)]
Bob wants to verify:
1. Alice owns X
2. Alice hasn’t transferred X
3. The coin wil...
16
M = transfer X to Bob SignKRA
[H(M)]
Bob wants to verify:
1. Alice owns X
2. Alice hasn’t transferred X
3. The coin wil...
Satoshi’s
Solution
17
Blockchain
18
B0
H(B0) Nonce
Transactions
H(B1) Nonce
Transactions
H(B2) Nonce
Transactions
Distributed ledger maintained ...
19
Bitcoin
Transaction
Input 1: v1, a1
Input 2: v2, a2
…
Output 1: x1, d1
Output 2: x2, d2
…
transaction fees = sum(input ...
Bitcoin Script
20
OP_DATA <public key>
OP_CHECKSIG
LockingScript
OP_DATA <signature>
UnlockingScript
Transaction
a0b6ea….....
Bitcoin Script
21
OP_DUP
OP_HASH160
OP_DATA <bitcoin address>
OP_EQUALVERIFY
OP_CHECKSIG
LockingScript
OP_DATA <signature>...
OP_RETURN (until July 2010)
22
https://github.com/bitcoin/bitcoin/blob/v0.1.5/script.cpp#L170
Universal Unlocking Script!
...
23
Example Transaction
Fees are optional…
24
25
Exhibit B
26
Bitcoin
Transaction
Input 1: v1, a1
Input 2: v2, a2
…
Output 1: x1, d1
Output 2: x2, d2
…
transaction fees = sum(input ...
27
Coinbase
Transaction
Output 1: x1, d1
Output 2: x2, d2
…
sum(output values) ≤ sum(transaction fees) + mining reward
min...
28
Bitcoin’s Proof-of-Work
29
B0
H(B0) Nonce
Transactions
H(B1) Nonce
Transactions
H(B2) Nonce
Transactions
Find a nonce x su...
30
difficulty = 62,253,982,450
expected hashes = 2.67 * 1020 ~ 268
“number of grains of sand on earth”
Actual Bitcoin Block
31
https://en.bitcoin.it/wiki/Protocol_documentation#Block_Headers
Mining
32
(General-Purpose)
Computers are Useless
33
34
XOR two 32-bit values in CPU XOR two 32-bit values in ASIC
4 transistors XOR design
35
https://en.bitcoin.it/wiki/Mining_hardware_comparison
36
37
38
Fire at mining facility in Thailand, 14 Oct 2014
Photo credit: www.thairath.co.th
39
40
41
Entire bitcoin network: 1/10th Lake Anna Power Station
42
Bitcoin
Hype!
43
William
Mougayar,
The Global
Landscape of
Blockchain
Companies in
Financial Services
44
Google Trends
Renminbi
Bitcoin
Dec 2013
45
Bitcoin “Hype”
Bitcoin
Market
Price (US$)
Reality Check
46
Bitcoin “Market Capitalization” = Number of Bitcoins ✕ Market Price
= 14,777,800 ✕ $314 = $4.64B
What does a $4.64B Market Cap
company look like?
47
48
NASDAQ: WOOF
Market Cap: $4.4B
Average daily trading: $35M
Bitcoin
Market Cap: $4.6B
Average daily transactions: $50M (...
Can Bitcoin Scale?
49
50
https://github.com/bitcoin/bitcoin/blob/master/src/consensus/consensus.h
51
https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp
52
https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp
Scale Today
53
Block Size = 1MB
Typical transaction size ~ 500 Bytes
Maximum of ~2000 transactions per block / 10 minutes
...
Scale Today
54
Cost to control bitcoin (assuming other miners are “rational”):
value per block-minute = $7500/10 minutes ~...
Scale Today
55
Cost to control bitcoin (assuming other miners are “rational”):
value per block-minute = $7500/10 minutes ~...
Scale Today
56
Cost to control bitcoin (assuming other miners are “rational”):
value per block-minute = $7500/10 minutes ~...
Scale Today
57
Cost to control bitcoin (assuming other miners are “rational”):
value per block-minute = $7500/10 minutes ~...
Distributed microblogging
58
Nick Skelsey – Cofounder @ Soapbox Systems
Upcoming SlideShare
Loading in …5
×

Trick or Treat?: Bitcoin for Non-Believers, Cryptocurrencies for Cypherpunks

3,263 views

Published on

David Evans
DC Area Crypto Day
Johns Hopkins University
30 October 2015

This (non-research) talk will start with a tutorial introduction to cryptocurrencies and how bitcoin works (and doesn’t work) today. We’ll touch on some of the legal, policy, and business aspects of bitcoin and discuss some potential research opportunities in cryptocurrencies.

Published in: Internet
  • Be the first to comment

  • Be the first to like this

Trick or Treat?: Bitcoin for Non-Believers, Cryptocurrencies for Cypherpunks

  1. 1. Trick or Treat? Bitcoin for Non-Believers, Cryptocurrencies for Cypherpunks David Evans University of Virginia www.cs.virginia.edu/evans bitcoin-class.org DC Area Crypto Day All Hallows’ Eve2 Johns Hopkins University
  2. 2. Plan Tutorial Introduction to Bitcoin Hype vs. Reality in Bitcoin Today Scaling Bitcoin Ombuds (Nick Skelsey) 1
  3. 3. What is money? 2
  4. 4. 3 Aristotle’s Politics 350 BCE
  5. 5. Fiat Currency 4
  6. 6. 5 With a strong enough army, anything can be a fiat currency
  7. 7. Centralized Digital Currency 6 Trusted Bank Account No. Owner’s Identify Value 3022493 Alice 2033.23 3022494 Bob 85733.03 3022495 Colleen 24331.77 3022496 Dave 0.01
  8. 8. 7 Communications of the ACM October 1985
  9. 9. 8 Communications of the ACM October 1985
  10. 10. First Wave Cryptocurrency 9 David Chaum
  11. 11. First Wave Cryptocurrency 10 David Chaum Bankrupt, 1998
  12. 12. Decentralized Currency Currency without trust 11
  13. 13. Double Spending Challenge 12 M = transfer X to Bob SignKRA [H(M)] Bob wants to verify: 1. Alice owns X 2. Alice hasn’t transferred X 3. The coin will be valuable for Bob
  14. 14. Double Spending Challenge 13 M = transfer X to Bob SignKRA [H(M)] Bob wants to verify: 1. Alice owns X 2. Alice hasn’t transferred X 3. The coin will be valuable for Bob Node CNode A Node B txb txb
  15. 15. 14 M = transfer X to Bob SignKRA [H(M)] Bob wants to verify: 1. Alice owns X 2. Alice hasn’t transferred X 3. The coin will be valuable for Bob Node CNode A Node B txb txb M = transfer X to Coleen SignKRA [H(M)] txc
  16. 16. 15 M = transfer X to Bob SignKRA [H(M)] Bob wants to verify: 1. Alice owns X 2. Alice hasn’t transferred X 3. The coin will be valuable for Bob Node CNode A Node B txb txb M = transfer X to Coleen SignKRA [H(M)] txc
  17. 17. 16 M = transfer X to Bob SignKRA [H(M)] Bob wants to verify: 1. Alice owns X 2. Alice hasn’t transferred X 3. The coin will be valuable for Bob Node CNode A Node B txb txb M = transfer X to Coleen SignKRA [H(M)] txc Node E Node D
  18. 18. Satoshi’s Solution 17
  19. 19. Blockchain 18 B0 H(B0) Nonce Transactions H(B1) Nonce Transactions H(B2) Nonce Transactions Distributed ledger maintained by network of untrusted nodes Blocks added require proof-of-work Node’s agree to consensus: longest (most difficult) chain Incentives designed to encourage network nodes to: Validate and record transactions Spend effort on extending consensus chain
  20. 20. 19 Bitcoin Transaction Input 1: v1, a1 Input 2: v2, a2 … Output 1: x1, d1 Output 2: x2, d2 … transaction fees = sum(input values) – sum(output values) (must be non-negative for valid transaction)
  21. 21. Bitcoin Script 20 OP_DATA <public key> OP_CHECKSIG LockingScript OP_DATA <signature> UnlockingScript Transaction a0b6ea….. Input 1: v1, a1 Output 1: x1, d1 Output 2: x2, d2 … Transaction d8730d… Locking Script Unlocking Script IfBitcoinAddresswerejustpublickey
  22. 22. Bitcoin Script 21 OP_DUP OP_HASH160 OP_DATA <bitcoin address> OP_EQUALVERIFY OP_CHECKSIG LockingScript OP_DATA <signature> OP_DATA <public key> UnlockingScript Transaction a0b6ea….. Input 1: v1, a1 Output 1: x1, d1 Output 2: x2, d2 … Transaction d8730d… Locking Script Unlocking Script BitcoinAddress=H(publickey)
  23. 23. OP_RETURN (until July 2010) 22 https://github.com/bitcoin/bitcoin/blob/v0.1.5/script.cpp#L170 Universal Unlocking Script! OP_DATA 1 OP_RETURN
  24. 24. 23 Example Transaction Fees are optional…
  25. 25. 24
  26. 26. 25 Exhibit B
  27. 27. 26 Bitcoin Transaction Input 1: v1, a1 Input 2: v2, a2 … Output 1: x1, d1 Output 2: x2, d2 … transaction fees = sum(input values) – sum(output values) (must be non-negative for valid transaction) How is new bitcoin created?
  28. 28. 27 Coinbase Transaction Output 1: x1, d1 Output 2: x2, d2 … sum(output values) ≤ sum(transaction fees) + mining reward mining reward = 50 BTC 2floor(block number / 210,000)
  29. 29. 28
  30. 30. Bitcoin’s Proof-of-Work 29 B0 H(B0) Nonce Transactions H(B1) Nonce Transactions H(B2) Nonce Transactions Find a nonce x such that: SHA-256(SHA-256(r || x)) < T/d r = header includes H(previous block) root of Merkle tree of transactions
  31. 31. 30 difficulty = 62,253,982,450 expected hashes = 2.67 * 1020 ~ 268 “number of grains of sand on earth”
  32. 32. Actual Bitcoin Block 31 https://en.bitcoin.it/wiki/Protocol_documentation#Block_Headers
  33. 33. Mining 32
  34. 34. (General-Purpose) Computers are Useless 33
  35. 35. 34 XOR two 32-bit values in CPU XOR two 32-bit values in ASIC 4 transistors XOR design
  36. 36. 35 https://en.bitcoin.it/wiki/Mining_hardware_comparison
  37. 37. 36
  38. 38. 37
  39. 39. 38 Fire at mining facility in Thailand, 14 Oct 2014 Photo credit: www.thairath.co.th
  40. 40. 39
  41. 41. 40
  42. 42. 41 Entire bitcoin network: 1/10th Lake Anna Power Station
  43. 43. 42 Bitcoin Hype!
  44. 44. 43 William Mougayar, The Global Landscape of Blockchain Companies in Financial Services
  45. 45. 44 Google Trends Renminbi Bitcoin Dec 2013
  46. 46. 45 Bitcoin “Hype” Bitcoin Market Price (US$)
  47. 47. Reality Check 46 Bitcoin “Market Capitalization” = Number of Bitcoins ✕ Market Price = 14,777,800 ✕ $314 = $4.64B
  48. 48. What does a $4.64B Market Cap company look like? 47
  49. 49. 48 NASDAQ: WOOF Market Cap: $4.4B Average daily trading: $35M Bitcoin Market Cap: $4.6B Average daily transactions: $50M (?) Average daily US$ exchange value: $3M
  50. 50. Can Bitcoin Scale? 49
  51. 51. 50 https://github.com/bitcoin/bitcoin/blob/master/src/consensus/consensus.h
  52. 52. 51 https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp
  53. 53. 52 https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp
  54. 54. Scale Today 53 Block Size = 1MB Typical transaction size ~ 500 Bytes Maximum of ~2000 transactions per block / 10 minutes So, about 3-4 transactions per second
  55. 55. Scale Today 54 Cost to control bitcoin (assuming other miners are “rational”): value per block-minute = $7500/10 minutes ~ $750/minute ~ $1M/day to increase to $1B/day with current transaction rate: $3472 fee per transaction (without losing transactions) or 33 Billion transactions per day (with current $0.03 fee) Block Size = 1MB Typical transaction size ~ 500 Bytes Maximum of ~2000 transactions per block / 10 minutes So, about 3-4 transactions per second $1B / day =
  56. 56. Scale Today 55 Cost to control bitcoin (assuming other miners are “rational”): value per block-minute = $7500/10 minutes ~ $750/minute ~ $1M/day to increase to $1B/day with current transaction rate: $3472 fee per transaction (without losing transactions) or 33 Billion transactions per day (with current $0.03 fee) Block Size = 1MB Typical transaction size ~ 500 Bytes Maximum of ~2000 transactions per block / 10 minutes So, about 3-4 transactions per second Transactions per Day VISA: 300M Interbank: 100M
  57. 57. Scale Today 56 Cost to control bitcoin (assuming other miners are “rational”): value per block-minute = $7500/10 minutes ~ $750/minute ~ $1M/day to increase to $1B/day with current transaction rate: $3472 fee per transaction (without losing transactions) or 33 Billion transactions per day (with current $0.03 fee) Block Size = 1MB Typical transaction size ~ 500 Bytes Maximum of ~2000 transactions per block / 10 minutes So, about 3-4 transactions per second Transactions per Day VISA: 300M Interbank: 100M Cash: 20B?
  58. 58. Scale Today 57 Cost to control bitcoin (assuming other miners are “rational”): value per block-minute = $7500/10 minutes ~ $750/minute ~ $1M/day to increase to $1B/day with current transaction rate: $3472 fee per transaction (without losing transactions) or 33 Billion transactions per day (with current $0.03 fee) Block Size = 1MB Typical transaction size ~ 500 Bytes Maximum of ~2000 transactions per block / 10 minutes So, about 3-4 transactions per second Transactions per Day VISA: 300M Interbank: 100M Cash: 20B? Facebook Likes: 4.5B SMS Messages: 25B WhatsApp Msg: 50B
  59. 59. Distributed microblogging 58 Nick Skelsey – Cofounder @ Soapbox Systems

×