Fair Computation using Enclaves and Shared Ledger Rohit Sinha , Siva - - PowerPoint PPT Presentation

fair computation
SMART_READER_LITE
LIVE PREVIEW

Fair Computation using Enclaves and Shared Ledger Rohit Sinha , Siva - - PowerPoint PPT Presentation

Fair Computation using Enclaves and Shared Ledger Rohit Sinha , Siva Gaddam, and Ranjit Kumaresan Open Source Enclaves Workshop 2019 Transparent Mint Transparent Mint Alice Mint Transparent Mint Merchant ID Date Amount Alice 2014-06-03


slide-1
SLIDE 1

Fair Computation

using Enclaves and Shared Ledger

Rohit Sinha, Siva Gaddam, and Ranjit Kumaresan

Open Source Enclaves Workshop 2019

slide-2
SLIDE 2

Transparent Mint

slide-3
SLIDE 3

Transparent Mint

Alice Mint

slide-4
SLIDE 4

Transparent Mint

Merchant ID Date Amount 52544965 2014-06-03
 13:37 PM $23.00 … … … 12144989 2014-06-29
 20:49 PM $48.12 Merchant ID Category 52544965 Restaurants … … 12144989 Gas Stations

Mint’s 
 Proprietary Data User’s TX Data

Alice Mint

slide-5
SLIDE 5

Transparent Mint

Merchant ID Date Amount 52544965 2014-06-03
 13:37 PM $23.00 … … … 12144989 2014-06-29
 20:49 PM $48.12 Merchant ID Category 52544965 Restaurants … … 12144989 Gas Stations

Mint’s 
 Proprietary Data User’s TX Data

Compute
 Provider

Report

Alice Mint

slide-6
SLIDE 6

Transparent Mint

Merchant ID Date Amount 52544965 2014-06-03
 13:37 PM $23.00 … … … 12144989 2014-06-29
 20:49 PM $48.12 Merchant ID Category 52544965 Restaurants … … 12144989 Gas Stations

Mint’s 
 Proprietary Data User’s TX Data

Compute
 Provider

Report

Alice Mint

slide-7
SLIDE 7

Transparent Mint

Merchant ID Date Amount 52544965 2014-06-03
 13:37 PM $23.00 … … … 12144989 2014-06-29
 20:49 PM $48.12 Merchant ID Category 52544965 Restaurants … … 12144989 Gas Stations

Mint’s 
 Proprietary Data User’s TX Data

Compute
 Provider

Report

Alice Bank A Bank B Mint

slide-8
SLIDE 8

Towards Transparency via Privacy and Fairness

Compute
 Provider

Report

Alice Bank A Bank B Mint

slide-9
SLIDE 9

Towards Transparency via Privacy and Fairness

Compute
 Provider

Report

Alice Bank A Bank B Mint

Privacy: Only reveal f(Alice_txs, Mint_db)
 


slide-10
SLIDE 10

Towards Transparency via Privacy and Fairness

Compute
 Provider

Report

Alice Bank A Bank B Mint

Privacy: Only reveal f(Alice_txs, Mint_db)
 
 Fairness: if anyone gets the output, then so must all honest parties


slide-11
SLIDE 11

Towards Transparency via Privacy and Fairness

Compute
 Provider

Report

Alice Bank A Bank B Mint

Privacy: Only reveal f(Alice_txs, Mint_db)
 
 Fairness: if anyone gets the output, then so must all honest parties


Impossible in Malicious Setting [Cleve86]

slide-12
SLIDE 12

Fair Computation ➔ Fair Reconstruction

slide-13
SLIDE 13

Fair Computation ➔ Fair Reconstruction

TEE

{ }

k2

{ }

k1

{ }

ko

(Unfair) Secure Computation

slide-14
SLIDE 14

Fair Computation ➔ Fair Reconstruction

TEE

{ }

k2

{ }

k1

{ }

ko

(Unfair) Secure Computation

Systems based on Intel SGX
 VC3 for Map-Reduce [SCF+15] Opaque for Spark [ZDB+17] ObliDB [EZ17], StealthDB [GVG17] for SQL

slide-15
SLIDE 15

