# 简析V神长期看好的零知识证明

By [sbs](https://paragraph.com/@sbs) · 2021-12-05

---

**随着 Rollup 在以太坊生态中成为了扩容首选，人们对于 Optimisitic 和 zk 这两种安全模式都有所耳闻。V 神曾公开表示：「短期看好 Optimistic 模式，长期更关注 zk 的表现。」**

**律动研究院曾在**[**《这是那些互联网大厂不想让你知道的数据隐私保护方案》**](https://www.theblockbeats.info/news/24010?search=1)**一文中就零知识证明所解决的问题以及现存应用进行了介绍，然而对于零知识证明中细分的两种算法 zkSNARKs 及 zkSTARKs 并未进行细节介绍。**

**本文出自零知识证明领域加密研究者 Alex Beckett，本文详述了零知识证明的两种细分算法的不同之处。律动 BlockBeats 对全文进行了翻译：**

在密码学领域中，零知识证明是最前沿的技术之一，它的出现丰富了区块链扩容以及隐私保护的方式。不仅如此，在其基础之上又衍生出了两个相似的技术，分别是 zkSNARKs 和 zkSTARKs。

通过零知识证明，一方能在不提供任何必要信息的情况下，向另一方证明某件事，从而达到保护隐私的效果。这其中，想要证明某事的一方被称为证明者，而确保信息正确的一方被称为验证者。

比如，如果你想证明自己已经年满 18 周岁的话，你可以向他人出示自己的驾驶证。然而，这样做不仅会让他人得知你的年龄，还会暴露你的姓名、出生日期等一系列个人信息。不过，零知识证明就可以让你在不透露自己任何信息的情况下，证明自己确实已经过了 18 岁。在这个情景中，你便是证明者，而你试图证明自己年龄的一方则是验证者。

在使用了零知识证明之后，各方之间只需要发送并验证一条证明，而不需要公布所有必要信息，这样也就大大提升了可扩展性。虽然零知识技术目前仍处于发展之中，但其中最著名的例子当属 Mina 的区块链了，其大小只有 22kb，相当于几条推文的大小。

zkSNARK 是一串缩写，其中小写字母代表零知识（zero-knowledge），而大写字母则代表的是简洁的非交互知识论证（Succinct Non-interactive Arguments of Knowledge）。

zkSNARKs 虽然简短但十分高效，它能以较快的速度来创建并验证证明。当 zkSNARKs 由 Rollup 扩容方案发布到 L1 上时，简短的字节数也意味着人们无需花费太多 Gas 就能对其进行验证。一般来说，zkSTARKs 或 zkSNARKs 在与 Rollup 扩容方案一起使用时，可以极大地提高区块链的可扩展性，因为它们可以一次性验证一大批交易的真实性。

虽然说，zkSNARKs 会要求进行信任假设，因为它们需要为受信的初始化确定一套具体参数。但这也会同时引发中心化的问题，因为 zkSNARK 的初始化过程通常是由一小部分人在一个封闭体系当中完成的。如果有人成功获取了 zkSNARK 的初始化参数，那么他就能伪造一份有效的 zkSNARKs 证明，并欺骗验证者接受该证明。不过最近一些系统也在相继诞生，在这些系统当中 zkSNARKs 不再需要进行受信的初始化。

人们一般认为，zkSNARKs 更容易受到量子攻击。在这种情况下，知识论证会假设证明者的计算能力有限，因为从理论上讲，一个计算能力较强的证明者有能力说服验证者相信一个假的 zkSNARKs 证明。

zkSTARK 这串缩写后半部分的意思是可扩展的透明知识论证（Scalable Transparent Arguments of Knowledge）。

虽然 zkSTARKs 的字节数比 zkSNARKs 多，但其大小并不能直接决定证明生成所需要的时间长短，因为其计算类型也是一大影响因素。不过，字节长短也起到了一定的抑制作用，因为使用 zkSTARKs 的 Rollup 扩容方案需要更高的 Gas 费才能把证明提交到 L1。

即便如此，zkSTARKs 的生成速度还是比 zkSNARKs 要快。当计算要求增加时，zkSTARKs 的证明者数量以及验证时间的增长速度都将比 zkSNARKs 更为缓慢，所以也有着更强的可扩展性。

ZkSTARKs 不需要有受信的初始化，因为它们所创建的系统是依靠可公开验证的随机性来完成的。与 zkSNARKs 不同的是，zkSTARKs 由于在其设计中使用了更强的加密原语，如抗碰撞哈希函数，因此具备了抗量子性，这就是为什么其证明明显长于 zkSNARKs 证明的原因了。因此，zkSTARKs 的知识论证并没有假设证明者计算能力有限。

zkSTARKs 和 zkSNARKs 都属于最前沿的密码学领域技术，正推动着区块链扩容不断迈向更高的台阶。随着技术以及硬件设施的日益改进，我们可以预见零知识证明在未来将作为支撑模块化扩展和区块链发展的底层技术而得到更多普及。

---

*Originally published on [sbs](https://paragraph.com/@sbs/v)*
