protecting bitcoin against routing attacks...protecting bitcoin against routing attacks sabre an...

110
Maria Apostolaki ETH Zürich Joint work with Gian Marti, Jan Müller and Laurent Vanbever Protecting Bitcoin against Routing Attacks SABRE

Upload: others

Post on 27-Sep-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Maria Apostolaki

ETH Zürich

Joint work with Gian Marti, Jan Müller and Laurent Vanbever

Protecting Bitcoin against Routing Attacks SABRE

Page 2: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

An adversary splits the Bitcoin network in two disjoint components

Partition Attack

Page 3: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Partition attack is general, dangerous, effective, practical

Page 4: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Partition attack is general, dangerous, effective, practical

Any Blockchain system is vulnerable

Page 5: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Partition attack is general, dangerous, effective, practical

Any Blockchain system is vulnerable

Double-spending, Revenue Loss, DoS

Page 6: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Partition attack is general, dangerous, effective, practical

50-50 partition is feasible

Any Blockchain system is vulnerable

Double-spending, Revenue Loss, DoS

Page 7: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Any network in the world is a possible attacker

Partition attack is general, dangerous, effective, practical

50-50 partition is feasible

Any Blockchain system is vulnerable

Double-spending, Revenue Loss, DoS

Page 8: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Any network in the world is a possible attacker

In 2017 we uncovered the practicality and effectiveness of routing attacks in Bitcoin

Double-spending, Revenue Loss, DoS

Any Blockchain system is vulnerable

50-50 partition is feasible

Page 9: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Bitcoin is a distributed network of nodes (Bitcoin clients)

j

k

l

m

n

o

p

q

Page 10: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Bitcoin clients establish random connections

j

k

l

m

n

o

p

q

Page 11: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Bitcoin clients exchange Blocks

j

k

l

m

n

o

p

q

block

Page 12: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Blocks contain the latest transactions

j

k

l

m

n

o

p

q

block

block

block

Page 13: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

block

block

j

k

l

m

n

o

p

q

block

block

block

Bitcoin clients exchange Blocks

Page 14: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

block

block

j

k

l

m

n

o

p

q

block

block

block

block

block

block

until all clients have the same view of the transactionsBitcoin clients exchange Blocks

Page 15: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

What can go wrong?

Page 16: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Bitcoin connections are routed over the Internet

Internet

j

k

l

m

n

o

p

q

Page 17: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

G

F

E

C

HB

ID

The Internet is composed of Autonomous Systems

j

k

l

m

n

o

p

q

AA

B

D

Page 18: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

G

F

E

C

HB

ID

BGP is the default Internet routing protocol

j

k

l

m

n

o

p

q

AA

B

D

Page 19: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

G

F

E

C

HB

ID

Each Bitcoin client n has an IP

j

k

l

m

n

o

p

q

AA

B

D

82.0.0.3

Page 20: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

G

F

E

C

HB

ID

AS H creates a BGP advertisement for n’s IP prefix

j

k

l

m

n

o

p

q

AA

B

D

82.0.0.3

82.0.0.0/23

Path:

Page 21: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

G

F

E

C

HB

ID

BGP propagates advertisements in the Internet

j

k

l

m

n

o

p

q

AA

B

D

82.0.0.0/23

Path: H

82.0.0.0/23

Path: H

82.0.0.0/23

Path: H

82.0.0.3

Page 22: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

82.0.0.3

G

F

E

C

HB

ID

j

k

l

m

n

o

p

q

AA

B

D

82.0.0.0/23

Path: B H Path: G H

82.0.0.0/23

Path: I H

82.0.0.0/23

Path: E H

82.0.0.0/23

82.0.0.0/23

BGP propagates advertisements in the Internet

Page 23: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

82.0.0.3

G

F

E

C

HB

ID

j

k

l

m

n

o

p

q

AA

B

D 82.0.0.0/23

Path: I H

82.0.0.0/23

