作者 | paradigm首席技术官Georgios Konstantopoulos,google翻译

内容

  1. 介绍
  2. 为什么零知识证明很重要?
  3. 为什么 ZKP 很慢,我们如何让它们变快?
  4. 硬件很重要
  5. ​结论

介绍
零知识密码学是过去 50 年计算机科学中最显着的创新之一。零知识证明 (ZKP) 提供了独特的属性,使其成为各种区块链扩展和隐私解决方案的重要组成部分,包括像StarkNet这样的 ZK rollup、像Aztec这样的私有 ZK rollup 以及像Mina、Filecoin和Aleo这样的第 1 层链。

由于大量昂贵的数学运算,ZKP 的生产速度慢且成本高。但是,通过使用现场可编程门阵列 (FPGA) 和专用集成电路 (ASIC) 等专用硬件,它们可以加速 10-1000 倍。

随着用户寻求更具表现力、高性能和私密性的计算,使用 ZKP 证明的语句的复杂性将会增加。这将导致证明生成速度变慢,需要使用专门的硬件才能及时生成证明。

与比特币矿工类似,硬件运营商的工作需要得到补偿。最终,一个完整的 ZK 采矿和证明行业将出现,首先是爱好者在他们的 CPU 中生成证明,然后是 GPU,然后是 FPGA。与比特币相比,我们预计 ASIC 可能需要很长时间才能被采用(如果有的话)。

为什么零知识证明很重要?
零知识证明有两个主要用例。

外包可验证计算

假设由于您使用的平台(例如您的笔记本电脑、Raspberry Pi 甚至是以太坊)的限制,您有一些昂贵或不可能运行的计算。

您必须在第三方服务上运行计算,而不是在您的平台上运行计算,该服务可以快速、廉价地向您返回计算的输出(例如 AWS Lambda 函数,或像 Chainlink 这样的预言机服务)。

通常,您需要相信计算已正确执行,从而允许提供者输出无效结果,并可能带来灾难性后果。

ZKP 允许第三方提供商也输出计算完整性证明,以保证您收到的输出是正确的。

私人计算

如果您的计算在本地运行并不昂贵,但您想隐藏其中的一部分怎么办?例如,如果我想告诉你我知道第 1000 个斐波那契数而不告诉你数字,或者想说服你我在不透露金额或我的身份的情况下发送了付款怎么办?

ZKP 允许您有选择地隐藏计算语句周围的部分或全部输入。

上述两个用例都以多种形式(除其他外)在加密行业中体现出来:

 第 2 层扩展:使用 ZKP 的可验证计算允许 L1 将事务处理外包给链下高性能系统(也称为第 2 层)。这可以在不影响安全性的情况下实现区块链扩展。例如,StarkWare正在构建一个可扩展的智能合约平台StarkNet,它使用运行 ZK 友好代码的专用虚拟机。Aztec还允许他们的第 2 层程序私下运行,而不会泄露有关用户交易的任何信息。私有 L1: Aleo、Mina 和 Zcash 等 L1 链允许交易者使用 ZKP 隐藏发送者、接收者或金额,默认情况下 (Aleo) 或作为选择加入 (Mina 和 Zcash)。去中心化存储: Filecoin使用 ZKP(在 GPU 上运行)来证明网络中的节点正确存储数据。区块链压缩: Mina 和 Celo 使用 ZKP 将同步到链上最新状态所需的区块链数据压缩成一个小证明。

鉴于上述情况,可以肯定地说,随着加密货币采用率的增加,将需要 ZKP 来满足用户对性能和隐私以及新型应用程序和协议日益增长的需求。

ZKP 从根本上允许可扩展的私人支付和智能合约平台蓬勃发展,但引入了非平凡的开销,这在历史上阻碍了它们的采用。

为什么 ZKP 很慢,我们如何让它们变快?
证明计算需要首先将其从经典程序转换为 ZK 友好格式。这可以通过手动重写代码以使用像Arkworks这样的低级库来完成,或者通过使用像Cairo或Circom这样编译成必要的原语来生成证明的领域特定语言来完成。

更昂贵和更复杂的操作会导致更长的证明生成时间。某些操作对 ZK 不友好也很常见(例如,SHA 或 Keccak 中使用的按位操作),导致在经典计算机上可能是廉价操作的证明生成时间较长。

一旦您的计算采用 ZK 友好的形式,您就可以选择一些输入并将其发送到证明系统。有许多证明系统,一些以他们论文的作者命名(例如Groth16、GM17),而另一些则以更有创意的名称命名(PLONK、Spartan、STARK)。它们的共同点是,它们采用 ZK 友好格式表示的计算以及一些输入并输出证明。

根据证明系统的不同,证明生成过程可能会有所不同,但瓶颈始终是:

1、对大型数字向量(字段或组元素)的乘法,特别是可变基数和固定基数多标量乘法(MSM);或者,2、快速傅里叶变换(FFT)和逆 FFT(尽管有 用于无 FFT 证明系统的 技术)。在同时存在 FFT 和 MSM 的系统中,大约 70% 的时间生成证明花费在 MSM 上,其余时间则由 FFT 主导。

