Vitalik提及的ZK实时证明,可依靠ZK硬件加速实现?
原创 | Odaily星球日报
作者 | 夫如何
2024 香港 Web3 嘉年华期间,以太坊联合创始人 Vitalik Buterin 发表演讲《Reaching the Limits of Protocol Design》。在本次演讲中,Vitalik 就如何提高 zk-snark 的效率展开阐述。
在演讲中,Vitalik 指出目前区块链的发展是以牺牲隐私性和可扩展性为前提的,zk-snark 所具备的属性能够对牺牲的隐私性和可扩展性进行补救。但目前 zk-snark 效率较低,在以太坊中,以太坊节点验证一个区块所需时间,约为 400 毫秒,而 zk-snark 验证一个以太坊区块的时间约为 20 分钟,这导致网络虽然具备隐私性和可扩展性,但运行时间却延长 3000 倍。所以想将 zk-snark 运行到现有区块链网络中,需要提供一种“实时证明”,如果证明生成时间降低,那么在保证区块链运行速度的同时,也能提升隐私性和可扩展性。
什么方法能够实现“实时证明”?为此Odaily星球日报将根据 Vitalik 在演讲中所提供的思路进行解析,并对相应方案的项目进行简短介绍。
zk-snark 全称为简洁的非交互式零知识证明,为了更好的理解,我们分开解释:零知识证明:即证明者(Prover)能够在不向验证者(Verifier)提供任何有用的信息的情况下,使验证者相信某个论断是正确的。
简洁的:指交易验证过程不涉及大量数据传输,且验证算法简单。
非交互的:证明者与验证者之间无需进行交互。
零知识证明:即证明者(Prover)能够在不向验证者(Verifier)提供任何有用的信息的情况下,使验证者相信某个论断是正确的。
简洁的:指交易验证过程不涉及大量数据传输,且验证算法简单。
非交互的:证明者与验证者之间无需进行交互。
以下是 zk-snark 的运作流程图。从图中对 zk-snark 进行简单解读:
利用 Setup,使用随机数生成置信参数 F,生成证明密钥 pk 和验证密钥 v
证明者输入隐私输入 W 和公开输入 x,生成证明 π,并用私钥 pk 签名。π 通过椭圆曲线加密,隐藏了 W
验证者验证证明: 验证者持有 v,输入 x 和 π,确认证明者知道 W。验证者无法得知 W
结果返回: 如果验证成功,则返回 TRUE;否则返回 FALSE。
通过上述以 Zcash 的 zk-snark 相关流程介绍,不难发现,zk-snark 在验证证明时,所产生的步骤别不多,同时根据 zk-snark 的特性来看,验证所耗时间并不多,根据相应的 zk-snark 相关统计,验证证明时间一般不超过 80 毫秒,那么影响 zk-snark 成为公链的运行阻碍的原因在于证明者提供的证明。
上图为目前比较主流的 zk-snark 相关技术的汇总,从中不难发现,证明的大小、证明生成时间,验证时间是衡量有关 zk-snark 技术的标准。抛开验证时间来看,大多数 zk-snark 的证明无论从证明大小和生成时间来看,都与本文起始部分,Vitalik 用以太坊为例的标准不符,值得注意的是,上述大多数技术的所在公链并不具备智能合约的功能,也无法与以太坊区块大小相提并论,所需证明尺寸和证明生成时间要求更高。
为此,Vitalik 在本次演讲中对 zk-snark“实时证明”的实现,提供三个解决优化方向。
并行化和聚合:通过并行计算和证明聚合,提高验证大块区块的效率。每个计算步骤都可以进行独立证明,然后将这些证明进行聚合,减少验证过程中的计算时间和资源消耗。这可以通过利用并行计算和分布式系统的特性来实现,以加速大规模区块的验证过程。
硬件设计改进:设计专门用于 SNARK 计算的 ASIC,以提高计算效率。类似于挖矿中使用的 ASIC,SNARK ASIC 可以通过定制化的硬件结构和优化的算法来加速 SNARK 计算过程,从而实现更快的验证速度和更低的成本。
算法改进:进一步优化 snark 算法,包括 Groth 16、查找表、 64 位 snark、 32 位 stark 等,以提高算法的效率和可扩展性。此外,还可以研究开发更加高效的哈希函数和签名算法,使其更适合于 snark 的计算,进一步提高验证速度和资源利用率。
Vitalik 提倡第一个解决方向——并行计算和证明聚合,需要对相关公链和 zk-snark 运作流程进行优化,例如此前 zk-snark 算法中 Plonk 算法的递归属性,不过并行计算和证明聚合目前并未有更好的解决方案可以解决相应问题。
至于算法改进,目前在 zk-snark 领域,从性能上来看,主流依旧是 Groth 16 算法,随后出现的 zk-snark 算法多是为解决可信设置问题,在运行速度和证明生成时间上并无更多进展,并且 zk-snark 算法中,可信设置约简单,运行速度越快,但安全性也越差。为此以安全性为前提,zk-snark 提升速度还需持续建设。
上述两个解决方向主要以理论为支撑,这需要很长时间才能有所突破,那抛开理论,能否通过其他方式快速实现“实时证明”吗?硬件设计改进或许是达成目标的最佳捷径。
ZK 硬件加速或能尽快实现“实时证明”
从前文关于 zk-snark 性能的内容中,不难发现,真正限制 zk-snark 性能在于证明的生成,其中证明大小和电路规模决定证明生成时间。目前,大多数项目的复杂度越来越高,其证明大小和电路规模也在不断提升,生成证明的算力也在不断增加,为此 ZK 硬件加速项目应运而生。
ZK 硬件加速主要在证明生成中的多项式类型 NTT 任务和椭圆曲线 MSM 任务提供算力支持,主要这两项任务的运行逻辑简单,且大部分计算逻辑重复,并且可以进行可并行计算。
ZK 硬件和挖矿硬件相差不大,依旧是 GPU、FPGA 以及 ASIC 三种。不过 ZK 硬件加速领域目前比较常见的是 GPU/FPGA 方案,该方案比较容易实现,相关配件更易获取,不过相比于前两者,ASIC 潜力更大,也是 ZK 硬件加速领域目前增长点之一。
目前 ZK 硬件加速项目采用两种方式为相关 ZK 项目提供算力服务,包括硬件出售和 SaaS 算力服务。硬件出售顾名思义,和比特大陆一样出售矿机;SaaS 算力服务,更像提供一个算力市场,ZK 项目可以在市场上购买算力来帮助项目生成 ZK 证明。
目前 ZK 硬件加速领域比较小众,若不是 Vitalik 在演讲中提到,想必大多数人并不太清楚有哪些项目存在。为此Odaily星球日报对该板块项目进行整理,板块项目较少,其中Cysic、Ingopedia、Supranational、Ulvantanna以及Auradine为目前较为知名的项目。
其中 Cysic 目前关注度较高,其推出 FPGA/ASIC 硬件加速在算力性能上较为突出,同时还有算力市场为客户提供算力支持服务;Auradine 比较综合,其主推的是比特币矿机,同时提供相应 ZK 算力硬件,不过 ZK 硬件并不是其主打产品;Ulvantanna 主打利用 FPGA 集群为 ZK 项目提供算力支持,值得一提的是,Web3知名资本 Paradigm 是其投资者;Supranational 项目比较奇特,推特和官网的更新截止在去年 5 月,不确定目前是否运行;Ingopedia 提供基于 GPU 和 FPGA 两种硬件加速服务。