盘点零知识证明(ZKP)在 Web3 的巨大机会
零知识(或简称 zk)是一种使能技术,它不仅可以改变 Web3,还可以改变其他的行业。作为一种足够通用的技术,zk 可拥有大量的用例,而我们正处于弄清楚该技术可实现的所有用例的早期阶段。 一些明显的 zk 用例,已经找到了真正的应用,例如启用交易隐私以及数据压缩(即rollup)。 然而,要让 zk 的采用变为主流,仍然需要许多潜在的用例和技术进步。
在本文中,我们首先来回顾下 ZKP 的不同应用。
欢迎各位志同道合的币圈人一起来探索。有问题可以评论提问或者私信,所有资讯平台均为Crypto杰瑞
ZKP 应用地图
自发明以来,零知识证明 (ZKP) 已在 crypto 行业中找到了稳固的立足点。ZKP 确实有一些神奇之处,这使得该技术非常令人兴奋。简单来说,ZKP 允许一个实体向世界其他地方证明其知道了一条信息,或者其已经正确完成了一项任务,而无需透露该信息或显示任务执行的细节。 zk 的神奇数学让我们只需检查生成的 ZKP 就可以相信知识或执行的完成。 出于这个原因,ZKP 的第一个,也是最一致的用例是以隐私为中心的 crypto 网络。 ZKP 还用于提供以太坊 L1 上的 L2 交易的有效性证明,以引入 zk rollup 的概念。此外,ZKP 在不同的项目中还被用于其他的利基应用。
以隐私为中心的支付和协议
ZKP 自然地实现了隐私,特别是在缺乏可充当真相来源的中央权威的去中心化网络中。 ZKP 允许 Web3 用户(证明者)向网络验证者(验证者)证明他们的交易是有效的,即他们有足够的余额可以花费,而无需透露交易细节,如交易金额、发送方或接收方地址。
ZKP 最初是为了支持 Zcash 网络中的隐蔽支付(即隐私支付)而开发的,然后扩展到了其他网络。隐私支付网络的项目例子包括:
注重隐私的 L1:Zcash、Horizon、Aleo 以及 Iron Fish
通用链上的隐私智能合约:Tornado Cash
注重隐私的 L2:Aztec
zk rollup 的验证
ZKP 的另一个主要用例是在底层 L1 上生成 rollup 有效性证明。通用 rollup 优化吞吐量,即通过不利用 ZKP 的隐私功能来证明更多的 TX。在这种权衡中,ZKP 仅作为 L2 交易执行正确性的证明。
由于无法有效地证明一些通用函数,因此很难生成 ZKP 来证明任意智能合约的正确执行。解决这个问题需要实现专用的VM,这些 VM 可以使用底层 zk 电路得到有效验证。由于这种复杂性,zk rollup 一开始只支持支付或单个应用(例如 DEX),这样就可以轻松生成 ZKP。这里的例子包括 zkSync 1.0 以及 Loopring。之后,通用的 zkEVM 实现开始出现在市场上,包括 Starknet、zkSync 2.0、Polygon zkEVM 以及 Scroll。目前,所有的 zk rollup 都在以太坊上,但理论上也可以在其他链(包括比特币)上实现 zk rollup。然而,比特币 rollup 的实施将需要更改比特币操作码并进行硬分叉升级,而这通常不受比特币社区的欢迎。
其他的零知识证明应用
除了以隐私为中心的应用和 rollup 之外,ZKP 在其他区块链协议中也找到了其他的用例。本节介绍了这些用例。
Mina
Mina 使用 ZKP 将区块链状态压缩到很小的大小(~22 KB)。为了实现这一点,Mina 使用了递归 ZKP 方法,即对 ZKP 再进行一次 ZKP 压缩计算。当 Mina 网络中生成一个区块时,zk-SNARKs 用于生成该区块的证明,以确保其有效性。当新区块引用之前的区块时,新区块的 ZKP 会验证所有之前的区块,同时保持不变的大小。
Filecoin
Filecoin 使用 ZKP 来确保存储提供商正确存储他们声称存储的数据。这个过程称为复制证明(PoReb)。在此过程中,存储提供者生成 ZKP ,以证明存储的是数据的唯一副本,即不引用其他提供者维护的副本。 ZKP 为想要实现一定程度的冗余和可用性的 Filecoin 用户提供保证。此外,由于证明的大小比存储的数据小得多,使用 ZKP 可以降低存储提供商的带宽需求。
Celo Plumo
Celo Plumo 使用 ZKP 允许创建可在手机和其他资源有限的设备上使用的超轻型网络客户端。尽管客户端是轻量级的,但它可以保证访问的状态的正确性。
黑暗森林(Dark Forest)
Dark Forest 是 ZKP 在游戏领域最流行的一款应用。尽管 ZKP 的使用符合隐私用例,但其创建不完全信息博弈的应用是一个独特的用例,其超越了 ZKP 在支付网络中的金融应用范围。
ZKP 的发展轨迹及其应用
在 2016 年之前,ZKP 还只是在小范围的学术圈内被讨论的一个研究课题。当 Zcash 创始团队创建了 ZKP 变体 zk-SNARK 的第一个实现,以支持 Zcash 网络中的屏蔽/隐私交易时,这一切都发生了变化。有了一个真实的用例之后,ZKP 引发的兴趣变得越来越大,这导致了更多更好的 ZKP 变体,这些变体成为了第一节中我们讨论的很多项目的基础。然而,该技术需要进一步的 ZKP 开发才能实现主流的采用。
要了解如何进一步改进该技术,我们可以向 AI 等类似技术学习。在许多方面,ZKP 技术类似于人工智能(AI)技术,预计它将遵循类似的发展轨迹。与 ZKP 一样,AI 最初是一种很有前途的技术,它可以解决许多问题。然而,最初的人工智能算法的能力有限,计算复杂度远远超过了可用硬件的能力。这使得人工智能应用变得缓慢且不切实际,因此,人工智能(AI)主要局限于研究实验室。通过发明深度神经网络 (DNN) 等新架构,并利用 GPU 来提高执行速度,从而逐步改进了 AI 。这最终导致了诸如 2012 年 AlexNet 等突破,在最著名的计算机视觉竞赛 ImageNet 中以巨大的优势获胜。 AlexNet 是 AI 时代的一个开端,它催生了当前令人兴奋的 AI 应用,例如 GPT-3、Dall.E 2 以及 Stable Diffusion。
而在今天,ZKP 的状态类似于 AI 早期的状态,这是一项仍在积极开发中的很有前途的技术,但因为它是计算密集型的,这导致了较长的验证时间。从人工智能(AI)的进步中学习,我们可以发现 ZKP 技术起飞需要解决的瓶颈。
1.算法/电路改进
就像 AI 从 LeNet-5 到 AlexNet,从 Resnet-50 到 Transformer 一样,ZKP 算法也将经历开发阶段,从而显着提高性能。我们已经看到了这方面的进展,自 2011 年引入 zk-SNARK 以来,研发人员已经开发了更高级的算法。 2018 年,Starkware 的创始人开发了 STARK,这是一种无需可信设置且证明生成时间更短的 ZKP 方法,这项技术是 Starkware 旗下几款产品(包括 StarkNet 在内)的基础。
随着 2019 年 PLONK 的引入,ZKP 继续取得了进展,这是一种 SNARK 实现,它允许很多应用使用单个受信任的设置,而无需重复设置。 PLONK 刺激了多种实现的开发,这些实现被多种 Web 3 协议(例如 Aztec、Mina 和 Celo)所使用。
2.优化的执行引擎
ZKP 的一个主要限制是计算复杂性,这导致了证明时间过长。例如,Polygon 最近宣布的 zkEVM 实现需要在 64 核服务器上使用大约 5 分钟来生成 50 万 gas 计算的证明。提高 ZKP 证明时间是使 ZKP 技术成为主流的关键部分。与 AI 类似,优化软件执行引擎和使用专用硬件都是实现这一目标的必要条件。
优化软件
很多 ZKP 生成操作是大规模并行的,这意味着并行处理(例如 GPU)可以加速 ZKP 计算。 CUDA 等专用 GPU 库可用于加速 Nvidia GPU 上 ZKP 计算。由于每个项目都使用不同的 ZKP 算法,因此有几个项目正在尝试在内部进行开发。这里一个值得注意的例子是 Filecoin 的 Groth16 算法的实现,它使用 GPU 来加速证明过程。另一个例子是 Edgeswap 使用 GPU 将 PLONK 的证明时间减少了 75%。
专用硬件
由于 GPU 对 ZKP 证明时间的改进会是有限的,因此另一种选择是使用专用硬件,例如 FPGA 或 ASIC。在制造专用芯片(即 ASIC)的昂贵努力之前,FPGA 通常被视为硬件原型设计平台。 FPGA 或结合 GPU 和 FPGA 的混合解决方案,可以在中短期内为 Rollup 以及以隐私为中心的网络加速 ZKP 发挥重要作用。然而,如果 ZKP 技术发展到我们预期的水平,ASIC 最终将出现,并赢得这个市场。目前,ZKP 的硬件加速没有得到充分解决,可能是因为 ZKP 算法的多样性和碎片化。然而,我们相信,通过正确的商业模式,一些初创公司可以专注于开发和货币化这部分技术堆栈。
3. 软件抽象层
为了释放 ZKP 的潜力,需要构建几个抽象层和工具。这些抽象对于简化 ZKP 应用的开发过程是必要的,并允许每组开发人员专注于他们最擅长的事情。例如,应用程序开发人员不应该担心 zk 电路的底层细节及其工作方式。再次使用 AI 类比,通过创建多个抽象层,AI 可能取得巨大进步。使用这些抽象,AI 应用程序开发人员无需担心 NN 架构或硬件资源分配。 TensorFlow 和 PyTorch 等框架抽象出了所有这些底层细节。
zk 开发堆栈还没有 AI 堆栈那么发达。 然而,有一些努力来构建这些抽象。 在堆栈的底部存在基础的 ZKP 库,例如 PLONK 和 STARK。 在该层之上,Noir 等高级语言试图抽象出底层的 zk 密码学,并帮助应用开发人员专注于应用程序逻辑。 Circom 是另一种流行的 ZKP 语言,它位于这两层之间,因为它既可用于创建复杂的 zk 后端,也可用于开发基于 ZKP 的应用程序。
Web 3 中 ZKP 抽象的另一个例子是 StarkWare 的 Cairo 语言,它允许开发人员实现在底层使用 STARK 证明的通用智能合约。 为了提供进一步的抽象,Nethermind 的 Warp 工具允许 Solidity 开发人员将他们的 Solidity 代码直接转换为 Cairo。 使用 Warp,可以将 Uniswap V3 代码转换为 Cairo,而只需对原始 Solidity 代码进行最小的更改。
结论
ZKP 技术是 Web 3 领域最具创新性的技术之一,它为突破性协议和公司提供了多种机会。 在 Alliance,我们希望成为这一运动的核心部分,我们正在寻求支持和资助创始人朝着这个方向发展。
欢迎各位志同道合的币圈人一起来探索。有问题可以评论提问或者私信,所有资讯平台均为Crypto杰瑞
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
Justin Sun suspected to have purchased $160m in Ethereum
Justin Sun suspected to have purchased $160m in Ethereum