Notes

Posted on Nov 03, 2022Read on Mirror.xyz

Fuel:模块化执行案例(第 2 部分)

模块化执行案例

模块化架构将使区块链能够以数量级的速度扩展。作为模块化堆栈的核心部分,执行层正处于快速创新的阶段。

Fuel正在为模块化区块链堆栈构建最快的执行层,在第1部分中,我们探讨了模块化执行层如何通过将计算与验证分离来实现可扩展性。

https://mirror.xyz/coincapital.eth/ZfEP-rJmkSkCN2f5tmBc2_IcpcuLFgqJ5ZX0wxUJdpI

我们还谈到了第二个核心优势,它使模块化执行层能够比单片执行层扩展几个数量级:

单片链在可以支持的速度和计算种类方面被锁定在低效的技术中。另一方面,可以专门设计模块化执行层,以优化高效计算。

这篇文章探讨了第二个核心优势,特别关注Fuel如何彻底改变区块链处理计算的方式。

单片链:在第 1 层迭代的挑战

单片链在可以支持的速度和计算种类方面被锁定在低效的技术中。

当区块链最初被构思时,只有一个用例:数字现金。比特币区块链旨在针对这个狭窄的用例进行优化。

比特币推出后不久,人们开始意识到区块链在用例中的潜力远远超出了金钱。叙事迅速从“分布式账本”转向“分布式计算机”。比特币社区试图通过彩色coin来支持这个用例,但很明显,它的通用性不足以真正支持无信任的分布式计算;它被锁定在其原始用例中。需要一个新的架构。

认识到这个问题,以太坊的创建者着手构建一个区块链,可以支持分布式图灵完备虚拟机:以太坊虚拟机(EVM)。随着2015年以太坊的推出,区块链已经发展到支持在无信任环境中的任意计算。现在,任何人都可以构建和启动计算机程序(智能合约),并让它在分布式计算机上运行。

以太坊是在区块链概念出现后不到五年就构思出来的。自以太坊推出以来的7年中,已经发明了新的概念,这代表了比以太坊在比特币上取得的进步更大的飞跃。但与比特币一样,以太坊区块链大多被锁定在其推出的核心架构中。

对于多年来对以太坊区块链和EVM所做的每一次改进,由于需要保持向后兼容性,还有更多潜在的创新无法实施。

因此,每当孵化新的创新时,区块链社区都会继续资助、构建和启动新的区块链。无数新的第 1 层区块链已经推出,承诺迭代无信任分布式计算的概念,但它们都遇到了同样的挑战:升级区块链以支持新功能和改进是困难的(而且通常是不可能的)。

因此,这个循环仍在继续,我们继续看到新的区块链推出,并对其前身进行了零碎的改进。在这个过程中,我们留下了一个由大多数不兼容的区块链组成的生态系统,流动性、资金、用户体验和开发者思想份额的碎片化程度不断增加。与此同时,本可以花在真正创新上的精力反而用于吸引投资者、开发人员和最终用户的关注。

https://twitter.com/musalbas/status/1582396496229507072?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1582396496229507072%7Ctwgr%5E%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Ffuel-labs.ghost.io%2Fthe-case-for-modular-execution-part-2%2F

竞争是健康的,对于繁荣的生态系统是必要的。但这种竞争发生在错误的水平上。

模块化区块链范式有望解决这个问题。由于模块化堆栈中的每一层都独立于其他层,因此可以在一层上进行创新,而无需对整个堆栈进行彻底检修。执行层可以在执行上竞争。数据可用性层可以在数据可用性方面竞争。每一层都可以针对其预期目的进行优化,而不会破坏向后兼容性。

共享结算层使流动性集中在一个地方,因此可以在不分散流动性或增加最终用户体验摩擦的情况下构建新的执行层。原生启用的信任最小化桥接意味着社区可以减少在互操作性工作上花费的资源,而是专注于探索有意义的创新。

随着模块化堆栈的出现,我们可以摆脱在虚荣指标上竞争的不同 L1 生态系统,转向更具凝聚力、可互操作、可升级的堆栈。

