零知识证明

水多多|zkSync
zksync_CN
Published in
20 min readNov 12, 2022

更多内容:https://linktr.ee/zksync_cn

一、简介

零知识证明允许一方向另一方证明给定的陈述是真实的,而无需透露任何额外的信息。自然可以利用它来保护隐私,证明某些交易是有效的,同时隐藏所有细节。某些 ZK 协议(例如 STARK 和 SNARK)的另一个重要特性是验证 ZK 证明的便利性。他们的证明规模很小。验证这些类型的证明要快得多。这两个属性都适合资源受限的区块链,对于加密行业的可扩展性瓶颈尤为重要。除此之外,零知识技术的其他用例包括:

  • 桥梁 — — 使用 ZKP 进行状态转换或交易有效性,例如 Alogrand ASP、Mystiko
  • DID(去中心化 ID) — — 证明某个帐户或实体具有某些“功能”而不会泄露详细信息,例如 Sismo、First Batch
  • 社区治理 — — 匿名投票,经过实战考验并被广泛采用,可以扩展到现实生活中的治理
  • 财务报表 — — 实体可以证明它们符合某些特定标准,而无需透露确切的财务数据
  • 云服务完整性 — — 云服务提供商正确执行任务

一个典型的 ZK 系统的工作原理如下:工程师首先用特定领域的语言写出要验证的语句,然后将其编译成 ZK 友好的格式,例如算术电路。在使用这种格式生成参数后,证明系统将它们与它见证的秘密一起作为输入来计算证明。验证者可以使用参数和证明通过相对简单的计算来决定它是否可以接受。特别是对于 ZK rollup,程序或合约本身部署在 layer2 上,编译、参数和证明生成将由一些 layer2 节点在链下执行,证明将在以太坊主网上发布和验证。

典型的 ZK 系统

资料来源:ZK Whiteboard Sessions ,作者 Dan Boneh 教授

已经开发了多个优秀的证明系统,例如 Marlin、Plonky2、Halo2 等。不同的证明系统在证明大小、验证者时间长度和可信设置的必要性之间采取不同的权衡。经过几年的探索,无论语句多么复杂,都有可能拥有恒定的级别证明大小(几百字节)和验证者时间(几毫秒)。

然而,证明生成的复杂性仍然几乎与算术电路大小成线性关系,可能是原始任务的数百倍。这是因为证明者必须至少阅读和评估电路。这可能需要几秒钟到几分钟甚至几小时。高计算成本和长证明生成时间一直是,并且仍然有望成为大规模采用和 ZK 技术进步的主要障碍。

硬件加速可以用来帮助解决这个瓶颈。通过将多个任务分配给最适合的硬件,与算法或软件优化相辅相成。

本报告旨在帮助了解市场格局、它与以前的矿业市场有何不同以及潜在的机会。报告由三部分组成:

  • 来自不同项目和新兴趋势的用例。
  • 基于 GPU、FPGA 和 ASIC 加速设计的解决方案。
  • 结束的想法

2.用例

绘制 ZK 的用例将有助于说明市场是如何演变的。不同的类别有不同的要求,这将与硬件解决方案的供应动态交互。在本节的最后,我们还简要比较了 ZKP 和 PoW(尤其是比特币)。

2.1 新兴链及其差异化需求

当前对硬件加速的需求主要由使用 ZK 技术的新兴链主导,可以大致分为扩展解决方案和隐私区块链。ZK 汇总或意志在主网上执行交易,并通过“调用数据”功能提交简洁的有效性证明。隐私区块链使用 ZKP 来确保用户发起的交易是有效的,而无需公开披露交易细节。

这些区块链使用不同的证明系统在证明大小、验证者时间、可信设置等之间进行权衡。例如,Plonk 生成的证明具有恒定级别的小证明大小(约 400 字节)和验证时间(约 6 毫秒),但仍需要通用可信设置。相比之下,Stark 系统不需要可信设置,但它的证明大小(~80 KB)和验证时间(~10ms)更大,并且会随着电路大小而增加。其他系统有不同的权衡。结果是对这些证明系统的选择将导致计算负载的“重心”发生变化。

