想象这样一个场景:在一个繁忙的餐厅后厨,如果每位厨师都必须等待前一道工序完成后才能开始自己的工作,整个厨房的运作效率将会多么低下。这正是区块链领域中同步执行模式的真实写照——每个任务必须按部就班地依次完成。而当我们转变思路,让厨师们能够同时处理食材准备、烹饪和摆盘等不同工序时,整个厨房的效率就会大幅提升。这正是异步执行带来的优势,它允许多个任务并行处理,创造更高效的工作流程。
随着区块链技术的发展,同步可组合性成为行业热议的焦点,特别是在解决以太坊Layer 2网络碎片化问题上展现出独特价值。这种模式有效改善了用户体验和开发者体验,比如将跨Layer 2转账的费用降低至1美元,并将等待时间从7天大幅缩短。以太坊创始人Vitalik Buterin也参与了相关讨论,他指出并非所有问题都需要依赖同步性解决方案。我们相信,事务执行的有效性可以通过异步方式实现,而且同步基础设施的建设和维护成本往往被低估。实际上,同步和异步并非对立的选择,它们可以和谐共存,未来更可能朝着异步执行的方向发展。
异步可分解的创新实践
面对区块链扩容的挑战,智能合约的并行执行技术备受关注。虽然多链和Layer 2方案在一定程度上提升了性能,但智能合约执行仍然受限于单一虚拟机的处理能力。并行虚拟机技术为解决这一瓶颈提供了新思路,它能够同时处理多个智能合约交易,充分利用多核CPU的计算潜力,实现性能的飞跃式提升。
PREDA(并行中继执行分布式架构)作为面向分布式多EVM区块链系统的高级编程模型,开创性地实现了智能合约的并行化处理。通过异步执行和可分解性设计,PREDA使合约功能能够完全并行运行,大幅提升了交易并发处理能力。这种创新架构确保所有EVM实例的资源都能得到充分利用,在性能和可扩展性方面达到最优状态。
为了更好地理解PREDA的工作原理,我们需要明确几个关键概念:Tx1代表交易1,Tx2代表交易2。假设Tx1需要修改状态A、B、C,而Tx2需要修改状态A、D、E。当前主流的EVM并行化方案,如Sei、Aptos和Sui采用的同步执行模式,要求每笔交易的所有步骤必须在同一区块高度内完成,无论涉及的数据依赖关系多么复杂。这种设计导致当交易之间存在状态访问冲突时,系统不得不放弃并行执行机会,严重影响整体吞吐量。特别是在链上活动激增时,这种限制会更加明显。
PREDA采用了一种革命性的异步可分解执行模型。它将交易步骤按照数据访问依赖关系进行智能分解,允许这些步骤异步执行。这种创新方法不仅显著提升了执行效率,理论上还具备无限的可扩展潜力。接下来我们将详细探讨PREDA的实现原理,并通过实验数据验证其优越性。
性能表现的实证分析
为了客观评估PREDA的性能优势,我们选取了Sei(V2)、Aptos、Sui和PREDA四个系统进行对比测试。测试采用真实的ETH历史代币转账交易数据,这种测试方法比随机生成交易更能反映实际应用场景,因为真实交易中存在更多地址关联和数据依赖关系。
实验结果显示,在处理以太坊真实历史转账交易时,PREDA的TPS(每秒交易数)表现远超其他系统,比Aptos高出3.3到28.2倍。考虑到不同系统采用不同的编程语言和虚拟机实现,我们还引入了相对加速比指标,以单个EVM为基准进行标准化比较,消除了实现差异带来的影响。
图1直观展示了各系统在等效代币转账智能合约上的绝对吞吐量表现,而图2则呈现了它们相对于基线的加速比。这些数据充分证明了采用PREDA编程模型对提升系统吞吐量的显著效果。
创新的编程模型
当前并行EVM区块链系统主要采用两种并行机制:Optimistic并行化(如Aptos、Sei V2和Monad)在执行时忽略交易间状态依赖,发生冲突时回滚重试;悲观并行化(如Solana、Sui和Sei V1)则在执行前分析状态依赖,仅并行无冲突交易。这两种方法都采用”共享一切”架构,将交易视为不可分割的整体。
PREDA创新性地提出了”共享无”架构,通过智能状态划分确保不同EVM实例永远不会访问相同的合约状态,从根本上避免了写入冲突。其核心创新包括可编程合约范围和异步功能中继。可编程合约范围将合约状态划分为互不重叠的并行单元,而异步功能中继则实现了不同EVM间的执行流程切换。
在PREDA系统中,用户发起的交易首先被路由到管理该用户地址状态的EVM。执行过程中,系统会根据需要将执行流程通过中继交易转移到其他EVM。这种”数据不动,计算动”的设计理念,使得每个EVM内部保持顺序执行,而不同EVM之间则实现完全并行。这种方法既避免了乐观并行中的重执行开销,也消除了悲观并行中的状态分析成本。
专为并行设计的语言
PREDA实现了一种类似C/C++和JavaScript的算法风格语言。通过对比Solidity和PREDA语言中的代币转账函数实现,我们可以清晰看到两者的差异。在PREDA实现中,@address关键字定义了可编程合约范围,将合约状态按地址分区管理;relay关键字则标识了异步功能中继。
PREDA的执行流程展现了其并行优势:当Bob发起转账交易时,系统首先在管理Bob余额的EVM上完成提款操作,然后通过中继交易在管理Alice余额的EVM上完成存款操作。这种设计实现了双重并行:不同用户发起的交易可以并行执行,而同一交易中的不同阶段也能以流水线方式并行处理。
未来发展方向
PREDA代表了区块链性能优化,特别是可扩展性方面的重大突破。通过实现异步可分解性,它能够高效处理交易,突破传统同步并行模型的瓶颈。这种方法将交易智能分解为微交易单元,允许并发状态变更,彻底规避了写入冲突问题。
PREDA的灵活性不仅体现在基于@address的状态划分上,还支持通过@type等关键字自定义划分标准,甚至可以声明全局一致状态(@global)。我们的实验数据充分证明了PREDA在吞吐量和可扩展性方面的显著优势。PREDA团队将持续深入研究,未来将发布针对不同类型智能合约的全面对比分析,以及对PREDA编程模型和语言的详细解读,敬请期待。
声明事项
- 本文转载自【medium】,著作权归属原作者【PREDA Parallel VMs】,如对转载有异议,请联系Gate Learn团队,团队会根据相关流程尽速处理。
- 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
- 文章其他语言版本由Gate Learn团队翻译,除非另有说明,否则不得复制、传播或抄袭经翻译文章。
声明:文章不代表CHAINTT观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险 自担!转载请注明出处:https://www.chaintt.cn/17803.html