Blockchain and secure computation Vassilis Zikas RPI Winter School - - PowerPoint PPT Presentation

blockchain and secure computation
SMART_READER_LITE
LIVE PREVIEW

Blockchain and secure computation Vassilis Zikas RPI Winter School - - PowerPoint PPT Presentation

Blockchain and secure computation Vassilis Zikas RPI Winter School on Cryptocurrency and Blockchain Technologies Shanghai Jiao Tong University 2017 Bitcoin Bitcoin What is bitcoin and how does it work? Bitcoin What is bitcoin and how


slide-1
SLIDE 1

Blockchain and secure computation

Winter School on Cryptocurrency and Blockchain Technologies Shanghai Jiao Tong University 2017

Vassilis Zikas RPI

slide-2
SLIDE 2

Bitcoin

slide-3
SLIDE 3

What is bitcoin and how does it work?

Bitcoin

slide-4
SLIDE 4

What is bitcoin and how does it work? Is it secure?

(in restricted models)

Bitcoin

slide-5
SLIDE 5

What is bitcoin and how does it work? Is it secure?

(in restricted models)

What do we get from it?

Bitcoin

slide-6
SLIDE 6

What is bitcoin and how does it work? Is it secure?

(in restricted models)

What do we get from it?

Bitcoin

slide-7
SLIDE 7

What Crypto can get from Bitcoin?

slide-8
SLIDE 8

What Crypto can get from Bitcoin?

In this talk “Bitcoin = Ledger-based cryptocurrency”

slide-9
SLIDE 9

What Crypto can get from Bitcoin?

In this talk “Bitcoin = Ledger-based cryptocurrency” A public transaction ledger Use what is on this ledger

slide-10
SLIDE 10

What Crypto can get from Bitcoin?

A bulletin board with a filter on what gets written there In this talk “Bitcoin = Ledger-based cryptocurrency” A public transaction ledger Use what is on this ledger

slide-11
SLIDE 11

What Crypto can get from Bitcoin?

A bulletin board with a filter on what gets written there In this talk “Bitcoin = Ledger-based cryptocurrency” A public transaction ledger Use what is on this ledger

slide-12
SLIDE 12

The Public Transaction Ledger

What is exactly the problem that bitcoin solves?

slide-13
SLIDE 13

The Public Transaction Ledger

The core security goal of Bitcoin is to ensure that all parties establish a common and irreversible view

  • f the sequence of transactions

What is exactly the problem that bitcoin solves?

slide-14
SLIDE 14

“Backbone” [GarayKiayiasLeonardos15, PassSeemanShelat16]

The Public Transaction Ledger

The core security goal of Bitcoin is to ensure that all parties establish a common and irreversible view

  • f the sequence of transactions

What is exactly the problem that bitcoin solves?

slide-15
SLIDE 15

“Backbone” [GarayKiayiasLeonardos15, PassSeemanShelat16]

The Public Transaction Ledger

The core security goal of Bitcoin is to ensure that all parties establish a common and irreversible view

  • f the sequence of transactions

This goal can be captured as an ideal Transaction-Ledger Functionality

What is exactly the problem that bitcoin solves?

slide-16
SLIDE 16

“Backbone” [GarayKiayiasLeonardos15, PassSeemanShelat16]

The Public Transaction Ledger

The core security goal of Bitcoin is to ensure that all parties establish a common and irreversible view

  • f the sequence of transactions

This goal can be captured as an ideal Transaction-Ledger Functionality

What is exactly the problem that bitcoin solves?

A trusted third party that gives whomever accesses it the same power as using the Bitcoin network

slide-17
SLIDE 17

“Backbone” [GarayKiayiasLeonardos15, PassSeemanShelat16]

The Public Transaction Ledger

The core security goal of Bitcoin is to ensure that all parties establish a common and irreversible view

  • f the sequence of transactions

This goal can be captured as an ideal Transaction-Ledger Functionality

What is exactly the problem that bitcoin solves?

A trusted third party that gives whomever accesses it the same power as using the Bitcoin network In this talk “Bitcoin = Ledger-based cryptocurrency”

slide-18
SLIDE 18

The Public Transaction Ledger

A resource as an ideal functionality: Example. Communication network

slide-19
SLIDE 19

The Public Transaction Ledger

A resource as an ideal functionality: Example. Communication network

slide-20
SLIDE 20

The Public Transaction Ledger

A resource as an ideal functionality: Example. Communication network

slide-21
SLIDE 21

The Public Transaction Ledger

Gnet

A resource as an ideal functionality: Example. Communication network

slide-22
SLIDE 22

The Public Transaction Ledger

Gnet

1 2 3 4

A resource as an ideal functionality: Example. Communication network

slide-23
SLIDE 23

The Public Transaction Ledger

Gnet

1 2 3 4

1→4,m

A resource as an ideal functionality: Example. Communication network

slide-24
SLIDE 24

The Public Transaction Ledger

Gnet

1 2 3 4

1→4,m

A resource as an ideal functionality: Example. Communication network

slide-25
SLIDE 25

The Public Transaction Ledger

Gnet

1 2 3 4

1→4,m m

A resource as an ideal functionality: Example. Communication network

slide-26
SLIDE 26

The Public Transaction Ledger

Gnet

Upon receiving (i→j, m) from Computer i send m to Computer j

A resource as an ideal functionality: Example. Communication network

slide-27
SLIDE 27

The Public Transaction Ledger

Gnet

A resource as an ideal functionality: The Bitcoin network

slide-28
SLIDE 28

The Public Transaction Ledger

Gnet

Upon receiving (i→j, m) from Computer i send m to Computer j

A resource as an ideal functionality: The Bitcoin network

slide-29
SLIDE 29

The Public Transaction Ledger

Gnet

???

Upon receiving (i→j, m) from Computer i send m to Computer j

A resource as an ideal functionality: The Bitcoin network

slide-30
SLIDE 30

The Public Transaction Ledger

Gnet Gledger

???

Upon receiving (i→j, m) from Computer i send m to Computer j

A resource as an ideal functionality: The Bitcoin network

slide-31
SLIDE 31

The Public Transaction Ledger [KZZ16]

State St

Gledger

slide-32
SLIDE 32

The Public Transaction Ledger [KZZ16]

GetState

“State”

State St

Gledger

slide-33
SLIDE 33

The Public Transaction Ledger [KZZ16]

GetState

“State”

State St

(Submit, x)

Gledger

slide-34
SLIDE 34

The Public Transaction Ledger [KZZ16]

GetState

“State”

State St||x

(Submit, x)

Gledger

slide-35
SLIDE 35

The Public Transaction Ledger [KZZ16]

GetState

“State”

State St||x

(Submit, x)

Gledger

  • In reality: Not a Bulletin Board
  • Inputs (transactions) are filtered
slide-36
SLIDE 36

The Public Transaction Ledger [KZZ16]

GetState

“State”

State St