Path: H

82.0.0.0/23

Path: H

AS I can directly reach AS H

Page 24: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

G

F

E

C

HB

ID

j

k

l

m

n

o

p

q

AA

B

D 82.0.0.0/23

Path: I H

82.0.0.0/23

Path: H

82.0.0.0/23

Path: H

BGP does not check the legitimacy of advertisements

Page 25: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

G

F

E

C

HB

ID

j

k

l

m

n

o

p

q

AA

B

D

82.0.0.0/23

Path: H

82.0.0.0/24

Path: H G

Attacker creates a fake BGP advertisement

Page 26: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

G

F

E

C

HB

ID

j

k

l

m

n

o

p

q

AA

B

D

82.0.0.0/23

Path: H

82.0.0.0/24

Attacker attracts traffic destined to AS H using BGP hijacking

Path: H G

Page 27: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

A

F

E

C

HB

I

D

j

k

l

m

n

o

p

q

Attacker attracts connections with BGP hijacking

Page 28: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

A

F

E

C

HB

I

D

j

k

l

m

n

o

p

q

Attacker drops connections crossing the partition

Page 29: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

A

F

E

C

HB

I

D

j

k

l

m

n

o

p

q

A new block in the grey zone cannot be propagated further

block

Page 30: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

A

F

E

C

HB

I

D

j

k

l

m

n

o

p

q

A new block in the grey zone cannot be propagated further

block

Page 31: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

A

F

E

C

HB

I

D

j

k

l

m

n

o

p

q

A new block in the grey zone cannot be propagated further

block

Page 32: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

SABRE:Additional overlay network that is engineered to allow clients to exchange blocks, even if the Bitcoin network is partitioned

Page 33: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

SABRE:Additional overlay network that is engineered to allow clients to exchange blocks, even if the Bitcoin network is partitioned

… without the need to deploy secure routing protocols

Page 34: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

G

F

E

C

HB

ID

j

k

l

m

n

o

p

q

AA

B

D

SABRE does not affect any of the regular Bitcoin clients

Page 35: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

GA

F

E

C

HB

I

D

SABRE is an overlay network of special Bitcoin clients

j

k

l

m

n

o

p

q

Page 36: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

GA

F

E

C

HB

I

D

SABRE nodes are connected to each other

j

k

l

m

n

o

p

q

Page 37: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

GA

F

E

C

HB

I

D

Each Bitcoin client connects to at least one SABRE node

j

k

l

m

n

o

p

q

Page 38: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

A

F

E

C

HB

I

D

SABRE protects the Bitcoin network from partition attacks

j

k

l

m

n

o

p

q

Page 39: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

A

F

E

C

HB

I

D

Block is propagated via the SABRE network

j

k

l

m

n

o

p

q

block

Page 40: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

The attacker might try to fight back by attacking SABRE itself

�40

Page 41: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

The attacker might try to fight back by attacking SABRE itself

Attacker knows SABRE’s locations and code

BGP hijacks against SABRE nodes

malicious requests to take down SABRE nodes

Page 42: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

SABRE is an additional overlay network which allows communication, even if the Bitcoin network is partitioned

Page 43: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

SABRE is an additional overlay network which allows communication, even if the Bitcoin network is partitioned

secure relay-to-relay connections

SABRE needs to…

Page 44: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

SABRE is an additional overlay network which allows communication, even if the Bitcoin network is partitioned

remain reachable by Bitcoin clients

secure relay-to-relay connections

SABRE needs to…

�44

Page 45: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

remain reachable by Bitcoin clients

relay blocks under any load

secure relay-to-relay connections

SABRE needs to…

SABRE is an additional overlay network which allows communication, even if the Bitcoin network is partitioned

Page 46: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

NetworkDesign

SABRE is an additional overlay network which allows communication, even if the Bitcoin network is partitioned

remain reachable by Bitcoin clients

relay blocks under any load

