zk-SNARK
- SNARK: Succinct Non-interactive Argument of Knowledge
- Succinct(简便):生成的证明所占空间和验证需要的运算量很小
- Non-interactive(非交互性):证明者和验证者之间很少或不需要交互,从证明生成到提交和验证都只需一次数据传输
- Argument:可以抵抗计算能力有限的证明者的攻击,生成证明使用的加密算法复杂度在现有的算力条件下,无法以可接受的时间和经济成本被暴力破解
- of Knowledge:如果不知道要证明的是什么,就不可能构建一个证明
arxiv.org
Chapter 1对于发展历程描述的很清楚。
zk-STARK
- STARK:Scalable Transparent Argument of Knowledge
- Scalable(可扩展):开发人员能够在链下执行计算和存储数据,从而以指数级地提升可扩展性。零知识证明验证这些链下活动,然后在线提交给感兴趣的各方进行验证。
- Transparent(透明):使用公开可用的随机性来生成参数,从而消除了对可信设置的需求,这是ZK-STARK和ZK-SNARK最大的不同点
ZK主要应用场景
- 在所有数据链上公开可见的区块链领域,ZK能够在不揭示陈述的真实情况下证明一个陈述,这是一项非常强大的功能,能够解决许多现实存在的痛难点问题,如保护用户数据、设计敏感系统或合同等
- ZK最主要的特性有两个:不泄露信息和证明有效,分别解决了区块链发展的两个痛点
- 不泄露信息:区块链网络的共识要求一切公开透明,隐私保护成为问题
- 证明有效:区块链去中心化的特点,使得验证成为限制性能的主要绊脚石之一,轻量化的证明成为刚需
- 通过解决这两个痛点,延伸出了现阶段ZK在区块链领域的两大应用场景:隐私保护和ZK Rollup
Circom
evaludate circom的速度:https://eprint.iacr.org/2023/681.pdf
Details
浅谈零知识证明之三:zkSNARK证明体系的实现