Execução Paralela de Transações Baseada em Análise Dinâmica e Auto-Verificável de Conflitos
Abstract
The solutions for blockchains usually sequentially execute transactions by miners, allowing validators to reproduce this execution to validate its result. However, this approach does not allow to exploit modern multi-core resources efficiently, thus limiting performance and increasing application latency. Existing solutions that allow parallel execution of some transactions usually use static analysis (before execution) or a directed aciclic graph (DAG) to deal with conflic/dependencies among transactions. We propose a new solution to allow parallel execution of transactions through a dynamic conflict analysis using a DAG in a way that conflicts are self-verifiable at validators. In order to evaluate the benefits of our proposal over traditional sequential execution, we created for smart contract applications that simulate the execution of a real blockchain. Experiments show that our proposal outperforms the sequential execution by up to 5×.References
Amiri, M. J., Agrawal, D., and El Abbadi, A. (2019). Parblockchain: Leveraging transaction parallelism in permissioned blockchain systems. In 2019 IEEE 39th International Conference on Distributed Computing Systems (ICDCS), pages 1337-1347. IEEE.
Anjana, P. S., Kumari, S., Peri, S., Rathor, S., and Somani, A. (2019). An efficient framework for optimistic concurrent execution of smart contracts. In 27th Euromicro International Conference on Parallel, Distributed and Network-Based Processing.
Baheti, S., Anjana, P. S., Peri, S., and Simmhan, Y. (2022). Dipetrans: A framework for distributed parallel execution of transactions of blocks in blockchains. Concurrency and Computation: Practice and Experience, 34(10):e6804.
Bartoletti, M., Galletta, L., and Murgia, M. (2020). A true concurrent model of smart contracts executions. In International Conference on Coordination Languages and Models, pages 243-260. Springer.
Blockchain.com (2022). Bitcoin block size. url https://www.blockchain.com/explorer/blocks/btc.
Buterin, V. (2013). A next-generation smart contract and decentralized application platform https://github.com/ethereum/wiki/wiki.
Cascaval, C., Blundell, C., Michael, M., Cain, H. W., Wu, P., Chiras, S., and Chatterjee, S. (2008). Software transactional memory: Why is it only a research toy? Communications of the ACM, 51(11):40-46.
Dannen, C. (2017). Solidity documentation. In Introducing Ethereum and solidity, pages 69-88. Springer.
Dickerson, T., Gazzillo, P., Herlihy, M., and Koskinen, E. (2017). Adding concurrency to smart contracts. In Proceedings of the ACM Symposium on Principles of Distributed Computing, pages 303-312.
Escobar, I. A., Alchieri, E., Dotti, F. L., and Pedone, F. (2019). Boosting concurrency in parallel state machine replication. In Proceedings of the 20th International Middleware Conference, pages 228-240.
Garay, J., Kiayias, A., and Leonardos, N. (2015). The bitcoin backbone protocol: Analysis and applications. In Oswald, E. and Fischlin, M., editors, Advances in Cryptology EUROCRYPT 2015, pages 281-310, Berlin, Heidelberg. Springer Berlin Heidelberg.
Nakamoto, S. (2008). Bitcoin: A peer-to-peer electronic cash system. Decentralized Business Review, page 21260.
Saraph, V. and Herlihy, M. (2019). An empirical study of speculative concurrency in ethereum smart contracts. arXiv preprint arXiv:1901.01376.
Schneider, F. B. (1990). Implementing fault-tolerant services using the state machine approach: A tutorial. ACM Computing Surveys (CSUR), 22(4):299-319.
Anjana, P. S., Kumari, S., Peri, S., Rathor, S., and Somani, A. (2019). An efficient framework for optimistic concurrent execution of smart contracts. In 27th Euromicro International Conference on Parallel, Distributed and Network-Based Processing.
Baheti, S., Anjana, P. S., Peri, S., and Simmhan, Y. (2022). Dipetrans: A framework for distributed parallel execution of transactions of blocks in blockchains. Concurrency and Computation: Practice and Experience, 34(10):e6804.
Bartoletti, M., Galletta, L., and Murgia, M. (2020). A true concurrent model of smart contracts executions. In International Conference on Coordination Languages and Models, pages 243-260. Springer.
Blockchain.com (2022). Bitcoin block size. url https://www.blockchain.com/explorer/blocks/btc.
Buterin, V. (2013). A next-generation smart contract and decentralized application platform https://github.com/ethereum/wiki/wiki.
Cascaval, C., Blundell, C., Michael, M., Cain, H. W., Wu, P., Chiras, S., and Chatterjee, S. (2008). Software transactional memory: Why is it only a research toy? Communications of the ACM, 51(11):40-46.
Dannen, C. (2017). Solidity documentation. In Introducing Ethereum and solidity, pages 69-88. Springer.
Dickerson, T., Gazzillo, P., Herlihy, M., and Koskinen, E. (2017). Adding concurrency to smart contracts. In Proceedings of the ACM Symposium on Principles of Distributed Computing, pages 303-312.
Escobar, I. A., Alchieri, E., Dotti, F. L., and Pedone, F. (2019). Boosting concurrency in parallel state machine replication. In Proceedings of the 20th International Middleware Conference, pages 228-240.
Garay, J., Kiayias, A., and Leonardos, N. (2015). The bitcoin backbone protocol: Analysis and applications. In Oswald, E. and Fischlin, M., editors, Advances in Cryptology EUROCRYPT 2015, pages 281-310, Berlin, Heidelberg. Springer Berlin Heidelberg.
Nakamoto, S. (2008). Bitcoin: A peer-to-peer electronic cash system. Decentralized Business Review, page 21260.
Saraph, V. and Herlihy, M. (2019). An empirical study of speculative concurrency in ethereum smart contracts. arXiv preprint arXiv:1901.01376.
Schneider, F. B. (1990). Implementing fault-tolerant services using the state machine approach: A tutorial. ACM Computing Surveys (CSUR), 22(4):299-319.
Published
2023-05-22
How to Cite
SILVA, Jefferson P.; ALCHIERI, Eduardo; DOTTI, Fernando.
Execução Paralela de Transações Baseada em Análise Dinâmica e Auto-Verificável de Conflitos. In: BRAZILIAN SYMPOSIUM ON COMPUTER NETWORKS AND DISTRIBUTED SYSTEMS (SBRC), 41. , 2023, Brasília/DF.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2023
.
p. 43-56.
ISSN 2177-9384.
DOI: https://doi.org/10.5753/sbrc.2023.460.