Fair Computation ➔ Fair Reconstruction

TEE

{ }

k2

{ }

k1

{ }

ko

(Unfair) Secure Computation

Systems based on Intel SGX
 VC3 for Map-Reduce [SCF+15] Opaque for Spark [ZDB+17] ObliDB [EZ17], StealthDB [GVG17] for SQL

slide-16
SLIDE 16

Fair Computation ➔ Fair Reconstruction

TEE

{ }

k2

{ }

k1

{ }

ko

(Unfair) Secure Computation Fair Reconstruction

Ledger

TEE TEE

ko ko ko

Systems based on Intel SGX
 VC3 for Map-Reduce [SCF+15] Opaque for Spark [ZDB+17] ObliDB [EZ17], StealthDB [GVG17] for SQL

slide-17
SLIDE 17

Fair Computation ➔ Fair Reconstruction

TEE

{ }

k2

{ }

k1

{ }

ko

(Unfair) Secure Computation Fair Reconstruction

Ledger

TEE TEE

ko ko ko

Systems based on Intel SGX
 VC3 for Map-Reduce [SCF+15] Opaque for Spark [ZDB+17] ObliDB [EZ17], StealthDB [GVG17] for SQL

Fair n-party broadcast using 
 t < n TEE nodes and a shared ledger
 (corruption threshold t)

slide-18
SLIDE 18

Fair Computation ➔ Fair Reconstruction

TEE

{ }

k2

{ }

k1

{ }

ko

(Unfair) Secure Computation Fair Reconstruction

Ledger

TEE TEE

ko ko ko

Systems based on Intel SGX
 VC3 for Map-Reduce [SCF+15] Opaque for Spark [ZDB+17] ObliDB [EZ17], StealthDB [GVG17] for SQL

Fair n-party broadcast using 
 t < n TEE nodes and a shared ledger
 (corruption threshold t) [CGJ+17]: all n parties need TEE

slide-19
SLIDE 19

Fair Collaborative Computation

slide-20
SLIDE 20

Fair Collaborative Computation

Collective Revenue Capture Fair broadcast of model

ML 
 train

TEE

slide-21
SLIDE 21

Fair Collaborative Computation

ML
 train ML
 infer

Crowdsourced Machine Learning
 Fair exchange of data and prediction prediction data Collective Revenue Capture Fair broadcast of model

ML 
 train

TEE TEE

slide-22
SLIDE 22

2-Party Fair Computation: Strawman

slide-23
SLIDE 23

2-Party Fair Computation: Strawman

TEE

slide-24
SLIDE 24

2-Party Fair Computation: Strawman

TEE

{ }

  • ut

{ }

  • ut
slide-25
SLIDE 25

2-Party Fair Computation: Strawman

TEE

Enc(pk_Alice, ky)

{ }

  • ut

{ }

  • ut
slide-26
SLIDE 26

2-Party Fair Computation: Strawman

TEE

Enc(pk_Alice, ky)

{ }

  • ut

{ }

  • ut
slide-27
SLIDE 27

2-Party Fair Computation: Strawman

TEE

Enc(pk_Alice, ky)

{ }

  • ut

{ }

  • ut
slide-28
SLIDE 28

2-Party Fair Computation: Strawman

TEE

Enc(pk_Alice, ky)

{ }

  • ut

{ }

  • ut
slide-29
SLIDE 29

Bulletin Board Abstraction [CGJ+17]

slide-30
SLIDE 30

Bulletin Board Abstraction

Ledger

[CGJ+17]

slide-31
SLIDE 31

Bulletin Board Abstraction

  • post(x) returns (idx, σ)

Ledger

[CGJ+17]

slide-32
SLIDE 32

Bulletin Board Abstraction

  • post(x) returns (idx, σ)

Ledger

[CGJ+17]

x

σ

slide-33
SLIDE 33

Bulletin Board Abstraction

  • post(x) returns (idx, σ)
  • getContent(idx) returns (x, σ)

Ledger

[CGJ+17]

x

σ

slide-34
SLIDE 34

Bulletin Board Abstraction

  • post(x) returns (idx, σ)
  • getContent(idx) returns (x, σ)
  • getHeight() returns (idx)