MSM 和 FFT 都很慢,但都有提高性能的方法:

MSM 具有令人尴尬的并行性,可以通过在多个线程上运行它们来加速。然而,即使在数百个内核上,如果每个元素向量是 2 25长(即 3300 万个元素,对于像zkEVM这样的应用程序来说,这是一个保守的复杂度),那么乘法最终仍然会花费大量时间。这意味着经常重复相同的操作,并且会耗尽设备上的大部分可用内存。简而言之,MSM 需要大量内存并且即使在高度并行化时仍然很慢。FFT 严重依赖算法运行时数据的频繁洗牌。这使得它们很难通过跨计算集群分配负载来加速,如DIZK所示。此外,它们在硬件上运行时需要大量带宽。改组意味着您需要“随机”加载和卸载元素,例如,具有 16GB 或更少内存的硬件芯片上的 >100GB 数据集。虽然硬件上的操作非常快,但通过网络加载和卸载数据的时间最终会显着减慢操作速度。

简而言之:

MSM 具有可预测的内存访问,允许大量并行化,但由于所需的原始计算量和内存量,它们的成本仍然很高。FFT 具有随机内存访问,这使得它们对硬件不友好,而且自然难以在分布式基础设施上运行。

在解决大型 MSM 和 FFT 的缓慢问题方面,我们看到的最有希望的工作是 PipeZK。在他们的论文中,作者描述了一种使用Pippenger 算法跳过重复计算来使 MSM 更便宜的方法。他们还描述了一种“展开”FFT 的方法,这样它们就可以在没有显着改组的情况下执行,由于现在可预测的内存访问模式,这可以提高硬件的速度。

假设上述方法解决了每种算法的基本瓶颈,那么问题就变成了:使用高度优化的 MSM 和 FFT 算法来加速 ZKP 生成的最佳硬件是什么?

硬件很重要
上述加速技术可以在多种硬件技术上实现:GPU、FPGA 或 ASIC。但是哪一个是最好的选择?

要回答这个问题,我们首先必须承认 ZKP 仍处于早期发展阶段。系统参数(例如 FFT 宽度或元素的位大小)或证明系统的选择仍然很少有标准化。

由于这些因素,FPGA 有两个核心特性使其在 ZK 环境中优于 ASIC:

“多次写入”与“一次写入”:ASIC 上的业务逻辑是一次写入。如果任何 ZKP 逻辑发生变化,您需要从头开始。FPGA 可以在 1 秒内重新刷新任意次数,这意味着它们可以在具有不兼容证明系统的多个链上重复使用相同的硬件(例如,因为他们想要跨链提取 MEV),并灵活地适应 ZK “元”的变化。更健康的供应链: ASIC 设计、制造和部署通常需要 12 到 18 个月或更长时间。相反,FPGA 供应链是健康的,Xilinx等领先供应商允许从网站(即没有任何联系点)在16 周内到达的大量零售订单。这允许以 FPGA 为中心的运营对其产品有更紧密的反馈循环,并通过购买和部署更多 FPGA 来扩大其运营。

我们还期望 FPGA 的性能优于 GPU,原因与它们在机器学习和计算机视觉领域蓬勃发展的原因类似:

硬件成本:一流的 FPGA(领先的工艺节点、时钟速度、能源效率和内存带宽)比一流的 GPU 便宜约 3 倍。全球对 GPU 的需求进一步加剧了这一问题。电源效率: FPGA的能效比 GPU 高10 倍以上,其中一个重要原因是需要将 GPU 连接到主机设备,这通常会消耗大量电力。

鉴于上述情况,我们预计市场上的赢家将是专注于 FPGA 而非 ASIC 或 GPU 的公司。然而,如果只有一个或几个 ZK L1 或 L2 最终实现了主导规模,并且 ZK 证明系统稳定在单个实现附近,那么 ASIC 胜过 FPGA 的可能性可能会更高。但是,如果这种情况真的发生的话,我们可能还需要几年的时间。

结论
2021 年,比特币矿工净收入超过150 亿美元,以太坊矿工刚刚超过 170 亿美元。零知识证明最终成为网络上计算完整性和隐私的事实上的媒介是合理的。在这种情况下,零知识矿工/证明人的机会可能与工作量证明采矿市场的规模相似。

ZKP 很慢,需要硬件加速才能在复杂的计算中变得可行。我们认为,对 ZK 硬件加速最重要的技术是 FPGA,而不是 GPU(由于成本和能源效率)或 ASIC(由于它们的不灵活性和长迭代周期)。

查看原文

