在文章《有前景的行业预览:去中心化算力市场(第I部分)》中,我们已经了解了在人工智能预期的背景下算力的重要性,并深入探讨了建立去中心化通用人工智能(AGI)算力市场目前面临的两大主要挑战。本文将从零知识证明的基本概念开始,逐渐深入,探讨去中心化算力市场的多重可能性,这是一个蓬勃发展且充满前景的领域。 (先前的文章也提到了比特币算力市场,但考虑到比特币生态系统最近的爆炸性增长,这个方面将在我们未来与比特币生态系统相关的文章中进一步讨论。)
在20世纪80年代中期,麻省理工学院的三位密码学家(Shafi Goldwasser、Silvio Micali和Charles Rackoff)发表了一篇名为《交互式证明系统的知识复杂性》的论文。该论文描述了一种创新的密码学技术,支持验证信息的真实性而不泄露信息本身。作者将这种技术命名为“零知识证明”并为该概念提供了具体的定义和框架。
在接下来的几十年里,基于这篇论文的零知识证明技术在各个领域逐渐发展并得到完善。如今,零知识证明已成为一个总括性术语,代表了许多与区块链未来相关的“现代”或“先进”密码学方法,尤其是那些与未来的区块链相关的方法。
Zero-Knowledge Proof (ZKP), 在本文中根据上下文可以互换使用,是指一种证明者可以向验证者证明某个陈述的正确性,而无需提供有关该陈述本身的具体信息的方法。该方法的三个基本属性包括完备性、声音性和零知识性。完备性确保真实陈述的可证性,声音性保证不能证明虚假的陈述,零知识性意味着验证者除了陈述的真实性之外不得到任何信息。
根据证明者和验证者之间的通信方法,零知识证明分为两种类型:交互式和非交互式。在交互式证明中,证明者和验证者之间存在一系列的互动。这些互动是证明过程的一部分,证明者回应验证者的一系列查询或质问,以证明其陈述的真实性。这个过程通常涉及多轮通信,验证者在每一轮提出问题或质问,证明者回应以证明其陈述的正确性。在非交互式证明中,不需要多轮互动。在这里,证明者创建一个单一的、可以独立验证的证明,并将其发送给验证者。验证者可以在不再与证明者进一步通信的情况下,独立验证这个证明的真实性。
零知识证明在区块链中有多种实现方式,其中 zk-STARK(零知识可扩展透明知识证明)和 zk-SNARK(零知识简洁非交互式知识证明)是最为知名的两种。正如它们的名称中所示,“Non-Interactive” 表明它们都是非交互式零知识证明。
zk-SNARK 是一种广泛使用的通用零知识证明方案(不是一种单一的技术,而是一个类别)。它将任何计算过程转化为一系列门电路,然后利用多项式属性将这些电路转化为多项式,从而压缩并生成复杂业务应用的小型非交互证明。zk-SNARK 需要一个可信的设置,其中多个参与方在可信的环境中生成密钥的一部分,然后销毁它。如果在可信的设置中使用的秘密信息没有被销毁,就可能被利用通过虚假验证来伪造交易。
zk-STARK 是从 zk-SNARK 发展而来,解决了对可信设置的依赖性问题。它可以在没有任何可信设置的情况下完成区块链验证,降低了启动网络的复杂性并消除了勾结风险。然而,zk-STARK 生成更大的证明的问题,从存储、链上验证和生成时间等方面具有不利因素。如果你体验过 StarkNet 的早期版本(使用 zk-STARK),你可能会注意到与其他第2层解决方案相比在速度和 Gas 费用方面存在显著差异。因此,zk-SNARK 更常被采用。其他较为非主流的解决方案包括 PLONK 和 Bulletproofs,它们在证明大小、证明者时间和验证时间等方面各有优劣。实现理想的零知识证明具有挑战性,主流算法通常需要平衡不同的维度。
开发 ZK 通常涉及两个重要组件:
ZK友好的计算表达式:这包括特定于领域的语言 (DSL) 或低级库。像 Arkworks 这样的低级库提供了必要的工具和原语,允许开发人员用较低级语言手动重写代码。像 Cairo 或 Circom 这样的 DSL 是为 ZK 应用程序量身定制的编程语言,编译成生成证明所需的原语。更复杂的操作会导致证明生成时间更长,并且某些操作(例如 SHA 或 Keccak 中使用的位操作)可能不适合 ZK,从而导致证明生成时间过长。
证明系统: 证明系统是ZK应用的核心,实现两个基本功能:Prove和Verify。 Prove 函数允许生成一个证明(需要大量的数学计算,更复杂的证明需要更长的时间来生成),以证明陈述是正确的,而无需透露证明细节。验证函数用于检查这个证明的正确性(证明越复杂、越大,性能越高,验证所需的时间越短)。不同的证明系统,例如 Groth16、GM17、PLONK、Spartan 和 STARK,在效率、安全性和易用性方面各不相同。
ZKP跨链桥和互操作性:ZKP可以为跨链消息协议创建有效性证明,允许消息在目标链上快速验证。这类似于在基础 L1 上验证 zkRollups。然而,由于需要源链和目标链之间进行验证的不同签名方案和密码功能,跨链消息传递更加复杂。
链上游戏引擎中的 ZKP: 黑暗森林展示了 ZKP 如何实现链上不完全信息博弈。这对于设计更具互动性的游戏至关重要,在游戏中,玩家的行为在他们选择透露之前保持私密。随着链上游戏的成熟,ZKP将成为游戏执行引擎的一部分。成功地将隐私功能集成到高吞吐量链上游戏引擎中的初创公司将发挥重要作用。
身份解决方案: ZKP 在身份领域带来了多种机会。它们可用于声誉证明或链接 Web2 和 Web3 身份。目前,我们的 Web2 和 Web3 身份是分开的。像 Clique 这样的项目使用预言机来连接这些身份。ZKP 可通过匿名链接 Web2 和 Web3 身份来进一步实现这一点,支持匿名 DAO 成员身份等用例,前提是它们可以使用 Web2 或 Web3 数据证明特定领域的专业知识。另一个用例是基于借款人的 Web2 社会地位(例如 Twitter 关注者数量)的无抵押 Web3 贷款。
ZKP 监管合规性:Web3允许匿名在线账户积极参与金融体系,大大提高财务自由和包容性。随着 Web3 法规的不断增加,ZKP 可用于在不破坏匿名性的情况下遵守规定。 ZKP可以证明用户不是受制裁国家的公民或居民。它还可用于证明合格投资者身份或任何其他 KYC/AML 要求。
5.原生Web3私募债务融资:TradeFi 债务融资通常用于支持成长中的初创公司加速增长或启动新业务线,而无需增加额外的风险资本。Web3 DAO 和匿名公司的兴起为原生 Web3 债务融资创造了机会。例如,使用 ZKP、DAO 或匿名公司可以获得无抵押贷款和基于增长指标证明的有竞争力的利率,而无需向贷方披露借款人信息。
DeFi中的隐私:金融机构通常保护其交易历史和风险敞口的隐私。然而,由于链上分析技术的进步,使用去中心化金融(DeFi)协议在链上变得具有挑战性。一个潜在的解决方案是开发注重隐私的DeFi产品,以保护参与者的隐私。尝试实现这一目标的一个协议是Penumbra的zkSwap。此外,Aztec的zk.money通过混淆用户参与透明DeFi协议,提供了一些私密的DeFi收益机会。总的来说,成功实现高效且注重隐私的DeFi产品的协议可以吸引机构参与者的大量交易和收入。
用于Web3广告的零知识证明(ZKP):Web3赋予用户拥有其数据权利的能力,如浏览历史、私人钱包活动等。Web3还使得用户可以对其数据进行货币化以获取利益。由于数据货币化可能与隐私相冲突,ZKP在控制向广告商和数据聚合器披露哪些个人数据方面可以发挥关键作用。
共享和货币化私人数据:我们的许多私人数据,如果与合适的实体分享,可能会产生重大影响。个人健康数据可以众包用于帮助研究人员开发新药物。私人财务记录可以与监管机构共享,以识别和惩罚腐败行为。ZKP可以实现此类数据的私人共享和货币化。
治理:随着DAOs(去中心化自治组织)和链上治理变得更为普遍,Web3正朝着直接参与式民主迈进。当前治理模型的一个主要缺陷是参与的非隐私性。ZKP可以在解决这个问题上发挥基础性作用。治理参与者可以在不披露其投票选择的情况下进行投票。此外,ZKP可以将治理提案的可见性限制为仅对DAO成员可见,使DAO能够建立竞争优势。
ZKRollup:在区块链中,ZKP的最重要的用例之一是扩展。zkRollup技术将多个交易聚合成一个单一的交易。这些交易在链外(在区块链的主链之外)进行处理和计算。对于这些聚合交易,zkRollup使用ZKP生成一个证明,可以验证交易的有效性而不泄露其具体细节,从而显著压缩数据大小。然后,生成的ZKP被提交到区块链的主链上。主链上的节点只需要验证证明的有效性,而不需要处理每个单独的交易,大大减轻了主链的负担。
零知识证明(ZKP)协议虽然具有多种优势,但目前面临一个主要问题:验证容易,但生成困难。大多数证明系统生成的主要瓶颈是多标量乘法(MSM)或快速傅里叶变换(FFT)及其逆。它们的组成及优缺点如下:
多标量乘法 (MSM): MSM 是密码学中的关键计算,涉及椭圆曲线密码学中的点和标量的乘法。在 ZKP 中,MSM 用于构建椭圆曲线上点的复杂数学关系。这些计算通常涉及大量数据点和操作,这是生成和验证证明的关键。MSM 在 ZKP 中尤其重要,因为它有助于构建可以验证加密语句而不暴露私人信息的证明。 MSM可以跨多个线程执行,从而支持并行处理。然而,当处理大型元素向量(例如 5000 万个元素)时,乘法运算仍然可能很慢并且需要大量内存资源。此外,MSM 面临可扩展性挑战,即使进行广泛的并行化,仍然很慢。
快速傅立叶变换 (FFT): FFT 是计算多项式乘法和解决多项式插值问题的有效算法。在 ZKP 中,它通常用于优化多项式的计算,这是证明生成的关键步骤。 FFT 通过将复杂的多项式运算分解为更小、更简单的部分来加速计算,这对于证明生成过程的效率至关重要。 FFT 的使用大大增强了 ZKP 系统处理复杂多项式和大型数据集的能力。然而,FFT运算依赖于频繁的数据交换,很难通过分布式计算或硬件加速来显著提高效率。 FFT 运算中的数据交换需要大量带宽,尤其是在处理大于硬件内存容量的数据集时。
虽然软件优化也是一个重要的研究方向,但加速证明生成的最直接、最暴力的方法是在硬件中堆叠足够的计算能力。在各种计算硬件选项(GPU、FPGA、ASIC)中,哪一个是最佳选择?由于上一节已经简单介绍了GPU,这里我们主要了解FPGA和ASIC的设计逻辑和优缺点。
专用集成电路: ASIC(专用集成电路)是专门为满足特定应用的需要而设计的集成电路。与通用处理器或标准集成电路相比,ASIC 是为执行特定任务或应用而定制的,因此通常在其设计的应用中表现出更高的效率和性能。在众所周知的比特币挖矿领域,ASIC是非常重要的计算硬件,其高效率和低功耗使其成为比特币挖矿的理想选择。然而,ASIC 有两个明显的缺点:由于它们是为特定应用而设计的(例如,比特币 ASIC 矿机是围绕 SHA-256 哈希算法设计的),如果不大规模采用,设计和制造成本可能会非常高,而且设计和验证周期可能会比较长。
FPGA: FPGA是Field Programmable Gate Array的缩写,是在PAL(可编程逻辑阵列)、GAL(通用阵列逻辑)、CPLD(复杂可编程逻辑器件)等传统逻辑电路和门阵列的基础上发展起来的一类可重编程器件。与 ASIC 一样,FPGA 是电子设计中用于实现特定功能的集成电路,克服了过去半定制电路的限制以及以前可编程器件中门数量有限的问题。其主要特点是“可重编程性、低功耗、低延迟和强大的计算能力”。但FPGA的缺点是其功能完全依赖于硬件实现,无法执行分支条件跳转等操作,只能执行定点操作。从成本上来说,FPGA的设计成本比ASIC低,但制造成本也需要根据规模来考虑。当然,两者的综合成本远高于GPU。
回到ZKP硬件加速的讨论,首先必须承认ZKP仍处于发展的早期阶段。系统参数(例如FFT宽度或元素的位大小)或证明系统的选择(仅上面提到的证明系统有五种)仍然很少标准化。我们比较该环境中的三种类型的计算硬件:
· ZK ‘Meta’ 的变化: 如上所述,ASIC 上的业务逻辑是一次性编写的。如果任何ZKP逻辑发生变化,都需要从头开始。FPGA 可以在 1 秒内刷新任意次数,这意味着它们可以在具有不兼容证明系统(例如跨链 MEV 提取)的多个链上重复使用,并灵活适应 ZK“元”的变化。虽然 GPU 在硬件层面的重新配置速度不如 FPGA,但它们在软件层面提供了极大的灵活性。 GPU可以通过软件更新来适应不同的ZKP算法和逻辑变化。尽管这些更新可能不如FPGA那么快,但仍然可以在相对较短的时间内完成。
· 供应:ASIC的设计、制造和部署通常需要12到18个月甚至更长的时间。相比之下,FPGA供应链相对健康,像Xilinx这样的领先供应商允许大量的零售订单在16周内从其网站上到达(即无需任何联系点)。就GPU而言,它们在供应方面自然有巨大的优势。自以太坊上海合并以来,网络中存在大量闲置的GPU挖矿机。Nvidia和AMD开发的后续显卡系列也可以大量供应。
从以上两点来看,除非ZK领域形成共识并标准化采用一种方案,否则ASIC将没有任何优势。鉴于当前ZKP方案的多样化发展,GPU和FPGA将是我们接下来需要讨论的两种主要类型的计算硬件。
· 开发周期: 由于GPU的普及以及CUDA(针对NVIDIA GPU)和OpenCL(跨平台)等成熟的开发工具,GPU开发变得更加容易。 FPGA开发通常涉及更复杂的硬件描述语言(例如VHDL或Verilog),需要更长的学习和开发时间。
· 能量消耗: FPGA 在能源效率方面通常优于 GPU。这主要是因为FPGA可以针对特定任务进行优化,从而减少不必要的能耗。虽然 GPU 在处理高度并行任务方面功能强大,但这也带来了更高的功耗。
· 可定制性: FPGA 可以通过编程来优化特定的 ZKP 算法,从而提高效率。对于特定的 ZKP 算法,GPU 的通用架构可能不如专用硬件高效。
· 生成速度: 根据trapdoor-tech对GPU(以Nvidia 3090为例)和FPGA(以Xilinx VU9P为例)的比较,在BLS12-381(一种特定类型的椭圆曲线)下,使用相同的模乘/模加算法方面,GPU的生成速度是FPGA的5倍。
综上所述,在短期内,考虑到开发周期、并行性、生成速度、成本以及网络中准备好的大量闲置设备,目前毫无疑问,GPU是最有优势的选择。当前硬件优化的方向也主要集中在GPU上。FPGA完全取代竞争的时机尚未到来。因此,是否可能建立一个类似于PoW挖矿的ZKP计算力市场(这是我个人构想的一个术语)?
在思考ZKP算力市场的构建时,我们已经从前文中得出了硬件方面的结论。剩下的问题是:ZKP 是否需要去中心化?市场规模是否足够有吸引力?如果基于ZK的公链都选择建立自己的证明生成市场,那么ZKP算力市场的意义何在?
去中心化的意义: 首先,当前大多数zkRollup项目(例如Starkware和zKsync)都依赖中心化服务器,仅考虑以太坊的扩展。中心化意味着用户信息被审查的风险仍然存在,某种程度上牺牲了区块链最重要的非许可性质。对于使用ZK的隐私协议来说,ZKP生成的去中心化是极其必要的。去中心化的第二个原因是成本,类似于前面关于 AGI 的部分。云服务和硬件采购的成本非常高,证明生成通常只适合大型项目。对于处于起步阶段的小型项目来说,去中心化的证明市场可以大大缓解其启动时的资金困难,也可以减少因资金紧张而造成的不公平竞争。
市场规模: Paradigm 去年预测,ZK 矿机/证明生成器市场可能会增长到与过去 PoW 挖矿市场相当的规模。根本原因是ZKP算力市场的买家和卖家都充裕。对于曾经的以太坊矿工来说,众多基于ZK的公链和Layer 2项目远比以太坊的分叉公链更具吸引力。然而,我们还需要考虑到大多数基于 ZK 的公链或 Layer 2 完全有能力建立自己的证明生成市场。如果他们要符合去中心化的叙述,这一步也不可避免地出现在他们的路线图中(就像 Starkware 和 zkSync 一样,它们未来将有自己的去中心化解决方案)。那么,ZKP算力市场还有存在的意义吗?
构建它的意义: 首先,ZKP的应用非常广泛(我们在前文已经举例过多次,后面会提到一个项目)。其次,即使每条ZK链都有自己的证明生成市场,算力市场仍然具有三个功能可以让卖家考虑出售自己的算力。
Proof Market是‘=nil’构建的去中心化ZKP算力市场; (一家以太坊开发公司)。据我所知,它是目前唯一围绕 ZKP 生成构建的算力市场。本质上,它是一种去信任的数据可访问性协议,使第1层和第2层区块链和协议能够根据无缝数据共享的需要生成零知识证明,而无需依赖中心化中介机构。虽然 Proof Market 并不是我想象中的围绕单个 GPU 构建的市场(Proof Market 是围绕专业硬件厂商构建的,ZKP 的 GPU 挖矿也可以参考 Scroll 架构中的 Roller Network 或者 Aleo),但它在考虑ZKP算力市场如何构建和广泛应用。 Proof Market的工作流程如下:
证明请求者:
zkLLVM:
证明市场:
证明生成器:
奖励机制:
整个过程中,证明的请求、生成、验证和奖励分配都是围绕证明市场展开的。这个过程旨在创建一个去中心化的市场,ZKP 的生成和验证是自动化的,参与者可以获得与其贡献相对应的奖励。
自2023年1月测试发布以来,证明市场的主要应用场景是在以太坊第1层协议之外运行的协议,例如 zkRollup、连接以太坊的 zkBridge 以及使用 zkP 的公链。
随着以太坊端点的整合(一种允许其他系统或服务连接和集成的网关接口),证明市场将适用于更多的应用,特别是那些需要直接从EVM应用程序请求证明以提供更流畅用户体验或需要与链上存储的数据一起工作的应用。
以下是一些潜在的应用场景:
著名的LSD项目Lido也在利用Proof Market构建解决方案,以增强Lido Accounting Oracle合约的安全性和可信度。Lido Accounting Oracle 依靠由受信任的第三方组成的 Oracle 委员会和法定人数机制来维持其状态,这带来了潜在的攻击向量。证明市场中的求解流程如下:
问题定义
解决方案规范
Lido: 需要使共识层状态中的某些数据可以在执行层中访问。
预言机: 向 TVL 合约报告 TVL 和验证者编号。
证明制作人: 生成计算完整性证明。
证明验证者: 验证 EL 合约中的证明。
部署阶段
与AGI算力市场的宏伟蓝图相比,ZKP算力市场确实更局限于区块链内的应用。然而,优势在于ZKP算力市场的发展无需考虑像神经网络这样极其复杂的设计,使得整体开发难度更低,资金需求更少。结合以上提到的项目,不难看出,尽管AGI算力市场仍在为如何落地而感到困扰,但ZKP算力市场已经在多个维度深入到区块链中的多个应用场景。
从市场的角度来看,ZKP算力市场仍处于一个非常广阔的蓝海阶段,上述的证明市场在我看来并不是理想的设计。结合算法优化、应用场景优化、硬件优化以及不同算力销售市场的选择,ZKP算力市场的设计仍然有很多富有想象力的空间。此外,从发展的角度来看,Vitalik多次强调,ZK对未来十年区块链领域的影响将与区块链本身一样重要。然而,考虑到ZK的多功能性,随着设计的成熟,ZK在非区块链领域的未来重要性可能不亚于当前的AGI,并且其前景不容小觑。
YBB是一家专注于发现定义Web3的项目的Web3基金,致力于为所有互联网用户创造更好的在线环境。由一群自2013年以来一直积极参与该行业的区块链信仰者创立,YBB始终愿意帮助早期项目从零到一的演化。我们重视创新、自我驱动的激情和以用户为导向的产品,同时认识到加密货币和区块链应用的潜力。
在文章《有前景的行业预览:去中心化算力市场(第I部分)》中,我们已经了解了在人工智能预期的背景下算力的重要性,并深入探讨了建立去中心化通用人工智能(AGI)算力市场目前面临的两大主要挑战。本文将从零知识证明的基本概念开始,逐渐深入,探讨去中心化算力市场的多重可能性,这是一个蓬勃发展且充满前景的领域。 (先前的文章也提到了比特币算力市场,但考虑到比特币生态系统最近的爆炸性增长,这个方面将在我们未来与比特币生态系统相关的文章中进一步讨论。)
在20世纪80年代中期,麻省理工学院的三位密码学家(Shafi Goldwasser、Silvio Micali和Charles Rackoff)发表了一篇名为《交互式证明系统的知识复杂性》的论文。该论文描述了一种创新的密码学技术,支持验证信息的真实性而不泄露信息本身。作者将这种技术命名为“零知识证明”并为该概念提供了具体的定义和框架。
在接下来的几十年里,基于这篇论文的零知识证明技术在各个领域逐渐发展并得到完善。如今,零知识证明已成为一个总括性术语,代表了许多与区块链未来相关的“现代”或“先进”密码学方法,尤其是那些与未来的区块链相关的方法。
Zero-Knowledge Proof (ZKP), 在本文中根据上下文可以互换使用,是指一种证明者可以向验证者证明某个陈述的正确性,而无需提供有关该陈述本身的具体信息的方法。该方法的三个基本属性包括完备性、声音性和零知识性。完备性确保真实陈述的可证性,声音性保证不能证明虚假的陈述,零知识性意味着验证者除了陈述的真实性之外不得到任何信息。
根据证明者和验证者之间的通信方法,零知识证明分为两种类型:交互式和非交互式。在交互式证明中,证明者和验证者之间存在一系列的互动。这些互动是证明过程的一部分,证明者回应验证者的一系列查询或质问,以证明其陈述的真实性。这个过程通常涉及多轮通信,验证者在每一轮提出问题或质问,证明者回应以证明其陈述的正确性。在非交互式证明中,不需要多轮互动。在这里,证明者创建一个单一的、可以独立验证的证明,并将其发送给验证者。验证者可以在不再与证明者进一步通信的情况下,独立验证这个证明的真实性。
零知识证明在区块链中有多种实现方式,其中 zk-STARK(零知识可扩展透明知识证明)和 zk-SNARK(零知识简洁非交互式知识证明)是最为知名的两种。正如它们的名称中所示,“Non-Interactive” 表明它们都是非交互式零知识证明。
zk-SNARK 是一种广泛使用的通用零知识证明方案(不是一种单一的技术,而是一个类别)。它将任何计算过程转化为一系列门电路,然后利用多项式属性将这些电路转化为多项式,从而压缩并生成复杂业务应用的小型非交互证明。zk-SNARK 需要一个可信的设置,其中多个参与方在可信的环境中生成密钥的一部分,然后销毁它。如果在可信的设置中使用的秘密信息没有被销毁,就可能被利用通过虚假验证来伪造交易。
zk-STARK 是从 zk-SNARK 发展而来,解决了对可信设置的依赖性问题。它可以在没有任何可信设置的情况下完成区块链验证,降低了启动网络的复杂性并消除了勾结风险。然而,zk-STARK 生成更大的证明的问题,从存储、链上验证和生成时间等方面具有不利因素。如果你体验过 StarkNet 的早期版本(使用 zk-STARK),你可能会注意到与其他第2层解决方案相比在速度和 Gas 费用方面存在显著差异。因此,zk-SNARK 更常被采用。其他较为非主流的解决方案包括 PLONK 和 Bulletproofs,它们在证明大小、证明者时间和验证时间等方面各有优劣。实现理想的零知识证明具有挑战性,主流算法通常需要平衡不同的维度。
开发 ZK 通常涉及两个重要组件:
ZK友好的计算表达式:这包括特定于领域的语言 (DSL) 或低级库。像 Arkworks 这样的低级库提供了必要的工具和原语,允许开发人员用较低级语言手动重写代码。像 Cairo 或 Circom 这样的 DSL 是为 ZK 应用程序量身定制的编程语言,编译成生成证明所需的原语。更复杂的操作会导致证明生成时间更长,并且某些操作(例如 SHA 或 Keccak 中使用的位操作)可能不适合 ZK,从而导致证明生成时间过长。
证明系统: 证明系统是ZK应用的核心,实现两个基本功能:Prove和Verify。 Prove 函数允许生成一个证明(需要大量的数学计算,更复杂的证明需要更长的时间来生成),以证明陈述是正确的,而无需透露证明细节。验证函数用于检查这个证明的正确性(证明越复杂、越大,性能越高,验证所需的时间越短)。不同的证明系统,例如 Groth16、GM17、PLONK、Spartan 和 STARK,在效率、安全性和易用性方面各不相同。
ZKP跨链桥和互操作性:ZKP可以为跨链消息协议创建有效性证明,允许消息在目标链上快速验证。这类似于在基础 L1 上验证 zkRollups。然而,由于需要源链和目标链之间进行验证的不同签名方案和密码功能,跨链消息传递更加复杂。
链上游戏引擎中的 ZKP: 黑暗森林展示了 ZKP 如何实现链上不完全信息博弈。这对于设计更具互动性的游戏至关重要,在游戏中,玩家的行为在他们选择透露之前保持私密。随着链上游戏的成熟,ZKP将成为游戏执行引擎的一部分。成功地将隐私功能集成到高吞吐量链上游戏引擎中的初创公司将发挥重要作用。
身份解决方案: ZKP 在身份领域带来了多种机会。它们可用于声誉证明或链接 Web2 和 Web3 身份。目前,我们的 Web2 和 Web3 身份是分开的。像 Clique 这样的项目使用预言机来连接这些身份。ZKP 可通过匿名链接 Web2 和 Web3 身份来进一步实现这一点,支持匿名 DAO 成员身份等用例,前提是它们可以使用 Web2 或 Web3 数据证明特定领域的专业知识。另一个用例是基于借款人的 Web2 社会地位(例如 Twitter 关注者数量)的无抵押 Web3 贷款。
ZKP 监管合规性:Web3允许匿名在线账户积极参与金融体系,大大提高财务自由和包容性。随着 Web3 法规的不断增加,ZKP 可用于在不破坏匿名性的情况下遵守规定。 ZKP可以证明用户不是受制裁国家的公民或居民。它还可用于证明合格投资者身份或任何其他 KYC/AML 要求。
5.原生Web3私募债务融资:TradeFi 债务融资通常用于支持成长中的初创公司加速增长或启动新业务线,而无需增加额外的风险资本。Web3 DAO 和匿名公司的兴起为原生 Web3 债务融资创造了机会。例如,使用 ZKP、DAO 或匿名公司可以获得无抵押贷款和基于增长指标证明的有竞争力的利率,而无需向贷方披露借款人信息。
DeFi中的隐私:金融机构通常保护其交易历史和风险敞口的隐私。然而,由于链上分析技术的进步,使用去中心化金融(DeFi)协议在链上变得具有挑战性。一个潜在的解决方案是开发注重隐私的DeFi产品,以保护参与者的隐私。尝试实现这一目标的一个协议是Penumbra的zkSwap。此外,Aztec的zk.money通过混淆用户参与透明DeFi协议,提供了一些私密的DeFi收益机会。总的来说,成功实现高效且注重隐私的DeFi产品的协议可以吸引机构参与者的大量交易和收入。
用于Web3广告的零知识证明(ZKP):Web3赋予用户拥有其数据权利的能力,如浏览历史、私人钱包活动等。Web3还使得用户可以对其数据进行货币化以获取利益。由于数据货币化可能与隐私相冲突,ZKP在控制向广告商和数据聚合器披露哪些个人数据方面可以发挥关键作用。
共享和货币化私人数据:我们的许多私人数据,如果与合适的实体分享,可能会产生重大影响。个人健康数据可以众包用于帮助研究人员开发新药物。私人财务记录可以与监管机构共享,以识别和惩罚腐败行为。ZKP可以实现此类数据的私人共享和货币化。
治理:随着DAOs(去中心化自治组织)和链上治理变得更为普遍,Web3正朝着直接参与式民主迈进。当前治理模型的一个主要缺陷是参与的非隐私性。ZKP可以在解决这个问题上发挥基础性作用。治理参与者可以在不披露其投票选择的情况下进行投票。此外,ZKP可以将治理提案的可见性限制为仅对DAO成员可见,使DAO能够建立竞争优势。
ZKRollup:在区块链中,ZKP的最重要的用例之一是扩展。zkRollup技术将多个交易聚合成一个单一的交易。这些交易在链外(在区块链的主链之外)进行处理和计算。对于这些聚合交易,zkRollup使用ZKP生成一个证明,可以验证交易的有效性而不泄露其具体细节,从而显著压缩数据大小。然后,生成的ZKP被提交到区块链的主链上。主链上的节点只需要验证证明的有效性,而不需要处理每个单独的交易,大大减轻了主链的负担。
零知识证明(ZKP)协议虽然具有多种优势,但目前面临一个主要问题:验证容易,但生成困难。大多数证明系统生成的主要瓶颈是多标量乘法(MSM)或快速傅里叶变换(FFT)及其逆。它们的组成及优缺点如下:
多标量乘法 (MSM): MSM 是密码学中的关键计算,涉及椭圆曲线密码学中的点和标量的乘法。在 ZKP 中,MSM 用于构建椭圆曲线上点的复杂数学关系。这些计算通常涉及大量数据点和操作,这是生成和验证证明的关键。MSM 在 ZKP 中尤其重要,因为它有助于构建可以验证加密语句而不暴露私人信息的证明。 MSM可以跨多个线程执行,从而支持并行处理。然而,当处理大型元素向量(例如 5000 万个元素)时,乘法运算仍然可能很慢并且需要大量内存资源。此外,MSM 面临可扩展性挑战,即使进行广泛的并行化,仍然很慢。
快速傅立叶变换 (FFT): FFT 是计算多项式乘法和解决多项式插值问题的有效算法。在 ZKP 中,它通常用于优化多项式的计算,这是证明生成的关键步骤。 FFT 通过将复杂的多项式运算分解为更小、更简单的部分来加速计算,这对于证明生成过程的效率至关重要。 FFT 的使用大大增强了 ZKP 系统处理复杂多项式和大型数据集的能力。然而,FFT运算依赖于频繁的数据交换,很难通过分布式计算或硬件加速来显著提高效率。 FFT 运算中的数据交换需要大量带宽,尤其是在处理大于硬件内存容量的数据集时。
虽然软件优化也是一个重要的研究方向,但加速证明生成的最直接、最暴力的方法是在硬件中堆叠足够的计算能力。在各种计算硬件选项(GPU、FPGA、ASIC)中,哪一个是最佳选择?由于上一节已经简单介绍了GPU,这里我们主要了解FPGA和ASIC的设计逻辑和优缺点。
专用集成电路: ASIC(专用集成电路)是专门为满足特定应用的需要而设计的集成电路。与通用处理器或标准集成电路相比,ASIC 是为执行特定任务或应用而定制的,因此通常在其设计的应用中表现出更高的效率和性能。在众所周知的比特币挖矿领域,ASIC是非常重要的计算硬件,其高效率和低功耗使其成为比特币挖矿的理想选择。然而,ASIC 有两个明显的缺点:由于它们是为特定应用而设计的(例如,比特币 ASIC 矿机是围绕 SHA-256 哈希算法设计的),如果不大规模采用,设计和制造成本可能会非常高,而且设计和验证周期可能会比较长。
FPGA: FPGA是Field Programmable Gate Array的缩写,是在PAL(可编程逻辑阵列)、GAL(通用阵列逻辑)、CPLD(复杂可编程逻辑器件)等传统逻辑电路和门阵列的基础上发展起来的一类可重编程器件。与 ASIC 一样,FPGA 是电子设计中用于实现特定功能的集成电路,克服了过去半定制电路的限制以及以前可编程器件中门数量有限的问题。其主要特点是“可重编程性、低功耗、低延迟和强大的计算能力”。但FPGA的缺点是其功能完全依赖于硬件实现,无法执行分支条件跳转等操作,只能执行定点操作。从成本上来说,FPGA的设计成本比ASIC低,但制造成本也需要根据规模来考虑。当然,两者的综合成本远高于GPU。
回到ZKP硬件加速的讨论,首先必须承认ZKP仍处于发展的早期阶段。系统参数(例如FFT宽度或元素的位大小)或证明系统的选择(仅上面提到的证明系统有五种)仍然很少标准化。我们比较该环境中的三种类型的计算硬件:
· ZK ‘Meta’ 的变化: 如上所述,ASIC 上的业务逻辑是一次性编写的。如果任何ZKP逻辑发生变化,都需要从头开始。FPGA 可以在 1 秒内刷新任意次数,这意味着它们可以在具有不兼容证明系统(例如跨链 MEV 提取)的多个链上重复使用,并灵活适应 ZK“元”的变化。虽然 GPU 在硬件层面的重新配置速度不如 FPGA,但它们在软件层面提供了极大的灵活性。 GPU可以通过软件更新来适应不同的ZKP算法和逻辑变化。尽管这些更新可能不如FPGA那么快,但仍然可以在相对较短的时间内完成。
· 供应:ASIC的设计、制造和部署通常需要12到18个月甚至更长的时间。相比之下,FPGA供应链相对健康,像Xilinx这样的领先供应商允许大量的零售订单在16周内从其网站上到达(即无需任何联系点)。就GPU而言,它们在供应方面自然有巨大的优势。自以太坊上海合并以来,网络中存在大量闲置的GPU挖矿机。Nvidia和AMD开发的后续显卡系列也可以大量供应。
从以上两点来看,除非ZK领域形成共识并标准化采用一种方案,否则ASIC将没有任何优势。鉴于当前ZKP方案的多样化发展,GPU和FPGA将是我们接下来需要讨论的两种主要类型的计算硬件。
· 开发周期: 由于GPU的普及以及CUDA(针对NVIDIA GPU)和OpenCL(跨平台)等成熟的开发工具,GPU开发变得更加容易。 FPGA开发通常涉及更复杂的硬件描述语言(例如VHDL或Verilog),需要更长的学习和开发时间。
· 能量消耗: FPGA 在能源效率方面通常优于 GPU。这主要是因为FPGA可以针对特定任务进行优化,从而减少不必要的能耗。虽然 GPU 在处理高度并行任务方面功能强大,但这也带来了更高的功耗。
· 可定制性: FPGA 可以通过编程来优化特定的 ZKP 算法,从而提高效率。对于特定的 ZKP 算法,GPU 的通用架构可能不如专用硬件高效。
· 生成速度: 根据trapdoor-tech对GPU(以Nvidia 3090为例)和FPGA(以Xilinx VU9P为例)的比较,在BLS12-381(一种特定类型的椭圆曲线)下,使用相同的模乘/模加算法方面,GPU的生成速度是FPGA的5倍。
综上所述,在短期内,考虑到开发周期、并行性、生成速度、成本以及网络中准备好的大量闲置设备,目前毫无疑问,GPU是最有优势的选择。当前硬件优化的方向也主要集中在GPU上。FPGA完全取代竞争的时机尚未到来。因此,是否可能建立一个类似于PoW挖矿的ZKP计算力市场(这是我个人构想的一个术语)?
在思考ZKP算力市场的构建时,我们已经从前文中得出了硬件方面的结论。剩下的问题是:ZKP 是否需要去中心化?市场规模是否足够有吸引力?如果基于ZK的公链都选择建立自己的证明生成市场,那么ZKP算力市场的意义何在?
去中心化的意义: 首先,当前大多数zkRollup项目(例如Starkware和zKsync)都依赖中心化服务器,仅考虑以太坊的扩展。中心化意味着用户信息被审查的风险仍然存在,某种程度上牺牲了区块链最重要的非许可性质。对于使用ZK的隐私协议来说,ZKP生成的去中心化是极其必要的。去中心化的第二个原因是成本,类似于前面关于 AGI 的部分。云服务和硬件采购的成本非常高,证明生成通常只适合大型项目。对于处于起步阶段的小型项目来说,去中心化的证明市场可以大大缓解其启动时的资金困难,也可以减少因资金紧张而造成的不公平竞争。
市场规模: Paradigm 去年预测,ZK 矿机/证明生成器市场可能会增长到与过去 PoW 挖矿市场相当的规模。根本原因是ZKP算力市场的买家和卖家都充裕。对于曾经的以太坊矿工来说,众多基于ZK的公链和Layer 2项目远比以太坊的分叉公链更具吸引力。然而,我们还需要考虑到大多数基于 ZK 的公链或 Layer 2 完全有能力建立自己的证明生成市场。如果他们要符合去中心化的叙述,这一步也不可避免地出现在他们的路线图中(就像 Starkware 和 zkSync 一样,它们未来将有自己的去中心化解决方案)。那么,ZKP算力市场还有存在的意义吗?
构建它的意义: 首先,ZKP的应用非常广泛(我们在前文已经举例过多次,后面会提到一个项目)。其次,即使每条ZK链都有自己的证明生成市场,算力市场仍然具有三个功能可以让卖家考虑出售自己的算力。
Proof Market是‘=nil’构建的去中心化ZKP算力市场; (一家以太坊开发公司)。据我所知,它是目前唯一围绕 ZKP 生成构建的算力市场。本质上,它是一种去信任的数据可访问性协议,使第1层和第2层区块链和协议能够根据无缝数据共享的需要生成零知识证明,而无需依赖中心化中介机构。虽然 Proof Market 并不是我想象中的围绕单个 GPU 构建的市场(Proof Market 是围绕专业硬件厂商构建的,ZKP 的 GPU 挖矿也可以参考 Scroll 架构中的 Roller Network 或者 Aleo),但它在考虑ZKP算力市场如何构建和广泛应用。 Proof Market的工作流程如下:
证明请求者:
zkLLVM:
证明市场:
证明生成器:
奖励机制:
整个过程中,证明的请求、生成、验证和奖励分配都是围绕证明市场展开的。这个过程旨在创建一个去中心化的市场,ZKP 的生成和验证是自动化的,参与者可以获得与其贡献相对应的奖励。
自2023年1月测试发布以来,证明市场的主要应用场景是在以太坊第1层协议之外运行的协议,例如 zkRollup、连接以太坊的 zkBridge 以及使用 zkP 的公链。
随着以太坊端点的整合(一种允许其他系统或服务连接和集成的网关接口),证明市场将适用于更多的应用,特别是那些需要直接从EVM应用程序请求证明以提供更流畅用户体验或需要与链上存储的数据一起工作的应用。
以下是一些潜在的应用场景:
著名的LSD项目Lido也在利用Proof Market构建解决方案,以增强Lido Accounting Oracle合约的安全性和可信度。Lido Accounting Oracle 依靠由受信任的第三方组成的 Oracle 委员会和法定人数机制来维持其状态,这带来了潜在的攻击向量。证明市场中的求解流程如下:
问题定义
解决方案规范
Lido: 需要使共识层状态中的某些数据可以在执行层中访问。
预言机: 向 TVL 合约报告 TVL 和验证者编号。
证明制作人: 生成计算完整性证明。
证明验证者: 验证 EL 合约中的证明。
部署阶段
与AGI算力市场的宏伟蓝图相比,ZKP算力市场确实更局限于区块链内的应用。然而,优势在于ZKP算力市场的发展无需考虑像神经网络这样极其复杂的设计,使得整体开发难度更低,资金需求更少。结合以上提到的项目,不难看出,尽管AGI算力市场仍在为如何落地而感到困扰,但ZKP算力市场已经在多个维度深入到区块链中的多个应用场景。
从市场的角度来看,ZKP算力市场仍处于一个非常广阔的蓝海阶段,上述的证明市场在我看来并不是理想的设计。结合算法优化、应用场景优化、硬件优化以及不同算力销售市场的选择,ZKP算力市场的设计仍然有很多富有想象力的空间。此外,从发展的角度来看,Vitalik多次强调,ZK对未来十年区块链领域的影响将与区块链本身一样重要。然而,考虑到ZK的多功能性,随着设计的成熟,ZK在非区块链领域的未来重要性可能不亚于当前的AGI,并且其前景不容小觑。
YBB是一家专注于发现定义Web3的项目的Web3基金,致力于为所有互联网用户创造更好的在线环境。由一群自2013年以来一直积极参与该行业的区块链信仰者创立,YBB始终愿意帮助早期项目从零到一的演化。我们重视创新、自我驱动的激情和以用户为导向的产品,同时认识到加密货币和区块链应用的潜力。