深入解析ZK - SNARKs:构建原理与应用探索
1. SNARKs的类型与特点
SNARKs(简洁非交互式知识论证)根据其设置要求可分为三种主要类型:
- 受信任的非通用设置 :这种类型的SNARKs是为单个电路构建的。在设置过程中会生成大量随机数据,这些数据必须保密,否则证明者可以证明虚假陈述。一旦设置完成,这些数据将被销毁。例如Zcash最初使用这种设置,由于只有单一类型的电路(交易转移),所以设置无需更新,但如果电路类型改变,则必须重新进行设置。
- 受信任的通用设置 :SNARKs只需要进行一次受信任的设置。它具有可更新且比通用参考字符串(CRS)更小的结构化参考字符串(SRS)。参考字符串基于秘密随机性具有一定结构,设置中的秘密材料(随机性、陷门等)与电路无关,是通用且可更新的。可以将其视为一个两步过程,首先秘密运行一次性程序生成可更新的设置字符串,然后销毁所有秘密。之后,该设置字符串可用于任何新电路的预处理,而无需依赖任何秘密数据。
- 透明SNARKs或STARKs :不需要受信任的设置,因为它们不使用任何秘密数据。
SNARKs生成的证明体积小且验证速度快,不仅可用于隐私保护,还能提高区块链的可扩展性。然而,它们存在两个关键问题:一是生成证明所需时间长,二是需要SRS,这意味着要信任第三方。
2. 构建ZK - SNARKs的第一步:前端处理
构建ZK - SNARKs通常是一个两步过程。第一步涉及系统的“前端”,即将程序转换为可进行概率检查的等效模型。具体来说,是将待证明的程序转换为算术电路,
超级会员免费看
订阅专栏 解锁全文
334

被折叠的 条评论
为什么被折叠?