零知识证明的硬件加速相关推荐

  1. 不讨论颜色的前提下,如何证明自己不是色盲?神奇的零知识证明

    0x01 一个小故事 <阿里巴巴与四十大盗>中有这样一段小故事: 阿里巴巴会芝麻开门的咒语,强盗向他拷问打开山洞石门的咒语,他不想让人听到咒语,又要向强盗证明他知道这个咒语. 那应该怎么办 ...

  2. 零知识证明系列之二——Schnorr协议

    ​Schnorr协议简介 Schnorr协议是由德国数学家和密码学家Claus-Peter Schnorr在1991年提出,是一种基于离散对数难题的知识证明机制.Schnorr本质上是一种零知识的技术 ...

  3. 零知识证明系列之三——入门zkSNARK

    前文回顾 回顾一下一套完善的零知识证明体系需要以下的条件: (1)完备性(Completeness)如果证明方和验证方都是诚实的,并遵循证明过程的每一步,进行正确的计算,那么这个证明一定是成功的,验证 ...

  4. 零知识证明系列之一——初探零知识证明

    前言 区块链的发展可谓是日新月异,分布式账本,哈希函数,merkle tree,公钥算法,p2p网络,共识机制,智能合约等等很高大上的名词相信大家一定都不会很陌生.区块链像一个有机体,融合了各种不同的 ...

  5. 万字长文,详述TRIDENT: Poseidon 哈希算法的硬件加速与实现!

    本文主要介绍了DatenLord团队在今年的Xilinx全球自适应计算挑战赛上获得 Big Data Analytics赛道一等奖的作品--TRIDENT: Poseidon哈希算法的硬件实现与加速. ...

  6. 讯琥科技基于FPGA 的区块链硬件加速服务性能直逼100,000 TPS

    区块链是一种防篡改的去中心化账本,可建立必要的信任机制,从而在免去中间环节的情况下交换价值.据IDC预测,到2025年,全球物联网(IoT)设备数将达到416亿台.当前,物联网行业高度碎片化.相互孤立 ...

  7. 押注零知识证明赛道,Conflux与ACCSEAL达成战略合作

    Conflux与新兴零知识证明加速芯片制造公司ACCSEAL宣布达成战略合作,携手共同布局零知识证明(Zero-Knowledge Proof,简称ZKP)赛道,探索可应用于Conflux生态系统的最 ...

  8. 区块链交易隐私如何保证?华为零知识证明技术实战解析

    摘要:本文通过介绍华为如何在同态加密及零知识证明框架的集成介绍来介绍了一些对金融领域交易隐私保护的思路,通过代码结和应用场景描述了zksnark如何集成到现有联盟链体系保护交易隐私. 本文分享自华为云 ...

  9. UnRaid利用iGVT-g插件实现Nas宿主机、虚拟机同时使用intel核显输出或硬解(硬件加速)功能

    文章目录 0.前言 1.准备工作 1.1.1台用intel处理器的组建的Nas主机(UnRaid系统必须是6.9.2及以上) 1.2.1台或多台显示器 1.3.1个DisplayLink转接器(USB ...

最新文章

  1. 二叉树 —— 创建二叉树 先序遍历 、中序遍历、后序遍历(递归方式、非递归方式)
  2. Spring5源码 - 00 IOC容器创建_前期准备
  3. iOS之深入解析Xcode的拼写检查
  4. .net 微服务实践
  5. Flutter中State深入分析理解
  6. MySQL is running but PID file could not be found(在macOS系统下解决方法)
  7. 第12天--css三种定位及z-index
  8. pip install keras_常用基本pip命令及报错问题解决(不断更新)
  9. Python3爬虫(六) 解析库的使用之Beautiful Soup
  10. iOS 推送 获取手机设备的 deviceToken
  11. python适合自学编程吗-风变编程:Python适合编程初学者学习吗?
  12. 华为鸿蒙系统老手机能用吗_华为发布鸿蒙2.0手机开发者测试版!华为老手机可申请公测...
  13. PageRank与社交网络模型评估
  14. sudo rosdep init 失败的解决方法(适用于非自身设备网络、证书等故障的情况)
  15. 小米MIX进入和退出Recovery模式、Fastboot模式各种方法
  16. Flutter:bottomNavigationBar图标白色的解决办法
  17. 生鲜电商平台-优惠券设计与架构
  18. 分享一款市面比较好用的收款工具, SHOUK8 个人微信支付宝收款工具 微信支付宝财付通免签约收款即时到帐辅助
  19. idea 社区版 web开发
  20. matlab内联函数怎么作图,第1讲:向量,函数和作图

热门文章

  1. daocloud mysql_使用 DaoCloud 部署 NODE
  2. python遥感影像分类代码_【博客翻译】使用 Python Tensorflow 实现简单的神经网络卫星遥感影像分类...
  3. C++程序设计课程设计(研究生初试录取系统)
  4. 测试中文编码_如何通过带回家的编码测试
  5. 阿里云短信验证服务详细基础教程
  6. 光纤的损耗机理 散射损耗 吸收损耗 弯曲损耗
  7. 【商品架构day5】淘宝:TOP1的商品系统长什么样子
  8. echarts 国际化
  9. 课程设计两连发之局域网通讯软件
  10. re sub 实现多处替换