bitcoin and zooko’s triangle: global, distributed time stamping

28
BitCoin and Zooko’s Triangle: Global, Distributed Time Stamping CS425/CSE424/ECE428 — Distributed Systems — Fall 2011 2011-12-01 Nikita Borisov - UIUC 1

Upload: faye

Post on 23-Feb-2016

42 views

Category:

Documents


0 download

DESCRIPTION

CS425/CSE424/ECE428 — Distributed Systems — Fall 2011. BitCoin and Zooko’s Triangle: Global, Distributed Time Stamping. Overview. Two problems Unforgeable electronic currency Secure, globally unique names Same underlying principle Decentralized global timestamping service. BitCoin. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

BitCoin and Zooko’s Triangle: Global, Distributed Time Stamping

CS425/CSE424/ECE428 — Distributed Systems — Fall 2011

2011-12-01 Nikita Borisov - UIUC 1

Page 2: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

Overview Two problems

Unforgeable electronic currency Secure, globally unique names

Same underlying principle Decentralized global timestamping

service

2011-12-01 Nikita Borisov - UIUC 2

Page 3: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

BitCoin Create a digital currency that is

Unforgeable Transferrable Secure Decentralized

`Traditional’ e-cash: Coin = Token + signature of bank

BitCoin: eliminate the bank!

2011-12-01 Nikita Borisov - UIUC 3

Page 4: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

Proof of work Computational puzzle

Find x such that f(x) = y f is easy to compute, hard to invert f is many-to-one s.t. f(x) = y with probability p

Find solution: Try random choices for x Expected running time – O(1/p)

Verify solution Compute f(x) Expected running time – O(1)

Example: f = cryptographic hash function H Find x such that H(x) has k leading 0’s

▪ f(x) = first k bits of H [Hk], y = 0 Difficulty: 2k

2011-12-01 Nikita Borisov - UIUC 4

Page 5: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

Scheme 1 Coin: puzzle solution Forgeable, but only with

computational effort “Value” proportional to puzzle difficulty

(2k) E.g., cost of electricity needed to “mint”

new coin Payment protocol:

Alice->Bob: coin x Bob: compute Hk(x), verify = 0 Bob->Alice: goods or services2011-12-01 Nikita Borisov - UIUC 5

Page 6: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

Double-spending Alice still has coin x after giving it to

Bob! Alice->Bob: coin x Alice->Carol: coin x Alice->David: coin x

Traditional e-cash solution: detection after the fact Bob, Carol, David deposit x into the bank Bank realizes x has been double-spent,

punishes Alice2011-12-01 Nikita Borisov - UIUC 6

Page 7: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

BitCoin solution Transaction log

For each coin x, lists who has it When coin first “minted”, claim it

Append: “Alice found x” During a transaction, log transfer

Bob verifies that Alice currently owns x Appends “Alice transfers x to Bob”

▪ (with proper signatures from Alice, Bob) Now Bob is owner of x

2011-12-01 Nikita Borisov - UIUC 7

Page 8: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

Global Transaction Ordering

LOG 1

1. Alice mints x2. Alice transfers x to

Bob3. Bob transfer x to

Carol4. Alice transfer x to

David — INVALID

Most recent owner: Carol

LOG 2

1. Alice mints x2. Alice transfers x to

David3. Alice transfers x to

Bob — INVALID4. Bob transfers x to

Carol — INVALID

Most recent owner: David

2011-12-01 Nikita Borisov - UIUC 8

Page 9: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

Solutions Centralized: single log

Maintained by trusted bank Decentralized

Run Paxos on a global scale?? Bitcoin

Proof of work, chains

2011-12-01 Nikita Borisov - UIUC 9

Page 10: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

Proof of work Can incorporate data (z) into puzzle

Find x such that H(x || z) has k 0 bits To append to log, must solve puzzle

based on existing log Format of log “line” n: Ln = M, x,

where M: new message appended to log x: number such that Hk(x || M || Ln-1) = 0

2011-12-01 Nikita Borisov - UIUC 10

Page 11: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

Chaining Each line’s puzzle depends on the

previous one Ln -> Ln-1 -> … -> L1 -> L0 To add m lines, must solve m puzzles

Longest chain wins

2011-12-01 Nikita Borisov - UIUC 11

1 2 34’

4 5

6

6’

7

Page 12: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

Chain Growth Suppose r people try to append to a log

Each person j has own message Mj Each tries to solve Hk(x || Mj || Ln-1) = 0

As soon a someone finds a solution, broadcasts† solution (Ln) to everyone

Everyone else switches to searching for Ln+1 I.e., solve Hk(x || Mj || Ln) = 0 (why?)

† we’ll return to this later

2011-12-01 Nikita Borisov - UIUC 12

Page 13: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

How fast does the chain grow? Each person expects to solve

puzzle/generate new line in time t Among the r processes, log grows at

the speed of t/r per line Why?

As more people participate r grows Log grows faster More difficult to revise history!

2011-12-01 Nikita Borisov - UIUC 13

Page 14: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

Incentives for Logging Security better if more people participated

in logging Incentivize users to log others’ transactions

Transaction fees: pay me x% to log your data Mining: each log line creates bitcoins

▪ Replace “Alice minted x” entries with “Alice logged line Ln”

Payment protocol: Alice->Bob: here’s coin x Broadcast to everyone: Alice transfers x to Bob Bob: wait until transfer appears in a new log line

▪ Optionally wait until a few more lines follow it2011-12-01 Nikita Borisov - UIUC 14

Page 15: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

Putting it all together

2011-12-01 Nikita Borisov - UIUC 15

Alice generated 50 BTC

Nonce: 1234

Bob generated50 BTC

Nonce: 5678

Carol generated50 BTC

Alice transferred 10 BTC to Bob + 1 BTC to Carol

(fee)

Nonce: 9932

Account BalanceAlice 39 BTCBob 60 BTCCarol 51 BTC

Hash HashHash

Page 16: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

Logging Speed How to set k?

Too short: wasted effort due to broadcast delays & chain splits

Too long: slows down transactions Periodically adjust difficulty k such that one line

gets added every 10 minutes Determined algorithmically based on timestamps of

previous log entries Current difficulty

p = 0.0000000000000002134626788616875506243708571219031000509

4684659657288133 expected hash computations to win (4.7 quadrillion!)

2011-12-01 Nikita Borisov - UIUC 16

Page 17: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

Broadcast All-to-all broadcast

Every transaction (for logging) Every block (for chain growth)

How do you implement this? DHT (e.g., Chord) Gossip

2011-12-01 Nikita Borisov - UIUC 17

Page 18: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

Bandwidth Data volume

VISA network: 2000 tps Transaction: 0.5 – 1KB A single block (10 mins): 1.14 GB Total volume ~160 GB / day

▪ Or twice that if you include transaction broadcasts Bandwidth per node?

On average, each node downloads / uploads each block once

~160 GB/day = 15 Mbps (only ~$50/month at EC2 prices!) Storage & CPU costs dominate

2011-12-01 Nikita Borisov - UIUC 18

Page 19: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

BitCoin Issues “Mining” not profitable

Unless you have some expensive, special-purpose rigs

“the bulk of mining is now concentrated in a handful of huge mining pools, which theoretically could hijack the entire network if they worked in concert.”

Coins must be kept safe From loss From theft

[Economics]2011-12-01 Nikita Borisov - UIUC 19

Page 20: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

Naming Problem: How to assign names to

processes? Solutions:

IP addresses DNS Web certificates …

2011-12-01 Nikita Borisov - UIUC 20

Page 21: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

Desirable Features Secure

Can “claim” a name, and prove this claim to others

Meaningful Name needs to be “Nikita Borisov” or

“Amazon,” not “1Na7VPBzpwP5QNJk3zG9jMYXvaSzzGS3mn”

Sometimes called “memorable” Decentralized

Context-free: “Amazon” means the same to you as to me

2011-12-01 Nikita Borisov - UIUC 21

Page 22: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

Zooko’s Triangle Conjecture: cannot have all three

But can have any two! E.g.:

Secure & decentralized: public keys▪ 1Na7VPBzpwP5QNJk3zG9jMYXvaSzzGS3mn

uniquely, globally identifies someone, who can prove the right to have that name

Meaningful & decentralized: domain names▪ Not secure

Secure & meaningful: nicknames / petnames▪ Local mapping of names to identities▪ Can be translated to secure & decentralized names

2011-12-01 Nikita Borisov - UIUC 22

Page 23: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

Zooko’s Tetrahedron? Two definitions of decentralized

Globally meaningful No central authority

Turns out you can have one of the two E.g., X.509 certificates used for Web

Browsing E.g., DNSSEC

2011-12-01 Nikita Borisov - UIUC 23

Page 24: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

Distributed Timestamping Service Can solve triangle with distributed

global timestamping I “claim” a name by saying “Nikita

Borisov” belongs to public key 1Na7VPBzpwP5QNJk3zG9jMYXvaSzzGS3mn

First claim wins Sound familiar?

2011-12-01 Nikita Borisov - UIUC 24

Page 25: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

BitCoin names Mine names instead of coins! New block includes any names you

want to register Your own + any others you care about

Name ownership verified by the longest chain Can implement transfers, too

[originally proposed by Aaron Swartz]

2011-12-01 Nikita Borisov - UIUC 25

Page 26: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

Back to reality… WWW: use public key certificates

Issued by certificate authorities Ensure uniqueness, trademarks, etc.

Use multiple authorities 100+ in existence! Good: encourages competition, lowers prices Bad: Any single authority can compromise

security E.g.: “comodogate”

Comodo compromised issued new certificates for “mail.google.com”, “login.skype.com”, etc.

Other compromises have happened2011-12-01 Nikita Borisov - UIUC 26

Page 27: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

Fixing Web Security Solution: add a new global decentralized

distributed log All new certificates added to log Can be monitored by domain owners

Log servers run an agreement algorithm E.g., Paxos or BFT Cryptographic evidence of correct behavior Must compromise all log servers

Proposals Sovereign Keys (EFF) Certificate Transparency (Google)

2011-12-01 Nikita Borisov - UIUC 27

Page 28: BitCoin  and  Zooko’s  Triangle: Global, Distributed Time Stamping

Summary Global, distributed consensus useful

for many applications Electronic cash Naming

Global, decentralized consensus may be possible With some assumptions on computation,

communication, … Centralized distributed consensus

may be a good alternative2011-12-01 Nikita Borisov - UIUC 28