(Submit, x)

Gledger

  • In reality: Not a Bulletin Board
  • Inputs (transactions) are filtered
slide-37
SLIDE 37

The Public Transaction Ledger [KZZ16]

GetState

“State”

State St

(Submit, x) Validate(.) x

Gledger

  • In reality: Not a Bulletin Board
  • Inputs (transactions) are filtered
slide-38
SLIDE 38

The Public Transaction Ledger [KZZ16]

GetState

“State”

State St

(Submit, x)

“State”

Validate(.) x

Gledger

  • In reality: Not a Bulletin Board
  • Inputs (transactions) are filtered
slide-39
SLIDE 39

The Public Transaction Ledger [KZZ16]

GetState

“State”

State St

(Submit, x)

“State”

Validate(.) x

No Yes

Gledger

  • In reality: Not a Bulletin Board
  • Inputs (transactions) are filtered
slide-40
SLIDE 40

The Public Transaction Ledger [KZZ16]

GetState

“State”

State St

(Submit, x)

“State”

Validate(.) x

No Yes

x

Gledger

  • In reality: Not a Bulletin Board
  • Inputs (transactions) are filtered
slide-41
SLIDE 41

The Public Transaction Ledger [KZZ16]

Validate(.)

GetState

“State”

State St||x

(Submit, x)

“State”

x

No Yes

x

Gledger

  • In reality: Not a Bulletin Board
  • Inputs (transactions) are filtered
slide-42
SLIDE 42

The Public Transaction Ledger [KZZ16]

Validate(.)

GetState

“State”

State St||x

(Submit, x)

“State”

x

No Yes

x

Gledger

  • In reality: Not a Bulletin Board
  • Inputs (transactions) are filtered
  • The order in which transactions in

“State” are inserted might be adversarial … but not too adversarial

slide-43
SLIDE 43

The Public Transaction Ledger [KZZ16]

Validate(.)

GetState

“State”

State St||x

(Submit, x)

“State”

x

No Yes

x

Gledger

Can reorder the recently inserted transactions

slide-44
SLIDE 44

The Public Transaction Ledger [KZZ16]

Validate(.)

GetState

“State”

State St||x

(Submit, x)

“State”

x

No Yes

x

Gledger

Can reorder the recently inserted transactions

slide-45
SLIDE 45

The Public Transaction Ledger [KZZ16]

Gledger

Validate(.)

GetState

“State”

State

No Yes

Buffer

Can reorder the recently inserted transactions

slide-46
SLIDE 46

The Public Transaction Ledger [KZZ16]

Gledger

Validate(.)

GetState

“State”

State

(Submit, x) x

No Yes

Buffer

Can reorder the recently inserted transactions

slide-47
SLIDE 47

The Public Transaction Ledger [KZZ16]

Gledger

Validate(.)

GetState

“State”

State

(Submit, x) x

No Yes

Buffer

“State”

Can reorder the recently inserted transactions

slide-48
SLIDE 48

The Public Transaction Ledger [KZZ16]

Gledger

Validate(.)

GetState

“State”

State

(Submit, x) x

No Yes

x

Buffer

“State”

Can reorder the recently inserted transactions

slide-49
SLIDE 49

The Public Transaction Ledger [KZZ16]

Gledger

Validate(.)

GetState

“State”

State

(Submit, x) x

No Yes

x

Buffer

“State”

Can reorder the recently inserted transactions

x

slide-50
SLIDE 50

The Public Transaction Ledger [KZZ16]

Gledger

Validate(.)

GetState

“State”

State

(Submit, x) x

No Yes

x

Buffer

x1,x2,…

“State”

Can reorder the recently inserted transactions

x

slide-51
SLIDE 51

The Public Transaction Ledger [KZZ16]

Gledger

Validate(.)

GetState

“State”

State

(Submit, x) x

No Yes

x

Buffer

x1,x2,… = π(x1,…)

“State”

(Permute,π)

Can reorder the recently inserted transactions

x

slide-52
SLIDE 52

The Public Transaction Ledger [KZZ16]

Gledger

Validate(.)

GetState

“State”

State

(Submit, x)

“State”

x

No Yes

x

Buffer

(Permute,π)

time?

x1,x2,… = π(x1,…)

Can reorder the recently inserted transactions

x

slide-53
SLIDE 53

The Public Transaction Ledger [KZZ16]

Gledger

Validate(.)

GetState

“State”

State

(Submit, x)

“State”

x

No Yes

x

Buffer

(Permute,π)

time? t

x1,x2,… = π(x1,…)

Can reorder the recently inserted transactions

x

slide-54
SLIDE 54

The Public Transaction Ledger [KZZ16]

Gledger

Validate(.)

GetState

“State”

State

(Submit, x)

“State”

x

No Yes

x

Buffer

x1,x2,… = π(x1,…) (Permute,π)

time? t

Blockify(.)

?

Can reorder the recently inserted transactions

x

slide-55
SLIDE 55

The Public Transaction Ledger [KZZ16]

Gledger

Validate(.)

GetState

“State”

State

(Submit, x)

“State”

x

No Yes

x

Buffer

x1,x2,… = π(x1,…) (Permute,π)

x

time? t

Blockify(.)

?

Can reorder the recently inserted transactions

x

slide-56
SLIDE 56

The Public Transaction Ledger [KZZ16]

Gledger

Validate(.)

GetState

“State”

State

(Submit, x)

“State”

x

No Yes

x

Buffer

(Permute,π)

x

time? t

Blockify(.)

?

Can reorder the recently inserted transactions

x

slide-57
SLIDE 57

The Public Transaction Ledger [KZZ16]

Gledger

Validate(.)

GetState

“State”

State

(Submit, x)

“State”

x

No Yes

x

Buffer

(Permute,π)

x (B, t)

time? t

Blockify(.)

?

Can reorder the recently inserted transactions

x

slide-58
SLIDE 58

The Public Transaction Ledger [KZZ16]

Gledger

Validate(.)

GetState

“State”

State

(Submit, x)

“State”

x

No Yes

x

Buffer

(Permute,π)

x (B, t)

time? t

Blockify(.)

?

Can reorder the recently inserted transactions

x

More adversarial interference to have an accurate abstraction [BadetscherMaurerTschudiZikas17] (Also a construction from the Bitcoin network/protocol)

slide-59
SLIDE 59

What Crypto can get from Bitcoin?

A bulletin board with a filter on what gets written there A public transaction ledger Use what is on this ledger

slide-60
SLIDE 60

What Crypto can get from Bitcoin?

A bulletin board with a filter on what gets written there A public transaction ledger Use what is on this ledger How can we use it?

slide-61
SLIDE 61

A simple e-voting protocol

slide-62
SLIDE 62

A simple e-voting protocol

Tools 1/2: Threshold Encryption

  • n-servers S1,…,Sn
  • Each Si has secret key (share) ski
  • There is one public key pk
