跳到主要内容

🚂 观点: OP与ZK机制的差异

写于威尼斯开往罗马的火车, 2023.01.12.

English Version: Mirror

0. “性能”

两者的真实 “finality” 不一样, 类似可以理解成 “真实性能” 不一样. (当然 finality 的定义也仁者见仁, 智者见智....)

  • OP 系统 (大多) 有 (可人为调整) 的 7 天左右的仲裁期 (aka. 延迟?). 可以类比成 Nakamoto 共识中的长延迟 (实际上 Nakamoto 共识就没有 finality).
  • ZK 系统则是一旦生成证明且验证后就完全确认. 同时搭配硬件等加速可以做到无限趋近于零 (理论上) 的证明生成速度和额外开销. 可以类比成 Tendermint 共识的 Single-slot Finality.

当然, 说了这么些 finality, 通过与共识机制的对比, 你其实也可以看出来, 这个 finality 根本无法代表人所通常指的 “性能”. 虽然 Tendermint 有 Single-slot Finality, 但是也不能说一定比 Nakamoto 快呀. 真正性能的衡量, 又可以开一篇新的文章 (scalability, throughput, real tps, performance)...

除此之外, 就是验证上面的区别.

  • OP 系统更像是后验证. 先 post 计算, 再去进行验证, 所以延迟也高.
  • ZK 系统则像是先验证. 虽然理论上证明生成完之后需要验证, 但是生成证明的过程中其实就已经给计算的过程和结果贴上了一个有效性的 proof.

如果要类比成批数学证明题的例子的话, OP 像是老师跟着你证明的思路去重新走一遍, ZK 则是老师在得到所有的得分点后直接看你证明中的得分点.

1. 安全基础

两者的信任基础略有不同, 导致系统的安全性不同.

  • OP 像是基于经济机制, 类似遵循 “疑罪从无”.
  • ZK 像是基于纯数学机制, 类似遵循 “有罪推定”.

对比起来, 肯定还是 ZK 的纯密码学假设更加硬.

然而, 这些都是理论的安全性. 机制安全 != 实现安全, 机制不安全 != 实现不安全. 在实践当中, 作为软件, 它们都有 bug, 因此也都有风险. 代码的安全是需要额外的机制来保证的 (picus, ecne...).

根据安全假设的不同, ZK 其实就可以视为比智能合约 (基于网络, 网络其实是基于共识和数学) 更加安全的系统, 可以作为智能合约功能的延伸 (zkExtension). 比如 Scroll 就是在 scalability 上面让智能合约更加 scale, Hyper Oracle 就是在 ability 上面让智能合约拥有索引, 和自动化的能力...

那么, 再进一步, 如果你推过 EIP, 那么你就知道单单立一个标准就是非常漫长和复杂 (和随机) 的过程, 后面形成相关生态就更难了. 对网络层面的更新就更难了 (EIP-1559, merge...). 所以 ZK 系统完全可以作为一个 Extension 去进行任意的创新 (重点原因是它安全基础足够), 同时不破坏 Layer1 本身的特性和机制.

2. 系统复杂度

还有一个没人提到, 但是我觉得值得一提的点就是系统的复杂度.

ZK 是可以把大量的计算外包到单一节点进行证明生成, 因此在区块链网络这样的分布式共识系统里面很 efficient.

这样做还有一个好处, 就是整体的架构会很简洁 (到底谁出 proof, 谁 sequence, 谁验证 proof).

ZK 系统的复杂度被从表面和宏观, 转移到了微观和代码层面.

如果要对比的话, OP 和 ZK 系统是这样的:

  • OP 的机制特别复杂, 同时各不相同, 代币经济涉及到无数的曲线和麻烦的结算机制. 总之不是正常人能研究透的, 可能也只有我们这些研究员和项目本身明白到底是啥.
  • ZK 的机制极其 Succinct (好词!). Prover, User, Verifier, 可以通过一句话/一张图完全表述清楚. 每个系统之间可能有细微差异, 但是真正的差异和 hard work 都被转移到了系统开发者和架构师的工作中.

我认为这是 ZK 最大的优势. 软件的本质就是要让大众用户易用 (开发者掉头发), 尤其在已经极其复杂的 Web3/Crypto 系统中.

到底用哪个?

结论: 都会要, 看场景.

我前几天看到一个观点, Haseeb 写的. Web3 是自由开放的左翼, Crypto 是主权个人的右翼. 完全可以套用到我们的话题当中.

  • OP 给更加像现有体制的 Web3. 像银行等系统已经沿用类 OP 机制很久 (信用卡), 为了合规等, 我认为他们依旧会使用 OP. 具体的应用可能就是各种 Web2.5 的 “DeFi”, 跨链 (类似跨行转账, 当然 ZK 做也很好).
  • ZK 给更加纯粹和 Crypto-Native 的 Crypto. 因为密码学基因的存在, ZK 非常适合 power 比如隐私币/真 DeFi 等应用.

我的话, 我选 Crypto 的 ZK.