{"content":{"title":"Cannon Cannon  Cannon ： EVM 等效","body":"### 或：通过帮助我们破解 geohot 赢取 50,000 美元\r\n\r\n![](https://img.learnblockchain.cn/2025/03/09/1q2sYFnVZR-NtpSIbbZJFGA.jpeg)\r\n\r\n今天，我们非常激动地向全世界正式介绍 [Cannon](https://github.com/ethereum-optimism/cannon/)。Cannon 是 Optimism 下一代的故障证明。由 [geohot](https://github.com/geohot) 实现的初始版本成为第一个可以运行 EVM 等效 L2 的公共故障证明实现。而且，它还可以实现 **理论上的最小 calldata gas 成本**。\r\n\r\n从第一天起，Cannon 就以 Optimism: Bedrock — 我们下一个重大版本发布 — 为目标构建。Cannon 将成为 Optimism 多年的基础。\r\n\r\n今天，我们正在迈出实现 Cannon 承诺的下一步，通过推出最高可达 250,000 美元的漏洞赏金活动！详情见底部。\r\n\r\n但究竟什么是 Cannon？\r\n\r\n## Cannon …\r\n\r\n### … 是 EVM 等效\r\n\r\nCannon ([github](https://github.com/ethereum-optimism/cannon/)) 是世界上首个 EVM 等效的故障证明实现。Cannon 允许我们在 L2 上运行未更改的 EVM，**没有任何牺牲**。\r\n\r\n### … 重用 geth EVM\r\n\r\n与现有的 rollup 相比，Cannon 对故障证明采取了全新的方法，实现真实的 EVM 等效：它并不重新实现 EVM，而是利用现有的 EVM 实现（即 geth！）。\r\n\r\n特别是，[minigeth](https://github.com/ethereum-optimism/cannon/tree/master/minigeth) — go-ethereum 的一个最小修改子集（无 JSON-RPC，无工作量证明） — 被编译为 [MIPS](https://en.wikipedia.org/wiki/MIPS_architecture)，即精简指令集计算机（[RISC](https://en.wikipedia.org/wiki/Reduced_instruction_set_computer)）。RISC 的设计目的是尽可能简单。如果你对 Optimism 有所了解，你就会知道我们 ❤️ 简单 — MIPS 虚拟机在链上实现了 **不足 400 行**的代码！😍\r\n\r\n### … 使用无状态魔法\r\n\r\n与之前的故障证明设计不同，Cannon 仅需在链上执行一个 minigeth MIPS 指令，而不是在 L1 上对整个交易重新运行 EVM。这是一种类似于 Truebit、Arbitrum 和 Cartesi 等现有项目的方法，但它引入了一个关键的新特性。\r\n\r\nMinigeth 用一个新的¹ 原语 _preimage oracle_ 替代了 geth 的状态数据库。preimage oracle 可以用一个 32 字节的哈希进行查询，并会将该哈希的 [preimage](https://en.wikipedia.org/wiki/Preimage_attack) 返回到机器内存。这听起来可能有些违反直觉，但它确实有效。而且它极其强大。\r\n\r\n\r\npreimage oracle 是一种与其他指令集架构如 WASM、RISC 等没有等价物的新型状态转换。\r\n\r\n转换规则非常简单，但强大：给定一个 32 字节的哈希作为输入，预影到该哈希的映像被放置到虚拟机的内存中。\r\n\r\n[https://github.com/ethereum-optimism/cannon/blob/d906e3503e22bb0252d13b6dc811f0722c7959ca/contracts/MIPSMemory.sol#L211…](https://t.co/q2EIOcMdZ8)\r\n\r\n \r\n\r\n这个简单的抽象使得故障证明程序能够访问 **L1 或 L2 状态中的任何内容**，并且链上的开销与状态的大小无关。其他 L2 实现，例如 Arbitrum 的 AVM，要求从头开始实现状态管理以实现这一点。但由于 geth 使用的数据库已经将哈希映射到它们的预影，preimage oracle 从而实现了 _无需牺牲 EVM 等效性_，并且对代码更改最小。\r\n\r\n### … 最小化交易成本\r\n\r\n目前所有现有的 rollup 都将交易数据提交到智能合约，并在状态中存储 calldata 的哈希。这个开销会造成必须由用户承担的成本。\r\n\r\n这是必要的²，因为交易需要在故障证明期间可被争议合约访问。然而，preimage oracle 为我们提供了一种新方法来访问交易数据：即 L1 块头本身。\r\n\r\n \r\n \r\n这本身听起来有点疯狂——毕竟，哈希的整个重点是预映像抗性，对吧？你不能知道它们！这有什么合理的呢？\r\n\r\n嗯——确实有些预映像是已知的。但是，其他的则是显然已知的。事实上，**整个 rollup 模型** 依赖于 L1 的可用性。\r\n\r\n \r\n \r\n另一种说法是：L1 区块哈希的预映像**总是可以**被找到！这使得它成为 **Preimage Oracle** 的 **完美输入**。只要你输入“真实的、区块链生成的”哈希，你就总是能推动 VM 状态前进。\r\n \r\n\r\n因为不需要对交易进行链上处理，因此可以将其作为 calldata 发送到没有代码的 L1 账户。\r\n\r\n**这为 L2 交易提供了最小的可能 L1 Gas费用。** 这也与其他节省技术相结合，例如 [calldata 压缩](https://learnblockchain.cn/article/12514) 和 [blob 交易](https://twitter.com/optimismPBC/status/1499830644783915009)，一起为用户带来巨大的节省。\r\n\r\n### … 正在进入生产环境\r\n\r\n_(一旦你们都破解它！)_\r\n\r\n在我们能够将 Cannon 部署到生产环境之前，还有很长的路要走。它将在 Optimism 的安全性中发挥关键作用，值得我们给予高度关注和强化。\r\n\r\n今天，我们正在采取下一步来保障 Cannon 的安全——我们正在启动一个漏洞赏金计划！\r\n\r\n## 来破解 Cannon！\r\n\r\n我们现在在 ImmuneFi 上开启了漏洞赏金。条款很简单：如果你能够破解 Cannon，你将获得 5 万美元。更不用说，你将因为黑客攻击著名的黑客而获得的声望！\r\n\r\n要开始，请直接前往 [Cannon 仓库](https://github.com/ethereum-optimism/cannon) 或查看 [Immunefi](https://immunefi.com/bounty/optimismcannon/) 上的详细信息。我们还建议查看 [Cannon 高层概述](https://github.com/ethereum-optimism/optimistic-specs/wiki/Cannon-High-Level-Overview) 以及 [详细概述](https://github.com/ethereum-optimism/optimistic-specs/wiki/Cannon-Overview)。\r\n\r\n## 感谢\r\n\r\n我们要衷心感谢 geohot 为 Cannon 的初始实现做出的开创性工作，以及沿途的众多讨论。我们还要感谢 Immunefi 为我们提供漏洞赏金支持！\r\n\r\n和往常一样，如果你有兴趣加入一群致力于为以太坊构建可扩展和可持续未来的优秀团队，我们非常乐意听取你的意见！请查看我们 [招聘板](https://boards.greenhouse.io/optimism) 上所有开放的职位。\r\n\r\n![](https://img.learnblockchain.cn/2025/03/09/1gppV1dyQERuPsIkAtkJiTA.png)\r\n\r\n**脚注**\r\n\r\n\\[1\\] 当我们第一次开始分享 cannon 时，我们发现 [Cartesi](http://cartesi.io/) 曾经提出过一个“去哈希设备”，作为未来工作的一部分。然而，这被描述为读取外部区块链数据的工具——我们的方法将这个方法应用于 L2 状态本身，并带来了 EVM 等价性的优势，这是独特的。\r\n\r\n\\[2\\] 正如之前的脚注所提到，Cartesi 的“去哈希器”曾被提议作为未来工作的一种方式，来读取其他区块链。Arbitrum 白皮书也提出了将 L1 块映射到 AVM 元组的未来工作，lightclients 也提出了另一种实现此目的的方法。我们的贡献是实现优化的 L1 数据成本，**并** L2 状态访问成本，通过统一抽象来保持 EVM 等价性。\r\n\r\n>- 原文链接： [medium.com/ethereum-opti...](https://medium.com/ethereum-optimism/cannon-cannon-cannon-introducing-cannon-4ce0d9245a03)\r\n>- 登链社区 AI 助手，为大家转译优秀英文文章，如有翻译不通的地方，还请包涵～"},"author":{"user":"https://learnblockchain.cn/people/26097","address":null},"history":null,"timestamp":1741524240,"version":1}