零知识证明挖矿
ZKP 的定义非常广泛。根据“Why
and How zk-SNARK Works” 一文,一个证明者想要让验证者相信某些陈述是正确的,ZKP 协议应该满足三个属性:
完整性——如果陈述是真的,那么证明者可以说服验证者零知识性——交互只揭示一个陈述是否是真的,不揭露其他信息例如,Alice 想要让 Bob 相信她知道 Carol 的电话号码。她打电话给Carol, 然后 Carol 的电话响了,显示是 Alice 打来的。通过这种方式,Alice在不透露电话号码的情况下向Bob证明了她知道Carol的电话号码, 这就是一个 ZKP 协议。
当我们在区块链的背景下谈论 ZKP 时,它通常指的是定义中的特定算法分支。这些算法在大多数情况下被称为 zkSNARKs(零知识简洁非交互式知识论证),并具有以下属性:
1.非交互式证明过程。证明过程只需要证明者向验证者发送证明即可。3.可编程语句。该算法可以将任何语句转换为 QAP(Quadratic Arithmetic Program)进行证明。
关于区块链中使用的详细 ZKP 算法,可以参考“Awesome zero knowledge proofs”一文。它的发展遵循这样一个趋势:计算速度越来越快,对“可信设置”的依赖越来越低,证明规模越来越小。下面列出了一些算法及其相关项目:
1.Pinocchio(ZCash Sprout 版):最早将 ZKP 引入区块链。2.Groth16(ZCash Sapling 版本,Filecoin):比 Pinocchio 更快。3.ZK-STARKs (StarkWare):没有可信的设置。4.PLONK (zkSync)、Marlin (Aleo):通用可信设置5.Halo 2(ZCash
NU5 版本):无可信设置,递归
ZKP 具有适用于区块链的属性。首先,与默克尔证明和数字签名等其他证明系统相比,ZKP能够证明任何语句,为链上逻辑带来多样性。其次,它的证明简洁,在链上验证时消耗更少的gas费。
ZKP 最早的使用强调其零知识的特性,在不泄露任何交易信息的情况下证明交易的有效性,例如 ZCash。后来,ZKP 经历了瓶颈期,人们发现对区块链隐私的需求并不强烈,ZKP因为需要很长的时间来进行计算而对用户并不友好。
最近,ZKP 因其在区块链可扩展性方面的应用而重新引起人们的关注,通过证明大量数据的有效性,ZKP 扩展了区块链的计算和存储能力。一些经过验证的数据及其相关项目:
1.L2 交易:zk-Rollup项目,如 zkSync、StarkWare
这几天关于 ZKP 的讨论非常热闹。Paradigm 分析了 ZKP 的硬件加速,认为 FPGA 优于 GPU 和 ASIC;a16z 总结了关于ZKP 的相关概述—— 零知识证明阿姆斯特丹峰会 (Zero
Knowledge Summit Amsterdam)上也提供了许多关于ZKP 的见解和新想法。
今年以太坊将从PoW转向PoS,区块链挖矿市场将大幅萎缩。虽然近年来出现了存储挖矿,包括 Filecoin、Chia、Arweave 等,但仍然无法满足以太坊退出带来的市场空缺。
但另一方面,ZKP 也在区块链挖矿中有一些早期的应用。例如市场上有矿工为Mina提交他们生成的零识证明来赚取代币。在 Filecoin 中,矿工需要为存储在链下的每个数据扇区生成 ZKP,从而获得存储能力。
我们可以看到,传统的哈希挖矿也存在诸多关于能源浪费、无意义计算的争议。因此,区块链领域正在努力寻找一种有意义的挖矿方式。ZKP的特性(证明任意语句,复杂证明但简单验证)为区块链挖矿市场提供了更多可能性。
Filecoin 利用 ZKP 通过名为复制证明和时空证明的算法来证明链下数据。我们认为今年 Filecoin 挖矿将继续流行,原因有以下三个:
1.由于其经济模型,算力质押成本在过去一年中从 0.25 降至0.16 FIL。2.FIL 的价格大幅下跌,进一步降低了其挖矿成本。3.FVM智能合约的路线图为项目带来了积极的信号。图三:Sector
Initial Pledge Variations (FIL/32GiB)Aleo 启动了第一个“ZKP 证明”挖矿模式,在该模式下,矿工的计算能力取决于每单位时间可以计算多少个证明。该挖掘算法被命名为PoSW(Proof of Succinct Work),简述如下:pseudo_random(zk_prove(nonce)) < target_difficulty
zk_prove()是用 nonce
作为输入来生成“包含其交易的当前块”的证明。target_difficulty根据全网算力调整。可以看到PoSW 和 PoW 基本相同,唯一的区别是 PoW 计算哈希,而 PoSW 计算 ZKP。
此外,Aleo 还开发了第一个“隐私智能合约”Leo。虽然还有其他基于 ZKP 的智能合约,如 zkSync 的 zkEVM、StarkWare 的Cairo 和 Mina 的 zkApps,但它们都不支持隐私。
目前 ZK-Rollups 的设计是中心化的:只有特定的operator才能向 L1 提交交易批次和有效性证明。Vitalik 给出了一些使operator去中心化的建议,例如排序拍卖、PoS 集合中随机选择和 DPoS 投票。 zkSync 和 StarkNet 都有明确的去中心化 ZK-Rollups 路线图。还有一些前沿研究,如 Polygon Hermes、StarkNet、PoVP 和 taikocha.in。
去中心化的 ZK-Rollups 带来了一种新的挖矿模式:矿工可以提交他们生成的证明,从而获得奖励,类似于Mina 的 ZKP交易市场。但是交易市场并不是最好的解决方案,因为证明会被浪费若无人购买。我们需要一个 ZKP 的并行计算架构来聚合所有矿工的力量。
在 Paradigm 的文章中有详细说明,ZKP 挖矿的第一个挑战是加速。Paradigm 假设 FPGA 在硬件加速方面优于 GPU 和 ASIC,但我们有一些不同的看法。我们认为,在可预见的未来,GPU 仍将是 ZKP 计算的主流硬件,原因在于:
1.ZKP 算法在未来会频繁变化,GPU 是对程序员最友好的硬件。2.矿工持有大量 GPU,尤其是对于以太坊挖矿。当以太坊最终切换到 PoS 时,这些 GPU 将可用于ZKP 挖矿。第二个挑战是 ZKP 在分布式硬件上的并行计算。目前,解决方案分为三种:
1.如果每个证明只需要一点点计算,比如 Aleo,传统的矿池适合将计算任务分配给分布式硬件。2.有时我们可以将单个证明分成多个证明,例如 zkSync 和 Filecoin。在这种情况下,分离的证明可以并行计算,然后聚合成一个。3.DIZK是一种能够以分布式方式计算单个证明的架构。1、Why and How zk-SNARK Works:https://arxiv.org/abs/1906.072212、QAP(Quadratic Arithmetic Program):https://medium.com/@VitalikButerin/quadratic-arithmetic-programs-from-zero-to-hero-f6d558cea6493、Awesome zero knowledge proofs:https://github.com/matte4、可设置性:https://vitalik.ca/general/2022/03/14/trustedsetup.html
5、零知识证明阿姆斯特丹峰会:https://www.youtube.com/watch?v=SCIuwh9ya8U6、FVM:https://fvm.filecoin.io
7、Paradigm Hardware Acceleration for Zero Knowledge Proofs:https://www.paradigm.xyz/2022/04/zk-hardware8、DIZK:https://github.com/scipr-lab/dizk
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。
相关Wiki