https://twitter.com/fuellabs_/status/1569753111983722496?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1569753111983722496%7Ctwgr%5E%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Ffuel-labs.ghost.io%2Fthe-case-for-modular-execution-part-2%2F

模块化执行:超越 EVM

尽管有大量的一级区块链有望改进EVM的原始设计,但其先发优势使EVM能够作为区块链生态系统中的“默认”运行时环境站稳脚跟。智能合约开发成为Solidity(EVM的编程语言)的代名词,它已经吸引了大多数潜在的区块链开发人员。因此,当前正在开发的大多数执行层都是基于 EVM 的汇总。

这样做有一个很好的理由:使用 EVM 使汇总能够进入用 Solidity 编写的现有应用程序市场,以及已经熟悉这些应用程序的大量最终用户。EVM是播种新生态系统的绝佳工具,因为它已经在开发人员市场中占有如此大的份额。

但是,正如我们已经探索的那样,保持向后兼容性的需求意味着 EVM 无法采用许多创新。此外,EVM 的核心设计针对单片链进行了优化,而不是模块化堆栈。

EVM 的一些限制包括:

顺序执行 - EVM 不支持并行事务执行,因此其计算效率远低于其他虚拟机设计。

欺诈证明 - 以太坊基于账户的模型意味着在EVM链上生成和执行欺诈证明非常昂贵且效率低下,使其成为模块化执行层的次优选择。

Solidity - EVM最流行的编程语言Solidity因提供糟糕的开发人员体验而臭名昭著,其设计方式使得编写安全的智能合约变得困难。

燃料:针对模块化执行进行了优化

模块化的出现意味着执行层可以利用以太坊的流动性和安全性,而不受EVM的限制。

通过采用新的和改进的虚拟机设计原则,模块化执行层可以专门优化高效和可扩展的计算、卓越的开发人员体验和最大的安全性。

Fuel正在利用这个新的设计空间来构建最快的模块化执行层

燃料虚拟机

Fuel的核心创新之一是全新的虚拟机FuelVM。基于以太坊构建的执行层的出现为改进过去的虚拟机设计提供了新的机会,不受向后兼容需求的约束。

虽然在带宽是核心瓶颈的预模块化世界中,EVM 的缓慢交易执行可能已经足够了,但在新的模块化堆栈(包括 L1 以太坊上)所做的改进意味着计算吞吐量正在成为扩展时的主要限制。

为了应对这种新范式,FuelVM旨在优化快速交易执行。借鉴EVM,Solana,WASM,比特币和Cosmos的经验,FuelVM旨在减少传统区块链虚拟机架构的浪费处理,同时大大增加开发人员的潜在设计空间。

FuelVM 采用了许多由 EVM 社区建议和支持的创新,但由于需要保持向后兼容性而无法实现。下面仅突出显示了几个示例(有关完整列表,请参阅此处)。

具有 Sway 和 Forc 的高级 DevEx

Fuel 协议在设计时将开发人员经验放在首位。FuelVM与其配套语言Sway一起构建:一种基于Rust的域特定语言,专门用于利用区块链VM。与在创建EVM后开发的Solidity不同,Sway是从头开始创建的,内置了方便高效的操作。通过基于 Sway on Rust,Fuel 通过使用强大的静态分析和编译器反馈,使智能合约开发更安全、更高效。

从工具的角度来看,Fuel通过Forc工具链改进了EVM生态系统。借助 Forc,开发人员可以使用单个工具链获得开始为 Fuel VM 创建 Sway 应用程序所需的一切。Fuel采用精心策划的,“包含电池”但模块化的方法来提供工具,具有一套全面,标准化的规范工具,不仅涵盖堆栈的较低级别(如协议和VM实现),还涵盖较高级别(例如包管理,编辑器支持,常用插件等等)。

https://twitter.com/camiinthisthang/status/1577738478699171845?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1577738478699171845%7Ctwgr%5E%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Ffuel-labs.ghost.io%2Fthe-case-for-modular-execution-part-2%2F

Fuel 的开发人员环境保留了 Solidity 等智能合约语言的优势,同时采用了 Rust 工具生态系统中引入的范式,使 Sway 的学习曲线易于管理,适合所有级别的开发人员体验。