更具体地说,现在的证明系统通常可以描述为 PIOP(多项式交互式 Oracle 证明)+ PCS(多项式承诺方案)。前者可以被视为证明者说服验证者的约定程序,后者在数学上确保该程序不会被破坏。打个比方,PCS 是枪,PIOP 是子弹。项目可以修改 PIOP 以满足自己的需求并从不同的 PCS 中进行选择。

Paradigm 的 Georgios Konstantopoulos 在他关于硬件加速的报告中解释说用于证明生成的时间主要由两种类型的计算任务控制:MSM(多标量乘法)和 FFT(快速傅立叶变换)。但是,不是使用固定数量,而是建立不同的 PIOP,从不同的 PCS 中进行选择,会带来不同的 FFT/MSM 工作负载比。以 Stark 为例,PCS Stark 使用的 FRI(Fast Reed-Solomon Interactive Oracle Proofs of Proximity)是基于 RS 代码的,而不是 KZG 或 IPA 使用的黄道曲线,因此 MSM 完全不参与整个证明一代。我们在下面展示了不同证明系统的工作负载比率的粗略顺序,需要注意的是 1)很难估计整个系统的确切比率;2)项目在实施时通常对系统有自己的修改。

不同证明系统的工作负载比率

请注意,从技术上讲,Snark 和 Snark 不是可比较的概念。Snark 是指满足某些特定功能的一类证明系统,而 Stark 通常是指 Starware 在 2018 年最初开发的证明系统。

这将直接影响项目对硬件类型的偏好。目前使用最广泛的硬件是GPU(图形处理单元),因为供应量大,开发方便。此外,并行化 MSM 计算非常方便,适合 GPU 的多核结构。然而,正如我们将在第二部分中详细阐述的那样,FPGA(现场可编程门阵列)可能更擅长处理 FFT。使用 Stark 的项目,例如 Starknet 和 Hermez,可能比其他项目更需要 FPGA。

上面的另一个结论是,这项技术仍处于早期阶段,缺乏标准化或主导的解决方案。对某些特定算法的 ASIC(特定应用集成电路)的全面承诺也可能为时过早。因此,开发人员正在探索一个中间地带,我们稍后也会对此进行更多解释。

2.2 趋势与新范式

2.2.1 更复杂的陈述

按照我们一开始列出的用例,我们应该期待加密行业和现实世界的多种用途和更复杂的证明。其中一些甚至不必遵守现有的证明系统。他们可以开发最适合他们需求的新原语,而不是遵循 PIOP 和 PCS 的用法。在其他领域,例如 MPC(多方计算),将 ZK 协议集成到工作的某些部分将大大提高其实用性。以太坊最近还计划举行KZG 设置仪式,作为 Proto-Danksharding 和未来进一步 Danksharding 准备工作的一部分,处理数据可用性采样。即使是乐观的汇总也有可能有一天会采用 ZKP以获得更好的安全性和更短的争议时间。

虽然许多人可能将 ZK 视为更广泛的加密行业中的一个独立部门,但我们认为正确的思维模式是将 ZK 视为一种可以解决多个痛点的技术。反过来,为不同的系统和客户服务,需要更多的硬件加速灵活性和通用性。

2.2.2 本地生成的证明

用于隐私而不是压缩信息的 ZKP 具有显着的结构差异。为了隐藏交易细节,在证明过程中会涉及一些随机数。用户需要在本地生成证明,但他们中的大多数人没有先进的硬件。更糟糕的是,如果大多数 dapps 仍然是 Web 应用程序,则需要在浏览器中生成证明,这需要更长的时间。例如,当 Manta 开始为 WASM(WebAssembly,一种为 Web 浏览器应用程序带来接近原生性能的二进制指令格式和虚拟机)构建高性能证明器时,他们很快意识到“WASM 给用户带来了 10 到 15 倍的性能损失”与本机速度相比”。为了解决这个问题,他们选择成为最大的 ZKP 加速竞赛之一 ZPrize 的赞助商和架构师,并成立WASM的特定加速轨道。对于这些应用程序来说,客户端版本是一个更简单的解决方案,但下载过程会阻止潜在用户的重要部分,并且它也不适用于当前的扩展钱包或其他工具。