slide-63
SLIDE 63

A simple e-voting protocol

Tools 1/2: Threshold Encryption

  • n-servers S1,…,Sn
  • Each Si has secret key (share) ski
  • There is one public key pk
  • Encryption: Everyone with pk can compute an encryption of

message m, i.e., c=Encpk(m)

  • Decryption: All n servers together can decrypt,

i.e., Decsk1,…skn(c)=m

  • Threshold: No n-1 servers can learn any information from

the encryption

slide-64
SLIDE 64

A simple e-voting protocol

Tool 2/2: Additive Homomorphic Encryption Given ciphertexts c1=Encpk(m1) and c2=Encpk(m2) we can compute encryption Encpk(m1+m2)

slide-65
SLIDE 65

A simple e-voting protocol

Tool 2/2: Additive Homomorphic Encryption

Same encryption key

Given ciphertexts c1=Encpk(m1) and c2=Encpk(m2) we can compute encryption Encpk(m1+m2)

slide-66
SLIDE 66

A simple e-voting protocol

To vote

  • Each voter Vi encrypts his votei (0 or 1)

and submits ci=Encpk(votei) to the BB

  • The votes are homomorphically tallied

(i.e., c:=Encpk(vote1 + vote2 + …) )

  • c is decrypted by the electoral

authorities

Setup

  • n electoral authorities S1,…,Sn with

key shares sk1,…,skn and pk.

Bulletin Board

V1 V2

Encpk(vote1) Encpk(vote1)

S1 Sn

slide-67
SLIDE 67

A simple e-voting protocol

To vote

  • Each voter Vi encrypts his votei (0 or 1)

and submits ci=Encpk(votei) to the BB

  • The votes are homomorphically tallied

(i.e., c:=Encpk(vote1 + vote2 + …) )

  • c is decrypted by the electoral

authorities

Setup

  • n electoral authorities S1,…,Sn with

key shares sk1,…,skn and pk. V1 V2

Encpk(vote1) Encpk(vote1)

S1 Sn

Gledger

Validate(.)

State

Buffer

Gledger

slide-68
SLIDE 68

A simple e-voting protocol

To vote

  • Each voter Vi encrypts his votei (0 or 1)

and submits ci=Encpk(votei) to the BB

  • The votes are homomorphically tallied

(i.e., c:=Encpk(vote1 + vote2 + …) )

  • c is decrypted by the electoral

authorities

Setup

  • n electoral authorities S1,…,Sn with

key shares sk1,…,skn and pk.

Having a public transaction ledger ensures that

  • The Bulletin Board where the votes are kept is decentralized, i.e., no

server needs to be trusted to maintain it

  • The parties can see when the votes are added (no reordering is allowed)
  • A vote that is added cannot be deleted

V1 V2

Encpk(vote1) Encpk(vote1)

S1 Sn

Gledger

Validate(.)

State

Buffer

Gledger

slide-69
SLIDE 69

What Crypto can get from Bitcoin?

A bulletin board with a filter on what gets written there A public transaction ledger What is on this ledger?

slide-70
SLIDE 70

What Crypto can get from Bitcoin?

A bulletin board with a filter on what gets written there A public transaction ledger What is on this ledger?

slide-71
SLIDE 71

What Crypto can get from Bitcoin?

A bulletin board with a filter on what gets written there A public transaction ledger What is on this ledger? Random Stuff

slide-72
SLIDE 72

What Crypto can get from Bitcoin?

A bulletin board with a filter on what gets written there A public transaction ledger What is on this ledger? Random Stuff Money

slide-73
SLIDE 73

What Crypto can get from Bitcoin?

A bulletin board with a filter on what gets written there A public transaction ledger What is on this ledger? Random Stuff Money ??

slide-74
SLIDE 74

What Crypto can get from Bitcoin?

A bulletin board with a filter on what gets written there A public transaction ledger Use what is on this ledger Random Stuff Money ??

slide-75
SLIDE 75

The Bitcoin ledger as a random beacon

Gledger

Validate(.)

State

Buffer

(t1,0110), (t2,0001) …

slide-76
SLIDE 76

The Bitcoin ledger as a random beacon

Gledger

Validate(.)

State

Buffer

(t1,0110), (t2,0001) … Why is this useful?

slide-77
SLIDE 77

The Bitcoin ledger as a random beacon

Gledger

Validate(.)

State

Buffer

(t1,0110), (t2,0001) … Why is this useful?

  • Lotteries:
slide-78
SLIDE 78

The Bitcoin ledger as a random beacon

Gledger

Validate(.)

State

Buffer

(t1,0110), (t2,0001) … Why is this useful?

  • Lotteries:

USE CRYPTO

slide-79
SLIDE 79

The Bitcoin ledger as a random beacon

Gledger

Validate(.)

State

Buffer

(t1,0110), (t2,0001) … Why is this useful?

  • Lotteries:
  • Before time t2: collect tokens x0000, x0001,…

USE CRYPTO

slide-80
SLIDE 80

The Bitcoin ledger as a random beacon

Gledger

Validate(.)

State

Buffer

(t1,0110), (t2,0001) … Why is this useful?

  • Lotteries:
  • Before time t2: collect tokens x0000, x0001,…
  • At time t2: The token indexed by the beacon’s value wins

USE CRYPTO

slide-81
SLIDE 81

The Bitcoin ledger as a random beacon

Gledger

Validate(.)

State

Buffer

(t1,0110), (t2,0001) … Why is this useful?

  • Lotteries:
  • Before time t2: collect tokens x0000, x0001,…
  • At time t2: The token indexed by the beacon’s value wins

USE CRYPTO

slide-82
SLIDE 82

The Bitcoin ledger as a random beacon

Gledger

Validate(.)

State

Buffer

(t1,0110), (t2,0001) … Why is this useful?

  • Zero-knowledge Proofs
  • Common Random String (aka the cryptographer’s paradise)
  • Lotteries:
  • Before time t2: collect tokens x0000, x0001,…
  • At time t2: The token indexed by the beacon’s value wins

USE CRYPTO

slide-83
SLIDE 83

The Bitcoin ledger as a random beacon

Gledger

Validate(.)

State

Buffer

(t1,0110), (t2,0001) … Why is this useful?

Is it possible?

  • Heuristically: Hash each block [AndrychowiczDziembowski15]
  • No: if we require the rate of the beacon to be the same as the

Bitcoin network [BentovGabizonKiayiasZhouZikasZuckerman17]

  • Yes: if we allow a much slower beacon rate
  • Under number theoretic assumptions [LenstraWesolowski15]
  • Assuming (only) random oracles [ongoing …]
slide-84
SLIDE 84

What Crypto can get from Bitcoin?

A bulletin board with a filter on what gets written there A public transaction ledger Use what is on this ledger Random Stuff Money ??

slide-85
SLIDE 85

What Crypto can get from Bitcoin?

