Rethinking General-Purpose Decentralized Computing Enis Ceyhun Alp - - PowerPoint PPT Presentation

rethinking general purpose decentralized computing
SMART_READER_LITE
LIVE PREVIEW

Rethinking General-Purpose Decentralized Computing Enis Ceyhun Alp - - PowerPoint PPT Presentation

Rethinking General-Purpose Decentralized Computing Enis Ceyhun Alp Eleftherios Kokoris-Kogias, Georgia Fragkouli, Bryan Ford Decentralized and Distributed Systems Lab (DEDIS) HotOS XVII May 13, 2019 1 BLOCKCHAIN N I A H C K C O L


slide-1
SLIDE 1

Rethinking General-Purpose Decentralized Computing

Enis Ceyhun Alp Eleftherios Kokoris-Kogias, Georgia Fragkouli, Bryan Ford Decentralized and Distributed Systems Lab (DEDIS)

1

HotOS XVII May 13, 2019

slide-2
SLIDE 2

mama?

papa?

BLOCKCHAIN BLOCKCHAIN

BLOCKCHAIN

2

B L O C K C H A I N

MORE BLOCKCHAIN

slide-3
SLIDE 3

mama?

papa?

BLOCKCHAIN BLOCKCHAIN

BLOCKCHAIN

3

B L O C K C H A I N

MORE BLOCKCHAIN

slide-4
SLIDE 4

Smart contracts

4

slide-5
SLIDE 5

Ethereum

BUT…

5

  • 2nd largest cryptocurrency
  • ~445M transactions processed
  • ~1.5M contracts deployed
  • “The world computer”
slide-6
SLIDE 6

What’s wrong?

  • Limited functionality

❖ No support for non-determinism ❖ Cannot securely operate on private data

  • Difficulty of system upgrades
  • Poor performance

❖ Every node runs every contract

6

slide-7
SLIDE 7

Running example: Betting application

7

slide-8
SLIDE 8

Running example: Betting application

8

slide-9
SLIDE 9

Running example: Betting application

9

Query

slide-10
SLIDE 10

Running example: Betting application

10

Response

slide-11
SLIDE 11

Running example: Betting application

11

💕 🥴 🥴

slide-12
SLIDE 12

Challenges

12

Hide predictions until release time Access to reliable real-world data Third-party oracle services Store data off-chain

slide-13
SLIDE 13

13

Upgrade for new functionalities Hide predictions until release time Access to reliable real-world data

Challenges

slide-14
SLIDE 14

Upgrade for new functionalities

14

Hide predictions until release time Access to reliable real-world data Global hard forks

Challenges

slide-15
SLIDE 15

Consensus and code execution are tightly coupled

Monolithic architecture

15

slide-16
SLIDE 16

Modular architecture

16

slide-17
SLIDE 17

PROTEAN

17

A modular architecture for general-purpose decentralized computing

slide-18
SLIDE 18

18

  • Distributed systems that provide distinct specialized

computations

  • Similar to microservices architecture in cloud computing

Functional units Idea: Functional separation of nodes into special-purpose modules

slide-19
SLIDE 19

Functional units

19

State & Execution unit

Ethereum

slide-20
SLIDE 20

Functional units

20

State unit Execution unit

PROTEAN

slide-21
SLIDE 21

Functional units

21

State unit Execution unit

PROTEAN

Private-storage unit

slide-22
SLIDE 22

Functional units

22

Oracle unit State unit Execution unit

PROTEAN

Private-storage unit

slide-23
SLIDE 23

Functional units

23

Oracle unit State unit Execution unit Randomness unit

PROTEAN

Private-storage unit

slide-24
SLIDE 24

Functional units

24

Oracle unit Private-storage unit Shuffler unit Encryption unit State unit Execution unit Randomness unit

PROTEAN

slide-25
SLIDE 25

Functional units

25

Oracle unit Private-storage unit Shuffler unit Encryption unit State unit Execution unit Randomness unit

PROTEAN

OU1-v1 OU1-v2

slide-26
SLIDE 26

Functional units

26

Oracle unit Private-storage unit Shuffler unit Encryption unit State unit Execution unit Randomness unit

PROTEAN

OU1-v1 OU1-v2 OU2-v1

slide-27
SLIDE 27

Functional units

27

Oracle unit Private-storage unit Randomness unit Shuffler unit Encryption unit State unit Execution unit

Richer set of functionalities Permissionless evolution

PROTEAN

slide-28
SLIDE 28

Functional units

  • Expose a set of transactions

❖ Building blocks for decentralized applications ❖ Well-defined semantics and API ❖ Executed atomically by the unit

  • Provide cryptographic proof of successful execution

28

slide-29
SLIDE 29

Building applications

29

State unit

Bet Reveal

Private-storage unit State unit Private-storage unit Oracle unit Execution unit

slide-30
SLIDE 30

30

Oracle unit Private-storage unit State unit Execution unit Private-storage unit State unit

Workflow

Building applications

Bet Reveal

store_secret update_state

  • racle_query

update_state get_secret execute

slide-31
SLIDE 31

Executing applications

31

Reveal

Oracle unit State unit Execution unit Private-storage unit

slide-32
SLIDE 32

Executing applications

32

Compiler unit State unit Oracle unit Execution unit Private-storage unit

Reveal

slide-33
SLIDE 33

33

Executing applications

Compiler unit State unit Oracle unit Execution unit Private-storage unit

slide-34
SLIDE 34

Executing applications

34

Execution plan

Compiler unit State unit Oracle unit Execution unit Private-storage unit

slide-35
SLIDE 35

Executing applications

35

Compiler unit State unit Oracle unit Execution unit Private-storage unit

slide-36
SLIDE 36

Compiler unit State unit Oracle unit Execution unit Private-storage unit

Executing applications

36

slide-37
SLIDE 37

Compiler unit State unit Oracle unit Execution unit Private-storage unit

Executing applications

37

slide-38
SLIDE 38

Executing applications

38

Compiler unit State unit Oracle unit Execution unit Private-storage unit

slide-39
SLIDE 39

Executing applications

39

Inadvertently or maliciously deviate from the execution plan

Compiler unit State unit Oracle unit Execution unit Private-storage unit

slide-40
SLIDE 40

Executing applications

40

Inadvertently or maliciously deviate from the execution plan Collective witnessing

  • Collectively sign the execution plan
  • Check signatures from parents are

present

Compiler unit State unit Oracle unit Execution unit Private-storage unit

slide-41
SLIDE 41

Summary

  • PROTEAN: A modular architecture for building general-

purpose decentralized applications

  • Functional separation of nodes into special-purpose modules
  • Enables applications currently insecure/impossible in smart

contracts

  • Permissionless evolution: easy/modular addition of new

functionality

  • Opportunity for node specialization for efficient execution

enis.alp@epfl.ch

41