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
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
Enis Ceyhun Alp Eleftherios Kokoris-Kogias, Georgia Fragkouli, Bryan Ford Decentralized and Distributed Systems Lab (DEDIS)
1
HotOS XVII May 13, 2019
papa?
2
papa?
3
4
5
❖ No support for non-determinism ❖ Cannot securely operate on private data
❖ Every node runs every contract
6
7
8
9
Query
10
Response
11
12
Hide predictions until release time Access to reliable real-world data Third-party oracle services Store data off-chain
13
Upgrade for new functionalities Hide predictions until release time Access to reliable real-world data
Upgrade for new functionalities
14
Hide predictions until release time Access to reliable real-world data Global hard forks
15
16
17
A modular architecture for general-purpose decentralized computing
18
computations
Functional units Idea: Functional separation of nodes into special-purpose modules
19
State & Execution unit
Ethereum
20
State unit Execution unit
PROTEAN
21
State unit Execution unit
PROTEAN
Private-storage unit
22
Oracle unit State unit Execution unit
PROTEAN
Private-storage unit
23
Oracle unit State unit Execution unit Randomness unit
PROTEAN
Private-storage unit
24
Oracle unit Private-storage unit Shuffler unit Encryption unit State unit Execution unit Randomness unit
PROTEAN
25
Oracle unit Private-storage unit Shuffler unit Encryption unit State unit Execution unit Randomness unit
PROTEAN
OU1-v1 OU1-v2
26
Oracle unit Private-storage unit Shuffler unit Encryption unit State unit Execution unit Randomness unit
PROTEAN
OU1-v1 OU1-v2 OU2-v1
27
Oracle unit Private-storage unit Randomness unit Shuffler unit Encryption unit State unit Execution unit
Richer set of functionalities Permissionless evolution
PROTEAN
❖ Building blocks for decentralized applications ❖ Well-defined semantics and API ❖ Executed atomically by the unit
28
29
State unit
Bet Reveal
Private-storage unit State unit Private-storage unit Oracle unit Execution unit
30
Oracle unit Private-storage unit State unit Execution unit Private-storage unit State unit
Workflow
Bet Reveal
store_secret update_state
update_state get_secret execute
31
Reveal
Oracle unit State unit Execution unit Private-storage unit
32
Compiler unit State unit Oracle unit Execution unit Private-storage unit
Reveal
33
Compiler unit State unit Oracle unit Execution unit Private-storage unit
34
Execution plan
Compiler unit State unit Oracle unit Execution unit Private-storage unit
35
Compiler unit State unit Oracle unit Execution unit Private-storage unit
Compiler unit State unit Oracle unit Execution unit Private-storage unit
36
Compiler unit State unit Oracle unit Execution unit Private-storage unit
37
38
Compiler unit State unit Oracle unit Execution unit Private-storage unit
39
Inadvertently or maliciously deviate from the execution plan
Compiler unit State unit Oracle unit Execution unit Private-storage unit
40
Inadvertently or maliciously deviate from the execution plan Collective witnessing
present
Compiler unit State unit Oracle unit Execution unit Private-storage unit
purpose decentralized applications
contracts
functionality
enis.alp@epfl.ch
41