SLIDE 1 Blockchain and secure computation
Winter School on Cryptocurrency and Blockchain Technologies Shanghai Jiao Tong University 2017
Vassilis Zikas RPI
SLIDE 2
Bitcoin
SLIDE 3 What is bitcoin and how does it work?
Bitcoin
SLIDE 4 What is bitcoin and how does it work? Is it secure?
(in restricted models)
Bitcoin
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 What is bitcoin and how does it work? Is it secure?
(in restricted models)
What do we get from it?
Bitcoin
SLIDE 7
What Crypto can get from Bitcoin?
SLIDE 8
What Crypto can get from Bitcoin?
In this talk “Bitcoin = Ledger-based cryptocurrency”
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
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
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
The Public Transaction Ledger
What is exactly the problem that bitcoin solves?
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 “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 “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 “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 “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 The Public Transaction Ledger
A resource as an ideal functionality: Example. Communication network
SLIDE 19 The Public Transaction Ledger
A resource as an ideal functionality: Example. Communication network
SLIDE 20 The Public Transaction Ledger
A resource as an ideal functionality: Example. Communication network
SLIDE 21 The Public Transaction Ledger
Gnet
A resource as an ideal functionality: Example. Communication network
SLIDE 22 The Public Transaction Ledger
Gnet
1 2 3 4
A resource as an ideal functionality: Example. Communication network
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 The Public Transaction Ledger
Gnet
1 2 3 4
1→4,m
A resource as an ideal functionality: Example. Communication network
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 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 The Public Transaction Ledger
Gnet
A resource as an ideal functionality: The Bitcoin network
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 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 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
The Public Transaction Ledger [KZZ16]
State St
Gledger
SLIDE 32 The Public Transaction Ledger [KZZ16]
GetState
“State”
State St
Gledger
SLIDE 33 The Public Transaction Ledger [KZZ16]
GetState
“State”
State St
(Submit, x)
Gledger
SLIDE 34 The Public Transaction Ledger [KZZ16]
GetState
“State”
State St||x
(Submit, x)
Gledger
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 The Public Transaction Ledger [KZZ16]
GetState
“State”
State St
(Submit, x)
Gledger
- In reality: Not a Bulletin Board
- Inputs (transactions) are filtered
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 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 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 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 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 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 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 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 The Public Transaction Ledger [KZZ16]
Gledger
Validate(.)
GetState
“State”
State
No Yes
Buffer
Can reorder the recently inserted transactions
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 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 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 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 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 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 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 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 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 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 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 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 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
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
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
A simple e-voting protocol
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 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
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 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 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 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 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
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
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
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
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
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
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 The Bitcoin ledger as a random beacon
Gledger
Validate(.)
State
Buffer
(t1,0110), (t2,0001) …
SLIDE 76 The Bitcoin ledger as a random beacon
Gledger
Validate(.)
State
Buffer
(t1,0110), (t2,0001) … Why is this useful?
SLIDE 77 The Bitcoin ledger as a random beacon
Gledger
Validate(.)
State
Buffer
(t1,0110), (t2,0001) … Why is this useful?
SLIDE 78 The Bitcoin ledger as a random beacon
Gledger
Validate(.)
State
Buffer
(t1,0110), (t2,0001) … Why is this useful?
USE CRYPTO
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 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 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 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 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
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
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
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
Leveraging Security Loss with Coins … in Secure Multi-Party Computation (MPC)
SLIDE 88
Leveraging Security Loss with Coins … in Secure Multi-Party Computation (MPC)
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 Multi-Party Computation (MPC)
F f
P1 P2 Pn
x1 x2 xn
f(x̅) f(x̅) f(x̅)=y
… Ideal World
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 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 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 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 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
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
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
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 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 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 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 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 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 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 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
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 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
MPC with Fair Comp.: Construction
[BentovKumaresan14,15]
Tools 2/2 : Claim and Refund Transactions
S transfers q coins to R such that
SLIDE 109 MPC with Fair Comp.: Construction
[BentovKumaresan14,15]
Tools 2/2 : Claim and Refund Transactions
S transfers q coins to R such that
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
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
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).
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 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 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 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 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 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 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
[BentovKumaresan14,15]
Rethinking MPC with Fair Compensation
Time
SLIDE 121 [BentovKumaresan14,15]
Rethinking MPC with Fair Compensation
Time
Protocol Starts
SLIDE 122 [BentovKumaresan14,15]
Rethinking MPC with Fair Compensation
Time
Protocol Starts Sharing is Output, Committed transactions
Seconds
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 [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 [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 [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 [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 [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 [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 [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 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 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 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 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
MPC with Robust Compensation [KZZ16]
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
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
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
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
MPC with Robust Compen. : Construction
S transfers q coins to R such that
Tools 1/3 : Special Transaction
SLIDE 141 MPC with Robust Compen. : Construction
S transfers q coins to R such that
- Time restriction (τ-, τ+)
Tools 1/3 : Special Transaction
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 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 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 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 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 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 MPC with Robust Compen. : Construction
Tools 2/3 : Semi-honest MPC
An SFE protocol which is secure when parties follow their instructions
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 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 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 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 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 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
Compile a semi-honest MPC protocol π into (malicious) secure
MPC with Robust Compen. : Construction
Tools 3/3 : The GMW Compiler
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 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)
the following:
- Setup
- Commitments
- Messages from π
- Correctness:
- If ZKPs succeed then
the parties are indeed following π
Tools 3/3 : The GMW Compiler
SLIDE 158
MPC with Robust Compen. : Construction
Idea: Use “GMW”-like compiler on the Ledger
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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
Take Away Message and Open Directions
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 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 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 …