# 如何将交互式的零知识证明（zk proof）协议改造为非交互式

By [sadad](https://paragraph.com/@sadad) · 2023-03-19

---

密码学当中的零知识证明技术在 web3 世界有着广泛的应用，包括进行隐私计算、zkRollup 等等。其中 Layer2 项目 FOX 所使用的 FOAKS 就是一个零知识证明算法。在上述的一系列应用当中，对于零知识证明算法而言，有两方面属性极为重要，那就是算法的效率以及交互性。

算法效率的重要性不言而喻，高效的算法可以明显的降低系统运行时间，从而降低客户端延迟，显著的提高用户体验和效率，这也是 FOAKS 致力于实现线性证明时间的一个重要原因。

另一方面，从密码学的角度来讲，零知识证明系统的设计往往依赖证明者和验证者的多轮交互。例如在许多介绍零知识证明的科普文章当中都会使用的“零知识洞穴”的故事当中，证明的实现就依赖于阿里巴巴（证明者）和记者（验证者）多轮的信息传递交互才能实现。但是事实上，在许多应用场景当中，依赖交互会使得系统不再可用，或者极高的增加延迟。就像在 zkRollup 系统当中，我们期望证明者（也就是 FOX 当中的 folder）能够在本地，不依赖于和验证者交互的情况下就计算出正确的证明值。

---

*Originally published on [sadad](https://paragraph.com/@sadad/zk-proof)*
