比特币今日暴跌背后原因
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 实现“实时证明”的三个方向
在此之前,先科普一下 zk-snark,zk-snark 全称为简洁的非交互式零知识证明,为了更好的理解,我们分开解释:
零知识证明:即证明者(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 的计算,进一步提高验证速度和资源利用率。