SLIDE 1 Cryptography
IACR Summer School on Blockchain Techs Vassilis Zikas RPI
Aggelos Kiayias, Hong-Shen Zhou, and Vassilis Zikas, Fair and Robust Multi-Party Computation using a Global Transaction Ledger, EUROCRYPT 2016.
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 Some economic stuff …
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 Some economic stuff …
SLIDE 11
What Crypto can get from Bitcoin?
People (good or bad) want money A bulletin board with a filter on what gets written there In this talk “Bitcoin = Ledger-based cryptocurrency” A public transaction ledger Some economic stuff …
SLIDE 12
The Public Transaction Ledger
“What is exactly the problem that bitcoin solves?” AK, 2016
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?” AK, 2016
SLIDE 14 “Backbone” [GarayKiayiasLeonardos15]
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?” AK, 2016
SLIDE 15 “Backbone” [GarayKiayiasLeonardos15]
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?” AK, 2016
SLIDE 16 “Backbone” [GarayKiayiasLeonardos15]
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 “If we had a trusted third party instead of the Bitcoin network, how would we expect it to behave?”
“What is exactly the problem that bitcoin solves?” AK, 2016
SLIDE 17 Crypto On Blockchain
Outline
- The functionality offered by blockchains
- Leveraging Security Loss with Coins
… in Secure Function Evaluation (SFE)
- A formal cryptographic (UC) model for security proofs
SLIDE 18 Crypto On Blockchain
Outline
- The functionality offered by blockchains
- Leveraging Security Loss with Coins
… in Secure Function Evaluation (SFE)
- A formal cryptographic (UC) model for security proofs
SLIDE 19
The Public Transaction Ledger
State St
Gledger
SLIDE 20 The Public Transaction Ledger
GetState
“State”
State St
Gledger
SLIDE 21 The Public Transaction Ledger
GetState
“State”
State St
(Submit, x)
Gledger
SLIDE 22 The Public Transaction Ledger
GetState
“State”
State St||x
(Submit, x)
Gledger
SLIDE 23 The Public Transaction Ledger
GetState
“State”
State St||x
(Submit, x)
Gledger
- In reality: Not a Bulletin Board
- Inputs (transactions) are filtered
SLIDE 24 The Public Transaction Ledger
GetState
“State”
State St
(Submit, x)
Gledger
- In reality: Not a Bulletin Board
- Inputs (transactions) are filtered
SLIDE 25 The Public Transaction Ledger
GetState
“State”
State St
(Submit, x) Validate(.) x
Gledger
- In reality: Not a Bulletin Board
- Inputs (transactions) are filtered
SLIDE 26 The Public Transaction Ledger
GetState
“State”
State St
(Submit, x)
“State”
Validate(.) x
Gledger
- In reality: Not a Bulletin Board
- Inputs (transactions) are filtered
SLIDE 27 The Public Transaction Ledger
GetState
“State”
State St
(Submit, x)
“State”
Validate(.) x
No Yes
Gledger
- In reality: Not a Bulletin Board
- Inputs (transactions) are filtered
SLIDE 28 The Public Transaction Ledger
GetState
“State”
State St
(Submit, x)
“State”
Validate(.) x
No Yes
x
Gledger
- In reality: Not a Bulletin Board
- Inputs (transactions) are filtered
SLIDE 29 The Public Transaction Ledger
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 30 The Public Transaction Ledger
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 31 The Public Transaction Ledger
Validate(.)
GetState
“State”
State St||x
(Submit, x)
“State”
x
No Yes
x
Gledger
Can reorder the recently inserted transactions
SLIDE 32 The Public Transaction Ledger
Validate(.)
GetState
“State”
State St||x
(Submit, x)
“State”
x
No Yes
x
Gledger
Can reorder the recently inserted transactions
SLIDE 33 The Public Transaction Ledger & Time
Gledger
Validate(.)
GetState
“State”
State
No Yes
Buffer
Can reorder the recently inserted transactions
SLIDE 34 The Public Transaction Ledger & Time
Gledger
Validate(.)
GetState
“State”
State
(Submit, x) x
No Yes
Buffer
Can reorder the recently inserted transactions
SLIDE 35 The Public Transaction Ledger & Time
Gledger
Validate(.)
GetState
“State”
State
(Submit, x) x
No Yes
Buffer
“State”
Can reorder the recently inserted transactions
SLIDE 36 The Public Transaction Ledger & Time
Gledger
Validate(.)
GetState
“State”
State
(Submit, x) x
No Yes
x
Buffer
“State”
Can reorder the recently inserted transactions
SLIDE 37 The Public Transaction Ledger & Time
Gledger
Validate(.)
GetState
“State”
State
(Submit, x) x
No Yes
x
Buffer
“State”
Can reorder the recently inserted transactions
x
SLIDE 38 The Public Transaction Ledger & Time
Gledger
Validate(.)
GetState
“State”
State
(Submit, x) x
No Yes
x
Buffer
x1,x2,…
“State”
Can reorder the recently inserted transactions
x
SLIDE 39 The Public Transaction Ledger & Time
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 40 The Public Transaction Ledger & Time
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 41 The Public Transaction Ledger & Time
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 42 The Public Transaction Ledger & Time
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 43 The Public Transaction Ledger & Time
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 44 The Public Transaction Ledger & Time
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 45 The Public Transaction Ledger & Time
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 46
What Crypto can we get from Bitcoin?
A public transaction ledger Some economic stuff … People (good or bad) want money A bulletin board with a filter on what gets written there
The Model (Gledger, Gclock)-hybrid
(G)UC protocols
SLIDE 47 What Crypto can we get from Bitcoin?
A public transaction ledger Some economic stuff … People (good or bad) want money A bulletin board with a filter on what gets written there
The Model (Gledger, Gclock)-hybrid
(G)UC protocols
- Compatibility with standard crypto-protocols (+
composition theorem)
SLIDE 48 What Crypto can we get from Bitcoin?
A public transaction ledger Some economic stuff … People (good or bad) want money A bulletin board with a filter on what gets written there
The Model (Gledger, Gclock)-hybrid
(G)UC protocols
- Compatibility with standard crypto-protocols (+
composition theorem)
- Cryptographically as useful as having access
to (synchronous) stateful broadcast
SLIDE 49 What Crypto can we get from Bitcoin?
A public transaction ledger Some economic stuff … People (good or bad) want money A bulletin board with a filter on what gets written there
The Model (Gledger, Gclock)-hybrid
(G)UC protocols
- Compatibility with standard crypto-protocols (+
composition theorem)
- Cryptographically as useful as having access
to (synchronous) stateful broadcast “This cryptography has been around for a long time” JB 2016
SLIDE 50 What Crypto can we get from Bitcoin?
A public transaction ledger Some economic stuff … People (good or bad) want money A bulletin board with a filter on what gets written there
The Model (Gledger, Gclock)-hybrid
(G)UC protocols
- Compatibility with standard crypto-protocols (+
composition theorem)
- Cryptographically as useful as having access
to (synchronous) stateful broadcast “This cryptography has been around for a long time” JB 2016
SLIDE 51 Crypto On Blockchain
Outline
- The functionality offered by blockchains
- Leveraging Security Loss with Coins
… in Secure Function Evaluation (SFE)
- A formal cryptographic (UC) model for security proofs
SLIDE 52 Crypto On Blockchain
Outline
- The functionality offered by blockchains
- Leveraging Security Loss with Coins
… in Secure Function Evaluation (SFE)
- A formal cryptographic (UC) model for security proofs
SLIDE 53
Secure Function Evaluation (SFE)
Goal: Parties P1,…,Pn with inputs x1,…,xn wish to compute a function f(x1,…,xn) securely
SLIDE 54 Secure Function Evaluation (SFE)
F f
P1 P2 Pn
x1 x2 xn
f(x̅) f(x̅) f(x̅)=y
… Ideal World
SLIDE 55 Secure Function Evaluation (SFE)
F f
P1 P2 Pn
x1 x2 xn
f(x̅) f(x̅) f(x̅)=y
… Ideal World
P1 P2 Pn
… Real World
SLIDE 56 Secure Function Evaluation (SFE)
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 57 Secure Function Evaluation (SFE)
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 58 Secure Function Evaluation (SFE)
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 59 Secure Function Evaluation (SFE)
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 60
Fair SFE
In fair SFE: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output
SLIDE 61 Fair SFE
In fair SFE: 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 62 Fair SFE
In fair SFE: 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 63 Fair SFE
In fair SFE: 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 SFE is impossible against corrupted majorities [Cleve86]
✘ (Unfair)
SLIDE 64 Fair SFE
In fair SFE: 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 SFE is impossible against corrupted majorities [Cleve86]
Security against corrupted majorities Security with abort
=
✘ (Unfair)
SLIDE 65 Fair SFE
In fair SFE: 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 SFE is impossible against corrupted majorities [Cleve86]
Security against corrupted majorities Security with abort
=
✘ (Unfair)
Discounted security
SLIDE 66
SFE with Fair(ness) 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.
Idea [AndrychowiczDziembowskiMalinowskiMazurek14]: We can leverage unfairness with $$$
SLIDE 67 SFE with Fair(ness) 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. F f
P1 P2 Pn y
⊥ ⊥ ! " "
✘ (Unfair)
Idea [AndrychowiczDziembowskiMalinowskiMazurek14]: We can leverage unfairness with $$$
SLIDE 68 SFE with Fair(ness) 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. +
! ! # F f
P1 P2 Pn y
⊥ ⊥ ! " "
✘ (Unfair)
Idea [AndrychowiczDziembowskiMalinowskiMazurek14]: We can leverage unfairness with $$$
SLIDE 69 SFE with Fair(ness) 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. +
! ! #
✔ (“fair”)
F f
P1 P2 Pn y
⊥ ⊥ ! " "
✘ (Unfair)
Idea [AndrychowiczDziembowskiMalinowskiMazurek14]: We can leverage unfairness with $$$
SLIDE 70
SFE with Fair(ness) Comp.: Construction
[BentovKumaresan14,15]
Tools 1/2 : Authenticated Additive Secret Sharing
Pn P1
x=x1⊕ … ⊕ xn , (sk,vk)←KeyGen [x]1 = x1,Sigsk(x1),vk [x]n = xn,Sigsk(xn),vk
…
SLIDE 71 SFE with Fair(ness) Comp.: Construction
[BentovKumaresan14,15]
Tools 1/2 : Authenticated Additive Secret Sharing
Pn P1
x=x1⊕ … ⊕ xn , (sk,vk)←KeyGen [x]1 = x1,Sigsk(x1),vk [x]n = xn,Sigsk(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 72
SFE with Fair(ness) Comp.: Construction
[BentovKumaresan14,15]
Tools 2/2 : Claim and Refund Transactions
S transfers q coins to R such that
SLIDE 73 SFE with Fair(ness) Comp.: Construction
[BentovKumaresan14,15]
Tools 2/2 : Claim and Refund Transactions
S transfers q coins to R such that
SLIDE 74 SFE with Fair(ness) Comp.: Construction
[BentovKumaresan14,15]
Tools 2/2 : Claim and Refund Transactions
S transfers q coins to R such that time
SLIDE 75 SFE with Fair(ness) 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 76 SFE with Fair(ness) 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 77 SFE with Fair(ness) 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 78 SFE with Fair(ness) 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 79 SFE with Fair(ness) 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 80 SFE with Fair(ness) 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 81 SFE with Fair(ness) 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 in round ρij 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 82 SFE with Fair(ness) 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 in round ρij 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 83 SFE with Fair(ness) 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 84
[BentovKumaresan14,15]
Rethinking SFE w Fair(ness) Compensation
Time
SLIDE 85 [BentovKumaresan14,15]
Rethinking SFE w Fair(ness) Compensation
Time
Protocol Starts
SLIDE 86 [BentovKumaresan14,15]
Rethinking SFE w Fair(ness) Compensation
Time
Protocol Starts Sharing is Output, Committed transactions
Seconds
SLIDE 87 [BentovKumaresan14,15]
Rethinking SFE w Fair(ness) Compensation
Time
Protocol Starts Sharing is Output, Committed transactions
Seconds
1 hour
Start reclaiming transactions
SLIDE 88 [BentovKumaresan14,15]
Rethinking SFE w Fair(ness) Compensation
Time
Protocol Starts Sharing is Output, Committed transactions
Seconds
1 hour
Start reclaiming transactions
- utput or compensation is settled
several hours
SLIDE 89 [BentovKumaresan14,15]
Rethinking SFE w Fair(ness) 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 90 [BentovKumaresan14,15]
Rethinking SFE w Fair(ness) 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 91 [BentovKumaresan14,15]
Rethinking SFE w Fair(ness) 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 92 [BentovKumaresan14,15]
Rethinking SFE w Fair(ness) 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 93 [BentovKumaresan14,15]
Rethinking SFE w Fair(ness) 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 94 [BentovKumaresan14,15]
Rethinking SFE w Fair(ness) 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 95 Rethinking SFE w Fair(ness) 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 96 Rethinking SFE w Fair(ness) 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 97 Rethinking SFE w Fair(ness) 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 98 Rethinking SFE w Fair(ness) 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 99
SFE with Robust(ness) Compensation
SLIDE 100
SFE with Robust(ness) Compensation
Fair SFE: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output
SLIDE 101
SFE with Robust(ness) Compensation
Fair SFE: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output 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
SLIDE 102
SFE with Robust(ness) Compensation
Fair SFE: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output 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 robust (fast …)
SLIDE 103
SFE with Robust(ness) Compensation
Fair SFE: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output 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 robust
How can we get robustness?
(fast …)
SLIDE 104
SFE with Robust Compen. : Construction
S transfers q coins to R such that
Tools 1/3 : Special Transaction
SLIDE 105 SFE with Robust Compen. : Construction
S transfers q coins to R such that
- Time restriction (τ-, τ+)
Tools 1/3 : Special Transaction
SLIDE 106 SFE with Robust Compen. : Construction
S transfers q coins to R such that time
- Time restriction (τ-, τ+)
Tools 1/3 : Special Transaction
SLIDE 107 SFE 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 108 SFE 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 109 SFE 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 110 SFE 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 111 SFE 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 112 SFE with Robust Compen. : Construction
Tools 2/3 : Semi-honest SFE
An SFE protocol which is secure when parties follow their instructions
SLIDE 113 SFE with Robust Compen. : Construction
Tools 2/3 : Semi-honest SFE
An SFE 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 114 SFE with Robust Compen. : Construction
Tools 2/3 : Semi-honest SFE
An SFE 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 115 SFE with Robust Compen. : Construction
Tools 2/3 : Semi-honest SFE
An SFE 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 116 SFE with Robust Compen. : Construction
Tools 2/3 : Semi-honest SFE
An SFE 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 117 SFE with Robust Compen. : Construction
Tools 2/3 : Semi-honest SFE
An SFE 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 118 SFE with Robust Compen. : Construction
Tools 2/3 : Semi-honest SFE
An SFE protocol which is secure when parties follow their instructions
Assuming a public key infrastructure (commitments/encryption/ signatures) there exists a semi-honest SFE protocol π for every function which
- Uses only public communication
- Tolerates arbitrary many semi-honest parties
- Terminates in constant rounds
SLIDE 119
Compile a semi-honest SFE protocol π into (malicious) secure
SFE with Robust Compen. : Construction
Tools 3/3 : The GMW Compiler
SLIDE 120 Compile a semi-honest SFE protocol π into (malicious) secure
SFE 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 121 Compile a semi-honest SFE protocol π into (malicious) secure
SFE 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 122
SFE with Robust Compen. : Construction
Idea: Use “GMW”-like compiler on the Ledger
SLIDE 123 SFE 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 124 SFE 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 125 SFE 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 126 SFE 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’:
SFE with Robust Compensation
SLIDE 127 SFE 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’:
SFE with Robust Compensation
SLIDE 128 SFE 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’:
SFE with Robust Compensation
SLIDE 129 SFE 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·ρπ + 1 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’:
SFE with Robust Compensation
SLIDE 130 SFE 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·ρπ + 1 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’:
SFE with Robust Compensation
SLIDE 131 SFE 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·ρπ + 1 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’:
SFE with Robust Compensation
SLIDE 132 SFE 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 133 SFE 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 134 SFE 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 135 SFE 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 136 SFE 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·ρπ + 1 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 2 … ρπ + 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’:
SFE with Robust Compensation
SLIDE 137 SFE 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·ρπ + 1 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 2 … ρπ + 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’:
SFE with Robust Compensation
SLIDE 138 SFE 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 139 Crypto On Blockchain
Outline
- The functionality offered by blockchains
- Leveraging Security Loss with Coins
… in Secure Function Evaluation (SFE)
- A formal cryptographic (UC) model for security proofs
SLIDE 140 A Formal Model: GUC
P1 P2 Pn
… Ideal World F f
P1 P2 Pn
… Real World
≈
π1(x1) π2(x2) πn(xn)
SLIDE 141 A Formal Model: GUC
P1 P2 Pn
… Ideal World F f
P1 P2 Pn
… Real World
≈
π1(x1) π2(x2) πn(xn)
GLedger GLedger
SLIDE 142 A Formal Model: GUC
P1 P2 Pn
… Ideal World F f
P1 P2 Pn
… Real World
≈
π1(x1) π2(x2) πn(xn)
GLedger GLedger
???
SLIDE 143 A Formal Model: GUC
P1 P2 Pn
… Ideal World F f
P1 P2 Pn
… Real World
≈
π1(x1) π2(x2) πn(xn)
GLedger GLedger
???
Should capture all properties we want from π
SLIDE 144 W(F f)
A Formal Model: GUC
P1 P2 Pn
… Ideal World F f
P1 P2 Pn
… Real World
≈
π1(x1) π2(x2) πn(xn)
GLedger GLedger
???
Should capture all properties we want from π
SLIDE 145
Benefits of this Modeling
SLIDE 146 Benefits of this Modeling
- A single abstraction of the functionality offered by
cryptocurrencies
- Advanced transactions correspond to an advanced
validation predicate
- A definition of fair compensation as a (UC) functionality-
wrapper forces us to be precise
- An explicit formation of synchrony with a single global
clock (capturing what protocols assume in reality).
- Compatibility with standard (formal) analysis of crypto
protocols
- A (universal) composition theorem
SLIDE 147 W(F f)
A Formal Model: GUC
P1 P2 Pn
… Ideal World F f
P1 P2 Pn
… Real World
≈
π1(x1) π2(x2) πn(xn)
GLedger GLedger
???
SLIDE 148 W(F f)
A Formal Model: GUC
P1 P2 Pn
… Ideal World F f
P1 P2 Pn
… Real World
≈
π1(x1) π2(x2) πn(xn)
GLedger GLedger
???
SLIDE 149 SFE with Robust Compen. : Functionality
A wrapper functionality W(F f) with three predicates:
SLIDE 150 SFE with Robust Compen. : Functionality
Idea: The predicates are used to filter the adversarial influence
- QInit(State,Walleti) = True iff the Walleti has enough
funds
- QDlvr(State, Walleti) = True iff it is OK to deliver to Pi
- E.g., if Pi does not “owe” money
- QAbrt(State, Walleti) = True iff it is OK for Pi to abort
- E.g., if Pi has an increase of funds
A wrapper functionality W(F f) with three predicates:
SLIDE 151 SFE with Robust Compen. : Functionality
A wrapper functionality W(F f) with three predicates:
Phase 1: Resource Allocation
Gledger F f W(F f)
SLIDE 152 SFE with Robust Compen. : Functionality
A wrapper functionality W(F f) with three predicates:
Phase 1: Resource Allocation
Pi
“allocate”
Gledger F f W(F f)
SLIDE 153 SFE with Robust Compen. : Functionality
A wrapper functionality W(F f) with three predicates:
Phase 1: Resource Allocation
Pi
“allocate” “ a l l
a t e P
i
”
Gledger F f W(F f)
SLIDE 154 SFE with Robust Compen. : Functionality
A wrapper functionality W(F f) with three predicates:
Phase 1: Resource Allocation
Pi
“allocate” “ a l l
a t e P
i
” “ r ”
Gledger F f W(F f)
SLIDE 155 SFE with Robust Compen. : Functionality
A wrapper functionality W(F f) with three predicates:
Phase 1: Resource Allocation
Pi
“allocate” “ a l l
a t e P
i
” “ r ”
Create (PKi, SKi) = Gen(r,1k)
Gledger F f W(F f)
SLIDE 156 SFE with Robust Compen. : Functionality
A wrapper functionality W(F f) with three predicates:
Phase 1: Resource Allocation
Pi
“allocate” “ a l l
a t e P
i
” “ r ”
Create (PKi, SKi) = Gen(r,1k) PKi
Gledger F f W(F f)
SLIDE 157 SFE with Robust Compen. : Functionality
A wrapper functionality W(F f) with three predicates:
Phase 1: Resource Allocation
Pi
“allocate” “ a l l
a t e P
i
” “ r ”
Create (PKi, SKi) = Gen(r,1k) PKi
Gledger
m,F m
F f W(F f)
SLIDE 158 SFE with Robust Compen. : Functionality
A wrapper functionality W(F f) with three predicates:
Phase 1: Resource Allocation
Pi
“allocate” “ a l l
a t e P
i
” “ r ”
Create (PKi, SKi) = Gen(r,1k) PKi
Gledger
m,F m m for Sim m
F f W(F f)
SLIDE 159 SFE with Robust Compen. : Functionality
F f
Phase 2: Input
Pi
m,F m m for Sim m
Gledger A wrapper functionality W(F f) with three predicates:
W(F f)
SLIDE 160 SFE with Robust Compen. : Functionality
F f
Phase 2: Input
Pi
“Input, x” m,F m m for Sim m
Gledger A wrapper functionality W(F f) with three predicates:
W(F f)
SLIDE 161 SFE with Robust Compen. : Functionality
F f
Phase 2: Input
Pi
“Input, x” m,F m
getState
m for Sim m
Gledger A wrapper functionality W(F f) with three predicates:
W(F f)
SLIDE 162 SFE with Robust Compen. : Functionality
F f
Phase 2: Input
Pi
“Input, x” m,F m
getState State
m for Sim m
Gledger A wrapper functionality W(F f) with three predicates:
W(F f)
SLIDE 163 SFE with Robust Compen. : Functionality
F f
Phase 2: Input
Pi
“Input, x” m,F m
getState State
x
QInit(State,PKi) Yes No
m for Sim m
Gledger A wrapper functionality W(F f) with three predicates:
W(F f)
SLIDE 164 SFE with Robust Compen. : Functionality
F f
Phase 2: Input
Pi
“Input, x” m,F m
getState State
x
QInit(State,PKi) Yes No
x m for Sim m
Gledger A wrapper functionality W(F f) with three predicates:
W(F f)
SLIDE 165 SFE with Robust Compen. : Functionality
F f
Phase 2: Input
Pi
“Input, x” m,F m
getState State
x
QInit(State,PKi) Yes No
x m for Sim m
Gledger A wrapper functionality W(F f) with three predicates:
W(F f)
SLIDE 166 SFE with Robust Compen. : Functionality
Phase 3: Output
Pi
A wrapper functionality WP1,…,Pn(F f) with three predicates:
F f Gledger W(F f)
m for Sim m m,F m
SLIDE 167 SFE with Robust Compen. : Functionality
Phase 3: Output
Pi
Deliver, (f(x1),…,f(xn))
A wrapper functionality WP1,…,Pn(F f) with three predicates:
F f Gledger W(F f)
m for Sim m m,F m
SLIDE 168 SFE with Robust Compen. : Functionality
Phase 3: Output
Pi
Deliver, (f(x1),…,f(xn)) Ready for FairDeliver + Corrupt outputs
A wrapper functionality WP1,…,Pn(F f) with three predicates:
F f Gledger W(F f)
m for Sim m m,F m
SLIDE 169 SFE with Robust Compen. : Functionality
Phase 3: Output
Pi
Deliver, (f(x1),…,f(xn)) Ready for FairDeliver + Corrupt outputs
A wrapper functionality WP1,…,Pn(F f) with three predicates:
F f Gledger
Deliver/Abort Pi
W(F f)
m for Sim m m,F m
SLIDE 170 getState State
SFE with Robust Compen. : Functionality
Phase 3: Output
Pi
Deliver, (f(x1),…,f(xn)) Ready for FairDeliver + Corrupt outputs
A wrapper functionality WP1,…,Pn(F f) with three predicates:
F f Gledger
Deliver/Abort Pi
W(F f)
m for Sim m m,F m
SLIDE 171 getState State
SFE with Robust Compen. : Functionality
Phase 3: Output
Pi
Deliver, (f(x1),…,f(xn)) Ready for FairDeliver + Corrupt outputs
A wrapper functionality WP1,…,Pn(F f) with three predicates:
F f Gledger
Deliver/Abort Pi
W(F f)
The adversary can deliver to Pi only if QDlvr(State, Pi)=True The adversary can make Pi abort only if QAbrt(State, Pi)=True
m for Sim m m,F m
SLIDE 172 getState State
SFE with Robust Compen. : Functionality
Phase 3: Output
Pi
Deliver, (f(x1),…,f(xn)) Ready for FairDeliver + Corrupt outputs
A wrapper functionality WP1,…,Pn(F f) with three predicates:
F f Gledger
Deliver/Abort Pi
W(F f)
The adversary can deliver to Pi only if QDlvr(State, Pi)=True The adversary can make Pi abort only if QAbrt(State, Pi)=True
m for Sim m m,F m ? f(xi)/⊥
SLIDE 173 W(F f)
A Formal Model: GUC
P1 P2 Pn
… Ideal World F f
P1 P2 Pn
… Real World
≈
π1(x1) π2(x2) πn(xn)
GLedger GLedger
???
SLIDE 174
Take Away Message and Open Directions
SLIDE 175 Take Away Message and Open Directions
- Bitcoin opens new directions for cryptographic models
- Adding a reward/punishment mechanism restricts the
set of likely attacks
- Limitations of crypto should be reconsidered
(Impossibilities/Efficiencies)
- The choice of the model makes a difference when
suggesting a solution
- Safe strategy: Rectify the cryptographic model (Bonus:
compatibility)
SLIDE 176 Take Away Message and Open Directions
- Bitcoin opens new directions for cryptographic models
- Adding a reward/punishment mechanism restricts the
set of likely attacks
- Limitations of crypto should be reconsidered
(Impossibilities/Efficiencies)
- The choice of the model makes a difference when
suggesting a solution
- Safe strategy: Rectify the cryptographic model (Bonus:
compatibility)
Future directions
- A game theoretic analysis might allow us to improve
existing results
- What more can we get from Bitcoin?
- The right model for exploring its rational aspects?