另一种方法是部分外包证明生成。Pratyush Mishra 在 ZK 峰会 7 期间介绍了这种方法。用户首先执行一些轻量级计算,然后向几个第三方提供公开声明和加密见证,这些第三方接管并完成其余的证明。按照这种方式,只要其中一方诚实,用户的隐私就不会被泄露。它结合了 ZK 协议和 MPC 使用的一些工具。或者,用户可以用带宽进行计算:首先生成一个大尺寸证明,将其发送给第三方,第三方将对其进行压缩并将其发布到链上。

外包证明生成

资料来源:零知识峰会 7,来自 Aleo 的 Pratyush Mishra

2.3 与 PoW 挖矿对比

虽然人们很自然地将 ZKP 视为 PoW 的一种新颖形式,将加速硬件视为一种新型矿机,但 ZKP 的生成在目的和市场结构上与 PoW 挖矿有着根本的不同。

2.3.1 功率竞争与效用计算

为了获得区块奖励和交易费用,比特币矿工通过不断迭代随机数来寻找足够小的哈希值,这实际上只与达成共识相关。另一方面,ZKP 生成是实现信息压缩或隐私保护等实际效用的必要过程,但不再需要对共识负责。这种差异将对参与的潜在广度和奖励分配模式产生影响。下面我们列出了三种现有设计,说明矿工将如何协调 ZKP 生成。

  • Rates-are-Odds (Aleo): Aleo 的经济设计最接近比特币和其他 PoW 协议。它的共识PoSW(proof of succinct work)仍然要求矿工找到一个有效的nonce,但试验过程主要以反复生成SNARK证明为主,该证明以nonce和状态根的哈希作为输入的一部分,直到某轮的证明本身就足够小了。我们将这些类似 PoW 的机制称为 Rates-are-Odds 模型,因为您在单位时间内可以处理的试验数量大致决定了您获得奖励的概率。在此模型中,矿工储存大量机器以获得更好的赔率。
  • Winner-Dominates (Polygon Hermez): Polygon Hermez 采用更简单的模型。根据他们的公开文档,参与的两个主要角色是排序者,他们收集所有交易并将它们预处理为新的 L2 批次,以及聚合者,他们表明他们的验证意图并竞争产生证明。对于给定的批次,提交第一个证明的聚合器获得排序器支付的费用。在不考虑地理分布、网络状况和验证策略的情况下,具有最先进实现和硬件的聚合器可能会占据主导地位。
  • Party-Thresholds (Scroll): Scroll 将他们的设计描述为“Layer2 证明外包”,矿工将被任意选择在抵押一定数量的加密货币后生成证明。被选中的人需要在设定的时间段内提交证明,否则其下一个 epoch 的概率将向下调整。错误的证明会导致slashing。起初,Scroll 可能会与十几个矿工合作以提高稳定性,甚至会运行自己的 GPU 集群。随着时间的推移,他们计划分散整个过程。我们将时间限制视为调整效率和去中心化之间权衡的参数。Starkware 也可能属于这一类。从长远来看,只有拥有能够及时完成证明的机器才能参与证明。

这些协调设计有不同的权衡。我们预计 Aleo 将拥有最去中心化的代币分发,Hermez 将拥有最好的效率,而 Scroll 将拥有最低的参与门槛。但根据上述设计,zk 硬件的军备竞赛可能不会迫在眉睫。

2.3.2 静态与演化算法

另一个区别是比特币有一个单一的、相对静态的算法。比特币核心开发者一直试图遵循其最初的设计和精神,以保持网络稳定并避免严重的分叉。新兴的链或项目没有这样的传统限制,这使他们能够更灵活地调整其系统和算法。

我们认为,与简单和静态的 PoW 市场相比,所有这些差异共同描绘了一个更加分散和动态的市场结构。我们建议将 ZKP 生成视为一种服务(一些初创公司将其命名为 ZK-as-a-Service),一种达到目的的手段,而不是其本身的最终目的。这种新范式最终将形成新的业务/收入模式,我们将在最后一节中详细介绍。在此之前,我们先来看看多种解决方案。

3. 解决方案

CPU(中央处理器)是通用计算机中的主芯片,负责在主板上的各个组件中分发指令。但是,由于 CPU 旨在快速处理广泛的任务,这种多功能性反过来又限制了其处理并发或某些特定任务的速度,通常使用 GPU、FPGA 和 ASIC 作为补充。在本节中,我们将重点介绍它们的特性、优化过程、现状和市场。