A bulletin board with a filter on what gets written there A public transaction ledger Use what is on this ledger Random Stuff Money ??

People (good or bad) want money

slide-86
SLIDE 86

What Crypto can get from Bitcoin?

A bulletin board with a filter on what gets written there A public transaction ledger Use what is on this ledger Random Stuff Money ??

People (good or bad) want money

We can use bitcoins as compensation for relaxed security

slide-87
SLIDE 87

Leveraging Security Loss with Coins … in Secure Multi-Party Computation (MPC)

slide-88
SLIDE 88

Leveraging Security Loss with Coins … in Secure Multi-Party Computation (MPC)

slide-89
SLIDE 89

Multi-Party Computation (MPC)

Goal: Parties P1,…,Pn with inputs x1,…,xn wish to compute a function f(x1,…,xn) securely

slide-90
SLIDE 90

Multi-Party Computation (MPC)

F f

P1 P2 Pn

x1 x2 xn

f(x̅) f(x̅) f(x̅)=y

… Ideal World

slide-91
SLIDE 91

Multi-Party Computation (MPC)

F f

P1 P2 Pn

x1 x2 xn

f(x̅) f(x̅) f(x̅)=y

… Ideal World

P1 P2 Pn

… Real World

slide-92
SLIDE 92

Multi-Party Computation (MPC)

F f

P1 P2 Pn

x1 x2 xn

f(x̅) f(x̅) f(x̅)=y

… Ideal World

P1 P2 Pn

… Real World

π1(x1) π2(x2) πn(xn)

slide-93
SLIDE 93

Multi-Party Computation (MPC)

F f

P1 P2 Pn

x1 x2 xn

f(x̅) f(x̅) f(x̅)=y

… Ideal World

P1 P2 Pn

… Real World

π1(x1) π2(x2) πn(xn)

slide-94
SLIDE 94

Multi-Party Computation (MPC)

F f

P1 P2 Pn

x1 x2 xn

f(x̅) f(x̅) f(x̅)=y

… Ideal World

P1 P2 Pn

… Real World

π1(x1) π2(x2) πn(xn)

Protocol π is secure if for every adversary:

  • (privacy) Whatever the adversary learns he could compute by himself
  • (correctness) Honest (uncorrupted) parties learn their correct outputs
slide-95
SLIDE 95

Multi-Party Computation (MPC)

F f

P1 P2 Pn

x1 x2 xn

f(x̅) f(x̅) f(x̅)=y

… Ideal World

P1 P2 Pn

… Real World

π1(x1) π2(x2) πn(xn)

Protocol π is secure if for every adversary:

  • (privacy) Whatever the adversary learns he could compute by himself
  • (correctness) Honest (uncorrupted) parties learn their correct outputs

Private blockchains are a special case

slide-96
SLIDE 96

Fair MPC

In fair MPC: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output

slide-97
SLIDE 97

Fair MPC

In fair MPC: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output F f

P1 P2 Pn y

⊥ ⊥

slide-98
SLIDE 98

Fair MPC

In fair MPC: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output F f

P1 P2 Pn y

⊥ ⊥

✘ (Unfair)

slide-99
SLIDE 99

Fair MPC

In fair MPC: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output F f

P1 P2 Pn y

⊥ ⊥

Fair MPC is impossible against corrupted majorities

✘ (Unfair)

slide-100
SLIDE 100

Fair MPC

In fair MPC: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output F f

P1 P2 Pn y

⊥ ⊥

Fair MPC is impossible against corrupted majorities

Security against corrupted majorities Security with abort

=

✘ (Unfair)

slide-101
SLIDE 101

Fair MPC

In fair MPC: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output F f

P1 P2 Pn y

⊥ ⊥

Fair MPC is impossible against corrupted majorities

Security against corrupted majorities Security with abort

=

✘ (Unfair)

Discounted security

slide-102
SLIDE 102

MPC with Fair Compensation

MPC with fair compensation: If the adversary learns any information on the output beyond (what is derived by) its inputs then every honest party should learn the

  • utput or get compensated.

Idea [AndrychowiczDziembowskiMalinowskiMazurek14]: We can leverage unfairness with $$$

slide-103
SLIDE 103

MPC with Fair Compensation

MPC with fair compensation: If the adversary learns any information on the output beyond (what is derived by) its inputs then every honest party should learn the

  • utput or get compensated.

F f

P1 P2 Pn y

⊥ ⊥ ! " "

✘ (Unfair)

Idea [AndrychowiczDziembowskiMalinowskiMazurek14]: We can leverage unfairness with $$$

slide-104
SLIDE 104

MPC with Fair Compensation

MPC with fair compensation: If the adversary learns any information on the output beyond (what is derived by) its inputs then every honest party should learn the

  • utput or get compensated.

+

  • +

! ! # F f

P1 P2 Pn y

⊥ ⊥ ! " "

✘ (Unfair)

Idea [AndrychowiczDziembowskiMalinowskiMazurek14]: We can leverage unfairness with $$$

slide-105
SLIDE 105

MPC with Fair Compensation

MPC with fair compensation: If the adversary learns any information on the output beyond (what is derived by) its inputs then every honest party should learn the

  • utput or get compensated.

+

  • +

! ! #

✔ (“fair”)

F f

P1 P2 Pn y

⊥ ⊥ ! " "

✘ (Unfair)

Idea [AndrychowiczDziembowskiMalinowskiMazurek14]: We can leverage unfairness with $$$

slide-106
SLIDE 106

MPC with Fair Comp.: Construction

[BentovKumaresan14,15]

Tools 1/2 : Authenticated Additive Secret Sharing

Pn P1

x=x1⊕ … ⊕ xn , (sk,vk)←KeyGen [x]1 = x1,Sigsk(id1,x1),vk [x]n = xn,Sigsk(idn,xn),vk

slide-107
SLIDE 107

MPC with Fair Comp.: Construction

[BentovKumaresan14,15]

Tools 1/2 : Authenticated Additive Secret Sharing

Pn P1

x=x1⊕ … ⊕ xn , (sk,vk)←KeyGen [x]1 = x1,Sigsk(id1,x1),vk [x]n = xn,Sigsk(idn,xn),vk

  • No n-1 parties have info on x
  • Together all n parties can recover x
  • No party can lie about its share
  • Only x might be reconstructed!

slide-108
SLIDE 108

MPC with Fair Comp.: Construction

[BentovKumaresan14,15]

Tools 2/2 : Claim and Refund Transactions

S transfers q coins to R such that

slide-109
SLIDE 109

MPC with Fair Comp.: Construction

[BentovKumaresan14,15]

Tools 2/2 : Claim and Refund Transactions

S transfers q coins to R such that

  • Time restriction τ
slide-110
SLIDE 110

MPC with Fair Comp.: Construction

[BentovKumaresan14,15]

Tools 2/2 : Claim and Refund Transactions

S transfers q coins to R such that time

  • Time restriction τ
slide-111
SLIDE 111