并行事务执行

并行执行事务的能力是一个非常理想的属性,特别是当现代处理器变得越来越多线程时。因此,这是设计 Fuel 协议时的核心考虑因素。

并行事务执行需要能够确定和处理事务之间的依赖关系。为了避免在处理不同内核上的事务时出现重叠,需要预先确定每个事务可能触及的共享状态(通过“访问列表”),以便将事务划分为彼此之间没有任何可能交互的集合。

由于其基于账户的设计的限制,以太坊无法支持这些访问列表,因此被迫按顺序处理交易(即一个接一个)。EIP-648 提议向以太坊添加访问列表,但由于它会带来其他低效率,因此从未实施过。

从这一限制中吸取教训,Fuel以UTXO模型的形式实现了严格的状态访问列表,使其能够使用通常在单线程区块链中空闲的多个CPU线程和内核。因此,Fuel 可以并行执行事务,提供比单线程对应项更多的计算、状态访问和事务吞吐量。

除了提供效率优化外,并行处理多个事务的能力还可以提高安全性,因为它使事务吞吐量能够扩展,而不会相应增加验证这些事务的资源需求。这减少了运行完整节点的障碍,从而形成了更加分散的验证者网络。

针对欺诈证明进行了优化

欺诈证明是模块化区块链堆栈的核心技术。在第 1 部分中,我们探讨了模块化执行层如何利用欺诈证明来实现信任最小化的轻客户端,从而在假设只有一个诚实的完整节点可用的情况下实现安全性。

通过信任最小化的轻客户端和共享结算和数据可用性层,可以在模块化执行层之间建立信任最小化的桥梁,这是在L1之间无法实现的。这允许试验和部署新的区块链设计,而不会分散安全性或流动性。

由于欺诈证明提供的好处,Fuel是专门为以低成本,高效的方式进行欺诈证明而设计和制造的。

虽然以太坊基于账户的模型意味着为其构建欺诈证明的成本是不受约束的,但Fuel通过使用UTXO模型优化欺诈证明。UTXO欺诈证明通过简单地要求UTXO的每次支出“指向”UTXO的创建来提高效率,而不必引用全局状态树。证明a)指针无效,或b)所指向的任何内容与所花费的内容不匹配,足以详尽地证明欺诈。

作为一个额外的好处,FuelVM指令集被设计为在EVM中可证明欺诈。这意味着Fuel可以使用以太坊作为结算层,利用其深厚的流动性和庞大的用户群,同时不受EVM限制的限制。

其他好处

除了上述几点之外,Fuel还实施了许多其他改进,包括:

支持多个原生资产

本机帐户抽象和谓词

多维度资源定价

序列器去中心化

对这些改进的解释超出了本文的范围,但Blockchain Capital对这些额外好处进行了很好的深入研究

总结

单片范式导致一个由不兼容的L1组成的生态系统,在虚荣指标上竞争,分散流动性,资金和开发人员心智份额。Fuel采用的前提是,创新不需要启动新的L1,而是可以在执行层发生。

模块化架构使 MEL (如 Fuel) 能够专注于高效计算,而无需担心向后兼容性。更快的计算不仅会带来更高的吞吐量,而且还使运行验证器更有效率,从而提高去中心化程度。这使得Fuel能够为以太坊的可扩展性做出贡献,而不会受到EVM效率低下的阻碍。

使用 EVM 的执行层可以利用现有的 Solidity 应用程序和开发人员生态系统,但无法充分利用模块化堆栈提供的设计空间。Fuel正在利用FuelVM的这一新设计空间,从头开始设计,可证明欺诈并提供最佳的开发人员体验。

Fuel引入了针对快速逼近的模块化未来的创新,使新一代区块链#BeyondMonolithic成为可能。

fuel官网:https://www.fuel.network/

推特:https://twitter.com/fuellabs_

Discord社区:https://discord.com/invite/fuelnetwork

油管视频:https://www.youtube.com/channel/UCam2Sj3SvFSAIfDbP-4jWZQ