ABSTRACT
In most blockchains, miners execute transactions sequentially, while validators reproduce the execution to validate its results. Although simple, this approach does not exploit modern multi-core resources efficiently, thus limiting performance and increasing application latency. To circumvent this limitation, some proposals execute independent transactions in parallel, while dependent/conflicting transactions execute sequentially. These solutions are based on static analysis, adding a pre-processing overhead to trace dependencies/conflicts before execution, or usually use a directed acyclic graph (DAG) where the miner stores the conflicts among transactions found during its execution to be used by the validators, which trust the received DAG to perform an equivalent execution. We propose a new solution for parallel execution of transactions through a dynamic conflict analysis that uses transactions and their parameters to define whether two transactions are dependent in order to build a DAG. Consequently, conflicts are self-verifiable at validators since they can access the transactions and their parameters. To minimize the performance impact of this processing, while one parallelizer thread constructs the DAG, a pool of worker threads obtain transactions whose dependencies were resolved to be executed. To evaluate the benefits of our proposal over traditional sequential execution, we created four smart contract applications that simulate the execution of a real blockchain. Experiments show that our proposal outperforms the sequential execution by up to 5 × in some cases.
- Shrey Baheti, Parwat Singh Anjana, Sathya Peri, and Yogesh Simmhan. 2022. DiPETrans: A framework for distributed parallel execution of transactions of blocks in blockchains. Concurrency and Computation: Practice and Experience 34, 10 (2022), e6804.Google ScholarCross Ref
- Massimo Bartoletti, Letterio Galletta, and Maurizio Murgia. 2020. A true concurrent model of smart contracts executions. In International Conference on Coordination Languages and Models. Springer, Valletta, Malta, 243–260. https://doi.org/10.1007/978-3-030-50029-0_16Google ScholarDigital Library
- Alysson Bessani, João Sousa, and Eduardo E.P. Alchieri. 2014. State Machine Replication for the Masses with BFT-SMART. In 2014 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks. IEEE, Atlanta, GA, USA, 355–362. https://doi.org/10.1109/DSN.2014.43Google ScholarDigital Library
- Blockchain.com. 2022. Bitcoin Block Size. urlhttps://www.blockchain.com/explorer/blocks/btc.Google Scholar
- Vitalik Buterin. 2013. A Next-Generation Smart Contract and Decentralized Application Platform https://github. com/ethereum/wiki/wiki.Google Scholar
- Calin Cascaval, Colin Blundell, Maged Michael, Harold W Cain, Peng Wu, Stefanie Chiras, and Siddhartha Chatterjee. 2008. Software transactional memory: Why is it only a research toy?Commun. ACM 51, 11 (2008), 40–46.Google ScholarDigital Library
- Chris Dannen. 2017. Introducing Ethereum and Solidity. Apress, Berkeley, CA. https://doi.org/10.1007/978-1-4842-2535-6Google ScholarCross Ref
- Tim Dickerson, Paul Gazzillo, Maurice Herlihy, and Eric Koskinen. 2017. Adding concurrency to smart contracts. In Proceedings of the ACM Symposium on Principles of Distributed Computing. ACM, Washington, DC, 303–312.Google ScholarDigital Library
- Ian Aragon Escobar, Eduardo Alchieri, Fernando Luís Dotti, and Fernando Pedone. 2019. Boosting Concurrency in Parallel State Machine Replication. In Proceedings of the 20th International Middleware Conference (Davis, CA, USA) (Middleware ’19). Association for Computing Machinery, New York, NY, USA, 228–240. https://doi.org/10.1145/3361525.3361549Google ScholarDigital Library
- Tao Feng and Yufeng Liu. 2023. Optimized Model Analysis of Blockchain PoW Procotol under Long Delay Attack. In Proceedings of the 2023 2nd Asia Conference on Algorithms, Computing and Machine Learning. Association for Computing Machinery, New York, NY, USA, 25–30. https://doi.org/10.1145/3590003.3590008Google ScholarDigital Library
- Juan Garay, Aggelos Kiayias, and Nikos Leonardos. 2015. The Bitcoin Backbone Protocol: Analysis and Applications. In Advances in Cryptology - EUROCRYPT 2015, Elisabeth Oswald and Marc Fischlin (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 281–310.Google ScholarCross Ref
- Satoshi Nakamoto. 2008. Bitcoin: A Peer-to-Peer Electronic Cash System. https://bitcoin.org/bitcoin.pdf.Google Scholar
- Anjana Parwat Singh, Sweta Kumari, Sathya Peri, Sachin Rathor, and Archit Somani. 2019. An Efficient Framework for Optimistic Concurrent Execution of Smart Contracts. In PARALLEL, DISTRIBUTED AND NETWORK-BASED PROCESSING. EUROMICRO INTERNATIONAL CONFERENCE, Pavia, Italy, 83–92. https://doi.org/10.1109/EMPDP.2019.8671637Google ScholarCross Ref
- Vikram Saraph and Maurice Herlihy. 2019. An Empirical Study of Speculative Concurrency in Ethereum Smart Contracts. In International Conference on Blockchain Economics, Security and Protocols, OpenAccess Series in Informatics (OASIcs). Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik, 4:1–4:15.Google Scholar
- Fred B Schneider. 1990. Implementing fault-tolerant services using the state machine approach: A tutorial. Comput. Surveys 22, 4 (1990), 299–319.Google ScholarDigital Library
- Jun Zhao, Jing Tang, Zengxiang Li, Huaxiong Wang, Kwok-Yan Lam, and Kaiping Xue. 2020. An Analysis of Blockchain Consistency in Asynchronous Networks: Deriving a Neat Bound. In 2020 IEEE 40th International Conference on Distributed Computing Systems (ICDCS). IEEE, Singapore, 179–189.Google ScholarCross Ref
Index Terms
- Parallel Execution of Transactions Based on Dynamic and Self-Verifiable Conflict Analysis
Recommendations
Versioned boxes as the basis for memory transactions
Special issue: Synchronization and concurrency in object-oriented languagesIn this paper, we propose the use of Versioned Boxes, which keep a history of values, as the basis for language-level memory transactions. Unlike previous work on software transactional memory, in our proposal read-only transactions never conflict with ...
Operating System Transactions
SOSP '09: Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principlesApplications must be able to synchronize accesses to operating system resources in order to ensure correctness in the face of concurrency and system failures. System transactions allow the programmer to specify updates to heterogeneous system resources ...
Scalable atomic visibility with RAMP transactions
SIGMOD '14: Proceedings of the 2014 ACM SIGMOD International Conference on Management of DataDatabases can provide scalability by partitioning data across several servers. However, multi-partition, multi-operation transactional access is often expensive, employing coordination-intensive locking, validation, or scheduling mechanisms. Accordingly,...
Comments