MPC with Fair Comp.: Construction

[BentovKumaresan14,15]

Tools 2/2 : Claim and Refund Transactions

S transfers q coins to R such that time τ

R can claim coins S can claim coins

  • Time restriction τ
slide-112
SLIDE 112

MPC with Fair Comp.: Construction

[BentovKumaresan14,15]

Tools 2/2 : Claim and Refund Transactions

S transfers q coins to R such that time τ

R can claim coins S can claim coins

  • A predicate (relation) R(state,buffer,tx):
  • In order to spend the coins the receiver needs to

submit a tx satisfying R (at the point of validation).

  • Time restriction τ
slide-113
SLIDE 113

MPC with Fair Comp.: Construction

[BentovKumaresan14,15]

Tools 2/2 : Claim and Refund Transactions

S transfers q coins to R such that time τ

R can claim coins S can claim coins

  • A predicate (relation) R(state,buffer,tx):
  • In order to spend the coins the receiver needs to

submit a tx satisfying R (at the point of validation).

  • Time restriction τ
  • Supported by Bitcoin scripting language
  • Captured by Validate(.)
slide-114
SLIDE 114

MPC with Fair Comp.: Construction

Protocol Idea for computing y=f(x1,…,xn)

  • 1. Run SFE with unfair abort to compute n-out-of-n

authenticated sharing [y] of y=f(x1,…,xn)

  • E.g., Every Pi receives share [y]i such that

y=[y]1+…+[y]n and public signature on [y]i

[BentovKumaresan14,15]

slide-115
SLIDE 115

MPC with Fair Comp.: Construction

Protocol Idea for computing y=f(x1,…,xn)

F f

P1

P2

Pn x1 x2 xn

[f(x̅)]1 [f(x̅)]2

[f(x̅)]n

  • 1. Run SFE with unfair abort to compute n-out-of-n

authenticated sharing [y] of y=f(x1,…,xn)

  • E.g., Every Pi receives share [y]i such that

y=[y]1+…+[y]n and public signature on [y]i

[BentovKumaresan14,15]

slide-116
SLIDE 116

MPC with Fair Comp.: Construction

Protocol Idea for computing y=f(x1,…,xn)

F f

P1

P2

Pn x1 x2 xn

[f(x̅)]1 [f(x̅)]2

[f(x̅)]n

Abort at this point is fair

  • 1. Run SFE with unfair abort to compute n-out-of-n

authenticated sharing [y] of y=f(x1,…,xn)

  • E.g., Every Pi receives share [y]i such that

y=[y]1+…+[y]n and public signature on [y]i

[BentovKumaresan14,15]

slide-117
SLIDE 117

MPC with Fair Comp.: Construction

  • 2. Use the following reconstruction idea:

2.1. Every Pi transfers 1 bitcoin to every Pj with the restriction:

  • Pj can claim (spend) this coin if it submits to the ledger

his valid share (and signature) by round ρij

  • if Pj has not claimed this coin by the end of round ρij,

then the coin is “refunded” to Pi (i.e., after round ρij, Pi can spend this coin himself).

Protocol Idea for computing y=f(x1,…,xn) [BentovKumaresan14,15]

slide-118
SLIDE 118

MPC with Fair Comp.: Construction

  • 2. Use the following reconstruction idea:

2.1. Every Pi transfers 1 bitcoin to every Pj with the restriction:

  • Pj can claim (spend) this coin if it submits to the ledger

his valid share (and signature) by round ρij

  • if Pj has not claimed this coin by the end of round ρij,

then the coin is “refunded” to Pi (i.e., after round ρij, Pi can spend this coin himself). 2.2. Proceed in rounds in which the parties claim the coins from other parties by announcing their shares (and signatures)

Protocol Idea for computing y=f(x1,…,xn) [BentovKumaresan14,15]

slide-119
SLIDE 119

MPC with Fair Comp.: Construction

Security (SFE with fair compensation): Follow the money …

  • If the adversary announces all his shares then every party:
  • Sends n coins in phase two (one to each party)
  • Claims back n coins in phase three (one from each party)
  • If a corrupted party Pj does not announce his share then

every party

  • Sends n coins in phase two (one to each party)
  • Claims back
  • n coins in phase three for announcing his shares
  • the coin that it had sent to Pj

Protocol Idea for computing y=f(x1,…,xn) [BentovKumaresan14,15]

slide-120
SLIDE 120

[BentovKumaresan14,15]

Rethinking MPC with Fair Compensation

Time

slide-121
SLIDE 121

[BentovKumaresan14,15]

Rethinking MPC with Fair Compensation

Time

Protocol Starts

slide-122
SLIDE 122

[BentovKumaresan14,15]

Rethinking MPC with Fair Compensation

Time

Protocol Starts Sharing is Output, Committed transactions

Seconds

slide-123
SLIDE 123

[BentovKumaresan14,15]

Rethinking MPC with Fair Compensation

Time

Protocol Starts Sharing is Output, Committed transactions

Seconds

1 hour

Start reclaiming transactions

slide-124
SLIDE 124

[BentovKumaresan14,15]

Rethinking MPC with Fair Compensation

Time

Protocol Starts Sharing is Output, Committed transactions

Seconds

1 hour

Start reclaiming transactions

  • utput or compensation is settled

several hours

slide-125
SLIDE 125

[BentovKumaresan14,15]

Rethinking MPC with Fair Compensation

Time

Protocol Starts Sharing is Output, Committed transactions

Seconds

1 hour

Start reclaiming transactions “several” =

  • [BentovKumaresan14] linear in players (n)
  • [BentovKumaresan15] constant
  • utput or compensation is settled

several hours

slide-126
SLIDE 126

[BentovKumaresan14,15]

Rethinking MPC with Fair Compensation

Time

Protocol Starts Sharing is Output, Committed transactions

Seconds

1 hour

Start reclaiming transactions “several” =

  • [BentovKumaresan14] linear in players (n)
  • [BentovKumaresan15] constant

What if the adversary aborts before making the committed transactions?

  • utput or compensation is settled

several hours

slide-127
SLIDE 127

[BentovKumaresan14,15]

Rethinking MPC with Fair Compensation

Time

Protocol Starts Sharing is Output, Committed transactions

Seconds

1 hour

Start reclaiming transactions “several” =

  • [BentovKumaresan14] linear in players (n)
  • [BentovKumaresan15] constant

What if the adversary aborts before making the committed transactions? This can be confirmed here …

  • utput or compensation is settled

several hours

slide-128
SLIDE 128

[BentovKumaresan14,15]

Rethinking MPC with Fair Compensation

Time

Protocol Starts Sharing is Output, Committed transactions

Seconds

1 hour

Start reclaiming transactions “several” =

  • [BentovKumaresan14] linear in players (n)
  • [BentovKumaresan15] constant

What if the adversary aborts before making the committed transactions? This can be confirmed here … … and reclaimed here …

  • utput or compensation is settled

