Scalable Blockchain Based Smart Contract Execution

Blockchain, or distributed ledger, provides a way to build various decentralized systems without relying on any single trusted party. This is especially attractive for smart contracts, that different parties do not need to trust each other to have a contract, and the distributed ledger can guarantee correct execution of the contract. Most existing distributed ledger based smart contract systems process smart contracts in a serial manner, i.e., all users have to run a contract before its result can be accepted by the system. Although this approach is easy to implement and manage, it is not scalable and greatly limits the system's capability of handling a large number of smart contracts. In order to address this problem, we propose a scalable smart contract execution scheme that can run multiple smart contract in parallel to improve throughput of the system. Our scheme relies on two key techniques: a fair contract partition algorithm leveraging integer linear programming to partition a set of smart contracts into multiple subsets, and a random assignment protocol assigning subsets randomly to a subgroup of users. We prove that, our scheme is secure as long as more than $50\%$ of the computational power is possessed by honest nodes. We then conduct experiments with data from existing smart contract system to evaluate the efficiency of our scheme. The results demonstrate that our approach is scalable and much more efficient than the existing smart contract platform.

[1]  Nicolas Courtois,et al.  Could Bitcoin transactions be 100x faster? , 2014, 2014 11th International Conference on Security and Cryptography (SECRYPT).

[2]  Craig Gentry,et al.  Non-interactive Verifiable Computing: Outsourcing Computation to Untrusted Workers , 2010, CRYPTO.

[3]  Tatsuaki Okamoto,et al.  A digital multisignature scheme using bijective public-key cryptosystems , 1988, TOCS.

[4]  Amnon Ta-Shma,et al.  Auditable, anonymous electronic cash , 1999 .

[5]  Kyriakos Mouratidis,et al.  Heuristic Algorithms for Balanced Multi-Way Number Partitioning , 2011, IJCAI.

[6]  Jeremy Clark,et al.  On Bitcoin as a public randomness source , 2015, IACR Cryptol. ePrint Arch..

[7]  Tobias Achterberg,et al.  SCIP: solving constraint integer programs , 2009, Math. Program. Comput..

[8]  Lin Chen,et al.  Decentralized Execution of Smart Contracts: Agent Model Perspective and Its Implications , 2017, Financial Cryptography Workshops.

[9]  Vitalik Buterin A NEXT GENERATION SMART CONTRACT & DECENTRALIZED APPLICATION PLATFORM , 2015 .

[10]  Prateek Saxena,et al.  SCP: A Computationally-Scalable Byzantine Consensus Protocol For Blockchains , 2015, IACR Cryptol. ePrint Arch..

[11]  Lin Chen,et al.  On the optimality of approximation schemes for the classical scheduling problem , 2014, SODA.

[12]  Martin Raab,et al.  "Balls into Bins" - A Simple and Tight Analysis , 1998, RANDOM.

[13]  Leslie Lamport,et al.  The Byzantine Generals Problem , 1982, TOPL.

[14]  Hugo Krawczyk,et al.  Randomness Extraction and Key Derivation Using the CBC, Cascade and HMAC Modes , 2004, CRYPTO.

[15]  Gregory V. Bard,et al.  Statistics of Random Permutations and the Cryptanalysis of Periodic Block Ciphers , 2012, Cryptologia.

[16]  Lin Chen,et al.  Enabling the Sharing Economy: Privacy Respecting Contract based on Public Blockchain , 2017 .

[17]  Lin Chen,et al.  CoC: Secure Supply Chain Management System Based on Public Ledger , 2017, 2017 26th International Conference on Computer Communication and Networks (ICCCN).

[18]  Theodor J. Stewart,et al.  Multiple Criteria Decision Analysis , 2001 .

[19]  Christian Scheideler,et al.  Robust random number generation for peer-to-peer systems , 2006, Theor. Comput. Sci..

[20]  David Chaum,et al.  Blind Signatures for Untraceable Payments , 1982, CRYPTO.

[21]  Matthew Green,et al.  Zerocoin: Anonymous Distributed E-Cash from Bitcoin , 2013, 2013 IEEE Symposium on Security and Privacy.

[22]  Harald Niederreiter,et al.  Probability and computing: randomized algorithms and probabilistic analysis , 2006, Math. Comput..

[23]  Klaus Jansen,et al.  Closing the Gap for Makespan Scheduling via Sparsification Techniques , 2016, ICALP.

[24]  Daniel J. Bernstein,et al.  Elligator: elliptic-curve points indistinguishable from uniform random strings , 2013, IACR Cryptol. ePrint Arch..

[25]  Vinod Vaikuntanathan,et al.  How to Delegate and Verify in Public: Verifiable Computation from Attribute-based Encryption , 2012, IACR Cryptol. ePrint Arch..

[26]  Richard E. Korf,et al.  Optimally Scheduling Small Numbers of Identical Parallel Machines , 2013, ICAPS.

[27]  Lin Chen,et al.  DL-BAC: Distributed Ledger Based Access Control for Web Applications , 2017, WWW.

[28]  Marko Vukolic,et al.  The Quest for Scalable Blockchain Fabric: Proof-of-Work vs. BFT Replication , 2015, iNetSeC.

[29]  Emin Gün Sirer,et al.  Bitcoin-NG: A Scalable Blockchain Protocol , 2015, NSDI.

[30]  Idit Keidar,et al.  Brahms: byzantine resilient random membership sampling , 2008, PODC '08.

[31]  Richard E. Korf,et al.  Improved Bin Completion for Optimal Bin Packing and Number Partitioning , 2013, IJCAI.

[32]  Eli Ben-Sasson,et al.  Zerocash: Decentralized Anonymous Payments from Bitcoin , 2014, 2014 IEEE Symposium on Security and Privacy.

[33]  Nick Szabo,et al.  Formalizing and Securing Relationships on Public Networks , 1997, First Monday.

[34]  Mehdi Tibouchi Elligator Squared: Uniform Points on Elliptic Curves of Prime Order as Uniform Random Strings , 2014, Financial Cryptography.

[35]  Yang Lu,et al.  Unraveling Blockchain based Crypto-currency System Supporting Oblivious Transactions: a Formalized Approach , 2017 .