What Should We Learn From Nakamoto's...

Post on 06-Jun-2020

0 views 0 download

Transcript of What Should We Learn From Nakamoto's...

ETH Zurich – Distributed Computing Group

Roger Wattenhofer

What Should We Learn From Nakamoto's Blockchain?

Not Me!

Blockchain: The Biggest Story in Distributed Systems Since …

… the Internet?!?

Cryptocurrencies

Blockchain

So What Is a Blockchain?

Distributed Systems & Cryptography(1982) (1976)

Blockchain

Blockchain

Transaction

4

1

5

Why the Hype?

Let’s Dig Deeper!

Persistence

NIL

Provable

NIL

Byzantine

Fault-Tolerance

Blockchain

Immutable Crash

Eventual

Strong

Speed

Blockchain

10 tx/s

10m tx/s

Throughput

Immediate

10k tx/s

10 nodes

100 nodes

Scalability

Blockchain

1000 nodes

Energy Consumption

Hashrate � Energy/Hash ≈ 1.3 GW13 � 109 GH/s 0.1 J/GH

Proof of Work

Market / Energy Value ≈ 19 GW$20k/BTC12.5 BTC $0.08/kWh

6/h

Economic Incentives

Upper Bound 19 GW

Reality? Well…

Lower Bound 1,3 GW

Maybe Around 5 GW

10 nodes

100 nodes

Scalability

Blockchain

Country

Server Room

Energy

1000 nodes

Village

What About Privacy?

It’s Complicated.

Operator

Open PoW

Privacy

World

The Seven Blockchain Dimensions

Persistence

Spee

d

Privacy

The Seven Blockchain Dimensions

Persistence

Spee

d

Privacy

Plenty of Research Dimensions

piChain

piChain: When a Blockchain Meets Paxos

= +

piChain: When a Blockchain Meets Paxos

= + +

Transaction

Block

depth

parent

mediumquick

slow

quick slowmedium

time

wait wait

New Transaction: Reaction Time

quick medium slow

seen : either deeper or by

State Transitions

Self-Healing

healthy

Self-Healing

committed

time

ack

Truncated Paxos

*and next propose

Normal Paxos

A Typical Example

similar essentially same goalssimple e.g., no explicit leader election

silent no msg when no tx, no heartbeatscalable O(1) msgs per node per tx

piChain vs. Raft

Persistence

NIL

Provable

NIL

Byzantine

Fault-Tolerance

Blockchain

Immutable Crash

Eventual

Strong

Speed

Blockchain

10 tx/s

10m tx/s

Throughput

Immediate

10k tx/s

10 nodes

100 nodes

Scalability

Blockchain

Country

Server Room

Energy

1000 nodes

Village

Fundamental Problem Every Node Sees Every Transaction

Payment Networks

Payment Network

Hashed Timelocked Contract (HTLC)

HTLC Example ( sells to )

1. Generate randomsecret r

2. Send hash(r) to

3. “Send money if r is known

at time 4”

4. “Send money if r is known

at time 3”

5. “Send money if r is known

at time 2”

6. “Send money if r is known

at time 1”7. Use

secret rto access

good

Single Hop in Network

Duplex Micropayment Channels(Example for Smart Contract)

5

5

10

Duplex Micropayment Channel

5

5

10

T=100

5

5

Duplex Micropayment Channel

5

5

10

5

5

Blockchain

T=100

Duplex Micropayment Channel

5

5

10

5

5

Blockchain

T=100

Duplex Micropayment Channel

5

5

10

5

5

Blockchain

T=99

6

4

T=100

Duplex Micropayment Channel

[Decker,W,2015]

5

5

10

5

5

Blockchain

T=99

6

4

T=100

Duplex Micropayment Channel

Channel must be renewed often?

10

5

5

ΔT=99

6

4

ΔT=100

5

5

Blockchain

Duplex Micropayment Channel

Relative timelocks to keep channel alive forever!

But only 99 transactions?

ΔT=20

ΔT=19

ΔT=20

ΔT=19

ΔT=20

ΔT=19

ΔT=20

ΔT=19

ΔT=19

ΔT=20

ΔT=20

ΔT=19

ΔT=20

ΔT=19

Duplex Micropayment Channel

[Decker,W,2015]

5

5

10

5

5

Blockchain

T=99

4

5

T=100

HTLC Revisited

1can be spent

by blue with secret r orby green after 3 days

4. “Send money if r is known

at time 3”

5

5

10

5

5

Blockchain

T=99

4

5

T=100

HTLC Revisited

1

4

6

T=98

can be spentby blue with secret r orby green after 3 days

4. Send money if r is known at time 3

Solved?

Still Too Many Channels!?

… needs two transactions on blockchain

… has locked-in funds by both parties

Each and Every Channel

… needs two transactions on blockchain

200-800M channels only

… has locked-in funds by both parties

all my bitcoins are locked-in… sad.

Each and Every Channel

Blockchain Space

so far 4 signatures for every channel

Blockchain Space ~ Number of Signatures

SettlementFunding

Locked Funds

?

?

A node wants to make connections…

Where does it lock the funds?

?

?

5

5

5

5

T=99

6

4

T=100

5

5

5

T=100

T=99

...

...

...

...

...

...

...

...

...

Channel funding layer Payment network layer

Multi Layer Networks

[Bur

cher

t, De

cker

, W 2

017]

5

5

5

5

5

ΔT=100

ΔT=99

...

...

...

...

...

...

...

...

...

Multi Layer Networks

...

[Bur

cher

t, De

cker

, W 2

017]

5

5

5

5

5

...

...

...

...

...

...

...

...

...

Multi Layer Networks

...

5

5

5

5

5

SettlementTransaction

ΔT=100

ΔT=99

[Bur

cher

t, De

cker

, W 2

017]

5

5

5

5

5

...

...

...

...

...

...

...

...

...

Multi Layer Networks

...

5

5

5

5

5

SettlementTransaction Actual channels never reach the

blockchain!

ΔT=100

ΔT=99

[Bur

cher

t, De

cker

, W 2

017]

5

5

5

5

5

5

5

5

5

5

2 signatures per user

independent of channels

4 signatures per channel

Blockchain Transactions

old

new

Are We Finally Done?!?

Yes, unless you have Bitcoin Cash…

Persistence

NIL

Provable

NIL

Byzantine

Fault-Tolerance

Blockchain

Immutable Crash

Eventual

Strong

Speed

Blockchain

10 tx/s

10m tx/s

Throughput

Immediate

10k tx/s

10 nodes

100 nodes

Scalability

Blockchain

Country

Server Room

Energy

1000 nodes

Village

Summary

Thank You!Questions & Comments?

www.disco.ethz.ch

Thanks to my co-authorsConrad BurchertChristian Decker