secure relay-to-relay connections

SABRE needs to…

Page 47: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

NetworkDesign

SABRE is an additional overlay network which allows communication, even if the Bitcoin network is partitioned

remain reachable by Bitcoin clients

relay blocks under any load

secure relay-to-relay connections

SABRE needs to…

NodeDesign

Page 48: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Protecting Bitcoin against Routing Attacks SABRE

SABRE locationinherently safe locations

SABRE design software/hardware

Deployabilitydeployment opportunities

Page 49: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Protecting Bitcoin against Routing Attacks SABRE

SABRE locationinherently safe locations

SABRE design software/hardware

Deployabilitydeployment opportunities

Page 50: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

SABRE is an additional overlay network which allows communication, even if the Bitcoin network is partitioned

remain reachable by Bitcoin clients

relay blocks

secure relay-to-relay connections

SABRE needs to…

NodeDesign

Page 51: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

SABRE is an additional overlay network which allows communication, even if the Bitcoin network is partitioned

remain reachable by Bitcoin clients

relay blocks under any load

secure relay-to-relay connections

SABRE needs to…

NodeDesign

Page 52: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

SABRE selects nodes that satisfy three properties

each node is hosted in /24 IP prefixes

nodes are connected via financially & distance-wise optimal paths

relay graph is k-connected

Page 53: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

longer prefix hijacksare not possible

each node is hosted in /24 IP prefixes

nodes are connected via financially & distance-wise optimal paths

relay graph is k-connected

SABRE selects nodes that satisfy three properties

Page 54: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Relays A and relay B are hosted in ASes with customer-provider relationship

BA

relay A relay B

$$$

Page 55: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

AS A receives a BGP advertisement from AS B for the prefix of relay B

BA

82.0.0.0/23

Path: Brelay A relay B

$$$

Page 56: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Relay A sends to relay B via a direct expensive link

BA

82.0.0.0/23

Path: Brelay A relay B

$$$

Page 57: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

BGP is a policy-based protocol,with cost playing an important role

BA

82.0.0.0/23

Path: Brelay A relay B

$$$

Page 58: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

AS A has a malicious or compromised neighbor ASwith a least expensive link

C

82.0.0.0/23

Path: B

$$

BA

relay A relay B

$$$

Page 59: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

$$

Attacker advertises AS B’s prefix to AS A

82.0.0.0/23

C

82.0.0.0/23

Path: B

Path: B C

BA

relay A relay B

$$$

Page 60: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

$$

AS A prefers the path via the attacker, because it is less expensive

C

82.0.0.0/23

Path: B

BA

relay A relay B

$$$

82.0.0.0/23

Path: B C

Page 61: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

$$

The attacker can disconnect the relays

C

82.0.0.0/23

Path: B

BA

relay A relay B

$$$

82.0.0.0/23

Path: B C

Page 62: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

no strictly more preferred path exists

each node is hosted in /24 IP prefixes

nodes are connected via financially & distance-wise optimal paths

relay graph is k-connected

SABRE selects nodes that satisfy three properties

Page 63: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Relays A, B are hosted in ASes with a more cost effective agreement

relay A relay B

$

Page 64: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Attacker’s advertisement is less preferred,thus attacker cannot discontent the relays

82.0.0.0/23

Path: B

82.0.0.0/23

Path: B C

C

BA

relay A relay B

$$

$$

Page 65: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Aggreements can be revoked, link can be cut …

C

82.0.0.0/23

Path: B C

BA

relay A relay B

$$

Page 66: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Relay A will inevitably send traffic via ASC

C

Peering agreement can be revoked, link can be cut …

BA

relay A relay B

82.0.0.0/23

Path: B C

Page 67: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

each node is hosted in /24 IP prefixes

nodes are connected via financially & distance-wise optimal paths

relay graph is k-connected relay connectivity is notdisrupted by any k-1 cuts

SABRE selects nodes that satisfy three properties

