# zk-Strark究竟是什么

By [azureblue](https://paragraph.com/@azureblue) · 2023-10-31

---

1.ZK-STARK是什么
-------------

ZK-STARK是一种零知识证明协议，全称为Zero-Knowledge Scalable Transparent Argument of Knowledge。它是由Eli Ben-Sasson在2018年提出的一种方案，旨在实现零知识证明，同时具有可扩展性和透明性的特点。

ZK-STARK能够保护用户的隐私，同时确保数据的验证和完整性。它的安全性主要依赖于抗碰撞的Hash函数，并且能够抗量子攻击。在效率方面，对于指定的计算，ZK-STARK比zk-SNARK和Bulletproof更快，对于证明者和验证者来说都是如此。然而，它的缺点是证明的size相对较大，大约是zk-SNARK的100倍左右，是Bulletproof的20倍左右。

2.ZK-STARK的优势
-------------

在ZK-STARK中，证明者可以通过一系列的密码学操作，生成一个证明（proof），该证明可以验证某个陈述的真实性。验证者可以使用相同的密码学操作，结合证明和陈述，来验证证明的有效性和真实性。由于证明是公开可验证的，因此任何人都可以验证证明的有效性。

与传统的零知识证明协议相比，ZK-STARK具有更高的效率和更强的隐私保护。它使用了一种称为“STARK”的密码学操作，可以快速生成和验证证明，同时保护用户的隐私。此外，ZK-STARK还具有量子抗性，可以抵抗量子攻击，进一步提高了安全性。

需要注意的是，虽然ZK-STARK具有很多优点，但它也有一些缺点。例如，证明的size相对较大，大约是其他零知识证明协议的100倍左右。此外，ZK-STARK也需要更多的计算资源和存储空间，这可能会对系统性能产生一定的影响。

3.ZK-STARK的工作流程
---------------

ZK-STARK的工作流程包括以下步骤：

1.  初始化阶段：选择系统参数和生成公开指数。
    
2.  声明阶段：声明被验证的陈述。
    
3.  知识编码阶段：使用声明和公开指数生成知识编码。
    
4.  证明生成阶段：使用知识编码、公开指数和私钥生成证明。
    
5.  验证阶段：使用声明、公开指数、证明和验证者的私钥验证证明的有效性和真实性。
    

具体来说，ZK-STARK将计算问题转化为多项式处理，再利用多项式值构建Merkle树，生成Merkle path 证明。它通过一系列的转化过程，将CI问题转化为多项式处理的形式，然后利用多项式插值等方法将执行路径表转为多项式验证。同时，它还需要满足一些约束条件，如状态转移约束条件和边界条件约束条件等。最终，通过Merkle树的证明来验证整个证明的有效性和真实性。

4.ZK-STARK的具体应用

ZK-STARK的优势在于它能够提供零知识的证明，同时具有可扩展性和透明性的特点。以下是几个具体的例子：

1.  投票系统：在投票系统中，投票者的投票记录需要得到保护，同时还需要验证投票的正确性和真实性。ZK-STARK可以用于生成证明，证明投票者的投票记录是正确的，同时保护投票者的隐私。任何人都可以验证证明的有效性和真实性。
    
2.  区块链技术：区块链技术需要确保交易的正确性和真实性，同时保护用户的隐私。ZK-STARK可以用于生成证明，证明交易是正确的，同时保护用户的隐私。任何人都可以验证证明的有效性和真实性。
    
3.  医疗保健：在医疗保健领域，患者的隐私需要得到保护，同时还需要验证医疗记录的正确性和真实性。ZK-STARK可以用于生成证明，证明医疗记录是正确的，同时保护患者的隐私。任何人都可以验证证明的有效性和真实性。

---

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