In the realm of blockchain systems, smart contracts have gained widespread adoption owing to their programmability. Consequently, developing a system capable of facilitating high throughput and scalability is of paramount importance. Directed acyclic graph (DAG) consensus protocols have demonstrated notable enhancements in both throughput and latency, however, the serial execution is now becoming a bottleneck. Numerous approaches prove impractical for smart contracts by assuming that read/write sets are known in prior. This paper introduces Thunderbolt, a novel architecture based on DAG-based protocols, that aims to furnish a scalable and concurrent execution for smart contract transactions. Inspired by Hyperledger, Thunderbolt also expands Execute-Order-Validate architecture in which transactions are distributed into distinct replicas, with execution outcomes determined prior to ordering through the DAG-based protocol. Existing protocols adopt serial executions after the ordering to avoid non-determinism. However, Thunderbolt provides parallel pre-execution before the ordering as well as parallel verifications once any source of non-determinism is removed. Each replica validates the transaction results during the construction of the DAG other than after the ordering following the construction to improve the latency. In an effort to enhance smart contract execution, we implement an execution engine that constructs a dependency graph to dynamically assign transaction orders, thus mitigating abort rates due to execution conflicts. Additionally, we introduce a novel shard reconfiguration to withstand malicious attacks by relocating replicas from the current DAG to a new DAG, and rotating the shards among different replicas. Our comparison of the results on SmallBank with serial execution on Narwhal-Tusk revealed a remarkable 50 times speedup with 64 replicas.
翻译:在区块链系统领域,智能合约因其可编程性而获得了广泛应用。因此,开发一个能够支持高吞吐量和可扩展性的系统至关重要。有向无环图(DAG)共识协议已在吞吐量和延迟方面展现出显著提升,然而,串行执行正逐渐成为性能瓶颈。许多方法因假设读/写集事先已知,而对智能合约而言并不实用。本文提出雷霆,一种基于DAG协议的新型架构,旨在为智能合约交易提供可扩展的并发执行。受Hyperledger启发,雷霆也扩展了“执行-排序-验证”架构,其中交易被分发到不同的副本节点,其执行结果在通过基于DAG的协议进行排序之前即已确定。现有协议在排序后采用串行执行以避免非确定性。然而,雷霆在排序前提供并行预执行,并在任何非确定性来源被消除后进行并行验证。每个副本节点在构建DAG的过程中(而非构建完成后的排序阶段)验证交易结果,从而改善延迟。为了增强智能合约执行,我们实现了一个执行引擎,通过构建依赖图来动态分配交易顺序,从而降低因执行冲突导致的交易中止率。此外,我们引入了一种新颖的分片重配置机制,通过将副本节点从当前DAG迁移至新DAG,并在不同副本节点间轮换分片,以抵御恶意攻击。我们在SmallBank上与Narwhal-Tusk的串行执行进行对比,结果显示在64个副本节点下实现了高达50倍的加速。