作者: msfew@Foresight Ventures
以太坊的未来路线可谓是为 Rollup 量身打造, 而目前最被寄予厚望的方案就是采用了零知识证明技术的 zk Rollup.
通常大家的认知中, zk Rollup 需要数年的工程开发才可以真正落地, 这是由于构建 zkEVM 的开发难度巨大. 为了让开发者能无缝移植和部署以太坊智能合约到 zk Rollup 中, 开发团队需要对兼容 EVM 的 zkEVM 进行开发与性能优化.
实现 zkEVM 一直是以太坊基金会和 Polygon 等其他 zk Rollup 团队的重点任务. 在长期视角下, zkEVM 的实现不仅能解决以太坊主网共识瓶颈的各个方面:
I/O: 通过无状态和 enshrined zkEVMs
存储: 通过无状态和 enshrined zkEVMs
计算: 通过 enshrined zkEVMs
同时以 zkEVM 为核心组件, 可以构建一个真正完美的通用 Rollup 网络.
Polygon 就在近期带来了这么一个带有 zkEVM 的 alpha 版本 zk Rollup, 与 Scroll, StarkNet, zkSync, Sin7Y 等的方案相比各有千秋. 这些 zkEVM 的存在是 Polygon 与以太坊生态的一个巨大飞跃, 也意味着全新且更好的 Rollup 用户体验即将到来.
在了解 zkEVM Rollup 如何颠覆以太坊用户体验之前, 我们需要认识 zkEVM 的概念. 如果你想更深入地了解 zk, zkVM 与 zkEVM, 欢迎阅读我们之前的研究文章.
zkEVM 的概念可以被拆解成两个部分:
zk: 零知识证明技术, 可以通过一个精简的证明来证明一批次 tx 的有效性, 达成计算可信, 从而实现扩容.
EVM: 以太坊生态的智能合约执行器. 正是 EVM 的存在才让以太坊具有智能合约运行能力, 成为全球计算网络 (相比之下比特币的功能可能只能算是计算器), 同时 EVM 也衍生出 EVM 兼容, EVM 等同, EVM 超集的概念.
那么 zkEVM 就是一个至少在编程语言层面兼容 EVM 的 zk 虚拟机. 智能合约在 zkEVM 中运行后, 会生成一个 zk 证明, 它可以证明运行状态转换的有效性, 保证计算可信. 验证者只需对证明验证即可 (开销很小), 无需重新执行 (冗余很大).
b) zkEVM 意义
zkEVM 在各个层面都具有重大的意义:
对于 Rollup 扩容: zkEVM 可以为批量 tx 生成证明从而在主网快速验证, 以完全可信与无需多轮复杂共识的方式借助主网安全性达成了计算可信.
对于 DApp 开发者: 开发者无需学习任何 zk 相关的硬核知识或 Solidity 和 Vyper 以外的新语言, 就可以借助 zkEVM 来给任意智能合约赋予 zk 的超能力.
对于 zkEVM 开发者: 无需为网络上的智能合约的功能编写不同的电路, 而是只需维护 zkEVM 即可.
对于 Layer3 搭建者: 可以尝试在 zkEVM 中搭建 Layer3 的 Verifier, 于是 Layer3 的批量交易可以进一步被同时证明且批量地打包成一条 tx 在主网验证 (L3: 1000 tx → L2: 10 tx → L1: 1 tx), 实现 App-rollup.
对于以太坊: 多个 zkEVM 方案的存在最终会成为重要的 Public Goods, 帮助以太坊实现下一阶段的 Enshrined zkEVM 与 zk everything 的 Roadmap.
近期 zk Rollup 项目非常活跃. StarkNet 宣布将在未来发币, Aztec 发布了隐私 DeFi, zkSync 发布了主网上线倒计时, Scroll 发布了 Pre-Alpha 版本的 zkEVM, Polygon 开源了 zkEVM 项目的全套代码……
以太坊生态可谓是一场 zk 与 zkEVM 的军备竞赛. 而正如我们在之前的 zkVM 与 zkEVM 文章中所说的, zkEVM 的方案各有千秋, 各有优势.
首先是技术大方向上的区别, 基本分为两个方向:
两个方向上都有不同的选手:
基于原生: Polygon, AppliedZKP, Scroll, Taiko. 当然后三者都在同一个 Repo 中进行开发, 基本可以视为是同种方案.
基于编译: StarkNet, zkSync, OlaVM 等. 这个赛道上选手最多, 但不同项目的差别其实也比较大.
按照 Vitalik 的分类对比方法的话, 分为如下类型:
Type 1: 完全适配以太坊 L1 的 enshrined zkEVM. 如 AppliedZKP.
Type 2: 完全 EVM 等同的 zkEVM, 内部结构略有区别. 如未来的 Scroll 和 Hermez.
Type 2.5: EVM 等同, 仅 gas cost 不同 (可能会导致细微的兼容性差别) 的 zkEVM. 如加上复杂操作的 precompiles 后的 Scroll 和 Hermez.
Type 3: 几乎 EVM 等同的 zkEVM. 如现阶段的 Scroll 和 Hermez.
Type 4: 语言层面兼容 EVM 的 zkEVM, 特性和开发者设施会不同, 同时开发者也无法直接手写 EVM Bytecode. 如 zkSync 和 StarkNet.
在方案的取舍上, 实际上有非常多的变量. 就像游戏初始人物加点一样, 只有一定量的天赋点可以分配给每个变量, 可以说又是一个三难选择:
性能 (zk Prover, Verifier, 开销, 硬件加速)
适配性 (DApp 开发者, 基础设施, 开发工具, 矿工)
开发难度 (维护难度, 开发进度, 系统复杂度, 工程实现复杂度)
其中典型方案的区别为:
StarkNet: 完全实现一个全新的 zkVM (CairoVM), 性能好, 开发难度不高, 但适配性不足 (需要 Warp 转译器实现 EVM), 最大的亮点是已经形成生态, 同时具有 storage proof 和 fractal scaling 等创新.
zkSync: IR 层面的 zkEVM (LLVM-IR 部分). 适配性好 (语言层面适配), 性能和开发难度都中等, 更加灵活, 最大的亮点是可以在编译器迭代过程中, 可以通过 LLVM 支持除了 Solidity 外的其他语言.
Hermez 和 Scroll: 都算是 Bytecode 层面的 zkEVM (不代表完全复用 EVM Bytecode, 但两者的差别很细微). 适配性极好, 性能有所牺牲 (原始的 EVM 并不 zk 友好, 电路化之后有很多性能上的挑战需要攻克), 开发难度很高, 最大的亮点是架构安全性与最原生.
Polygon Hermez 此次开源的 zkEVM Rollup 网络的核心组件就是 zkEVM. 它的整体技术方案与其他方案的对比和我们前文中所述的基本一致.
Polygon zkEVM Rollup 的整体架构如下:
架构中的核心就是 zkEVM 本身. zkEVM 会执行 L2 的 tx, 并且链下证明网络会为 zkEVM 中 tx 的执行生成有效性证明, 最终状态改变和证明会被提交上以太坊主网.
Polygon zkEVM Rollup 的关键组件为: PoE 共识算法, zkNode, zkProver, STARK 与 SNARK 的 Proof Builder, Rollup 跨链桥:
PoE 共识算法: 为了安全性, 效率, 与去中心化的提升, PoE 算法替换了 Hermez 1.0 的 PoD 算法. PoE 能与 PoS 相结合, 保证 Polygon zkEVM Rollup 出块的去中心化与高效. 任何运行 zkNode 的矿工都可以成为 Sequencer, 而任何运行 zkNode 与 zkProver 的矿工可以成为 Aggregator. 其中矿工出块权利的 gas fee 将使用 $MATIC 进行交易.
zkNode: zkNode 是任何想参与 Polygon zkEVM Rollup 网络的矿工所需要运行的软件. zkNode 会进行 tx 的同步, 排序, 与验证. 除此之外, 如果仅仅是想了解网络的运行状态, 而非参与, 就只需要运行一个 read-only 节点, 无需运行 zkNode.
zkProver: zkProver 是任何想作为 Aggregator 角色参与 Polygon zkEVM Rollup 网络的矿工所需要运行的软件. zkProver 顾名思义是一个生成 zk 证明的证明器. 本质上, zkEVM 是多项式表示下的状态转换, zkProver 中包含了一个 Main SM Executor 和多个 Secondary State Machines, 来达到对状态转换的证明.
STARK 与 SNARK Proof Builder: 两个 Proof Builder 会生成 STARK 与 SNARK 两类不同证明. STARK (PIL STARK) 为状态转换批次的多项式约束的满足生成证明, 而 SNARK (SnarkJS) 会对 STARK 证明的构建生成 constant size 的证明, 从而以更低的成本发布在链上.
Rollup 跨链桥: Polygon zkEVM Rollup 除了是一个传统的 Burn/Mint 跨链桥以外, 还可以作为与其他 L2 进行跨链的桥梁.
Polygon zkEVM Rollup 的设计核心思路就是:
去中心化 (任何人都可以通过 DA 来重建整个 Rollup 的状态, 没有任何 Censorship 和中心化控制的存在)
无需准入 (任何人都可以参与到网络中, 作为 Sequencer 或 Aggregator)
安全性 (继承以太坊的安全性, 通过以太坊网络来帮助 Rollup 状态更新与证明的验证)
性能与高效 (通过 PoE, 链下计算, 跨链桥合约的 UTXO 模式结算, 以及各种密码学优化方案进行性能提升)
真正让 Polygon 方案脱颖而出的优势有很多.
首先, Polygon 开发团队间的协作天然地形成了合力. Polygon 的 zk 宇宙中包含了 Polygon Hermez (也就是我们所说的 Polygon zkEVM 的主力开发团队), Polygon Zero, Polygon Miden, 与 Polygon Nightfall, 模块化方案中更是包括了其他的很多团队. 虽然三支 zk 队伍的方向略有不同, 但都是 zkVM 领域的顶尖团队, 在技术方案与架构上能直接地进行协作与互相帮助. 比如 Polygon Hermez 选择 64-bit 的 small field 的 STARK 证明生成就是采取了 Polygon Zero 的建议.
此外, Polygon zkEVM Rollup 在 zk 技术上有很多创新. 比如两门 DSL zkASM 和 PIL 的创造, 可以用于解释 EVM 字节码与编码多项式承诺; STARK 与 SNARK 的结合, 发挥了 STARK 的 Scalable 和 SNARK 的 Succinct, 让证明整体更快的同时最终链上空间消耗更小; 优化上, 采用了非常高效的 Goldilocks 作为 base field, 实现了 Keccek 电路的并行计算, 使用 Poseidon-hash Merkle tree 作为数据结构进行系统的存储.
在证明生成去中心化与 EVM 等同性上, Polygon Hermez 与 Scroll 都以各自的方式做出了很大的努力. 要实现 EVM 等同性, 就必须要将 EVM 的操作码通过 zk 电路的形式来编写, Polygon 通过 zkASM 来解释, 然后在 zkExecutor 中执行 (Geth 本质上一样是解释), 而 Scroll 是直接可以对 Geth 客户端的 Execution Trace 生成证明. 两者在兼容性上实际没有区别 (runtime 的解释或者转译不会对适配性有影响), 对比下, Polygon 的方案在 EVM 等同性上做到了对证明节点更友好, 更高效, 对比之下, Scroll 侧重于完全复用 Geth 的安全基础, 更方便审计.
我认为 Polygon Hermez 的 zkEVM 的方案在原生 EVM 支持与性能之间击中了 Sweet Spot, 不仅通过 zkASM 对 EVM 进行解释, 避免了 EVM 底层开发复杂度极高的问题, 同时也通过不同角度的创新与优化让性能不再是 zkEVM 的致命问题.
用户苦 Layer 1 gas 已久也, 在我们之前 MEV 的研究里, 讨论到了一个理想的网络的形态.
在一个理想的网络里:
任何人都可以发送交易 (no censorship)
没有垃圾信息 (no spam)
费率非常低 (low fees)
同时在 Crypto 与区块链的语境中, 网络还需要是去中心化与性能可拓展的. 这就是一个理想区块链网络的三难格局:
low fees with no spam
decentralized with no permission and no censorship
scalable with general computation
Layer 1 的单体区块链不可能同时做到以上几点, 而 Rollup 通过中心化出块, 去中心化验证做到了能最终实现性能高, 去中心化, 低费率的终局.
这也是我们在 Rollup 文章中得出的结论.
在长远的角度和实际的理论性能上限下, zk Rollup 相比 OP Rollup 更具有可拓展性, 安全假设更加强.
Optimistic Rollup 所带有的挑战期让一个 tx 被真正 finalized 的时间特别长, 而 zk Rollup 的证明一经生成与验证, 则可以直接让 tx 完全 finalized.
Rollup 的 OP 就像 Layer 1 的 PoW 与最长链原则, zk 像 PoS 与其相关共识. 对于 Layer 1 来说, PoW 与 PoS 的机制都是可以的, 但追求性能的 Rollup 在终局中更需要更强保证 (通过质押或者密码学) 的 zk 机制来实现.
这也是我们在模块化区块链文章中得出的结论.
既然 zk Rollup, 那么为什么现在火热的都是 Optimistic Rollup 呢?
因为目前运行的 zk Rollup 并没有通用计算能力, 如 Loopring 等, 仅仅是停留在单一操作的阶段, 开发者无法部署与移植智能合约到 Rollup 中.
zk 证明主要用于证明操作的正确性, 一个 zkEVM Rollup 的出现能培养像 Optimistic Rollup 一样的智能合约生态, 远远比普通的 zk Rollup 转账扩容网络灵活, 同时会比 Optimistic Rollup 更具有安全性, 用户体验更好.
zkEVM Rollup 的出现是天时地利人和:
天时: Layer 1 扩容遭遇瓶颈, Optimistic Rollup 已探索了 Rollup 的道路.
地利: 以太坊所提供的安全性与社会共识为 zkEVM Rollup 的建立提供了完美土壤.
人和: EVM 生态占据区块链开发的主导地位, 无数 zk 开发团队为 zkEVM 方案贡献着力量.
那么 zkEVM Rollup 对于用户来说到底什么体验上的提升呢?
首先我们需要定义一下用户, 我认为, 用户包含了开发者和普通用户:
zkEVM
欢迎光临 优惠论坛 (https://www.tcelue.ws/) | Powered by Discuz! X3.1 |