Parallel Execution of Transactions Based on Dynamic and Self-Verifiable Conflict Analysis - Silva, Jefferson; Alchieri, Eduardo; Dotti, Fernando; Pedone, Fernando (Anais do Latin-American Symposium on Dependable Computing (LADC); 2023: Anais do XII Latin-American Symposium on Dependable Computing, 2023)
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 x in some cases.