several hours

slide-129
SLIDE 129

[BentovKumaresan14,15]

Rethinking MPC with Fair Compensation

Time

Protocol Starts Sharing is Output, Committed transactions

Seconds

1 hour

Start reclaiming transactions “several” =

  • [BentovKumaresan14] linear in players (n)
  • [BentovKumaresan15] constant

What if the adversary aborts before making the committed transactions? This can be confirmed here … … and reclaimed here …

  • utput or compensation is settled

several hours

slide-130
SLIDE 130

[BentovKumaresan14,15]

Rethinking MPC with Fair Compensation

Time

Protocol Starts Sharing is Output, Committed transactions

Seconds

1 hour

Start reclaiming transactions “several” =

  • [BentovKumaresan14] linear in players (n)
  • [BentovKumaresan15] constant

What if the adversary aborts before making the committed transactions? This can be confirmed here … … and reclaimed here …

O(n) times = O(n) hours till

  • utput
  • utput or compensation is settled

several hours

slide-131
SLIDE 131

Rethinking MPC with Fair Compensation

SFE with fair compensation: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output or get compensated.

P1 P2 Pn y

⊥ ⊥ ! " " +

  • +

! ! #

✘ (Unfair) ✔ (“fair”)

F f

slide-132
SLIDE 132

Rethinking MPC with Fair Compensation

SFE with fair compensation: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output or get compensated.

P1 P2 Pn y

⊥ ⊥ ! " " +

  • +

! ! # + +

$

$

✘ (Unfair) ✔ (“fair”)

F f

slide-133
SLIDE 133

Rethinking MPC with Fair Compensation

SFE with fair compensation: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output or get compensated.

P1 P2 Pn y

⊥ ⊥ ! " " +

  • +

! ! # + +

$

$

DoS

%

+

✘ (Unfair) ✔ (“fair”)

F f

slide-134
SLIDE 134

Rethinking MPC with Fair Compensation

SFE with fair compensation: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output or get compensated.

P1 P2 Pn y

⊥ ⊥ ! " " +

  • +

! ! # + +

$

$

DoS

%

+

✘ (Unfair) ✔ (“fair”)

F f

slide-135
SLIDE 135

MPC with Robust Compensation [KZZ16]

slide-136
SLIDE 136

MPC with Robust Compensation [KZZ16]

Fair MPC: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output

slide-137
SLIDE 137

MPC with Robust Compensation [KZZ16]

Fair MPC: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output MPC with fair compensation: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output or get compensated

slide-138
SLIDE 138

MPC with Robust Compensation [KZZ16]

Fair MPC: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output MPC with fair compensation: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output or get compensated robust (fast …)

slide-139
SLIDE 139

MPC with Robust Compensation [KZZ16]

Fair MPC: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output MPC with fair compensation: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output or get compensated robust

How can we get robustness?

(fast …)

slide-140
SLIDE 140

MPC with Robust Compen. : Construction

S transfers q coins to R such that

Tools 1/3 : Special Transaction

slide-141
SLIDE 141

MPC with Robust Compen. : Construction

S transfers q coins to R such that

  • Time restriction (τ-, τ+)

Tools 1/3 : Special Transaction

slide-142
SLIDE 142

MPC with Robust Compen. : Construction

S transfers q coins to R such that time

  • Time restriction (τ-, τ+)

Tools 1/3 : Special Transaction

slide-143
SLIDE 143

MPC with Robust Compen. : Construction

S transfers q coins to R such that time τ- τ+

coins are blocked R can claim coins S can claim coins

  • Time restriction (τ-, τ+)

Tools 1/3 : Special Transaction

slide-144
SLIDE 144

MPC with Robust Compen. : Construction

S transfers q coins to R such that time τ- τ+

coins are blocked R can claim coins S can claim coins

  • Link: A reference ref such that only a transaction

with the same reference can spend the q coins

  • Time restriction (τ-, τ+)

Tools 1/3 : Special Transaction

slide-145
SLIDE 145

MPC with Robust Compen. : Construction

S transfers q coins to R such that time τ- τ+

coins are blocked R can claim coins S can claim coins

  • Link: A reference ref such that only a transaction

with the same reference can spend the q coins

  • A predicate (relation) R(state,buffer,tx):
  • In order to spend the coins the receiver needs to

submit a tx satisfying R (at the point of validation).

  • Time restriction (τ-, τ+)

Tools 1/3 : Special Transaction

slide-146
SLIDE 146

MPC with Robust Compen. : Construction

S transfers q coins to R such that time τ- τ+

coins are blocked R can claim coins S can claim coins

  • Link: A reference ref such that only a transaction

with the same reference can spend the q coins

  • A predicate (relation) R(state,buffer,tx):
  • In order to spend the coins the receiver needs to

submit a tx satisfying R (at the point of validation).

  • Time restriction (τ-, τ+)

Tools 1/3 : Special Transaction

slide-147
SLIDE 147

MPC with Robust Compen. : Construction

S transfers q coins to R such that time τ- τ+

coins are blocked R can claim coins S can claim coins

  • Link: A reference ref such that only a transaction

with the same reference can spend the q coins

  • A predicate (relation) R(state,buffer,tx):
  • In order to spend the coins the receiver needs to

submit a tx satisfying R (at the point of validation).

(τ-,τ+), ref, R

  • Time restriction (τ-, τ+)

Tools 1/3 : Special Transaction

slide-148
SLIDE 148

MPC with Robust Compen. : Construction

Tools 2/3 : Semi-honest MPC

An SFE protocol which is secure when parties follow their instructions

slide-149
SLIDE 149

MPC with Robust Compen. : Construction

Tools 2/3 : Semi-honest MPC

An MPC protocol which is secure when parties follow their instructions Example: A Summation protocol

· · · x1 x11 x12 · · · x1n x2 x21 x22 · · · x2n . . . . . . . . . . . . xn xn1 xn2 · · · xnn y1 y2 · · · yn y =

n

X

i=1

yi

… P1 P2 Pn P1 P2 Pn

slide-150
SLIDE 150

MPC with Robust Compen. : Construction

Tools 2/3 : Semi-honest MPC

An MPC protocol which is secure when parties follow their instructions Example: A Summation protocol

· · · x1 x11 x12 · · · x1n x2 x21 x22 · · · x2n . . . . . . . . . . . . xn xn1 xn2 · · · xnn y1 y2 · · · yn y =

n

X

i=1

yi

… P1 P2 Pn P1 P2 Pn

x1 =

n

M

j=1

x1j

slide-151
SLIDE 151

MPC with Robust Compen. : Construction

Tools 2/3 : Semi-honest MPC

An MPC protocol which is secure when parties follow their instructions Example: A Summation protocol

· · · x1 x11 x12 · · · x1n x2 x21 x22 · · · x2n . . . . . . . . . . . . xn xn1 xn2 · · · xnn y1 y2 · · · yn y =

