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

模块化执行层如何通过优化高效计算来实现可伸缩性。
模块化执行案例(第 2 部分)

模块化执行案例

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

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

https://fuel-labs.ghost.io/the-case-for-modular-execution-part-1/

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

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

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


单体链:迭代第 1 层的挑战

当涉及到它们可以支持的计算速度和种类时,单片链被锁定在低效的技术中。

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

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

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

在区块链概念出现后不到五年的时间里,以太坊就被构想出来了。自以太坊推出以来的 7 年里,发明了新的概念,比以太坊对比特币的进步代表了更大的飞跃。但与比特币一样,以太坊区块链大多被锁定在它推出的核心架构中。

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

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

如此循环,我们继续看到新的区块链在其前身的基础上进行了零碎的改进。在此过程中,我们留下了一个由大部分不兼容的区块链组成的生态系统,流动性、资金、用户体验和开发人员的思想份额不断增加。与此同时,本可以用于真正创新的精力却被用于吸引投资者、开发商和最终用户的注意力。

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


模块化执行:超越 EVM

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

这是有充分理由的:使用 EVM 可以让 rollups 进入以 Solidity 编写的现有应用程序市场,以及一大批已经熟悉这些应用程序的最终用户。EVM 是播种新生态系统的绝佳工具,因为它已经在开发者市场中占有如此大的份额。

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

EVM 的一些限制包括:

  • 顺序执行——EVM 不支持并行事务执行,这使得它的计算效率远低于其他 VM 设计。
  • 欺诈证明——以太坊基于账户的模型意味着在 EVM 链上生成和执行欺诈证明成本极高且效率低下,这使其成为模块化执行层的次优选择。
  • Solidity – EVM 最流行的编程语言 Solidity 因提供糟糕的开发人员体验而臭名昭著,其设计方式使得编写安全的智能合约变得困难。

Fuel:针对模块化执行进行了优化

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

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

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

燃料虚拟机

Fuel 的核心创新之一是全新的虚拟机FuelVM。建立在以太坊上的执行层的出现提供了一个改进过去 VM 设计的新机会,不受向后兼容需求的限制。

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

FuelVM预期会出现这种新范例,旨在优化快速交易执行。FuelVM 借鉴了 EVM、Solana、WASM、Bitcoin 和 Cosmos,旨在减少传统区块链虚拟机架构的浪费处理,同时极大地增加开发人员的潜在设计空间。

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

这些只是 EIP 的几个示例,由于向后兼容性问题最终被 EVM 拒绝,但已在 Fuel 中实现(来源:Fuel

具有 Sway 和 Forc 的卓越 DevEx

Fuel 协议的设计以最前沿的开发人员经验为出发点。FuelVM 是与其配套语言Sway一起构建的:Sway 是一种基于 Rust 的领域特定语言,专门设计用于利用区块链 VM。与 EVM 创建后开发的 Solidity 不同,Sway 是从头开始创建的,以内置方便高效的操作。通过基于 Rust 的 Sway,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%5E9b1a3ba69223093332562b4490a5bea6cba15aa6%7Ctwcon%5Es1_c10&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 可以并行执行事务,提供比其单线程对应项更多的计算、状态访问和事务吞吐量。

Fuel 对并行事务执行的支持意味着验证器可以通过使用其所有硬件来最大限度地提高效率(来源:Fuel

除了提供效率优化外,并行处理多个交易的能力还可以提高安全性,因为它可以扩展交易吞吐量,而无需相应增加验证这些交易的资源需求。这减少了运行完整节点的障碍,从而导致验证者网络更加去中心化。

针对欺诈证明进行了优化

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

欺诈证明支持信任最小化的轻客户端,它们依赖于单一诚实的少数人,为它们提供比整体轻客户端更大的安全保证(来源:Fuel

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

由于欺诈证明提供的好处,Fuel 的设计和构建专门用于以低成本、高效的方式进行欺诈证明。

鉴于以太坊基于账户的模型意味着为其构建欺诈证明的成本是不受限制的,而 Fuel 通过使用 UTXO 模型优化欺诈证明。UTXO 欺诈证明通过简单地要求 UTXO 的每次花费“指向”UTXO 的创建来实现效率,而不必参考全局状态树。证明 a) 指针无效,或 b) 指向的内容与花费的内容不匹配,足以详尽地证明欺诈。

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

其他福利

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

  • 支持多种原生资产
  • 本机帐户抽象和谓词
  • 多维资源定价
  • 定序器去中心化

对这些改进的解释超出了本文的范围,但 Blockchain Capital 提供了对这些额外好处的深入探讨


概括

  • 整体范式导致了一个由不兼容的 L1 组成的生态系统,它们在虚荣指标、分散的流动性、资金和开发人员的思想份额上展开竞争。Fuel 采用的前提是创新不需要推出新的 L1,而是可以发生在执行层
  • 模块化架构使 Fuel 等 MEL 能够专注于高效计算,而无需担心向后兼容性。更快的计算速度不仅会带来更高的吞吐量,还会提高运行验证器的效率,从而改善去中心化。这使 Fuel 能够为以太坊的可扩展性做出贡献,而不会因 EVM 的低效率而受阻。
  • 使用 EVM 的执行层可以利用现有的 Solidity 应用程序和开发人员生态系统,但无法充分利用模块化堆栈提供的设计空间。Fuel 通过 FuelVM 利用这个新的设计空间,从头开始设计为防欺诈并提供最佳的开发人员体验。
  • Fuel 引入了针对快速接近的模块化未来进行优化的创新,使新一代区块链成为#BeyondMonolithic ……

关注Fuel

关于Fuel

Fuel是模块化区块链堆栈的最快执行层。该技术功能强大且时尚,可实现并行交易执行,为开发人员提供扩展所需的最高灵活吞吐量最高安全性。开发人员选择FuelVM是因为其卓越的开发体验以及超越 EVM 限制的能力。

成为贡献者

英文原文链接:https://fuel-labs.ghost.io/the-case-for-modular-execution-part-2/

所有文章项目介绍

DeFi vs CeFi——问题与解决方案

2022-10-26 6:00:00

所有文章未分类项目介绍

🇵🇹 — ETH Lisbon 回顾

2022-11-5 14:51:00

搜索