Cryptography on the Blockchain Vassilis Zikas RPI IACR Summer - - PowerPoint PPT Presentation

cryptography on the blockchain
SMART_READER_LITE
LIVE PREVIEW

Cryptography on the Blockchain Vassilis Zikas RPI IACR Summer - - PowerPoint PPT Presentation

Cryptography on the Blockchain Vassilis Zikas RPI IACR Summer School on Blockchain Techs Aggelos Kiayias, Hong-Shen Zhou, and Vassilis Zikas, Fair and Robust Multi-Party Computation using a Global Transaction Ledger, EUROCRYPT 2016. Bitcoin


slide-1
SLIDE 1

Cryptography

  • n the Blockchain

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
SLIDE 2

Bitcoin

slide-3
SLIDE 3

What is bitcoin and how does it work?

Bitcoin

slide-4
SLIDE 4

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

(in restricted models)

Bitcoin

slide-5
SLIDE 5

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

(in restricted models)

What do we get from it?

Bitcoin

slide-6
SLIDE 6

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

(in restricted models)

What do we get from it?

Bitcoin

slide-7
SLIDE 7

What Crypto can get from Bitcoin?

slide-8
SLIDE 8

What Crypto can get from Bitcoin?

In this talk “Bitcoin = Ledger-based cryptocurrency”

slide-9
SLIDE 9

What Crypto can get from Bitcoin?

In this talk “Bitcoin = Ledger-based cryptocurrency” A public transaction ledger Some economic stuff …

slide-10
SLIDE 10

What Crypto can get from Bitcoin?

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

slide-11
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
SLIDE 12

The Public Transaction Ledger

“What is exactly the problem that bitcoin solves?” AK, 2016

slide-13
SLIDE 13

The Public Transaction Ledger

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

  • f the sequence of transactions

“What is exactly the problem that bitcoin solves?” AK, 2016

slide-14
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
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
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
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
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
SLIDE 19

The Public Transaction Ledger

State St

Gledger

slide-20
SLIDE 20

The Public Transaction Ledger

GetState

“State”

State St

Gledger

slide-21
SLIDE 21

The Public Transaction Ledger

GetState

“State”

State St

(Submit, x)

Gledger

slide-22
SLIDE 22

The Public Transaction Ledger

GetState

“State”

State St||x

(Submit, x)

Gledger

slide-23
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
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
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
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
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
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
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
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
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
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
SLIDE 33

The Public Transaction Ledger & Time

Gledger

Validate(.)

GetState

“State”

State

No Yes

Buffer

Can reorder the recently inserted transactions

slide-34
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

  • Time restriction τ
slide-74
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

  • Time restriction τ
slide-75
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

  • Time restriction τ
slide-76
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).

  • Time restriction τ
slide-77
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
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
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
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
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
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
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
SLIDE 84

[BentovKumaresan14,15]

Rethinking SFE w Fair(ness) Compensation

Time

slide-85
SLIDE 85

[BentovKumaresan14,15]

Rethinking SFE w Fair(ness) Compensation

Time

Protocol Starts

slide-86
SLIDE 86

[BentovKumaresan14,15]

Rethinking SFE w Fair(ness) Compensation

Time

Protocol Starts Sharing is Output, Committed transactions

Seconds

slide-87
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
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
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
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
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
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
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
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
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
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
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
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
SLIDE 99

SFE with Robust(ness) Compensation

slide-100
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
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
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
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
SLIDE 104

SFE with Robust Compen. : Construction

S transfers q coins to R such that

Tools 1/3 : Special Transaction

slide-105
SLIDE 105

SFE with Robust Compen. : Construction

S transfers q coins to R such that

  • Time restriction (τ-, τ+)

Tools 1/3 : Special Transaction

slide-106
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
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
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
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
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
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
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
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
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
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
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
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
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
SLIDE 119

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

SFE with Robust Compen. : Construction

Tools 3/3 : The GMW Compiler

slide-120
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
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)

  • Privacy: The parties see

the following:

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

the parties are indeed following π

  • Else abort

Tools 3/3 : The GMW Compiler

slide-122
SLIDE 122

SFE with Robust Compen. : Construction

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

slide-123
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
SLIDE 145

Benefits of this Modeling

slide-146
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
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
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
SLIDE 149

SFE with Robust Compen. : Functionality

A wrapper functionality W(F f) with three predicates:

  • (QInit, QDlvr, QAbrt)
