通过 UTXO 模型实现并行执行:FuelVM 有哪些独特优势?
作者:fuelchina;来源:Fuel Network
随着网络使用量的增加,以太坊虚拟机(EVM)逐渐暴露出其性能方面的局限性。目前以太坊每秒仅能处理约 15-30 笔交易,在高峰期时显得力不从心,导致交易费用飙升,用户体验受损。此外,随着越来越多的应用和用户涌入,以太坊的状态数据急剧膨胀,使得全节点的运行成本和维护难度不断增加。这些问题限制了以太坊的潜力,使其难以支持大规模的去中心化应用。
为了应对这些问题,Rollups 作为一种 Layer 2 解决方案提供了提高效率和降低成本的方法,通过将大部分计算和存储工作移到链外执行,然后将结果提交到以太坊主链,从而显著提升了交易吞吐量和降低交易费用。Rollups 分为两种主要类型:Optimistic Rollups 和 ZK-Rollups,前者依赖于挑战期验证交易的有效性,后者则通过零知识证明直接验证。这些解决方案在扩展性方面表现出色,但最终结果还是需要在主链上处理和确认,依然受限于 EVM 的架构和设计。
当底层协议能够处理的交易数量有限时,即使 EVM 的处理速度不高,也尚能满足需求。然而,以太坊正在通过技术手段(如坎昆升级中引入 EIP-4844)大幅提升其底层协议的扩展性。随着以太坊基础层能够处理更多的交易,EVM 的执行速度成为了新的瓶颈。因此,提高 EVM 的执行效率将是未来提升整个系统性能的关键。
为了解决这个新瓶颈,Fuel 团队开发了一个更高效的虚拟机架构 FuelVM。FuelVM 是专为高效并行处理和模块化执行设计的虚拟机,通过 UTXO 模型来实现并行处理,显著提升交易处理速度。
解密 FuelVM 的独特优势
Fuel 是一个为以太坊 Rollups 设计的模块化执行层,能够作为单链的一部分或作为独立的执行环境,与其他层(如结算层、共识层和数据可用性层)分离运作。FuelVM 是 Fuel 系统中的核心虚拟机,专为高计算带宽和并行处理而设计。FuelVM 通过采用 UTXO 模型实现并行处理,利用访问列表避免交易冲突,并通过内置的原生资产系统减少对智能合约的依赖。
-
UTXO 模型实现并行处理:UTXO 模型源自比特币,在这种模型中,资产以有向无环图(DAG)的形式存储在不同地址之间。每笔交易会消耗未花费的输出来创建新的输出。Fuel 使用 UTXO 模型来实现并行处理事务。由于 UTXO 模型将状态划分为独立的元素,每个交易必须明确指定将使用哪些 UTXO,因此多个不冲突的交易可以同时执行。此外,FuelVM 引入了谓词(Predicates)和脚本(Scripts)的概念,以增强智能合约的图灵完备性。谓词定义了 UTXO 的使用条件,而脚本是用于执行多个智能合约调用的程序。UTXO 模型中的状态是原子的,每个 UTXO 只能被使用一次,使用后会生成新的 UTXO。因此,脚本和谓词不会持久存储数据,减少了状态增长。这有助于减轻区块链上的状态膨胀问题,降低运行节点的成本。
-
访问列表避免并行交易之间的冲突:在 FuelVM 中,每个事务必须明确指定它将访问的 UTXO。这些指定的信息就构成了访问列表。通过访问列表,FuelVM 可以提前知道每个事务将影响的状态,从而将不冲突的事务同时在多个 CPU 线程上并行执行,避免交易之间的冲突。
-
原生资产系统:FuelVM 直接在虚拟机层面处理原生资产。每种原生资产通过一组特定的操作码(opcodes)定义,这些操作码可以执行资产的创建、转移和销毁操作,不需要为每种资产编写和部署智能合约。这种方式减少了智能合约调用的次数和复杂性,从而降低了交易的 gas 成本。这对于频繁进行资产转移的应用场景尤为重要。此外,通过减少对复杂智能合约的依赖,也降低了潜在的智能合约漏洞风险。
-
支持账户抽象:账户抽象允许开发者在应用层定义自定义的交易验证方案(如多重签名、多因子认证等),而不必依赖于协议中预设的验证规则。在 FuelVM 中,这种灵活性是通过谓词实现的。谓词作为一种验证条件,可以编程来决定 UTXO 是否可以被花费。由于谓词不需要在链上存储状态,它们仅在交易验证时进行评估,所以谓词和 UTXO 模型的结合,减少了链上状态的增长。
FuelVM 的挑战:从技术到市场的双重考验
为了充分利用 FuelVM 的架构特点,Fuel 项目团队开发了 Sway 语言和开发者工具链 Forc。Sway 是一种受 Rust 和 Solidity 启发的新编程语言,专门为 FuelVM 设计,提供现代编程语言的特性,如结构体、基于特性的继承和泛型类型。Forc 工具链为开发、部署和测试 Sway 代码提供了一体化的解决方案,包括包管理器、VSCode 插件、测试基础设施和区块资源管理器。由于 FuelVM 使用新的编程语言,这对开发者来说是一个全新的开发环境,可能会影响其早期的采纳率。因此,Fuel 项目团队需要建立一个强大且活跃的开发者社区,以支持和推动技术的普及。
此外,FuelVM 与 EVM 不兼容,这意味着现有的 EVM 应用不能直接迁移到 FuelVM 上。这可能会限制初期用户和开发者采用 FuelVM 的积极性。为了克服这一障碍,Fuel 项目需要提供迁移工具和资源,帮助开发者将现有应用迁移到 FuelVM 平台上。这些工具和资源可以包括代码转换工具、兼容性层以及详细的迁移指南,帮助开发者平滑过渡到新平台。
FuelVM 还需要在已经相对成熟的 Rollups 解决方案中竞争,证明其独特的技术优势和市场价值。比如更低的状态膨胀和智能合约攻击风险,但这种新的虚拟机架构和编程语言也需要时间来验证其性能和稳定性。
未来展望:并行执行已成必然趋势
随着越来越多的 DApps 涌现,传统的单线程执行模式已经无法满足大规模应用的需求。因此,探索并行执行成为技术发展的必然趋势。今年上半年,并行执行成为热门讨论话题,并已然成为区块链技术发展的重要方向,越来越多的项目注意到其潜力并积极投身其中。通过更好地利用多核 CPU 的计算能力,并行执行可以在不牺牲安全性和一致性的前提下,大幅提升交易处理速度和系统性能。FuelVM 作为并行执行的创新实践,通过结合 UTXO 模型来实现并行执行能力,从而提高整体网络的吞吐量和性能。这一特性特别适合需要高频交易和低延迟的应用,比如衍生品交易所、全链游戏等。同时通过减少状态膨胀和提高资源利用效率,FuelVM 为去中心化应用提供了一个更具可扩展性和高效的执行环境。