我们可以为每个操作码设计度数更高的定制化约束(即,我们可以将一个 EVM word 切分成多个数据块,以便更高效地处理)。我们可以选择是否根据需求通过一个选择符多项式来 「打开」 一个约束。这样可以避免每个操作都要消耗整个 EVM 电路的成本。 这个架构最初由以太坊基金会提出,依然处于早期阶段,正在积极开发中。我们正在与以太坊基金会进行密切合作,旨在找到最佳方式实现该 EVM 电路。迄今为止,我们已经定义了 EVM 电路最重要的特点,并(使用 Halo2 库中的 UltraPlonk 语法)实现了一些操作码(点击此处查看)。更详细的内容将在后续文章中介绍。我们推荐感兴趣的读者阅读这篇 文档。开发流程将是透明化的。这将是集整个社区之力的完全开源的设计。希望会有更多人加入进来,贡献出一份力量。 zkEVM 还能给我们带来什么?zkEVM 远不仅仅是 Layer 2 扩容。我们可以将它理解为通过 Layer 1 有效性证明扩展以太坊 Layer 1 的直接方式。这意味着不需要任何特殊的 Layer 2 就可以扩展现有的 Layer 1。 例如,你可以将 zkEVM 当作全节点来使用。该证明可以用来直接证明现有状态之间的转换。无需将任何东西迁移到 Layer 2 上,你可以直接证明所有 Layer 1 交易!更宽泛地来说,你可以使用 zkEVM 为整个以太坊生成简洁证明,就像 Mina 那样。唯一需要增加的东西是证明递归(即,将区块的验证电路嵌入 zkEVM) 7。 结论zkEVM 可以为开发者和用户提供相同的体验,而且可以在不牺牲安全性的前提下将成本降低几个数量级。目前已经有人提议了一种架构,可以通过模块化方式构建 zkEVM。这个架构利用零知识证明的最新突破降低成本(包括自定义约束、查找参数、证明递归和硬件加速)。我们期待看到更多人为 zkEVM 社区贡献力量,与我们一起进行头脑风暴! 关于我们 注: Starkware 于 2021 年 9 月 1 日的公告中声明已实现可组合性(点击此处,查看公告)。 电路是固定且静态的。例如,在将一个程序实现为电路时,你无法使用可变上限循环。上限必须固定为最大值。电路无法处理动态逻辑。 为便于读者理解,我们在这里详细说明 EVM 电路的成本。正如前文所言,电路是固定且静态的。因此,EVM 电路需要包含所有可能的逻辑(这个体量是仅包含 add 的电路的 10000 倍)。这就意味着,即使你只想证明 add,你依然需要负担该 EVM 电路中可能包含的所有逻辑的成本。也就是说,成本被放大了 10000 倍。在执行追踪中,你需要证明一连串操作码,而且每个操作码都会带来高昂的成本。 EVM 本身并没有与默克尔-帕特里夏树(MPT)紧密绑定。目前,MPT 仅用于存储以太坊状态。要换一个很容易(有人提议使用 Verkle 树 替换掉 MPT)。 (责任编辑:admin) |