探索市面上的 zkVMs:哪些项目真正符合零知识虚拟机的标准?
FRI原理及其应用分析
双线性对是一种数学函数,广泛用于设计密码协议,如基于身份的加密、数字签名和零知识证明等。
介绍了Miller Loop算法在椭圆曲线密码学中的应用,特别是在计算双线性对时的作用。还讨论了几种优化方法,包括预计算、窗口法、优化曲线选择、Frobenius自同态、高效标量乘法算法和并行化,这些方法能显著提升Miller Loop的计算效率。
使用 Risc0 创建你的第一个 ZK 项目
MemoryStark确保内存访问操作是按时间和地址顺序进行的,并且读取的值与之前写入的值一致。LogicSNARK确保逻辑运算的正确性。
Zinc语言是一种智能合约语言,能方便的构建其对应的电路。Zinc开发的程序,编译成ZincVM指令,并在ZincVM执行并构建电路。构建电路的过程是将指令顺序执行,跟踪以及统一数据流。因为ZincVM构建电路需要将代码“静态”展开,所以Zinc不支持图灵完备。
本文介绍了一个MIPS模拟器的设计,支持MIPS ELF程序的加载、执行和段生成。模拟器通过逐步执行指令并检查退出条件,支持常规执行和段分割两种模式。内存管理采用4KB页面并通过哈希树计算镜像ID,优化了修改页面的哈希计算,提升了性能。主要数据结构包括仿真状态、内存和段信息。
zkMIPS 通过零知识证明(ZKP)验证 MIPS 程序的正确执行。流程包括代码编译、虚拟机运行、生成执行轨迹,并通过 STARK、PLONK 和 Groth16 等技术生成高效的可验证证明,实现链上验证与隐私保护。
ZKM Prover利用Plonky2构造零知识证明系统,其主要步骤涉及对每个Plonkish表的证明生成、聚合及压缩处理。
Jolt:一个快速、易于使用的 zkVM
本文介绍了SP1 zkVM的设计原理,重点分析了zkVM如何执行用户程序,并生成零知识证明。文章详细解释了zkVM的编译器、指令集架构、以及证明系统的核心代码实现,帮助读者理解这一前沿技术的运作机制。
递归零知识证明(RecursiveZero-KnowledgeProof,简称递归ZKP)是一种使用递归概念的零知识证明,它通过递归的方式生成可更高效验证的证明,某些情况下还可以将多个证明合并成一个单一的证明。这在区块链系统中尤为重要,因为在这些系统中,效率和可扩展性是至关重要的。
在零知识证明中,lookup操作用于验证多个表格之间的关系。首先,将多个表格的数据聚合起来形成查询条件。然后,通过lookup在目标表格中查找符合条件的记录。最后,零知识证明生成一个证明,验证查询结果的正确性,而不泄露任何具体数据。
lookup
zkVM 测试报告