核心提炼
- 零知识证明技术,可以保证计算的完整性、正确性和隐私,在区块链扩容和隐私中有应用。
- zk-SNARK 和 zk-STARK 各有优点,而它们的合理结合更加有潜力。
- zkVM 能赋予应用零知识证明能力,zkVM 分为使用主流、EVM 或全新指令集。
- EVM 的适配包括 EVM 兼容性、等同性和 Specification 上的适配。
- zkEVM 是兼容 EVM 而又零知识证明友好的环境,主要分为原生和编译流派。
- 基于原生的 zkEVM 是以太坊和区块链的未来。
- 支持 Solidity 生态的通用 zkVM 是 Web3 的未来。
零知识证明
不严谨但简单易懂地来介绍一下零知识证明:
你在上小学。老师是验证者,你作为学生是证明者。你如何证明你掌握了一元二次方程的求解公式呢?那就需要数学考试。
老师会随机出 10 道相关的题目,而你如果掌握了,则可以把他们都做出来。在这个过程中,你没有背诵或者默写求解公式的具体内容,但是老师却可以很简单地验证你的知识掌握程度。
其实这就是 Tartaglia 与 Cardano (对的,就是这个名字) 争夺谁是一元三次方程发现者时所采用的方法。他们都不想告诉对方自己公式的内容,但是通过做题,就可以很容易地验证且过程中不透露知识地,判断他们是否掌握了这一知识。
零知识证明有什么用呢?用处就是,整个过程可以节省计算算力和压缩链上空间,同时也可以对隐私有保护,符合区块链去信任的特点以及密码学的基因。
SNARK 和 STARK
区块链领域中所用到或者提到的 「zk」 通常不是真正的零知识证明,而经常是 Validity Proof。由于相关词汇的混乱,所以本文中的某些地方会延续这些 「误用」。
在目前的区块链版图中,zk 可以说是区块链扩容 (不 zk 的 Validity Proof) 与隐私技术 (真正的 zk) 的最前沿与最优解决方案,在 Tornado.cash、ZCash、zkSync、zk.money、Filecoin 和 Mina 等项目中都有使用。
目前的技术方案主要分为 SNARK 以及 STARK 两类。STARK 中的 S 代表可扩展的,意味着被证明的语句有重复的结构,而 SNARK 支持任意的电路,这些电路被预处理以实现简洁的证明。其中对 SNARK 的技术实践占据了主导地位,STARK 主要有 StarkWare 在已上线的产品中大规模采用。以下是它们之间的对比。
从 Meme 的角度而言,STARK 比 SNARK 优秀 (