3.1 GPU:目前最常用的硬件

GPU 最初是为操纵计算机图形和图像处理而设计的,但其并行结构使其在计算机视觉、自然语言处理、超级计算以及 PoW 挖掘等领域也是一个不错的选择。MSM 和 FFT 都可以在 GPU 上进行加速,特别是对于 MSM,通过利用一种称为“ pippenger ”的算法,与 FPGA 或 ASIC 相比,开发过程要简单得多。

在 GPU 上加速的想法非常简单:将这些计算集中的任务从 CPU 转移到 GPU。工程师们会将这些部分重写为 CUDA,这是一个由 Nvidia 开发的用于在其自己的 GPU 上进行通用计算的并行计算平台和编程模型,或者由 Apple 和 Khronos Group 推出的竞争对手 OpenCL,为异构计算提供标准,以便用户无需不再局限于 Nvidia GPU。然后这些代码将被编译并直接在 GPU 上运行。对于更细粒度的加速,抛开算法改进本身,开发人员可以:

  1. 通过使用尽可能多的快速内存和尽可能少的慢速访问内存来优化内存,以缩减昂贵的数据传输(尤其是 CPU 和 GPU 之间的数据传输)。
  2. 通过更好地平衡多处理器之间的工作、构建并发内核以及为任务合理分配资源来优化执行配置,以提高硬件利用率,使它们尽可能忙碌。

简而言之,尽我们所能来并行化整个工作过程。应尽可能避免顺序执行,其中不同部分相互依赖于彼此的结果。

Parrelization 节省时间

GPU 加速设计流程

3.1.1 开发者基础大,开发便利

与 FPGA 和 ASIC 不同,GPU 开发不涉及硬件设计。CUDA 或 OpenCL 也有更大的开发者基础。开发人员能够基于开源实现非常快速地开始自己的修改。例如,Filecoin 早在 2020 年就发布了他们的第一个 GPU 实现。Supranational 最近也开源了他们的通用加速解决方案,目前这可能是同类中最好的开源解决方案。

当考虑除 MSM 和 FFT 之外的工作时,这种优势更加明显。确实证明生成主要由这两个问题主导,但其他部分仍然可以占到~20%的比例(来源:Sin7Y 的白皮书),因此纯粹加速 MSM 和 FFT 对最终耗时的影响有限。即使将这两个问题的时间压缩到瞬时,所花费的总时间仍将是最初的五分之一。此外,由于它是一个新兴且不断发展的空间,因此很难预测该比率在未来将如何变化。为了加速这些异构工作,鉴于 FPGA 需要重新配置,而 ASIC 可能需要重新设计和制造,GPU 更加方便。

3.1.2 多余的 GPU

GPU市场由Nvidia主导。根据 Jon Peddie Research 的数据,其 2022 年第一季度独立 GPU 出货量的市场份额为 78%。尽管与 MSRP(制造商建议零售价)相比,许多卡的价格仍然很高,但它们的可用性正在不断提高。2021 年,出货量超过 5000 万个 GPU(价值 520 亿美元)。从这个数字来看,这几乎是同期 FPGA 销量的 8.5 倍。

GPU芯片市场份额

特别是对于挖矿,我们保守估计,在以太坊合并后,大约有 626 万 GPU 将从以太坊 PoW 挖矿中解放出来。我们通过将以太坊当前的哈希率 (890 Th/s) 乘以 90% 得出这个数字,假设 GPU 占以太坊哈希率的绝大部分。得到的数字 (801 Th/s) 除以最先进的 GPU 卡 RTX 3090 Ti 的挖掘能力 (128 Mh/s)。这导致我们保守估计 626 万个 GPU。随着 ASIC 主导比特币挖矿,没有其他使用 PoW 的项目可以容纳这么大的挖矿能力。除了挖掘以太坊分叉或提供云服务外,转向零知识证明服务是另一个值得探索的选择。

以太坊哈希率

3.2 FPGA:平衡成本和效率

