探索去中心化算力市场,特别是零知识证明(ZKP)技术在区块链领域的应用,为这一市场带来了新的发展机遇。
撰文:Zeke,YBB Capital Researcher
在《潜力赛道前瞻:去中心化算力市场(上)》中我们已经了解到,AI 预期下,算力所具备的重要性,也深入探讨了构建去中心化 AGI 算力市场在目前阶段存在的两种困境。而本文将从零知识证明的基础概念开始,由浅入深,对去中心化算力市场这条朝阳赛道的更多可能性进行多维度思考。(上篇中也提到了比特币算力市场的部分,但鉴于近期比特币生态迎来了爆发式的增长,该部分将在未来我们的比特币生态相关文章中结合描述。)
20 世纪 80 年代中期,麻省理工学院的三位密码学者(Shafi Goldwasser、Silvio Micali 和 Charles Rackoff)共同发表了一篇名为《互动性证明系统的知识复杂性》的论文。文中描述了一种可以在不阐明信息的情况下验证信息真实性的创新密码学技术,作者将其称为「零知识证明」,并为此概念提供了具体的定义和框架。
而在随后的几十年里以此论文为基石的零知识证明技术在多个领域逐渐发展和完善,现如今零知识证明已成为已经成为一个包罗万象的术语,代表了许多「现代」或「先进」密码学——尤其是与区块链未来相关的密码学。
零知识证明(Zero-Knowledge Proof,简称 ZKP,下文依据情况使用)是指证明者(Prover)可以向验证者(Verifier)证明某个陈述的正确性,而无需提供任何有关陈述本身的具体信息。这种方法的三大基本属性包括完整性、可靠性和零知识性。完整性保证了真实陈述的可证明性,可靠性确保了错误陈述不可被证明,而零知识性则意味着验证者无法获得除陈述真实性以外的任何信息。
根据证明者和验证者之间的交流方式,也会产生两种不同类型的零知识证明,交互式与非交互式。在交互式中,证明者和验证者之间会进行一系列的交互。这些交互是证明过程的一部分,证明者通过回应验证者的一系列查询或挑战来证明其陈述的真实性。这个过程通常涉及多轮通信,每轮通信中验证者提出一个问题或挑战,而证明者则回应以证明其陈述的正确性。非交互式则不需要多轮交互。在这种情况下,证明者创建一个单一的、可以独立验证的证明,然后发送给验证者。验证者无需与证明者进行进一步交流,就可以独立地验证这个证明的真实性。
1.交互式:阿里巴巴与四十大盗的故事,是解释交互式零知识证明中时常提到的典例,也有非常多的版本,而下文中的故事是由我改编的一个简版。
阿里巴巴知道打开藏着财宝的山洞的咒语,却被四十大盗抓住,强迫他说出咒语。 如果阿里巴巴说出咒语,就会因为没有利用价值而被杀死。如果阿里巴巴坚持不说,强盗不会相信他真的掌握咒语,也会杀死他。但阿里巴巴想了一个好办法,现在洞穴有两个入口 A 和 B,都通向洞穴中心,但中心有一道密码门,只有知道咒语的人才能从一边走到另一边。为了证明他知道打开洞穴的秘密,而又不透露这个秘密,阿里巴巴进入洞穴并选择 A 或 B 中的一个入口,而四十大盗站在外面看不到他的选择。然后四十大盗随机喊出 A 或 B,要求阿里巴巴从他们指定的入口出来。如果阿里巴巴真的知道咒语,他就可以使用密码从中心的门通过,从指定的入口出来。这个过程重复多次,每次阿里巴巴都能成功地从四十大盗指定的入口出来,从而在不泄露秘密的情况下证明他确实知道密码。
2.非交互式:这是一个生活中的非交互式零知识证明的简单例子,想象一下,你和一个朋友都有一本「寻找沃利」的书。你声称知道沃利在某一页上的位置,但你的朋友对此表示怀疑。如果你想向朋友证明你知道沃利在图中的位置,而又不透露具体位置,可以使用一张足够大的不透明纸覆盖整个图片,并通过纸上的一个小孔露出沃利(单一的、可以独立验证的证明),这样你就能证明自己确实知道沃利的位置,但你的朋友仍然无法知道沃利在整个图片中的确切坐标。
零知识证明目前在区块链中有多种实现方式,其中最广为人知的主要有 zk-STARK(Zero-Knowledge Scalable Transparent Argument of Knowledge)和 zk-SNARK(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge),正如它们名称中的「Non-Interactive」(非交互式)所示,两者都属于非交互式零知识证明。
zk-SNARK 属于一类应用广泛的通用零知识证明方案(此处需要注意,zk-SNARK 属于一种流派,并非一种单一技术),通过将任意的计算过程转化为若干门电路的形式,并利用多项式的一系列数学性质将门电路转化为多项式,进而压缩生成非常小的非交互式的证明,可实现各类复杂的业务场景的应用。zk-SNARK 的启动需要可信设置,可信设置是指在受信任的设置中,多方各自生成一个部分密钥来启动网络,然后销毁该密钥。如果用于创建信任设置的密钥的保密信息没有被销毁,那么这些保密信息可能会被利用通过虚假验证来伪造交易。
而 zk-STARK 是 zk-SNARK 的一种技术演变,解决了 SNARK 依赖可信设置的弱点,可以不依赖任何信任设置来完成区块链验证,从而降低启动网络的复杂性并消除任何串通风险。但 zk-STARK 也有生成证明较大的问题,存储、链上验证及生成时间方面都处于劣势。如果你体验过 StarkNet(采用 zk-STARK 的 Layer2)的早期版本,应该很明显能感觉到速度与 Gas 费,对比其它 Layer2 体验都要差很多。所以目前被采用更多的还是 zk-SNARK 方案。而除此之外还有 PLONK 以及 Bulletproofs 等稍显小众的方案,每种方式在证明大小、证明者时间以及验证时间上都有自己的优缺点。完全理想的零知识证明非常难达到,几种主流的算法通常在不同维度之间做着平衡。
而 ZK 的开发,通常需要用到两个关键组件。
ZK-friendly 表达计算的方法:这是一个特定领域语言(DSL)或底层库。底层库如 Arkworks,则提供了必要的工具和原语,允许开发者直接用较低级的语言手动重写代码。DSL 如 Cairo 或 Circom,是为 ZK 应用量身定制的编程语言。后者能编译为生成证明所需的基元。更复杂的操作导致更长的证明生成时间,而某些操作(如 SHA 或 Keccak 中使用的位运算)可能不适合 ZK,导致长时间的证明生成。
证明系统:证明系统是 ZK 应用的核心,它实现了两个基本功能:Prove(证明)和 Verify(验证)。Prove 功能允许生成一个证明(需要大量数学计算生成,证明越复杂则生成越慢),这个证明表明某个陈述是正确的,而无需透露证明细节。Verify 功能则用于验证这个证明的正确性(证明越复杂、越大,则性能越高,验证所需的时间越短)。不同的证明系统,如 Groth16、GM17、PLONK、Spartan 和 STARK 等,在效率、安全性和易用性上也有所不同。
零知识证明协议虽然具备多种优势,但目前的问题主要是验证易,生成难。大部分证明系统生成的主要瓶颈是多标量乘法(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(Application-Specific Integrated Circuit)是一种专门为满足特定应用需求而设计的集成电路。与通用的处理器或标准集成电路相比,ASIC 是为了执行特定任务或应用而定制的,因此在其设计的应用中通常表现出更高的效率和性能。在我们熟知的比特币挖矿领域中 ASIC 就是非常重要的算力硬件,高效性能和低功耗特性使它们成为比特币挖矿的理想选择。不过 ASIC 也有明显的两个缺点,由于是为特定应用而设计的(比如比特币的 AISC 矿机都是围绕 SHA-256 哈希算法设计的),没有大批量采用的情况下,设计和制造成本会很高,设计和验证周期也会比较长。
FPGA:FPGA 是 Field Programmable Gate Array(现场可编程门阵列)的简称,是一种可重复编程器件,是在 PAL( 可编程逻辑阵列 )、GAL( 通用阵列逻辑 )、CPLD( 复杂可编程逻辑器件 ) 等传统逻辑电路和门阵列的基础上发展起来的一种半定制电路,和 ASIC 一样都是用于电子设计和实现特定功能的集成电路,既解决了过去半定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。其重要的特点是「可重复编程、低功耗、低时延、算力强」。但 FPGA 的缺点在于其功能完全依赖于硬件实现,无法执行像分支条件跳转这样的操作,并且只能进行定点运算。成本上,FPGA 的成本在设计上比 ASIC 更低,制造上同样需要参考规模,当然两者的总体成本都要远高于 GPU。
那么再回到 ZKP 硬件加速的探讨,首先必须承认的是 ZKP 仍处于早期发展阶段。系统参数(例如 FFT 宽度或元素的位大小)或证明系统的选择(仅上文中提到的证明系统就有五种)仍然很少有标准化。我们对比三种算力硬件在这种环境下的情况:
那么从上述两点来看,除非 ZK 赛道形成共识,标准化的采用一种方案,否则 ASIC 不具备任何优势。以现在 ZKP 方案还处于多元化的发展情况来看,GPU 与 FPGA 会是我们接下来需要讨论的两种主要算力硬件。
综上所述,短期内来看,考虑到开发周期、并行性、生成速度、成本以及全网大量随时待命的闲置设备,GPU 无疑是目前最具优势的选择。而目前的硬件优化方向也是以 GPU 为主,FPGA 完全接管比赛的时间也还未到来,那么构建一个类似 PoW 挖矿的 ZKP 算力市场(我个人构想的词)是否存在可能?
在构建 ZKP 算力市场的思考上,算力硬件方面我们已经从上文得出结论。而剩下的问题是以下三点,ZKP 是否需要去中心化?市场规模上是否有吸引力?如果 ZK 系公链都选择自己构建证明生成市场,那么 ZKP 算力市场还有什么意义?
去中心化的意义:首先当今大多数 zkRollup 项目(例如 Starkware 和 zKsync)都依赖于中心化的服务器,这是因为只对以太坊扩容进行了考虑。中心化意味着用户信息依然存在被审查的风险,一定程度上牺牲了区块链最重要的无许可性质。而采用 ZK 的隐私协议则更不用多说,ZKP 生成的去中心化是极为必要的。去中心化的第二点理由是成本,这一点同上篇 AGI 部分类似,云服务以及购置硬件的成本都非常昂贵,证明生成通常只适用于大型项目。对于起步阶段的小项目来说,一个去中心化的证明市场可以大幅缓解他们启动阶段资金困难的问题,另一方面也减少了因为财力问题带来的不正当竞争。
市场规模:Paradigm 在去年曾预测 ZK 矿工 / 证明者市场在将来可能会增长到相当于过去 PoW 采矿市场的规模。其根本原因是 ZKP 算力的买卖方,在 ZKP 算力市场中都是极为充足的。对于那些曾经的以太坊矿工来说,ZK 系大量的公链项目和 Layer2 项目远比 ETH 的分叉公链有吸引力。不过我们还需要考虑一种情况,大部分 ZK 系公链或者 Layer2 也完全有能力构建自己的证明生成市场,如果要符合去中心化叙事,这一步也是必然在路线图中的(上文中的 Starkware 和 zkSync,将来也有自己的去中心化方案),那么 ZKP 算力市场是否还有构建的意义?
构建的意义:首先 ZKP 的应用及其广泛(我们在上文也已经举例多次,下文还会用一个项目做参考)。第二点是即便每条 ZK 链都有自己的证明生成市场存在,算力市场依旧还有三个作用,可以让卖方考虑出售算力。
1.将算力分成两部分,一部分用于挖矿,另一部分用于出售算力合约。这种方法可以帮助对冲加密货币市场的波动风险。当市场下跌时,出售的算力合约提供稳定收入;而市场上涨
时,自己挖矿的部分能够带来额外的收益;
2.将所有算力出售,获得固定收入,是一个更为保守的做法。这样可以减少市场波动对收入的影响,保证收益的稳定性;
3.由于成本结构的差异(如电力成本),一些矿工可能会获得比市场平均水平更低的运营成本。这些矿工可以利用他们的成本优势通过出售算力合约以市场价格,并保留由于较低电力成本产生的差价,实现套利。
Proof Market 是由=nil;(以太坊研发公司)构建的一个去中心化的 ZKP 算力市场(据我所知也是目前唯一一个围绕 ZKP 生成构建的算力市场),本质上是一种不受信任的数据可访问性协议,使第 1 层和第 2 层区块链和协议能够在不依赖集中式中介的情况下根据无缝数据共享的需求生成零知识证明。虽然 Proof Market 并非是我想象中围绕个人 GPU 构建的市场(Proof Market 是围绕专业硬件商构建的,ZKP 的 GPU 挖矿还可以参考 Scroll 架构中的 Roller Network 或者 Aleo),但在 ZKP 算力市场如何构建与广泛应用这个问题上依然很有参考意义。Proof Market 的工作流程如下:
证明请求者(Proof requester):
zkLLVM:
Proof Market:
证明生成者(Proof generator):
奖励机制:
整个流程中,证明的请求、生成、验证和奖励发放都围绕着 Proof Market 展开。这个过程旨在创造一个去中心化的市场,ZKP 的生成和验证是自动化的,参与者都可以根据他们的贡献获得相应的奖励。
自从 2023 年 1 月的测试发布以来,Proof Market 的主要应用场景是在以太坊第一层(L1)之外运作的协议:如 zkRollup、连接到以太坊的 zkBridge,以及使用 zkP 的公链。
随着以太坊端点的整合(Ethereum endpoint integration,指的是一个网关接口,允许其他系统或服务连接和融合),Proof Market 会适用于更多应用,尤其是那些需要从 EVM 应用程序直接请求证明以提供更流畅用户体验或者需要链上存储数据一起工作的应用。
以下是一些潜在的应用场景:
近期我们所熟知的 LSD 项目 Lido,也正在通过 Proof Market 来构建增强 Lido Accounting Oracle 合约安全性和可信度的方案。Lido Accounting Oracle 依赖于一个由信任的第三方组成的 Oracle 委员会和法定人数机制来维护其状态,这会造成潜在的攻击向量。Proof Market 的解决流程如下:
问题定义
解决方案规范
Lido:需要使某些数据从共识层状态可在执行层(Execution Layer)获取。
Oracle:报告 TVL 和验证者数量给 TVL 合约。
证明生产者(Proof Producer):产生计算完整性证明。
证明验证者(Proof Verifier):在 EL 合约中验证证明。
Oracle:独立应用,获取输入数据,计算 Oracle 报告,产生包含证明。
zkLLVM 电路:用于构建计算完整性的零知识证明的程序。
无需信任的会计审核 Oracle 合约:验证二进制证明,验证计算有效性信息。
部署阶段
相较于 AGI 算力市场的宏伟蓝图,ZKP 算力市场目前确实更局限于在区块链中的应用。但与之相反的好处是,ZKP 算力市场的开发不需要考虑到类似神经网络这种极为繁杂的设计,整体开发难度较低,资金需求也更少。结合上文的项目来看也不难发现,当 AGI 算力市场还困惑于如何落地时,ZKP 算力市场已经多维度地贯穿区块链中多个应用场景。
从市场角度看,ZKP 算力市场这条赛道目前还处于极为蓝海的阶段,而上文提到的 Proof Market 也不属于我心中最理想的设计,结合算法优化、应用场景优化、硬件优化以及对不同算力卖方市场的选择,ZKP 算力市场的设计上依旧具有非常大的想象空间。再从发展角度思考,Vitalik 曾多次强调 ZK 在未来十年内对区块链领域的影响将与区块链本身一样重要。不过从 ZK 的泛用性来看,随着设计的成熟,ZK 未来在非区块链领域的重要性也许并不逊色于当下的 AGI,前景不容小觑。
参考文献:
1.Hardware Acceleration for Zero Knowledge Proofs:https://www.paradigm.xyz/2022/04/zk-hardware
2.Use of elliptic curves in cryptography (1988):https://link.zhihu.com/?target=https%3A//link.springer.com/content/pdf/10.1007%252F3-540-39799-X_31.pdf
3.ZKLLVM + Lido Trustless Accounting oracle: solution spec:https://docs.google.com/document/d/1d5Ru7WWae-yilXzOVgNS5DNweAMj6FNJrZllvD00mB0/edit
4.DIZK: A Distributed Zero Knowledge Proof System:https://www.usenix.org/conference/usenixsecurity18/presentation/wu
5.Proof Market 开发者指南:https://docs.nil.foundation/proof-market/proof-producers/proof-producer
6.IOSG Weekly Brief |ZKP 加速:https://mirror.xyz/0x5Eba828AB4999825D8416D7EAd9563b64FD90276/8DGPafCg1oLZ0T-cXSbcu5q1dYxhFDuilR1brWfLZXM
7.ZK 证明计算:算力硬件的新征途?: https://mp.weixin.qq.com/s/gInQOIJyLZwzzgmFkbaFwQ
8.硬件加速驱动的 ZK 新纪元:https://mp.weixin.qq.com/s/3I-gz4O57_crS7_KZSA8KA
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。
