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 B mama? BLOCKCHAIN papa? BLOCKCHAIN MORE BLOCKCHAIN � 2
BLOCKCHAIN N I A H C K C O L B mama? BLOCKCHAIN papa? BLOCKCHAIN MORE BLOCKCHAIN � 3
Smart contracts � 4
Ethereum • 2 nd largest cryptocurrency • ~445M transactions processed • ~1.5M contracts deployed • “The world computer” BUT… � 5
What’s wrong? • Limited functionality ❖ No support for non-determinism ❖ Cannot securely operate on private data • Di ffi culty of system upgrades • Poor performance ❖ Every node runs every contract � 6
Running example: Betting application � 7
Running example: Betting application � 8
Running example: Betting application Query � 9
Running example: Betting application Response � 10
Running example: Betting application 🥴 💕 🥴 � 11
Challenges Hide predictions until release time Store data o ff -chain Access to reliable real-world data Third-party oracle services � 12
Challenges Hide predictions until release time Upgrade for new functionalities Access to reliable real-world data � 13
Challenges Hide predictions until release time Global hard forks Upgrade for new functionalities Access to reliable real-world data � 14
Monolithic architecture Consensus and code execution are tightly coupled � 15
Modular architecture � 16
PROTEAN A modular architecture for general-purpose decentralized computing � 17
Idea: Functional separation of nodes into special-purpose modules Functional units • Distributed systems that provide distinct specialized computations • Similar to microservices architecture in cloud computing � 18
Functional units Ethereum State & Execution unit � 19
Functional units PROTEAN State unit Execution unit � 20
Functional units PROTEAN Private-storage unit State unit Execution unit � 21
Functional units PROTEAN Private-storage unit State unit Execution unit Oracle unit � 22
Functional units PROTEAN Private-storage unit State unit Execution unit Oracle unit Randomness unit � 23
Functional units PROTEAN Private-storage unit Shu ffl er unit State unit Execution unit Oracle unit Encryption unit Randomness unit � 24
Functional units PROTEAN Private-storage unit Shu ffl er unit State unit Execution unit OU1-v2 Oracle unit Encryption unit Randomness unit OU1-v1 � 25
Functional units PROTEAN Private-storage unit Shu ffl er unit State unit Execution unit OU1-v2 Oracle unit Encryption unit Randomness unit OU2-v1 OU1-v1 � 26
Functional units PROTEAN Private-storage unit State unit Execution unit Shu ffl er unit Oracle unit Randomness unit Encryption unit Richer set of functionalities Permissionless evolution � 27
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
Building applications Bet Reveal State unit Oracle unit Private-storage unit Private-storage unit Execution unit State unit � 29
Building applications Bet Reveal Private-storage unit State unit Oracle unit Private-storage unit Execution unit State unit oracle_query get_secret store_secret Workflow execute update_state update_state � 30
Executing applications Private-storage unit Execution unit Reveal Oracle unit State unit � 31
Executing applications Private-storage unit Compiler unit Reveal Oracle unit Execution unit State unit � 32
Executing applications Private-storage unit Compiler unit Oracle unit Execution unit State unit � 33
Executing applications Private-storage unit Compiler unit Execution plan Oracle unit Execution unit State unit � 34
Executing applications Private-storage unit Compiler unit Oracle unit Execution unit State unit � 35
Executing applications Private-storage unit Compiler unit Oracle unit Execution unit State unit � 36
Executing applications Private-storage unit Compiler unit Oracle unit Execution unit State unit � 37
Executing applications Private-storage unit Compiler unit Oracle unit Execution unit State unit � 38
Executing applications Private-storage unit Compiler unit Inadvertently or maliciously deviate Oracle unit Execution unit from the execution plan State unit � 39
Executing applications Private-storage unit Compiler unit Inadvertently or maliciously deviate from the execution plan Oracle unit Execution unit Collective witnessing • Collectively sign the execution plan State unit • Check signatures from parents are present � 40
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 e ffi cient execution enis.alp@epfl.ch � 41
Recommend
More recommend