blockchain and secure computation
play

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

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


  1. The Public Transaction Ledger [KZZ16] t G ledger ? Blockify(.) time? “State” (Submit, x) x Validate(.) Buffer State x 1 ,x 2, … x = Yes No π (x 1 ,…) “State” x (Permute, π ) GetState Can reorder the recently inserted transactions

  2. The Public Transaction Ledger [KZZ16] t G ledger ? Blockify(.) time? “State” x (Submit, x) x Validate(.) Buffer State x 1 ,x 2, … x = Yes No π (x 1 ,…) “State” x (Permute, π ) GetState Can reorder the recently inserted transactions

  3. The Public Transaction Ledger [KZZ16] t G ledger ? Blockify(.) time? “State” x (Submit, x) x Validate(.) Buffer State x Yes No “State” x (Permute, π ) GetState Can reorder the recently inserted transactions

  4. The Public Transaction Ledger [KZZ16] t G ledger ? Blockify(.) time? (B, t) “State” x (Submit, x) x Validate(.) Buffer State x Yes No “State” x (Permute, π ) GetState Can reorder the recently inserted transactions

  5. The Public Transaction Ledger [KZZ16] t G ledger ? Blockify(.) time? (B, t) “State” x (Submit, x) x Validate(.) Buffer State x Yes No “State” x (Permute, π ) GetState More adversarial interference to have an accurate abstraction Can reorder the recently [BadetscherMaurerTschudiZikas17] inserted transactions (Also a construction from the Bitcoin network/protocol)

  6. What Crypto can get from Bitcoin? Use what is on A public this ledger transaction ledger A bulletin board with a filter on what gets written there

  7. What Crypto can get from Bitcoin? Use what is on A public this ledger transaction ledger A bulletin board with a filter on what gets written there How can we use it?

  8. A simple e-voting protocol

  9. A simple e-voting protocol Tools 1/2: Threshold Encryption • n-servers S 1 ,…,S n • Each S i has secret key (share) sk i • There is one public key pk

  10. A simple e-voting protocol Tools 1/2: Threshold Encryption • n-servers S 1 ,…,S n • Each S i has secret key (share) sk i • There is one public key pk • Encryption: Everyone with pk can compute an encryption of message m, i.e., c=Enc pk (m) • Decryption: All n servers together can decrypt, i.e., Dec sk1,…skn (c)=m • Threshold: No n-1 servers can learn any information from the encryption

  11. A simple e-voting protocol Tool 2/2: Additive Homomorphic Encryption Given ciphertexts c 1 =Enc pk (m 1 ) and c 2 =Enc pk (m 2 ) we can compute encryption Enc pk (m 1 +m 2 )

  12. A simple e-voting protocol Tool 2/2: Additive Homomorphic Encryption Same encryption key Given ciphertexts c 1 =Enc pk (m 1 ) and c 2 =Enc pk (m 2 ) we can compute encryption Enc pk (m 1 +m 2 )

  13. A simple e-voting protocol … S 1 S n Setup • n electoral authorities S 1 ,…,S n with key shares sk 1 ,…,sk n and pk. Bulletin Board To vote • Each voter V i encrypts his vote i (0 or 1) and submits c i =Enc pk (vote i ) to the BB • The votes are homomorphically tallied Enc pk (vote 1 ) (i.e., c:=Enc pk (vote 1 + vote 2 + …) ) Enc pk (vote 1 ) • c is decrypted by the electoral authorities … V 1 V 2

  14. A simple e-voting protocol … S 1 S n Setup • n electoral authorities S 1 ,…,S n with key shares sk 1 ,…,sk n and pk. G ledger To vote • Each voter V i encrypts his vote i (0 or 1) Validate(.) State Buffer G ledger and submits c i =Enc pk (vote i ) to the BB • The votes are homomorphically tallied Enc pk (vote 1 ) (i.e., c:=Enc pk (vote 1 + vote 2 + …) ) Enc pk (vote 1 ) • c is decrypted by the electoral authorities … V 1 V 2

  15. A simple e-voting protocol … S 1 S n Setup • n electoral authorities S 1 ,…,S n with key shares sk 1 ,…,sk n and pk. G ledger To vote • Each voter V i encrypts his vote i (0 or 1) Validate(.) State Buffer G ledger and submits c i =Enc pk (vote i ) to the BB • The votes are homomorphically tallied Enc pk (vote 1 ) (i.e., c:=Enc pk (vote 1 + vote 2 + …) ) Enc pk (vote 1 ) • c is decrypted by the electoral authorities … V 1 V 2 Having a public transaction ledger ensures that • The Bulletin Board where the votes are kept is decentralized, i.e., no server needs to be trusted to maintain it • The parties can see when the votes are added (no reordering is allowed) • A vote that is added cannot be deleted

  16. What Crypto can get from Bitcoin? What is on this A public ledger? transaction ledger A bulletin board with a filter on what gets written there

  17. What Crypto can get from Bitcoin? What is on this A public ledger? transaction ledger A bulletin board with a filter on what gets written there

  18. What Crypto can get from Bitcoin? What is on this A public ledger? transaction ledger A bulletin board with a filter on what gets Random written there Stuff

  19. What Crypto can get from Bitcoin? What is on this A public ledger? transaction ledger A bulletin board with a filter on what gets Random written there Money Stuff

  20. What Crypto can get from Bitcoin? What is on this A public ledger? transaction ledger A bulletin board with a filter on what gets Random written there Money ?? Stuff

  21. What Crypto can get from Bitcoin? Use what is on A public this ledger transaction ledger A bulletin board with a filter on what gets Random written there Money ?? Stuff

  22. The Bitcoin ledger as a random beacon G ledger Validate(.) State Buffer (t 1 ,0110), (t 2 ,0001) …

  23. The Bitcoin ledger as a random beacon G ledger Validate(.) State Buffer (t 1 ,0110), (t 2 ,0001) … Why is this useful?

  24. The Bitcoin ledger as a random beacon G ledger Validate(.) State Buffer (t 1 ,0110), (t 2 ,0001) … Why is this useful? • Lotteries:

  25. The Bitcoin ledger as a random beacon G ledger Validate(.) State Buffer (t 1 ,0110), (t 2 ,0001) … Why is this useful? USE • Lotteries: CRYPTO

  26. The Bitcoin ledger as a random beacon G ledger Validate(.) State Buffer (t 1 ,0110), (t 2 ,0001) … Why is this useful? USE • Lotteries: CRYPTO • Before time t 2 : collect tokens x 0000 , x 0001 ,…

  27. The Bitcoin ledger as a random beacon G ledger Validate(.) State Buffer (t 1 ,0110), (t 2 ,0001) … Why is this useful? USE • Lotteries: CRYPTO • Before time t 2 : collect tokens x 0000 , x 0001 ,… • At time t 2: The token indexed by the beacon’s value wins

  28. The Bitcoin ledger as a random beacon G ledger Validate(.) State Buffer (t 1 ,0110), (t 2 ,0001) … Why is this useful? USE • Lotteries: CRYPTO • Before time t 2 : collect tokens x 0000 , x 0001 ,… • At time t 2: The token indexed by the beacon’s value wins

  29. The Bitcoin ledger as a random beacon G ledger Validate(.) State Buffer (t 1 ,0110), (t 2 ,0001) … Why is this useful? USE • Lotteries: CRYPTO • Before time t 2 : collect tokens x 0000 , x 0001 ,… • At time t 2: The token indexed by the beacon’s value wins • Zero-knowledge Proofs • Common Random String (aka the cryptographer’s paradise)

  30. The Bitcoin ledger as a random beacon G ledger Validate(.) State Buffer (t 1 ,0110), (t 2 ,0001) … Why is this useful? Is it possible? • Heuristically: Hash each block [AndrychowiczDziembowski15] • No: if we require the rate of the beacon to be the same as the Bitcoin network [BentovGabizonKiayiasZhouZikasZuckerman17] • Yes: if we allow a much slower beacon rate • Under number theoretic assumptions [LenstraWesolowski15] • Assuming (only) random oracles [ongoing …]

  31. What Crypto can get from Bitcoin? Use what is on A public this ledger transaction ledger A bulletin board with a filter on what gets Random written there Money ?? Stuff

  32. What Crypto can get from Bitcoin? Use what is on A public this ledger transaction ledger A bulletin board with a filter on what gets Random written there Money ?? Stuff People (good or bad) want money

  33. What Crypto can get from Bitcoin? Use what is on A public this ledger transaction ledger A bulletin board with a filter on what gets Random written there Money ?? Stuff People (good or bad) want money We can use bitcoins as compensation for relaxed security

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

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

  36. Multi-Party Computation (MPC) Goal: Parties P 1 ,…,P n with inputs x 1 ,…,x n wish to compute a function f(x 1 ,…,x n ) securely

  37. Multi-Party Computation (MPC) F f Ideal World x 1 x 2 x n f(x ̅ )=y f(x ̅ ) f(x ̅ ) … P 1 P 2 P n

  38. Multi-Party Computation (MPC) F f Ideal World x 1 x 2 x n f(x ̅ )=y f(x ̅ ) f(x ̅ ) … P 1 P 2 P n Real World … P 1 P 2 P n

  39. Multi-Party Computation (MPC) F f Ideal World x 1 x 2 x n f(x ̅ )=y f(x ̅ ) f(x ̅ ) … P 1 P 2 P n ≈ Real World π 1 (x 1 ) π 2 (x 2 ) π n (x n ) … P 1 P 2 P n

  40. Multi-Party Computation (MPC) F f Ideal World x 1 x 2 x n f(x ̅ )=y f(x ̅ ) f(x ̅ ) … P 1 P 2 P n ≈ Real World π 1 (x 1 ) π 2 (x 2 ) π n (x n ) … P 1 P 2 P n

  41. Multi-Party Computation (MPC) F f Ideal World x 1 x 2 x n f(x ̅ )=y f(x ̅ ) f(x ̅ ) … P 1 P 2 P n 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 Real World π 1 (x 1 ) π 2 (x 2 ) π n (x n ) … P 1 P 2 P n

  42. Multi-Party Computation (MPC) Private blockchains are a special case F f Ideal World x 1 x 2 x n f(x ̅ )=y f(x ̅ ) f(x ̅ ) … P 1 P 2 P n 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 Real World π 1 (x 1 ) π 2 (x 2 ) π n (x n ) … P 1 P 2 P n

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

  44. Fair MPC In fair MPC: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output F f y ⊥ ⊥ P 1 P 2 P n

  45. Fair MPC In fair MPC: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output F f ✘ (Unfair) y ⊥ ⊥ P 1 P 2 P n

  46. Fair MPC In fair MPC: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output F f ✘ (Unfair) y ⊥ ⊥ P 1 P 2 P n Fair MPC is impossible against corrupted majorities

  47. Fair MPC In fair MPC: If the adversary learns any information beyond (what is derived by) its inputs then every honest party should learn the output F f ✘ (Unfair) y ⊥ ⊥ P 1 P 2 P n Fair MPC is impossible against corrupted majorities Security against Security with = corrupted majorities abort

Recommend


More recommend