{"content":{"title":"Wasm 历史、未来和在 Web3 面对的挑战","body":"> * 原文：[The History of Wasm in Blockchain](https://mirror.xyz/fluentlabs.eth/7I4djVRnKFPkxlr2TYkCiMjmPQuE4vyyWIPK5V9l2h0)\r\n> * 译文出自：[登链翻译计划](https://github.com/lbc-team/Pioneer)\r\n> * 译者：[翻译小组](https://learnblockchain.cn/people/412) 校对：[Tiny 熊](https://learnblockchain.cn/people/15)\r\n> * 本文永久链接：[learnblockchain.cn/article…](https://learnblockchain.cn/article/6677)\r\n\r\n\r\n\r\n![](https://img.learnblockchain.cn/pics/20231009204106.jpeg)\r\n\r\n\r\n\r\n## Wasm 的起源\r\n\r\n自 1989 年以来，Web 已经发展了很长一段时间。从最初的[简单静态页面](https://timeline.com/useless-websites-betray-banality-748b8da4c977)到支持数十亿用户的完整应用程序的世界。\r\n\r\n因为 Web“应用程序”需要与 HTML 文档中的元素进行动态交互，所以引入了[JavaScript](https://en.wikipedia.org/wiki/JavaScript)。它广受欢迎，并且一度是浏览器中唯一使用的编程语言。\r\n\r\nJavaScript 作为一种标准语言很有用，但也有局限性。如果有些开发人员不懂 JavaScript 怎么办？如果 JavaScript 不是某些用例的最佳语言怎么办？\r\n\r\n于是诞生了**WebAssembly**：一种低级、可移植、二进制格式和高级编程语言的编译目标。它高效、安全且灵活。\r\n\r\n引入 WebAssembly（Wasm）意味着 JavaScript 不再需要成为 Web 的唯一语言。开发人员可以使用诸如 Rust、Go、C、C++等语言编写高性能代码，并将其编译为 Wasm 模块在浏览器中执行。这为高性能 Web 应用程序（如 3D 图形、视频编辑、游戏等）打开了新的可能性。\r\n\r\n## Wasm 在 Web2 中的流行程度\r\n\r\nWasm 的故事并没有在浏览器中结束。随着时间的推移，它摆脱了最初目标，并开始为世界上最复杂的分布式应用程序提供动力。\r\n\r\n以下是 Wasm 的一些应用方式：\r\n\r\n**电子商务和后端优化：**\r\n\r\n1. **Shopify**：使用 Wasm 来[优化后端操作](https://shopify.engineering/shopify-webassembly)以提高速度和效率。\r\n\r\n**设计和协作工具：**\r\n\r\n1. **Figma**：从 asm.js 转向 WebAssembly，使[性能提升了三倍](https://www.figma.com/blog/webassembly-cut-figmas-load-time-by-3x/)。\r\n2. **AutoCAD 的迁移**：与 Figma 类似，AutoCAD 采用了 Wasm 来解决复杂的 Windows 操作系统依赖性问题。\r\n\r\n**多媒体和娱乐：**\r\n\r\n1. **Netflix**：采用 Wasm 技术创建沉浸式视频交互，提升用户参与度和娱乐体验。\r\n\r\n**软件开发和工具：**\r\n\r\n1. **Adobe**：大力投资于 WebAssembly，拓展了在浏览器环境下的软件开发可能性。\r\n2. **Microsoft**：将 Wasm 整合到 Azure Functions、Visual Studio Code 和 Edge 中，塑造了现代化的开发工具。\r\n\r\n**游戏和互动体验：**\r\n\r\n1. **Unity**：使用 Wasm 技术打造跨平台的高性能游戏。\r\n2. **Pinterest**：利用 Wasm 技术打造动态用户体验。\r\n\r\n**基础设施和金融科技：**\r\n\r\n1. **Fastly/Cloudflare**：采用 Wasm 技术提升网络性能，优化内容传输。\r\n2. **Visa**：使用 Wasm 技术保障支付处理和保护敏感用户数据的安全。\r\n\r\nWasm 技术在许多领域推动了创新。在电子商务、娱乐、软件开发、游戏、网络和关键系统之间，Wasm 的影响力无疑是革命性的。\r\n\r\n## Wasm 在 Web3 中的受欢迎程度\r\n\r\n快进到 Web3，Wasm 也变得非常受欢迎。在过去五年中，它已成为许多顶级区块链项目的执行环境。以下是一些值得注意的示例：\r\n\r\n- **[Cosmos 的 L1 SDK](https://docs.cosmos.network/v0.46/CosmWasm/)**\r\n\r\n![img](https://img.learnblockchain.cn/attachments/migrate/1696855282512)\r\n\r\n- **[NEAR 的分片 L1](https://www.youtube.com/watch?v=75hO1j-T1LY)**\r\n\r\n![img](https://img.learnblockchain.cn/attachments/migrate/1696855283952)\r\n\r\n- **[Polkadot 的 L1 SDK](https://www.parity.io/blog/wasm-smart-contract-development/)**\r\n\r\n![img](https://img.learnblockchain.cn/attachments/migrate/1696855286948)\r\n\r\nWasm 在 Web3 中的受欢迎程度与 Web2 并没有太大差异。高效性、标准化、安全性以及编程语言的灵活性是其受欢迎的原因。以下是 Dfinity 技术负责人（当时）Andreas Rossberg（也是 Wasm 的共同创造者）在 [Internet Computer 的愿景](https://www.youtube.com/watch?v=xCuZFwAHS1Y) 中的表述。\r\n\r\n> “我们的愿景是，开发者可以使用任何他们喜欢的语言在互联网计算机上进行编程。”\r\n\r\n对通用编程语言的支持不仅为 Web3 原生开发者提供了更直观的体验，还可以让数百万新开发者构建链上应用。上述项目（以及其他一些项目，如 Tezos、EOS 等）都认为 Wasm 执行是一个强大的想法。\r\n\r\n## Web3 中的 Wasm 挑战\r\n\r\n但为什么没有数百万开发者在链上构建应用？为什么我们还没有实现大规模采用？等一下 - 先不谈大规模采用 - 为什么 Wasm 在我们这个仍然非常小众的 Web3 世界中甚至都不是最受欢迎的执行环境？\r\n\r\n没有人比[ EigenLayer 的 Sreeram Kannan](https://twitter.com/sreeramkannan)更好地阐述了问题的关键所在。从历史上看，要在执行环境（以及任何其他核心基础设施）上进行创新，[你必须启动一个去中心化的信任网络。你必须获得一组验证者，并且你必须获得一大笔资金的承诺](https://youtu.be/HyQ-6L9uDEo?si=xkLGaNk0SH0T4Fal&t=277)。\r\n\r\n这是非常难以持续做到的。启动一个真正去中心化和无许可的信任网络（不靠风险投资或补贴贪图轻松获利者）就像发动一场革命，这需要与工程分布式系统非常不同的技能。\r\n\r\n> “创建一个去中心化的信任网络就像找到独角兽一样。” — **Sreeram Kannan**\r\n\r\n事实是，很少有区块链项目 - 即使是具有令人印象深刻的技术创新的项目 - 能够启动可持续的信任网络。可以说，迄今为止只有两个区块链做到了这一点：比特币和以太坊。这使得像 Wasm 这样的新执行环境很难达到逃逸速度。\r\n\r\n## 以太坊的 Wasm 实验\r\n\r\n一个自然的问题是：“如果 Wasm 执行如此令人向往，为什么比特币和以太坊没有采用它呢？”\r\n\r\n对于比特币来说，答案很简单。比特币的信任网络提供了几个关键承诺， 其中之一是“没有硬分叉”。这就立即排除了用更可编程的 Wasm 环境替换比特币有限的脚本环境。\r\n\r\n对于以太坊，我们需要回顾一下历史。\r\n\r\n以太坊风味的 Wasm（Ewasm）最初在 2015 年提出，并考虑了多年。明确地说，Ewasm 是“以太坊合约中使用的一种受限制的 Wasm 子集”。\r\n\r\nEwasm 项目的目标包括 EVM 转译器、虚拟机实现、嵌入的计量器等。要更好地了解 Ewasm 背后的思想，请查看以下资源：\r\n\r\n- [动机和好处](https://github.com/ewasm/design/blob/master/rationale.md)\r\n- [与其他虚拟机的比较](https://github.com/ewasm/design/blob/master/comparison.md)\r\n- [3.5 年的进展](https://drive.google.com/file/d/0BxAMY3dJTXy-MmF4UVZ6bzhkTE1BTDFFQXlyWmJrRGRxeXAw/view?resourcekey=0-_Sjkgbcc0vjHqxu8BDD4hA)\r\n\r\n### 那么，Ewasm 在哪里？\r\n\r\n以太坊基金会最终决定不采用 Ewasm，而是继续使用 EVM 执行。虽然在向后兼容性和执行分片方面确实存在挑战，但这个决定是更广泛战略转变的一部分。这个转变由[Vitalik Buterin](https://vitalik.ca/general/2018/08/26/layer_1.html)和[Casey Detrio](https://ethresear.ch/t/phase-one-and-done-eth2-as-a-data-availability-engine/5269)探讨过，后来正式制定为“以 Rollup 为中心的以太坊路线图”。\r\n\r\n![img](https://img.learnblockchain.cn/attachments/migrate/1696855288441)\r\n\r\n## 一个无需许可的未来\r\n\r\n### 为什么要转变？\r\n\r\n当时以太坊社区没有这样表达，但他们已经认识到模块化区块链架构的力量，以及它如何在技术栈的更高层面上实现了无需许可的创新。他们知道这是一种更好的方法。\r\n\r\n![img](https://img.learnblockchain.cn/attachments/migrate/1696855289963)\r\n\r\n![img](https://img.learnblockchain.cn/attachments/migrate/1696855291155)\r\n\r\n回到现在。以太坊正在全力推进以 Rollup 为中心的路线图，以实现可信的中立性、可验证性、安全性和数据吞吐量，同时成千上万个（Rollup）花朵盛开。\r\n\r\n与其进行一次执行分片实验，不如让世界上的任何人都可以根据自己的需求自定义一个 Rollup，无论是任何用例。有些 Rollup 将使用 EVM，而其他一些将使用 Wasm。有些 Rollup 将使用欺诈证明，而其他一些将使用零知识证明。有些将成功，有些将失败。但它们都将是无需许可的尝试。\r\n\r\n## 在哪里适用 Fluent ？ \r\n\r\n在 Fluent 中，我们的使命是将 Wasm 执行引入以太坊。\r\n\r\n我们认为 Wasm 团队已经找到了一些方法，并且我们与以太坊的价值观高度一致。我们认为 ZK 技术为解决问题开启了一种新的方式，并且需要提供更好的开发者体验，以[解锁对安全区块空间的访问](https://mirror.xyz/fluentlabs.eth/EyB2e-wqezw2uAaFOsgoJvqaADhujof6d2ut62CKP8Q)。\r\n\r\n如果这与你共鸣，请[与我们一起构建](https://form.typeform.com/to/ytQi1Pdc)\r\n\r\n---\r\n\r\n本翻译由 [DeCert.me](https://decert.me/) 协助支持， 来 DeCert 码一个未来， 支持每一位开发者构建自己的可信履历。"},"author":{"user":"https://learnblockchain.cn/people/412","address":null},"history":"QmTrtGiR2VAihRiiLHvcrDRJ9ka1saczyBgb1GQrPtNPAA","timestamp":1696861841,"version":1}