Execução Paralela de Transações Baseada em Análise Dinâmica e Auto-Verificável de Conflitos

  • Jefferson P. Silva UnB
  • Eduardo Alchieri UnB
  • Fernando Dotti PUCRS

Resumo


As soluções para blockchains geralmente executam transações sequencialmente pelos mineradores, permitindo que validadores reproduzam esta execução para validar o seu resultado. Porém, tal abordagem é incapaz de explorar os recursos multi-core modernos de forma eficiente, limitando assim o desempenho e aumentando a latência das aplicações. Soluções existentes que permitem execução paralela de uma parte das transações geralmente fazem uso de análise estática (antes da execução) ou utilizam um grafo acíclico dirigido (DAG) para lidar com conflitos/dependências entre transações. Neste contexto, propomos uma nova solução para permitir execuções paralelas em uma blockchain utilizando análise dinâmica de conflitos através da utilização de um DAG onde os conflitos de uma transação podem ser auto-verificados pelos validadores. A fim de avaliar os benefícios da nossa proposta sobre a execução sequencial tradicional, criamos quatro aplicações de contratos inteligentes que simulam a execução de uma blockchain real. Experimentos mostram que nossa proposta atinge uma aceleração que supera em até 5× a execução sequencial.

Referências

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.
Publicado
22/05/2023
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: SIMPÓSIO BRASILEIRO DE REDES DE COMPUTADORES E SISTEMAS DISTRIBUÍDOS (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.