Contemporary blockchain such as Bitcoin and Ethereum execute transactions serially by miners and validators and determine the Proof-of-Work (PoW). Such serial execution is unable to exploit modern multi-core resources efficiently, hence limiting the system throughput and increasing the transaction acceptance latency. The objective of this work is to increase the transaction throughput by introducing parallel transaction execution using a static analysis technique. We propose a framework DiPETrans for the distributed execution of the transactions in a block. Here, peers in the blockchain network form a community to execute the transactions and find the PoW parallelly, using a leader-follower approach. During mining, the leader statically analyzes the transactions, creates different groups (shards) of independent transactions, and distributes them to followers to execute them in parallel. After the transaction executes, the community's compute power is utilized to solve the PoW concurrently. When a block is successfully created, the leader broadcasts the proposed block to other peers in the network for validation. On receiving a block, validators re-execute the block transactions and accept the block if they reach the same state as shared by the miner. Validation can also be done as a community, in parallel, following the same leader-follower approach as mining. We report experiments using over 5 Million real transactions from the Ethereum blockchain and execute them using our DiPETrans framework to empirically validate the benefits of our techniques over traditional sequential execution. We achieve a maximum speedup of 2.2x for the miner and 2.0x for the validator, with 100 to 500 transactions per block. Further, we achieve a peak of 5x end-to-end block creation speedup using a parallel miner over a serial miner when using 6 machines in the community.
翻译:Bitcoin 和 Ethereum 等当代链条,例如 Bitcoin 和 Etheyum 等, 连续交易由矿工和验证者连续执行交易, 并确定“工作验证” 。 这种连续执行无法有效地利用现代多核心资源, 从而限制系统输送量, 提高交易接受时间。 这项工作的目的是通过使用静态分析技术平行执行交易, 增加交易量。 我们建议了一个框架 DiPETrans, 用于在一个区块中分配交易的执行。 在这里, 区链网络的同行形成一个社区, 执行交易并同时找到“ 工作验证 ” 。 在开采过程中, 领导人静态地分析交易, 创建不同组( 硬体) 的独立交易, 并将其分配给追随者, 平行执行。 当区链路成功创建时, 领导将拟议的区块传递给网络中的其他同行, 在接收块时, 验证者重新验证块交易并接受块块块, 如果它们达到相同的标准值, 则使用“ 标准” 。 在矿工矿工的平行操作中, 使用“ 5 运行中, 实现一个“ 我们的“ 平行的“ ” 的“ 常规” 运行”,, 在使用一个“ 的“ 的“ 的” 运行” 实现一个“ 我们的“ 运行” 的“ 的“ 的” 的“ 的” 的“ 的” 的“ 的” 的”, 在” 的“ 实现一个“ 的“ 的” 的” 的“ 的“ 的” 的” 的”, 在”, 在”, 在” 的“, 在” 的“ 的“ 的“ 的“ 的” 的” 的“ 的“ 的“ 的” 的” 的“ 的” 的“ 的”, 的“ 的” 的” 的“, 在” 的”, 在” 的”, 在” 的“ 的”, 在” 的“ 的”, 在” 的“ 的“ 进行中, 在” 进行中, 在” 进行中, 在” 进行中,