作者:Frank,PANews

 

4月10日,a16z Crypto发布了名为Jolt的zkEVM解决方案,旨在加速和简化区块链扩展操作。Jolt集成了SNARK零知识证明,为EVM兼容Rollups提供了框架,可以帮助开发人员创建基于SNARK的L2解决方案。该团队表示,与目前的zkVM相比,Jolt的速度“快了两倍”。

由于Jolt的技术原理较为复杂,以下是关于可能涉及的几个技术名词关系的简单阐释:

zkSNARK是一种强大的零知识证明原语,是构建zkVM和zkEVM的基础

zkVM是一个通用的零知识虚拟机概念,支持任意指令集

zkEVM是zkVM的一个特例,专门用于兼容EVM

ZK Rollup采用zkVM或zkEVM来提升以太坊的可扩展性,同时兼顾隐私性

Jolt是什么?

Jolt 是一种新型的SNARK的解决方案,提供了一种更简洁,高效的方案来构建 zkVM(零知识虚拟机)。实际上,早在2023年8月,a16z crypto就已经提出了名为Lasso和Jolt相关概念。在SNARK技术存在又慢又高昂的成本的背景下,这两项技术被提出。

其中Lasso,是一种新的查找参数,可以显著降低证明者成本; Jolt,使用 Lasso 提供了一个新的框架,用于为所谓的 zkVM 和更广泛的前端设计 SNARK。它们共同提高了 SNARK 设计的性能、开发人员体验和可审核性,进而提高了 web3 中的构建。从而提升零知识证明在区块链领域的使用。

在理解Jolt之前,或许需要先了解一下zkVM和zkEVM。

zkVM是一个通用的概念,指零知识虚拟机。与zkEVM类似,zkVM允许用高级语言如C++或Rust编写程序,然后虚拟机把程序编译成某种中间表示(如电路或算术约束),再用zkSNARK等证明系统对中间表示的执行过程进行证明。相比zkEVM,zkVM不限于兼容EVM,而是支持任意指令集。Jolt就是一个针对RISC-V指令集的高性能zkVM实现。

我们可以将zkVM看作一个特殊的“黑盒子”,它可以在保护隐私的前提下,向外界证明自己确实按照预定的程序执行了计算。但传统的zkVM在生成这个证明的过程中需要进行大量繁琐的计算,导致性能非常低下。

Jolt的核心创新是找到了一种更加高效的数学方法,来生成这个证明:

首先,Jolt巧妙地将待证明的计算转化为一种特殊的多项式,我们姑且称之为“计算多项式”。这个多项式的特点是,只有当黑盒子确实正确执行了计算,它的值才会等于零。

为了证明“计算多项式”的值等于零,Jolt使用了一种被称为“sumcheck”的交互式协议。这个协议可以在较短的时间内,让验证者确信多项式值为零,而不需要实际计算整个多项式。这有点类似老师只检查学生的几道题,就能判断整份试卷是否正确。

Jolt的技术优势

关于Jolt的技术原理非常复杂,简单来说。在区块链网络的发展过程中,zkVM是一种在提升区块链网络拓展性的关键技术,能够在保障隐私的情况下提供有效的证明。Vitalik在最近的香港Web3嘉年华的主题演讲中,就围绕zkSNARK技术进行了详细的论述。Vitalik表示:“寻找ZKSNARKS在隐私方面非常有用,在可扩展性方面也非常有用。”

但证明生成的速度和计算开销一直是zkSNARK技术实用化的一大挑战,也是近年来学术界和业界重点攻关的方向。传统的zkSNARK方案,如Pinocchio和Groth16,在证明较为复杂的计算逻辑时,证明生成的时间可能会长达几个小时甚至几天,而且需要消耗大量的内存和存储资源。这种性能瓶颈严重制约了zkSNARK在许多实际场景下的应用。

而如果想要让区块链实现大规模应用,达到实时验证的效果。提升zkSNARK的性能是非常关键的一步。

具体来说,zkSNARK的证明生成过程涉及复杂的密码学算法,如椭圆曲线配对、多项式插值等,这些操作对计算资源的消耗非常大。尤其是当被证明的计算电路规模较大时,证明生成的计算复杂度会呈指数级上升。

据a16z Crypto表示,在 CPU 上,初始 Jolt 实现大约比 RISC Zero 快 6 倍,比最近发布的 SP1 快 2 倍,并且未来几周内将 Jolt 的速度提高约 1.5 倍。

Jolt目前的速度已经比现有的zkVM快2倍以上,但仍有很大的优化空间。

Jolt还巧妙地利用多项式的某些代数性质,实现了更高效的多项式承诺方案。这进一步减少了证明的大小和验证的时间。

Jolt可能带来的变化

从工程角度来说,Jolt采用了一系列优化手段,例如更紧凑的电路设计、更高效的流水线、更充分的并行化等等,最大限度地挖掘硬件的算力。

假设你是一名Web3开发者,想要在以太坊上部署一款链上扑克游戏。这个游戏需要在链上洗牌、发牌、比较牌面大小等,每个操作都需要通过zkVM电路来实现隐私保护和可验证性。

如果你使用现有的zkVM方案如ZoKrates或bellman,构建这样一个电路可能需要几个小时甚至几天的时间。因为当前的zkVM性能还较为低下,生成复杂电路的零知识证明需要大量的计算资源和时间开销。这意味着开发和测试周期会非常漫长。

而如果你使用Jolt来构建同样的电路,情况会发生显著变化。根据Jolt团队的测试,当前的Jolt实现生成证明的速度已经比主流的zkVM方案快2-5倍。这意味着,如果原来生成证明需要10个小时,现在可能只需要2-5个小时。

总的来说,Jolt所带来的2-5倍性能提升,意味着zkVM技术的可用性和易用性得到了大幅改善。这将显著降低Web3开发者的门槛,缩短应用的开发周期,同时为终端用户带来更好的使用体验。从更长远来看,Jolt有望加速zkVM技术的大规模应用,让更多的隐私保护和可验证计算能力惠及每一个Web3用户。

当然,Jolt目前还处于发展的早期阶段,2-5倍的性能提升只是一个开始。随着Jolt技术的不断迭代优化,zkVM的性能还将得到进一步的突破,最终为实现Web3的大规模应用铺平道路。