n

X

i=1

yi

… P1 P2 Pn P1 P2 Pn

x1 =

n

M

j=1

x1j

x2 =

n

M

j=1

x2j xn =

n

M

j=1

xnj

slide-152
SLIDE 152

MPC with Robust Compen. : Construction

Tools 2/3 : Semi-honest MPC

An MPC protocol which is secure when parties follow their instructions Example: A Summation protocol

· · · x1 x11 x12 · · · x1n x2 x21 x22 · · · x2n . . . . . . . . . . . . xn xn1 xn2 · · · xnn y1 y2 · · · yn y =

n

X

i=1

yi

… P1 P2 Pn P1 P2 Pn

x1 =

n

M

j=1

x1j

x2 =

n

M

j=1

x2j xn =

n

M

j=1

xnj y =

n

M

i=1

yi

slide-153
SLIDE 153

MPC with Robust Compen. : Construction

Tools 2/3 : Semi-honest MPC

An MPC protocol which is secure when parties follow their instructions Example: A Summation protocol

Secure (private) against arbitrary many colluding parties

· · · x1 x11 x12 · · · x1n x2 x21 x22 · · · x2n . . . . . . . . . . . . xn xn1 xn2 · · · xnn y1 y2 · · · yn y =

n

X

i=1

yi

… P1 P2 Pn P1 P2 Pn

x1 =

n

M

j=1

x1j

x2 =

n

M

j=1

x2j xn =

n

M

j=1

xnj y =

n

M

i=1

yi

slide-154
SLIDE 154

MPC with Robust Compen. : Construction

Tools 2/3 : Semi-honest MPC

An MPC protocol which is secure when parties follow their instructions

Assuming a public key infrastructure (commitments/encryption/ signatures) there exists a semi-honest MPC protocol π for every function which

  • Uses only public communication
  • Tolerates arbitrary many semi-honest parties
  • Terminates in constant rounds
slide-155
SLIDE 155

Compile a semi-honest MPC protocol π into (malicious) secure

MPC with Robust Compen. : Construction

Tools 3/3 : The GMW Compiler

slide-156
SLIDE 156

Compile a semi-honest MPC protocol π into (malicious) secure

MPC with Robust Compen. : Construction

Round 0: Setup generation (+ commitments to randomness) Round 1: Every Pi commits to its input Rounds 2 … ρπ + 1: Execute π round-by-round so that in each round every party proves (in ZK) that he follows π

Tools 3/3 : The GMW Compiler

slide-157
SLIDE 157

Compile a semi-honest MPC protocol π into (malicious) secure

MPC with Robust Compen. : Construction

Round 0: Setup generation (+ commitments to randomness) Round 1: Every Pi commits to its input Rounds 2 … ρπ + 1: Execute π round-by-round so that in each round every party proves (in ZK) that he follows π

Security (with abort)

  • Privacy: The parties see

the following:

  • Setup
  • Commitments
  • Messages from π
  • Correctness:
  • If ZKPs succeed then

the parties are indeed following π

  • Else abort

Tools 3/3 : The GMW Compiler

slide-158
SLIDE 158

MPC with Robust Compen. : Construction

Idea: Use “GMW”-like compiler on the Ledger

slide-159
SLIDE 159

MPC with Robust Compen. : Construction

Idea: Use “GMW”-like compiler on the Ledger

Round 0: Setup generation (+ commitments to randomness) Round 1: Every Pi commits to its input Rounds 2 … ρπ + 1: Execute π round-by-round so that in each round every party proves (in ZK) that he follows π GMW

slide-160
SLIDE 160

MPC with Robust Compen. : Construction

Idea: Use “GMW”-like compiler on the Ledger

Round 0: Setup generation (+ commitments to randomness) Round 1: Every Pi commits to its input Rounds 2 … ρπ + 1: Execute π round-by-round so that in each round every party proves (in ZK) that he follows π GMW Round 0: Setup generation (+ commitments to randomness) Round 1: Do nothing Round 2: Every Pi commits to its input and broadcasts his view of the public setup. Rounds 3 … ρπ + 2: Execute π round-by-round so that in each round every party proves (in NIZK) that he follows π GMW’:

slide-161
SLIDE 161

MPC with Robust Compen. : Construction

Idea: Use “GMW”-like compiler on the Ledger

Round 0: Setup generation (+ commitments to randomness) Round 1: Do nothing Round 2: Every Pi commits to its input and broadcasts his view of the public setup. Rounds 3 … ρπ + 2: Execute π round-by-round so that in each round every party proves (in NIZK) that the follows π GMW’:

slide-162
SLIDE 162

MPC with Robust Compen. : Construction

Idea: Use “GMW”-like compiler on the Ledger

Round 0: Setup generation (+ commitments to randomness) Round 1: Do nothing Round 2: Every Pi commits to its input and broadcasts his view of the public setup. Rounds 3 … ρπ + 2: Execute π round-by-round so that in each round every party proves (in NIZK) that the follows π GMW’:

MPC with Robust Compensation

slide-163
SLIDE 163

MPC with Robust Compen. : Construction

Idea: Use “GMW”-like compiler on the Ledger

Round 0: Setup generation (+ commitments to randomness) Round 1: Do nothing Round 2: Every Pi commits to its input and broadcasts his view of the public setup. Rounds 3 … ρπ + 2: Execute π round-by-round so that in each round every party proves (in NIZK) that the follows π GMW’:

MPC with Robust Compensation

slide-164
SLIDE 164

MPC with Robust Compen. : Construction

Idea: Use “GMW”-like compiler on the Ledger

Round 0: Setup generation (+ commitments to randomness) Round 1: Do nothing Round 2: Every Pi commits to its input and broadcasts his view of the public setup. Rounds 3 … ρπ + 2: Execute π round-by-round so that in each round every party proves (in NIZK) that the follows π

Round 0: Setup generation (+ commitments to randomness)

GMW’:

MPC with Robust Compensation

slide-165
SLIDE 165

MPC with Robust Compen. : Construction

Idea: Use “GMW”-like compiler on the Ledger

Round 0: Setup generation (+ commitments to randomness) Round 1: Do nothing Round 2: Every Pi commits to its input and broadcasts his view of the public setup. Rounds 3 … ρπ + 2: Execute π round-by-round so that in each round every party proves (in NIZK) that the follows π

Round 0: Setup generation (+ commitments to randomness) Round 1: Every party Pi makes n·ρπ special 1-coin transactions B(i,j,r):

  • Pj can spend coin in round r
  • ref needs to have the protocol ID
  • R is true if the transaction which

spends the coin includes a valid r-round message for Pj

GMW’:

MPC with Robust Compensation

slide-166
SLIDE 166

MPC with Robust Compen. : Construction

Idea: Use “GMW”-like compiler on the Ledger

