本文介绍了如何在Circom中交换信号列表中的两个信号,这是排序算法的重要子程序,并解释了在ZK电路中执行此操作的复杂性,由于信号的不可变性,需要创建一个新数组并将旧值复制到新数组,在特定条件下进行修改,文章还指出了代码中的一个错误,即未考虑s等于t的情况,并提供了修复方案,最后总结了在Circom中操作数组的通用模式。
本文介绍了零知识电路中的“计算后约束”设计模式,它首先在没有约束的情况下计算算法的正确输出,然后通过强制执行与算法相关的约束来验证解决方案的正确性。
Veridise 与 Succinct 合作,使用 Veridise 的工具 Picus 来验证 Succinct 的 RISC-V zkVM,SP1 电路的确定性。通过将 Plonky3 电路转换为 LLZK,成功验证了多个 SP1 电路的确定性。同时,也发现了 Plonky3 到 LLZK 转换管道的局限性,并提出了改进方向,未来计划扩展 Picus 以验证 SP1 中的所有电路。