slide-150
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:

  • (QInit, QDlvr, QAbrt)
slide-151
SLIDE 151

SFE with Robust Compen. : Functionality

A wrapper functionality W(F f) with three predicates:

  • (QInit, QDlvr, QAbrt)

Phase 1: Resource Allocation

Gledger F f W(F f)

slide-152
SLIDE 152

SFE with Robust Compen. : Functionality

A wrapper functionality W(F f) with three predicates:

  • (QInit, QDlvr, QAbrt)

Phase 1: Resource Allocation

Pi

“allocate”

Gledger F f W(F f)

slide-153
SLIDE 153

SFE with Robust Compen. : Functionality

A wrapper functionality W(F f) with three predicates:

  • (QInit, QDlvr, QAbrt)

Phase 1: Resource Allocation

Pi

“allocate” “ a l l

  • c

a t e P

i

Gledger F f W(F f)

slide-154
SLIDE 154

SFE with Robust Compen. : Functionality

A wrapper functionality W(F f) with three predicates:

  • (QInit, QDlvr, QAbrt)

Phase 1: Resource Allocation

Pi

“allocate” “ a l l

  • c

a t e P

i

” “ r ”

Gledger F f W(F f)

slide-155
SLIDE 155

SFE with Robust Compen. : Functionality

A wrapper functionality W(F f) with three predicates:

  • (QInit, QDlvr, QAbrt)

Phase 1: Resource Allocation

Pi

“allocate” “ a l l

  • c

a t e P

i

” “ r ”

Create (PKi, SKi) = Gen(r,1k)

Gledger F f W(F f)

slide-156
SLIDE 156

SFE with Robust Compen. : Functionality

A wrapper functionality W(F f) with three predicates:

  • (QInit, QDlvr, QAbrt)

Phase 1: Resource Allocation

Pi

“allocate” “ a l l

  • c

a t e P

i

” “ r ”

Create (PKi, SKi) = Gen(r,1k) PKi

Gledger F f W(F f)

slide-157
SLIDE 157

SFE with Robust Compen. : Functionality

A wrapper functionality W(F f) with three predicates:

  • (QInit, QDlvr, QAbrt)

Phase 1: Resource Allocation

Pi

“allocate” “ a l l

  • c

a t e P

i

” “ r ”

Create (PKi, SKi) = Gen(r,1k) PKi

Gledger

m,F m

F f W(F f)

slide-158
SLIDE 158

SFE with Robust Compen. : Functionality

A wrapper functionality W(F f) with three predicates:

  • (QInit, QDlvr, QAbrt)

Phase 1: Resource Allocation

Pi

“allocate” “ a l l

  • c

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
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:

  • (QInit, QDlvr, QAbrt)

W(F f)

slide-160
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:

  • (QInit, QDlvr, QAbrt)

W(F f)

slide-161
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:

  • (QInit, QDlvr, QAbrt)

W(F f)

slide-162
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:

  • (QInit, QDlvr, QAbrt)

W(F f)

slide-163
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:

  • (QInit, QDlvr, QAbrt)

W(F f)

slide-164
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:

  • (QInit, QDlvr, QAbrt)

W(F f)

slide-165
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:

  • (QInit, QDlvr, QAbrt)

W(F f)

slide-166
SLIDE 166

SFE with Robust Compen. : Functionality

Phase 3: Output

Pi

A wrapper functionality WP1,…,Pn(F f) with three predicates:

  • (QInit, QDlvr, QAbrt)

F f Gledger W(F f)

m for Sim m m,F m

slide-167
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:

  • (QInit, QDlvr, QAbrt)

F f Gledger W(F f)

m for Sim m m,F m

slide-168
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:

  • (QInit, QDlvr, QAbrt)

F f Gledger W(F f)

m for Sim m m,F m

slide-169
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:

  • (QInit, QDlvr, QAbrt)

F f Gledger

Deliver/Abort Pi

W(F f)

m for Sim m m,F m

slide-170
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:

  • (QInit, QDlvr, QAbrt)

F f Gledger

Deliver/Abort Pi

W(F f)

m for Sim m m,F m

slide-171
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:

  • (QInit, QDlvr, QAbrt)

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
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:

  • (QInit, QDlvr, QAbrt)

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
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
SLIDE 174

Take Away Message and Open Directions

slide-175
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
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?