Round 0: Setup generation (+ commitments to randomness) Round 1: Do nothing Round 2: Every Pi commits to its input and broadcasts his view of the public setup. Rounds 3 … ρπ + 2: Execute π round-by-round so that in each round every party proves (in NIZK) that the follows π

Round 0: Setup generation (+ commitments to randomness) Round 1: Every party Pi makes n·ρπ special 1-coin transactions B(i,j,r):

  • Pj can spend coin in round r
  • ref needs to have the protocol ID
  • R is true if the transaction which

spends the coin includes a valid r-round message for Pj Rounds 3 … ρπ + 2: Execute GMW(π) round-by-round so that in each round r every party spends all its round r referenced coins by a transaction which includes the round r message in GMW(π).

GMW’:

MPC with Robust Compensation

slide-167
SLIDE 167

MPC with Robust Compen. : Construction

Idea: Use “GMW”-like compiler on the Ledger

Round 0: Setup generation (+ commitments to randomness) Round 1: Do nothing Round 2: Every Pi commits to its input and broadcasts his view of the public setup. Rounds 3 … ρπ + 2: Execute π round-by-round so that in each round every party proves (in NIZK) that the follows π

Round 0: Setup generation (+ commitments to randomness)

Validate(.) executes the code of an extra party without inputs in GMW and rejects if abort.

Round 1: Every party Pi makes n·ρπ special 1-coin transactions B(i,j,r):

  • Pj can spend coin in round r
  • ref needs to have the protocol ID
  • R is true if the transaction which

spends the coin includes a valid r-round message for Pj Rounds 3 … ρπ + 2: Execute GMW(π) round-by-round so that in each round r every party spends all its round r referenced coins by a transaction which includes the round r message in GMW(π).

GMW’:

MPC with Robust Compensation

slide-168
SLIDE 168

MPC with Robust Compen. : Construction

Security with Robust Compensation.

  • Case 1: The adversary correctly makes all the

“committing” transactions in Round 1

  • If no party cheats then every party claims from

each of the other parties as many coins as he deposited by simply executing his protocol.

  • If some party Pj cheats, then every party still

claims all his coins as above + all the committed coins that Pj cannot spend as he did not execute his protocol.

slide-169
SLIDE 169

MPC with Robust Compen. : Construction

Security with Robust Compensation.

  • Case 2: Some corrupted party does not make

(consistent) transactions in Round 1

  • e.g. aborts or commits to a different setup.
slide-170
SLIDE 170

MPC with Robust Compen. : Construction

Security with Robust Compensation.

  • Case 2: Some corrupted party does not make

(consistent) transactions in Round 1

  • e.g. aborts or commits to a different setup.

… seems to have similar issue as before …

slide-171
SLIDE 171

MPC with Robust Compen. : Construction

Security with Robust Compensation.

  • Case 2: Some corrupted party does not make

(consistent) transactions in Round 1

  • e.g. aborts or commits to a different setup.

… seems to have similar issue as before …

  • Solution: The validation predicate can be changed as:
  • Separates the parties into “islands” of consistent

setups (depending on their Round-1 transactions).

  • For each island I⊆[n]: Compute the function among

parties in I (with all other parties’ input being 0)

slide-172
SLIDE 172

MPC with Robust Compen. : Construction

Idea: Use “GMW”-like compiler on the Ledger

Round 0: Setup generation (+ commitments to randomness) Round 1: Do nothing Round 2: Every Pi commits to its input and broadcasts his view of the public setup. Rounds 3 … ρπ + 2: Execute π round-by-round so that in each round every party proves (in NIZK) that the follows π

Round 0: Setup generation (+ commitments to randomness) Round 1: Every party Pi makes n·ρπ special 1-coin transactions B(i,j,r):

  • Pj can spend coin in round r
  • ref needs to have the protocol ID
  • R is true if the transaction which

spends the coin includes a valid r-round message for Pj Rounds 3 … ρπ + 2: Execute GMW(π) round-by-round so that in each round r every party spends all its round r referenced coins by a transaction which includes the round r message in GMW(π).

GMW’:

MPC with Robust Compensation

slide-173
SLIDE 173

MPC with Robust Compen. : Construction

Idea: Use “GMW”-like compiler on the Ledger

Round 0: Setup generation (+ commitments to randomness) Round 1: Do nothing Round 2: Every Pi commits to its input and broadcasts his view of the public setup. Rounds 3 … ρπ + 2: Execute π round-by-round so that in each round every party proves (in NIZK) that the follows π

Round 0: Setup generation (+ commitments to randomness) Round 1: Every party Pi makes n·ρπ special 1-coin transactions B(i,j,r):

  • Pj can spend coin in round r
  • ref needs to have the protocol ID
  • R is true if the transaction which

spends the coin includes a valid r-round message for Pj Rounds 3 … ρπ + 2: Execute GMW(π) round-by-round so that in each round r every party spends all its round r referenced coins by a transaction which includes the round r message in GMW(π).

GMW’:

MPC with Robust Compensation

slide-174
SLIDE 174

MPC with Robust Compen. : Construction

Security with Robust Compensation.

  • Case 2: Some corrupted party does not make

(consistent) transaction in Round 1

  • e.g. aborts or commits to a different setup.
  • All honest parties are on the same island
  • Corrupted parties can choose to play with the honest parties or

participate in a computation independent of honest inputs.

… seems to have similar issue as before …

  • Solution: The validation predicate can be changed as:
  • Separates the parties into “islands” of consistent

setups (depending on their Round-1 transactions).

  • For each island I⊆[n]: Compute the function among

parties in I (with all other parties’ input being 0)

slide-175
SLIDE 175

Take Away Message and Open Directions

slide-176
SLIDE 176

Take Away Message and Open Directions

Bitcoin opens new directions for cryptographic protocols

  • Decentralized public ledger with inherent entropy
  • Adding a reward/punishment mechanism restricts the

set of likely attacks

  • Limitations of crypto should be reconsidered

(Impossibilities/Efficiency)

slide-177
SLIDE 177

Take Away Message and Open Directions

Bitcoin opens new directions for cryptographic protocols

  • Decentralized public ledger with inherent entropy
  • Adding a reward/punishment mechanism restricts the

set of likely attacks

  • Limitations of crypto should be reconsidered

(Impossibilities/Efficiency)

Future directions

  • A game theoretic analysis might allow us to improve existing

results … based on [GarayKatzMaurerTackmannZikas13]

  • What more can we get from Blockchains?
slide-178
SLIDE 178

Take Away Message and Open Directions

Bitcoin opens new directions for cryptographic protocols

  • Decentralized public ledger with inherent entropy
  • Adding a reward/punishment mechanism restricts the

set of likely attacks

  • Limitations of crypto should be reconsidered

(Impossibilities/Efficiency)

Future directions

  • A game theoretic analysis might allow us to improve existing

results … based on [GarayKatzMaurerTackmannZikas13]

  • What more can we get from Blockchains?

more in Jon’s talk tomorrow …