FPGA 是具有可编程硬件结构的集成电路。FPGA芯片内部的电路不是硬蚀刻的,因此设计人员可以根据特定需求对其进行多次重新配置。一方面,这有效地削减了 ASIC 的巨大制造成本。另一方面,硬件资源的使用比GPU更灵活,保留了进一步加速和省电的潜力。例如,尽管在 GPU 上优化 FFT 仍然可以实现,但频繁的数据混洗会导致 GPU 和 CPU 之间的通信开销很大。然而,改组实际上并不是完全随机的,通过将内在逻辑直接实施到电路设计中,我们可以期望 FPGA 更快地执行任务。

要在 FPGA 上实现 ZKP 加速,仍然需要几个步骤。首先,需要一个用 C/C++ 编写的特定证明系统的参考实现。然后,这个实现需要用 HDL(硬件描述语言)来描述,以便在高层次上描述数字逻辑电路。

随后需要执行行为模拟以显示输入和输出的波形,以查看代码是否按预期运行。这一步是最涉及实现的地方。工程师可以比较这两个输出,而不是通过整个过程来识别一些微不足道的错误。稍后,合成器会将 HDL 转换为具有门和触发器等元件的实际电路设计,然后将设计实现到设备架构和更多的仿真分析。一旦确认电路正常运行,最终将创建一个编程文件并将其加载到 FPGA 器件中。

FPGA设计流程

3.2.1 当前的障碍和未建立的基础设施

虽然 GPU 上的一些模块优化工作可以重用,但也有一些新的挑战:

  1. 由于更高级别的内存安全性和更好的跨平台兼容性,长期以来ZK的开源实现大多是用Rust编写的,但大多数FPGA开发工具都适应了C/C++,硬件工程师也更适应. 在采取进一步行动之前,团队可能必须重写或翻译这些实现。
  2. 在编写这些实现时,软件工程师将被限制在一个狭窄范围的 C/C++ 开源库中,这些库可以通过现有的开发支持映射到硬件架构中。
  3. 除了这些可以由软件工程师和硬件工程师相对独立地完成之外,一些深入的优化将依赖于他们的密切合作。例如,对算法的一些修改会和以前一样发挥作用,同时节省大量的硬件资源,但这只能基于对这两个组件的理解。

简而言之,与 AI 或其他成熟领域不同,工程师必须从零开始学习并几乎从头开始构建以实现 ZKP 加速。幸运的是,我们看到了更多进展。例如,Ingonyama 在他们最近的论文中提出了 PipeMSM ,一种在 FPGA 或 ASIC 上的 MSM 加速方法。

3.2.2 双头垄断市场

FPGA市场是典型的双头垄断市场。根据 Frost & Sullivan 的数据,2019 年,Xilinx(2022 年 2 月被 AMD 收购)和 Altera(2015 年 12 月被 Intel 收购)贡献了约 85% 的全球 FPGA 市场出货量。尽早使用最先进的 FPGA 可能需要与英特尔或 AMD 建立密切的关系。此外,这个新兴领域已经引起了这些行业巨头的注意。AMD 是 ZPrize 的技术提供商之一。

FPGA是典型的双头垄断市场

工程师们已经意识到,单个 FPGA 无法为复杂的 ZKP 生成提供足够的硬件资源,因此他们必须同时使用多个捆绑卡进行试验。即使在他们完成设计之后,AWS 和其他云提供商提供的现有标准 FPGA 云服务也不能很好地为他们服务。此外,处理加速解决方案的初创公司通常太小,无法让 AWS 或其他人托管他们的定制硬件,而且他们也没有足够的资源来运行自己的服务器。更好的选择可能是与大型矿工或一些 Web3 原生云提供商合作。然而,考虑到这些矿业公司的内部工程师可能会同时开发自己的加速解决方案,这种关系可能很微妙。

3.3 ASIC:终极武器

ASIC 是为特定用途定制的集成电路 (IC) 芯片。通常,工程师仍然使用 HDL 来指定 ASIC 的逻辑功能,其方式与使用 FPGA 的方式类似,但最终电路最终会永久地绘制到硅片中,而在 FPGA 中,电路是通过连接数千个可配置块制成的。与从英伟达、英特尔或 AMD 采购不同,公司必须设法自己托管整个过程,从电路设计一直到制造和测试。ASIC 将仅限于某些特定功能,但相反,它使设计人员能够在资源分配和电路设计方面拥有最大的自由度,从而在性能和能源效率方面发挥巨大潜力。设计人员可以消除浪费的空间、功率和功能,拥有所需的确切数量的门,

