# 模块化执行案例（第 2 部分）


By [白开水](https://paragraph.com/@baikaishui) · 2022-10-28

---

模块化执行的案例
--------

模块化架构将使区块链能够[按数量级扩展](https://fuel-labs.ghost.io/beyond-monolithic-the-modular-blockchain-paradigm/)。作为模块化堆栈的核心部分，执行层正处于快速创新的阶段。

\*\*Fuel 正在为模块化区块链堆栈构建最快的执行层。\*\*在[第 1 部分](https://fuel-labs.ghost.io/the-case-for-modular-execution-part-1/)中，我们探讨了模块化执行层如何通过将计算与验证解耦来实现可扩展性。

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

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

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

> **_当涉及到它们可以支持的计算速度和多样性时，单片链被锁定在低效的技术中。另一方面，模块化执行层可以专门设计用于优化高效计算。_**

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

* * *

单体链-第一层链的迭代与挑战
--------------

_当涉及到它们可以支持的计算速度和多样性时，单片链被锁定在低效的技术中。_

首次构想区块链时，脑海中只有一个用例：数字现金。比特币区块链旨在优化这一狭窄用例。

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

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

以太坊是在区块链概念出现后不到五年的时间构思出来的。自以太坊推出以来的 7 年中，人们发明了新概念，这代表了以太坊对比特币所取得的进步更大的飞跃。但就像比特币一样，以太坊区块链大多被锁定在它推出的核心架构中。

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

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

所以这个循环还在继续，我们继续看到新的区块链推出，对它们的前辈进行了零碎的改进。在这个过程中，我们留下了一个由大部分不兼容的区块链组成的生态系统，流动性、资金、用户体验和开发者的思想份额越来越分散。与此同时，可以花在真正创新上的精力反而被用于吸引投资者、开发商和最终用户的关注。

[https://twitter.com/musalbas/status/1582396496229507072?ref\_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1582396496229507072%7Ctwgr%5E1a8efeb0901654f44572e3018de0c6e5bbbef449%7Ctwcon%5Es1\_&ref\_url=https%3A%2F%2Ffuel-labs.ghost.io%2Fthe-case-for-modular-execution-part-2%2F](https://twitter.com/musalbas/status/1582396496229507072?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1582396496229507072%7Ctwgr%5E1a8efeb0901654f44572e3018de0c6e5bbbef449%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%5E1a8efeb0901654f44572e3018de0c6e5bbbef449%7Ctwcon%5Es1\_&ref\_url=https%3A%2F%2Ffuel-labs.ghost.io%2Fthe-case-for-modular-execution-part-2%2F](https://twitter.com/fuellabs_/status/1569753111983722496?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1569753111983722496%7Ctwgr%5E1a8efeb0901654f44572e3018de0c6e5bbbef449%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Ffuel-labs.ghost.io%2Fthe-case-for-modular-execution-part-2%2F)

模块化执行-超越EVM
-----------

尽管有过多的第 1 层区块链有望对 EVM 的原始设计进行改进，但其先发优势使 EVM 作为区块链生态系统中的“默认”运行时环境获得了立足点。智能合约开发成为 Solidity（EVM 的编程语言）的代名词，它吸引了大多数潜在的区块链开发人员。因此，目前正在开发的大多数执行层都是基于 EVM 的汇总。

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

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

**EVM 的一些限制包括：**

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

* * *

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

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

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

Fuel 正在利用这个新的设计空间来构建[最快的模块化执行层](https://www.fuel.network/)

### FuelVM

Fuel 的核心创新之一是**全新的虚拟机**[**FuelVM**](https://fuellabs.github.io/fuel-docs/master/vs-evm.html)。建立在以太坊上的执行层的出现为改进过去的 VM 设计提供了新的机会，不受向后兼容需求的限制。

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

出于对这种新范式**的预期，FuelVM 旨在优化快速事务执行**。FuelVM 借鉴了 EVM、Solana、WASM、比特币和 Cosmos，旨在减少传统区块链虚拟机架构的浪费处理，同时极大地增加开发人员的潜在设计空间。

FuelVM 采用了许多 EVM 社区已经建议和支持的创新，但由于需要保持向后兼容性而无法实施。下面仅突出显示了几个示例（[完整列表请参见此处](https://fuellabs.github.io/fuel-docs/master/vs-evm.html#eips-implemented-in-fuel)）。

_These are just a few examples of EIPs which were ultimately rejected for the EVM due to backward compatibility issues, but have been implemented in Fuel (source:_ [_Fuel_](https://fuellabs.github.io/fuel-docs/master/vs-evm.html#eips-implemented-in-fuel))

### 具有Sway 和 Forc的高级DevEx

Fuel 协议的设计具有最前沿的开发人员经验。\*\*FuelVM 与它的配套语言[Sway](https://fuellabs.github.io/fuel-docs/master/sway-language.html)\*\*一起构建：一种基于 Rust 的特定领域语言，专为利用区块链 VM 而设计。与在创建 EVM 之后开发的 Solidity 不同，Sway 是从头开始创建的，内置了方便高效的操作。通过基于 Rust 的 Sway，Fuel 通过使用强大的静态分析和编译器反馈使智能合约开发更安全、更高效。

从工具的角度来看， Fuel 通过\*\*[Forc 工具链](https://fuellabs.github.io/fuel-docs/master/fuel-toolchain.html)改进了 EVM 生态系统\*\*。借助 Forc，开发人员可以使用单个工具链获得开始为 Fuel VM 创建 Sway 应用程序所需的一切。Fuel 采用一种精心策划的、“包含电池”的模块化方法来提供工具，其中包含一套全面、标准化、规范的工具，不仅涵盖堆栈的较低级别（如协议和 VM 实现），还包括更高级别（例如包管理、编辑器支持、常用插件等等）。

[https://twitter.com/camiinthisthang?ref\_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1577738478699171845%7Ctwgr%5E1a8efeb0901654f44572e3018de0c6e5bbbef449%7Ctwcon%5Es1\_&ref\_url=https%3A%2F%2Ffuel-labs.ghost.io%2Fthe-case-for-modular-execution-part-2%2F](https://twitter.com/camiinthisthang?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1577738478699171845%7Ctwgr%5E1a8efeb0901654f44572e3018de0c6e5bbbef449%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Ffuel-labs.ghost.io%2Fthe-case-for-modular-execution-part-2%2F)

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

### 并行交易处理

并行执行事务的能力是一个非常理想的属性，尤其是在现代处理器变得越来越多线程的情况下。因此，这是设计 Fuel 协议时的核心考虑因素。

并行事务执行需要能够确定和处理事务之间的[依赖](https://en.wikipedia.org/wiki/Parallel_computing#Dependencies)关系。为了避免在不同核上处理事务时发生重叠，需要预先识别每个事务可能涉及的共享状态（通过“访问列表”），因此可以将事务划分为没有任何可能的集合彼此的互动。

由于其基于帐户的设计的限制，以太坊无法支持这些访问列表，因此被迫按顺序处理交易（即一个接一个）。[EIP-648](https://github.com/ethereum/EIPs/issues/648)提议向以太坊添加访问列表，但由于它会引入其他低效率，这从未实施过。

从这个限制中吸取教训，Fuel 以 UTXO 模型的形式实现了[严格的状态访问列表](https://fuellabs.github.io/fuel-docs/master/technology/parallel_tx_execution.html#state-access-lists-and-utxos)，使其能够使用在单线程区块链中通常空闲的多个 CPU 线程和内核。因此，**Fuel 可以并行执行事务**，提供比其单线程对应物更多的计算、状态访问和事务吞吐量。

除了提供效率优化之外，**并行处理多个事务的能力还可以提高安全性**，因为它可以扩展事务吞吐量，而不会增加用于验证这些事务的资源需求。这降低了运行完整节点的障碍，从而导致验证者网络更加分散。

### 优化了欺诈证明

欺诈证明是模块化区块链堆栈中的核心技术。在[第 1 部分](https://fuel-labs.ghost.io/the-case-for-modular-execution-part-1/)中，我们探讨了模块化执行层如何利用欺诈证明来启用信任最小化的轻客户端，从而在只有一个诚实的完整节点可用的假设下实现安全性。

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

由于欺诈证明提供的好处，**Fuel 的设计和构建是专门为以**低成本、高效的方式证明欺诈的。

以太坊基于账户的模型意味着为其构建欺诈证明的成本是无限的，而 Fuel 通过使用 UTXO 模型优化欺诈证明。[UTXO 欺诈证明](https://fuellabs.github.io/fuel-docs/master/technology/fraud_proofs.html)通过简单地要求 UTXO 的每次花费“指向” UTXO 的创建来实现效率，而无需参考全局状态树。证明 a) 指针无效，或 b) 所指向的内容与所花费的内容不匹配，足以彻底证明欺诈。

作为一个额外的好处，[FuelVM 指令集](https://github.com/FuelLabs/fuel-specs/blob/master/specs/vm/instruction_set.md)被设计为可在 EVM 内进行欺诈证明。这意味着 Fuel 可以使用以太坊作为结算层，利用其深厚的流动性和庞大的用户群，同时不受 EVM 的限制。

### 其他好处

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

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

对这些改进的解释超出了本文的范围，但 Blockchain Capital 提供了对[这些额外好处的深入探讨](https://medium.com/blockchain-capital-blog/exploring-the-fuelvm-86cf9ccdc159)。

概述
--

单体范式导致了一个不兼容的 L1 生态系统，它们在虚荣指标上竞争、分散流动性、资金和开发者的思想份额。Fuel 采用的前提是**创新不需要推出新的 L1，而是可以发生在执行层**。

*   模块化架构使诸如 Fuel 之类的 MEL 能够专注于高效计算，而无需担心向后兼容性。更快的计算不仅可以带来更高的吞吐量，还可以让运行验证器的效率更高，从而改善去中心化。这使 Fuel 能够为以太坊的可扩展性做出贡献，而不会因 EVM 的低效率而受阻。
    
*   使用 EVM 的执行层可以利用现有的 Solidity 应用程序和开发人员生态系统，但无法充分利用模块化堆栈提供的设计空间。Fuel 正在通过 FuelVM 充分利用这一新的设计空间，该设计从一开始就设计为可防欺诈并提供最佳的开发人员体验。
    
*   Fuel 引入了针对快速接近的模块化未来进行优化的创新，使新一代区块链成为可能#BeyondMonolithic..
    

* * *

关注我们
----

*   [**Twitter**](https://twitter.com/fuellabs_)
    
*   [**Discord**](http://discord.com/invite/xfpK4Pe)
    
*   [**LinkedIn**](https://www.linkedin.com/company/fuel-labs/)
    
*   [**YouTube**](https://www.youtube.com/channel/UCam2Sj3SvFSAIfDbP-4jWZQ)
    

关于我们
----

[Fuel](https://www.fuel.network/)是模块化区块链堆栈的**最快执行层**。该技术功能强大且时尚，支持并行事务执行，为开发人员提供扩展所需的**最高灵活吞吐量**和**最高安全性**。开发人员选择[FuelVM](https://fuellabs.github.io/fuel-docs/master/vs-evm.html)是因为其**卓越的开发人员体验**和**超越 EVM 限制的**能力。

成为贡献者
-----

*   [Explore our current job openings](https://jobs.lever.co/fuellabs)
    
*   [Apply for a grant](https://1v1l4ftv9zy.typeform.com/fuelgrants)
    
*   [Learn Sway](https://fuellabs.github.io/sway/v0.24.5/)

---

*Originally published on [白开水](https://paragraph.com/@baikaishui/2)*
