Chainspace: A Sharded Smart Contract Platform Authors Mustafa Al-Bassam* Alberto Sonnino* Shehar Bano* Dave Hrycyszyn** George Danezis* * University College London ** constructiveproof.com NDSS Symposium 2018 1
Motivation ▪ Blockchains are cool — but scale badly ▪ Hard to operate on secret inputs Transactions are Inputs are therefore recorded on chain public 2
Motivation ▪ Related works Smart Contract Scalable Privacy Ethereum Hawk ZCash Omniledger RSCoin 3
Introduction ▪ What is chainspace? contribution I Scalable smart contract platform contribution II Supporting privacy 4
Contents .3. Privacy by Design .1. System Overview .2. Scalability .4. Security Properties .5. Performance 5
System Overview ▪ How Chainspace works? ▪ Nodes are organised into shards ▪ Shards manage objects objects ▪ Objects can be used only once 6
Scalability ▪ How nodes reach consensus? The S-BAC Protocol Byzantine Atomic Agreement Commit lock unlock Send prepare( T ) Client Accept Confirmation user 3 Shard 1 ) BFT BFT (manage o1) Inactive o 1 ) BFT BFT Shard 2 Inactive o 2 (manage o2) ) BFT Shard 3 Create o 3 (manage o3) Initial Process Process Process Broadcast Prepare Prepared Accept 7
Scalability ▪ The Wisdom behind S-BAC Only shards managing o1 and o2 Shard 1 and shard 2 can work in are reaching consensus parallel Send prepare( T ) Client Accept Confirmation user 3 Shard 1 ) BFT BFT (manage o1) Inactive o 1 ) BFT BFT Shard 2 Inactive o 2 (manage o2) ) BFT Shard 3 Create o 3 (manage o3) Initial Process Process Process Broadcast Prepare Prepared Accept 8
Privacy by Design ▪ Transaction in classic blockchains user node contract secret data input state output state 9
Privacy by Design ▪ What are Chainspace Smart Contracts? user side execution checker node side 10
Privacy by Design ▪ Chainspace transaction execution user node execution checker checker input objects input & output secret objects data output or objects 11
Privacy by Design ▪ Private data never leave the client ! user private data À Ã Õ Œ œ – — “ — secret key — À Ã Õ Œ œ – — “ execution — zk-proof — node À Ã Õ Œ œ – — “ checker — verify zk-proofs — 12
Security Properties ▪ What does Chainspace guarantee? ▪ Honest Shard: among 3f+1 nodes, at most f are malicious. ▪ Malicious Shard: over f dishonest nodes. ▪ Chainspace properties: Transparency Encapsulation Anyone can authenticate the history of A smart contract cannot interfere with transactions and objects that led to the objects created by another contract creation of an object. (except if defined by that contract). Integrity Non-Repudiation (Honest Shard) Misbehaviour is detectable: there are Only valid & non-conflicting transactions evidences of misbehaviour pointing to will be executed. the faulty parties or shards. 13
Performance ▪ What did we implement? Measured and tested S-BAC protocol on Amazon AWS implemented in Java Based on BFT-SMaRt Python contract Everything is released as open source software simulator https://github.com/chainspace Helps developers Simulation of the checker No need for full deployment 14
Performance ▪ How the number of shards influences the TPS? TPS VS Number of Shards TPS scales linearly with the number of shards 15
Performance ▪ How does the size of the shard influence the TPS? TPS VS Nodes per Shard TPS decreases slowly 16
Performance ▪ How the number of inputs influence the TPS? TPS VS Number of Inputs TPS decreases slowly and then flattens out 17
Performance ▪ How is the trade off between TPS and latency? Probability VS Latency Low latency even when the system is heavy loaded 18
Recommend
More recommend