RainBlock: Faster Transaction Processing in Public Blockchains

Public blockchains like Ethereum use Merkle trees to verify transactions received from untrusted servers before applying them to the blockchain. We empirically show that the low throughput of such blockchains is due to the I/O bottleneck associated with using Merkle trees for processing transactions. We present RAINBLOCK, a new architecture for public blockchains that increases throughput without affecting security. RAINBLOCK achieves this by tackling the I/O bottleneck on two fronts: first, decoupling transaction processing from I/O, and removing I/O from the critical path; second, reducing I/O amplification by customizing storage for blockchains. RAINBLOCK uses a novel variant of the Merkle tree, the Distributed Sharded Merkle tree (DSM-TREE) to store system state. We evaluate RAINBLOCK using workloads based on public Ethereum traces (including smart contracts) and show that RAINBLOCK processes 20K transactions per second in a geo-distributed setting with four regions spread across three continents.

[1]  Hao Wang,et al.  Monoxide: Scale out Blockchains with Asynchronous Consensus Zones , 2019, NSDI.

[2]  Johannes Behl,et al.  Hybrids on Steroids: SGX-Based High Performance BFT , 2017, EuroSys.

[3]  Silvio Micali,et al.  Algorand: Scaling Byzantine Agreements for Cryptocurrencies , 2017, IACR Cryptol. ePrint Arch..

[4]  Jan Camenisch,et al.  Dynamic Accumulators and Application to Efficient Revocation of Anonymous Credentials , 2002, CRYPTO.

[5]  Prateek Saxena,et al.  A Secure Sharding Protocol For Open Blockchains , 2016, CCS.

[6]  Elaine Shi,et al.  The Honey Badger of BFT Protocols , 2016, CCS.

[7]  Aviv Zohar,et al.  Secure High-Rate Transaction Processing in Bitcoin , 2015, Financial Cryptography.

[8]  Leslie Lamport,et al.  The part-time parliament , 1998, TOCS.

[9]  Ee-Chien Chang,et al.  Towards Scaling Blockchain Systems via Sharding , 2018, SIGMOD Conference.

[10]  Toby Murray,et al.  Empirically Analyzing Ethereum's Gas Mechanism , 2019, 2019 IEEE European Symposium on Security and Privacy Workshops (EuroS&PW).

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

[12]  Ittai Abraham,et al.  mLSM: Making Authenticated Storage Faster in Ethereum , 2018, HotStorage.

[13]  Philipp Jovanovic,et al.  OmniLedger: A Secure, Scale-Out, Decentralized Ledger via Sharding , 2018, 2018 IEEE Symposium on Security and Privacy (SP).

[14]  Beng Chin Ooi,et al.  BLOCKBENCH: A Framework for Analyzing Private Blockchains , 2017, SIGMOD Conference.

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

[16]  Mariana Raykova,et al.  RapidChain: Scaling Blockchain via Full Sharding , 2018, CCS.

[17]  Dan Boneh,et al.  Batching Techniques for Accumulators with Applications to IOPs and Stateless Blockchains , 2019, IACR Cryptol. ePrint Arch..

[18]  Ittai Abraham,et al.  HotStuff: BFT Consensus in the Lens of Blockchain , 2018, 1803.05069.

[19]  Jong-Moon Chung,et al.  Trust-Based Shard Distribution Scheme for Fault-Tolerant Shard Blockchain Networks , 2019, IEEE Access.

[20]  Leonid Reyzin,et al.  Improving Authenticated Dynamic Dictionaries, with Applications to Cryptocurrencies , 2017, Financial Cryptography.

[21]  Emin Gün Sirer,et al.  Majority Is Not Enough: Bitcoin Mining Is Vulnerable , 2013, Financial Cryptography.

[22]  Dahlia Malkhi,et al.  Scalable and Efficient Data Authentication for Decentralized Systems , 2019, ArXiv.

[23]  Andrew Miller,et al.  Sprites: Payment Channels that Go Faster than Lightning , 2017, ArXiv.

[24]  Ittai Abraham,et al.  Aggregatable Subvector Commitments for Stateless Cryptocurrencies , 2020, IACR Cryptol. ePrint Arch..

