介绍了基于 SIS 与 LWE 的单向哈希函数构造。SIS 构造保证了抗碰撞性并连接平均与最坏情况困难性,而 LWE 构造更为简洁,具备唯一解及良好的平均情况安全性。
本文形式化介绍了多线性扩展 (MLE) 在 点值表示 与 系数表示 下的求值与运算方法,包括加法与乘法的高效实现。该框架为 multivariate sumcheck 协议 及其在零知识证明中的应用奠定了数学与算法基础。
多变量求和检验协议(Multivariate Sumcheck Protocol)通过将多线性多项式在布尔超立方体上的求和问题逐步化简为一元检验来进行验证,利用多线性扩展避免了昂贵的 FFT 运算,从而实现高效且适用于零知识证明(ZKP)的特性。
Logup-GKR协议通过定义有理多项式,使用Sumcheck协议和GKR协议进行验证。分数加法用于递归地计算每层的多项式值,确保最终结果的正确性。验证者通过发送随机挑战来逐层检查计算过程,直到最终层。
Jagged 多项式承诺用于在列高不规则的矩阵中高效进行承诺和验证。通过定义稀疏与稠密多项式的映射,并使用多变量 Sumcheck 协议验证它们在随机点的一致性,从而实现高效、灵活的零知识证明支持。
zkMIPS 通过零知识证明(ZKP)验证 MIPS 程序的正确执行。流程包括代码编译、虚拟机运行、生成执行轨迹,并通过 STARK、PLONK 和 Groth16 等技术生成高效的可验证证明,实现链上验证与隐私保护。
在 zkVM 中,离线内存检查用于验证内存读/写的正确性,而无需每次读取时立即验证。它通过构建读集合 (RS) 和写集合 (WS),在所有操作完成后一次性检查一致性。 为此,本文提出 Multiset Hashing 和 LogUp 两种方法。
STARK到SNARK的转换从构建递归电路开始,递归电路的作用是将原本庞大的STARK证明压缩成较小的SNARK证明,具体由以下几个组件构成,包括根电路,聚合电路和区块电路。
MemoryStark确保内存访问操作是按时间和地址顺序进行的,并且读取的值与之前写入的值一致。LogicSNARK确保逻辑运算的正确性。
Poseidon的执行过程包括以下6个步骤:初始化、完整轮次计算、部分轮次计算、电路约束生成、生成多项式承诺、证明生成与验证。整个过程用于生成最终的零知识证明。