Nova: 来自折叠方案的高速递归零知识证明
Nova 是一种高速递归 SNARK (SNARK 是一种类型密码学证明系统,它使得证明人能够用一个简短的证明和简洁的验证向验证人证明数学公式,而递归 SNARK 则能够生成证明,用于证明关于先前证明的公式)。
更准确地说,Nova实现了增量可验证计算,这是一种强大的密码学原语,允许证明人以增量方式生成证明其计算的"长时间"顺序计算的正确执行。例如,IVC支持以下操作:证明人将作为输入提供一个证明 $\pi_i$,证明其计算的前 $i$ 步,然后更新它,生成一个证明 $\pi_{i+1}$,证明前 $i+1$ 步的正确执行。至关重要的是,证明人更新证明的工作不依赖于迄今执行的步数,而验证者验证证明的工作也不随着计算中的步数增长。Nova等IVC方案具有广泛的应用,例如卷起、可验证延迟函数(VDF)、简明区块链、可验证状态机的增量版本(https://eprint.iacr.org/2020/758.pdf)以及更广泛的(虚拟)机器执行证明(例如EVM、RISC-V)。
Nova 的一个显著特点是,它是文献中最简单的递归证明系统,但却提供了速度最快的证明器。此外,它实现了最小的验证器电路(这是本文中要尽量减小的一个关键指标):该电路大小固定,大约为 10,000 个乘法门。Nova 是由一个简单的原语构成的,称为 折叠方案,这是一个加密原语,它将检查两个 NP 语句的任务转化为检查一个单个 NP 语句的任务。
nova-snark,这是一个基于椭圆曲线周期的 Nova 库实现。我们的代码支持三种曲线周期: (1) Pallas/Vesta, (2) BN254/Grumpkin, (3) secp/secq。暂无开放 Issues,或尚未同步最近议题。