[25]  Jianliang Xu,et al.  vChain: Enabling Verifiable Boolean Range Queries over Blockchain Databases , 2018, SIGMOD Conference.

[26]  Charalampos Papamanthou,et al.  Edrax: A Cryptocurrency with Stateless Transaction Validation , 2018, IACR Cryptol. ePrint Arch..

[27]  Sreeram Kannan,et al.  Prism: Deconstructing the Blockchain to Approach Physical Limits , 2019, CCS.

[28]  Marko Vukolic,et al.  Blockchain Consensus Protocols in the Wild , 2017, DISC.

[29]  George Danezis,et al.  Replay Attacks and Defenses Against Cross-shard Consensus in Sharded Distributed Ledgers , 2019, 2020 IEEE European Symposium on Security and Privacy (EuroS&P).

[30]  Rami Khalil,et al.  Revive: Rebalancing Off-Blockchain Payment Networks , 2017, IACR Cryptol. ePrint Arch..

[31]  George Danezis,et al.  Consensus in the Age of Blockchains , 2017, ArXiv.

[32]  David Mazières,et al.  Fast and secure global payments with Stellar , 2019, SOSP.

[33]  Sreeram Kannan,et al.  Coded Merkle Tree: Solving Data Availability Attacks in Blockchains , 2019, IACR Cryptol. ePrint Arch..

[34]  Feifei Li,et al.  Solar: Towards a Shared-Everything Database on Distributed Log-Structured Storage , 2018, USENIX Annual Technical Conference.

[35]  Ittai Abraham,et al.  vCorfu: A Cloud-Scale Object Store on a Shared Log , 2017, NSDI.

[36]  Christof Fetzer,et al.  SPEICHER: Securing LSM-based Key-Value Stores using Shielded Execution , 2019, FAST.

[37]  Wei Xu,et al.  Scaling Nakamoto Consensus to Thousands of Transactions per Second , 2018, ArXiv.

[38]  Yoad Lewenberg,et al.  Inclusive Block Chain Protocols , 2015, Financial Cryptography.

[39]  Josh Benaloh,et al.  One-Way Accumulators: A Decentralized Alternative to Digital Sinatures (Extended Abstract) , 1994, EUROCRYPT.

[40]  Aggelos Kiayias,et al.  Ouroboros: A Provably Secure Proof-of-Stake Blockchain Protocol , 2017, CRYPTO.

[41]  Mohammad Dakhilalian,et al.  On the Feasibility of Sybil Attacks in Shard-Based Permissionless Blockchains , 2020, ArXiv.

[42]  Marko Vukolic,et al.  Hyperledger fabric: a distributed operating system for permissioned blockchains , 2018, EuroSys.

[43]  Kim-Kwang Raymond Choo,et al.  Blockchain in healthcare applications: Research challenges and opportunities , 2019, J. Netw. Comput. Appl..

[44]  Yi Sun,et al.  Txilm: Lossy Block Compression with Salted Short Hashing , 2019, IACR Cryptol. ePrint Arch..

[45]  Patrick E. O'Neil,et al.  The log-structured merge-tree (LSM-tree) , 1996, Acta Informatica.

[46]  Markus Jakobsson,et al.  Proofs of Work and Bread Pudding Protocols , 1999, Communications and Multimedia Security.

[47]  Lei Yang,et al.  Prism: Scaling Bitcoin by 10, 000x , 2019, ArXiv.

[48]  Emin Gün Sirer,et al.  Teechain: Reducing Storage Costs on the Blockchain With Offline Payment Channels , 2018, SYSTOR.

[49]  Fred B. Schneider,et al.  Implementing fault-tolerant services using the state machine approach: a tutorial , 1990, CSUR.

[50]  Matthew Green,et al.  Bolt: Anonymous Payment Channels for Decentralized Currencies , 2017, CCS.

[51]  Ralph C. Merkle,et al.  A Digital Signature Based on a Conventional Encryption Function , 1987, CRYPTO.

[52]  Jason Teutsch,et al.  SmartPool: Practical Decentralized Pooled Mining , 2017, USENIX Security Symposium.

[53]  Ittai Abraham,et al.  PebblesDB: Building Key-Value Stores using Fragmented Log-Structured Merge Trees , 2017, SOSP.