Page 68: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

2-k connected graph retains connectivityeven if one peering link is cut

C

BA

relay A relay B

$$

$

$$

relay C

Page 69: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

If the link between relays A and B is cut

C

BA

relay A relay Brelay B

$$

$ $

relay C

Page 70: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Relays A, B can still exchange blocks via the relay C

C

BA

relay A relay Brelay B

$$

$ $

relay C

If the link between relays A and B is cut

block

Page 71: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Relays A, B can still exchange blocks via the relay C

C

BA

relay A relay Brelay B

$$

$ $

relay C

If the link between relays A and B is cut

block

Page 72: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Relays A, B can still exchange blocks via the relay C

C

BA

relay A relay Brelay B

$$

$ $

relay C

If the link between relays A and B is cut

block

Page 73: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

SABRE is an additional overlay network which allows communication, even if the Bitcoin network is partitioned

remain reachable by Bitcoin clients

relay blocks

secure relay-to-relay connections

SABRE needs to…

NodeDesign

Page 74: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

SABRE positions nodes s.t. most clients are protected from each potential attacker

by at least one relay node

see paper for more details

Page 75: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

SABRE is an additional overlay network which allows communication, even if the Bitcoin network is partitioned

remain reachable by Bitcoin clients

relay blocks under any load

secure relay-to-relay connections

SABRE needs to…

NodeDesign

NetworkDesign

Page 76: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Node-levelattacks

We evaluate SABRE’s network design by its effectiveness against two attack types

Network-wide attacks

Node-levelattacks

Page 77: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Network-wide attacks

Node-levelattacks

We evaluate SABRE’s network design by its effectiveness against two attack types

Node-levelattacks

Node-levelattacks

Page 78: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Network-wide attacks

Effective attackAll ASes follow fake advertisement

Node-levelattacks

We evaluate SABRE’s network design by its effectiveness against two attack types

Page 79: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

We evaluate SABRE’s network design by its effectiveness against two attack types

Network-wide attacks

Node-levelattacks

What is the largest partitioneach single AS can create?

How many clients are protected against isolation?

Page 80: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

What is the largest partition each single AS can create?

current network

20 SABRE nodes single connected

>90% of the clients can be isolated by any single AS in the world

>15% of the clients can be isolated only by 2.5% of ASes in the world

6 SABRE nodes 3-k connected

>15% of the clients can be isolated by only 3% of ASes in the world

Page 81: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

What is the largest partition each single AS can create?

current network any single AS in the world can create partitions of 90% of the clients

Page 82: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

What is the largest partition each single AS can create?

current network

6 SABRE nodes 3-connected

only 3% of ASes in the world can create partitions of 15% of the clients

see paper for more results

any single AS in the world can create partitions of 90% of the clients

Page 83: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

We evaluate SABRE’s network design by its effectiveness against two attack types

What is the largest partitioneach single AS can create?

Network-wide attacks

Node-levelattacks

How many clients are protected against isolation?

Page 84: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

How many clients are protected against isolation?

current network

6 SABRE nodes single connected

at most 10% are protected from 50% of ASes

90% of Bitcoin clients are protectedfrom 92.5% of ASes

6 SABRE nodes 5-k connected

89.5% of Bitcoin clients are protectedfrom 92.5% of ASes

Page 85: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

How many clients are protected against isolation?

current network at most 10% of Bitcoin clients are protected from 50% of ASes

Page 86: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

How many clients are protected against isolation?

current network

6 SABRE nodes 5-connected

89.5% of Bitcoin clients are protected from 92.5% of ASes

see paper for more results

at most 10% of Bitcoin clients are protected from 50% of ASes

Page 87: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Protecting Bitcoin against Routing Attacks SABRE

SABRE locationinherently safe locations

SABRE design software/hardware

Deployabilitydeployment opportunities

Page 88: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

SABRE is an additional overlay network which allows communication, even if the Bitcoin network is partitioned

