我们构建了一个系统,为冯·诺依曼RISC体系结构上的程序执行提供简洁的非交互式零知识证明(zk SNARKs)。该系统由两部分组成:一个用于验证算术电路可满足性的密码验证系统,以及一个用于将程序执行转换为此类电路的电路生成器。与之前的工作相比,我们对这两个组件的设计在功能和效率方面都有所提高,如下所示。我们的电路生成器是第一个通用的:它不需要知道程序,只需要知道它的运行时间。此外,输出电路的大小取决于程序大小(而不是乘法),从而允许验证较大的程序。加密证明系统通过利用新算法和根据协议定制的配对库,提高了证明和验证时间。我们对我们的系统进行了评估,以获得多达10000条指令的程序,运行多达32000个机器步骤,每个步骤都可以任意访问随机存取存储器;并演示了如何执行使用即时编译的程序。我们的证明在80位安全性时长230字节,在128位安全性时长288字节。不管原始程序的运行时间如何,典型的验证时间为5毫秒。
1