在设计流程方面,与 FPGA 相比,ASIC 在 HDL 编写和综合之间涉及详细的硅前验证(以及 DFT),以及实施前的平面图。前者用于工程师在虚拟环境中使用复杂的仿真和仿真工具测试设计,后者用于确定芯片中模块的尺寸、形状和位置。设计实施后,所有文件都被送到台积电或三星等代工厂进行测试流片。如果成功,则将原型送去组装和测试。

ASIC 设计流程

3.3.1 ZK 相对通用的 ASIC

对 ASIC 的一个普遍批评是,一旦算法改变,以前的芯片就完全没用了,但事实并非如此。

巧合的是,与我们交谈过的所有制定 ASIC 计划的公司都没有押注于特定的证明系统或项目。或者,他们更喜欢在 ASIC 之上开发一些可编程模块,以便通过这些模块可以处理不同的证明系统,并且只将 MSM 和 FFT 任务分配给 ASIC。当用于特定项目时,这对于特定芯片来说不可避免地不是最理想的,但是在短期内牺牲性能以获得更好的通用性可能比特定于任务的设计更好。

3.3.1 昂贵但非经常性的投入

不仅 ASIC 的设计过程比 FPGA 复杂得多,而且制造过程也消耗更多的时间和资金。初创公司可以直接联系代工厂进行流片或通过一些分销商。直到排队等待大约三个月或更长时间,他们才能真正执行它。掩模和晶圆构成流片的主要成本。掩模用于在晶片上产生图案,这是一片硅片。初创公司通常选择 MPW(多项目晶圆)安排,允许他们与其他几个项目分担掩模和晶圆制造成本。但是,根据他们选择的工艺和芯片数量,流片的保守估计仍将高达数百万美元。流片以及组装和测试还需要几个月的时间。如果这行得通,他们最终将开始为大规模生产做准备。但是,如果出现任何问题,调试和故障分析将花费意想不到的时间,并且需要再次流片。从最初的设计到量产需要几千万,大约需要18个月的时间。缓解因素是上述成本的很大一部分是非经常性的。此外,ASIC 提供的性能及其节省的能源和空间通常很重要,而且价格可能相对较低。缓解因素是上述成本的很大一部分是非经常性的。此外,ASIC 提供的性能及其节省的能源和空间通常很重要,而且价格可能相对较低。缓解因素是上述成本的很大一部分是非经常性的。此外,ASIC 提供的性能及其节省的能源和空间通常很重要,而且价格可能相对较低。

4.结束的想法

下面显示了对不同硬件解决方案的一般评估。

为了更清楚地了解可能的商业模式,我们在一张图表中展示了所有潜在的市场参与者。由于它们之间的交互可能是混合的和复杂的,因此我们仅按功能对它们进行分类。

硬件加速的功能层

除了开发新的 GPU 或 FPGA 芯片外,初创公司几乎可以从任何层面切入这一领域。他们可以选择从头开始设计和制造 ASIC,将芯片封装成专用设备并出售给矿工,或者他们可以出售裸芯片,由下游供应商组装。他们还可以构建自己的服务器,参与证明生成或提供云服务。或者,他们可以选择担任顾问公司,提供设计解决方案,但不参与实际操作。如果他们有强大的合作伙伴关系或足够的资源来覆盖整个价值链,他们还可以为 zk 应用程序提供全栈解决方案,从硬件资源一直到定制系统设计。

ZK 的大规模采用尚未发生,但构建加速解决方案也是一个长期过程。我们预计会有一个转折点。对于建筑商和投资者来说,关键问题是何时,而不是是否。

致谢

特别感谢 Weikeng Chen (DZK)、Ye Zhang (Scroll)、Kelly (Supranational) 和 Omer (Ingonyama) 帮助我们了解所有这些细节。还要感谢 Kai (ZKMatrix)、Slobodan (Ponos)、Elias 和 Chris (Inaccel)、Heqing Hong (Accseal) 和许多其他人对研究的见解。

--

--