remain reachable by Bitcoin clients

relay blocks under any load

secure relay-to-relay connections

SABRE needs to…

Page 89: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Two ways to deploy a SABRE node

Public deploymentPrivate deployment

Page 90: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Serving few predefined clients

Two ways to deploy a SABRE node

Private deployment Public deployment

Page 91: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Private SABRE nodes need not scale

establish connection to a predefined set of IPs

SABRE nodes need to

be unreachable for unknown clients

receive and relay blocks

Page 92: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Private SABRE nodes need not scale

establish connection to a predefined set of IPs

SABRE nodes need to

current Bitcoin client implementation hosted in a VM is sufficient

receive and relay blocks

be unreachable for unknown clients

Page 93: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Private deployment

Serving few predefined clients

Public deployment

Serving all Bitcoin clients

Two ways to deploy a SABRE node

Page 94: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Public SABRE nodes need to scale

maintain thousands of connections

SABRE nodes need to

receive, verify and relay blocks fast

protect against spoofing and malicious request

Page 95: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Public SABRE nodes need to scale

SABRE nodes need to

Simple software implementation would not suffice

maintain thousands of connections

receive, verify and relay blocks fast

protect against spoofing and malicious request

Page 96: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

SABRE can leverage programmable data planes

SABRE DP

Page 97: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

SABRE DP allows relay nodes to deal with high malicious or benign load

Page 98: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

can serve few Billionsof packets per second

scales to increased load NetChain: Scale-Free Sub-RTT Coordination

NDSI 2018

is faster than any server optimization

SABRE DP allows relay nodes to deal with high malicious or benign load

Page 99: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Dynamic Black/White lists anti-spoofing mechanism &DoS protection

is faster than any server optimization

protects against malicious requests

SABRE DP allows relay nodes to deal with high malicious or benign load

Page 100: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

is faster than any server optimization

protects against malicious requests

almost all clients serveddirectly from hardwareminimum software interaction

SABRE DP allows relay nodes to deal with high malicious or benign load

Page 101: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Not all operations can be done in hardware

Page 102: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

control plane

data plane

SABRE

hardware

software #A

Bitcoin (TCP) connection

UDP connection

SABRE node has both software and hardware partsNot all operations can be done in hardware

Page 103: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Protecting Bitcoin against Routing Attacks SABRE

SABRE locationinherently safe locations

SABRE design software/hardware

Deployabilitydeployment opportunities

Page 104: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

SABRE’s deployment is practical

Page 105: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

decreased costallows private deployments

SABRE’s deployment is practical

bootstrap with a software-only SABRE

Page 106: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

each party (e.g. pool) can deploy their own SABREwithout coordination

SABRE’s deployment is practical

bootstrap with a software-only SABRE

multiple SABRE relays can co-exist

Page 107: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

clients can connect to bothrelays and regular clients

SABRE’s deployment is practical

bootstrap with a software-only SABRE

multiple SABRE relays can co-exist

community’s consensus is not required

Page 108: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

bootstrap with a software-only SABRE

e.g., FIBRE, FALCON canrelocate relays followingSABRE location algorithm

SABRE’s deployment is practical

multiple SABRE relays can co-exist

community’s consensus is not required

network design applies to other relays

Page 109: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

Protecting Bitcoin against Routing Attacks SABRE

SABRE locationinherently safe locations

SABRE design software/hardware

Deployabilitydeployment opportunities

Page 110: Protecting Bitcoin against Routing Attacks...Protecting Bitcoin against Routing Attacks SABRE An adversary splits the Bitcoin network in two disjoint components Partition Attack Partition

SABRE can protect Bitcoin from partitionsby placing few relay nodes in selected locations

SABRE can operate seamlessly under high load by serving clients directly in hardware

SABRE can be partially deployed and benefit early adopterse.g., each pool can deploy SABRE in software

Protecting Bitcoin against Routing Attacks SABRE