Ledger

[CGJ+17]

x

σ

slide-35
SLIDE 35

2-Party Fair Computation

TEE Ledger

slide-36
SLIDE 36

2-Party Fair Computation

TEE Ledger

{ }

  • ut

{ }

  • ut
slide-37
SLIDE 37

2-Party Fair Computation

TEE Ledger

{ }

  • ut

{ }

  • ut
slide-38
SLIDE 38

2-Party Fair Computation

TEE Ledger

Enc(pk_Alice, ky) ||

{ }

  • ut

{ }

  • ut
slide-39
SLIDE 39

2-Party Fair Computation

TEE Ledger

Enc(pk_Alice, ky) ||

{ }

  • ut

{ }

  • ut
slide-40
SLIDE 40

2-Party Fair Computation

TEE Ledger

Enc(pk_Alice, ky) ||

σ

{ }

  • ut

{ }

  • ut
slide-41
SLIDE 41

2-Party Fair Computation

TEE Ledger

Enc(pk_Alice, ky) ||

σ

{ }

  • ut

{ }

  • ut
slide-42
SLIDE 42

n-Party Fair Broadcast: Strawman

TEE Ledger

slide-43
SLIDE 43

n-Party Fair Broadcast: Strawman

TEE Ledger

slide-44
SLIDE 44

n-Party Fair Broadcast: Strawman

TEE Ledger

slide-45
SLIDE 45

n-Party Fair Broadcast: Strawman

TEE Ledger

Enc(pk_Alice, ky) || Enc(pk_BankA, ky) || Enc(pk_BankA, ky)

slide-46
SLIDE 46

n-Party Fair Broadcast: Strawman

TEE Ledger

Enc(pk_Alice, ky) || Enc(pk_BankA, ky) || Enc(pk_BankA, ky)

slide-47
SLIDE 47

n-Party Fair Broadcast: Strawman

TEE Ledger

Enc(pk_Alice, ky) || Enc(pk_BankA, ky) || Enc(pk_BankA, ky)

slide-48
SLIDE 48

n-Party Fair Broadcast: Strawman

TEE Ledger

Enc(pk_Alice, ky) || Enc(pk_BankA, ky) || Enc(pk_BankA, ky) Enc(pk_BankA, ky)

slide-49
SLIDE 49

n-Party Fair Broadcast

slide-50
SLIDE 50

{ }

  • ut

n-Party Fair Broadcast

slide-51
SLIDE 51

{ }

  • ut

n-Party Fair Broadcast

slide-52
SLIDE 52

Ledger

{ }

  • ut

n-Party Fair Broadcast

slide-53
SLIDE 53

Ledger

{ }

  • ut

n-Party Fair Broadcast

slide-54
SLIDE 54

Ledger

{ }

  • ut

n-Party Fair Broadcast

slide-55
SLIDE 55

Ledger

{ }

  • ut

n-Party Fair Broadcast

slide-56
SLIDE 56

Ledger

{ }

  • ut

n-Party Fair Broadcast

slide-57
SLIDE 57

Ledger

{ }

  • ut

n-Party Fair Broadcast

slide-58
SLIDE 58

Ledger

{ }

  • ut

n-Party Fair Broadcast

slide-59
SLIDE 59

Ledger

{ }

  • ut

n-Party Fair Broadcast

slide-60
SLIDE 60

Ledger

= Epk_Alice(ky)

{ }

  • ut

n-Party Fair Broadcast

slide-61
SLIDE 61

Ledger

= Epk_Alice(ky)

{ }

  • ut

n-Party Fair Broadcast

slide-62
SLIDE 62

Ledger

= Epk_Alice(ky)

{ }

  • ut

n-Party Fair Broadcast

slide-63
SLIDE 63

Ledger

= Epk_Alice(ky)

{ }

  • ut

n-Party Fair Broadcast

slide-64
SLIDE 64

Ledger

= Epk_Alice(ky)

{ }

  • ut

n-Party Fair Broadcast

slide-65
SLIDE 65

Q/A

https://eprint.iacr.org/2019/178