ZKP 零知识证明
https://blog.chain.link/zero-knowledge-projects-zh/
https://zhuanlan.zhihu.com/p/450409072
https://academy.binance.com/zh/articles/what-is-zero-knowledge-proof-and-how-does-it-impact-blockchain
https://finance.sina.cn/blockchain/2022-11-21/detail-imqmmthc5427930.d.html?oid=3822387407649421&vt=4
零知识证明的含义
什么是零知识证明(ZKP)?零知识证明可以让用户在不透露信息的前提下证明自己知道或拥有信息。“证明者”(prover)会利用某一系统输入的信息来创建证明,而“验证者”(verifier)则会验证这个证明的计算结果,但却无法得知信息的具体内容。最关键的是,零知识证明可以验证某一数据集的有效性,并同时保护数据隐私。零知识证明的精粹在于,可以证明自己拥有该信息而不必透露信息内容。
区块链和零知识证明的关系
拿以太坊来举例子,零知识技术可以让开发者既能利用以太坊等底层区块链的安全性,又能为dApp提高交易吞吐量和速度,并同时将用户个人信息放在链下,以保护用户隐私。交易将打包上传至链上,以降低终端用户的使用成本。最终,项目可以利用这些功能打造出高级的dApp,不仅在性能上可以与Web2系统媲美,而且还能保持Web3去中心化的优势。
在区块链中的应用
从零知识证明定义中可以提取到两个关键词:“不泄露信息”,“证明论断有效”,基于这两个特点扩展出零知识证明在区块链上的两大应用场景:隐私保护和扩容。
隐私:在隐私场景中,我们可以借助零知识证明的“不泄露信息”特性,在不泄漏交易的细节(接收方,发送方,交易余额)的情况下证明区块链上的资产转移是有效的。
扩容:在扩容场景中,我们不太需要关注零知识证明技术的“不泄露信息”这个特性,我们的关注重点是它的“证明论断有效”这个特性,由于链上资源是有限的,所以我们需要把大量的计算迁移到链下进行,因此需要有一种技术能够证明这些在链下发生的动作是可信的,零知识证明正好可以帮助我们做链下可信计算的背书。
早期比较出名的项目就是Zcash,但是随着时间的推移,私交易的必要性并没有业界希望的那样突出,也就慢慢退出了焦点。。而应用层面,扩容的必要性提升到无以复加,随着以太坊 2.0升级,ZK 系列正式又回归业界的视线,成为焦点。
Zcash 应用的 zk-SNARKs 交易步骤如下:
1.System setup 阶段生成证明秘钥(加密证明多项式)和验证秘钥,借助 KeyGen function
2.CPA 阶段 ECIES 加密方法(Elliptic Curve Integrated Encryption Scheme)用来生成公钥和私钥
3.Minting Coins 阶段,生成新币的数量。公共地址和币的 commitment
4.Pouring 阶段,生成 zk-SNARK 证明,证明被加到了 pour 交易账本中
5.Verification 阶段,验证者验证 Mint 和 Pour 的交易量是否正确
6.Receiving 阶段,receiver 接收币。如果想使用收到的币,则继续调用 Pouring,形成 zk-SNARK 验证,重复上述 4-6 的步骤,完成交易。
Vitalik 提到过,和扩容相比,隐私相对比较容易实现,如果一些扩容的 protocol 都可以成立的话,隐私基本上不会成为问题。
zk-rollup会将多笔交易打包在一起,并发布到Layer1区块链上,同时还会发布一个验证计算有效性的证明。发布到链上的证明也被称作“有效性证明”。有效性证明分为SNARKs和STARKs两类。一旦这些证明在底层区块链上得到了验证,zk-rollup的状态就会更新。
Mina 是轻量级区块链,采用SNARKs创建容量最大为22kb的区块。项目可以在Mina上开发部署应用,并可以实现全部智能合约功能。
Immutable X是一个NFT平台,用于铸造和交易NFT和通证。该平台使用StarkEx打造专属的zk-rollup。Immutable X平台上NFT铸造和交易量达到数百万,而且即使在以太坊网络拥堵期间也可以保持较低的成本。
Comments
Post a Comment