零知识证明编程 - 使用 Circom、Groth16 构建证明及验证 本文提供了一份面向程序员的零知识证明(ZKP)教程,使用了 Circom 这种用于编写 ZKP 电路的领域特定语言。文档解释了 ZKP 的概念、约束条件的重要性以及设置、构建和验证 ZKP 电路的过程。它还涵盖了基本 ZKP、使用哈希函数和承诺实现数字签名方案,以及群签名方案。 零知识证明 R1CS circom Groth16 oskarth 发布于 2024-09-01 8037 0 2
Circom 零知识电路简介 in 零知识证明之书 本文介绍了 Circom 编程语言,它用于创建 Rank 1 Constraint Systems (R1CS) 并填充 R1CS 的 witness 向量,主要是为了简化约束系统的设计和自动化 witness 的生成。文章还解释了 Circom 存在的意义,以及它如何帮助开发者更轻松地进行零知识证明相关的开发,最后说明了学习 Circom 的理由,并概述了资源结构,包括语法和约束设计。 circom R1CS SNARKs Groth16 零知识证明 约束系统 RareSkills 发布于 2025-04-16 3883 0 0
Circom 之 Hello World in 零知识证明之书 本文介绍了Circom代码与其编译成的Rank 1 Constraint System (R1CS)之间的关系,并通过几个例子详细解释了如何在Circom中编写约束,以及如何使用Circom命令行工具编译电路、生成witness,并验证电路的正确性。文章还介绍了zkRepl在线IDE的使用,以及Circom中有限域的概念,以及如何将snarkjs导出的R1CS约束转换为Circom中的原始约束。 circom R1CS zk-SNARK 零知识证明 约束系统 有限域 RareSkills 发布于 2025-04-16 3769 0 0
Circom模板参数、变量、循环、If语句、断言 in 零知识证明之书 本文介绍了Circom中定义Rank 1约束系统(R1CS)的基本语法,包括模板参数的使用、循环和变量的声明与应用、以及如何在满足特定条件时生成约束。此外,还强调了在Circom中约束必须是静态的,不能依赖于信号动态改变,但变量可以作为常量参与R1CS运算,并解释了`if`语句在Circom中的使用限制,着重介绍了 variables 的使用方法,以及 signals 的使用限制。 circom R1CS 约束系统 模板参数 信号 变量 zk-SNARKs RareSkills 发布于 2025-04-16 3140 0 0
二次约束 - Circom in 零知识证明之书 本文介绍了Circom中Rank 1约束系统的规则,即每个约束最多只能有一个信号间的乘法,超过则会报错。文章通过正反例解释了这一规则,并说明了常量乘法、加法、减法是被允许的。此外,还解释了Circom如何处理除法,以及为何数组索引、模运算、左移等操作不被允许。最后总结了约束系统的限制,并提及了绕过这些限制的设计模式。 circom 约束系统 R1CS 算术化 二次约束 信号 RareSkills 发布于 2025-04-16 3000 0 0
Circom中的符号变量 in 零知识证明之书 本文介绍了Circom中的符号变量,它是被赋值为信号值的变量,常用于在循环中对信号求和。文章解释了符号变量的定义、使用场景,例如校验数组求和、校验二进制表示,以及如何避免因符号变量导致的二次约束冲突。此外,还阐述了非符号变量在模运算和位移操作中的使用限制,以及符号变量在循环边界和条件判断中的禁用。 circom 符号变量 信号 约束 二次约束 R1CS RareSkills 发布于 2025-04-16 2863 0 0
Circom 中间信号与子组件 in 零知识证明之书 本文介绍了 Circom 中的 `<==` 和 `==>` 操作符,它们用于在电路中自动计算和赋值中间信号,从而避免手动提供所有信号作为输入。文章还展示了如何使用模板将电路拆分成更易于管理的模块,以及如何在组件之间传递结果。此外,还强调了组件的输出信号必须被约束使用,以防止恶意证明者篡改。 circom R1CS 约束系统 零知识证明 中间信号 模板 电路 RareSkills 发布于 2025-04-16 2998 0 0
Circom 中的条件语句 in 零知识证明之书 本文深入探讨了 Circom 中 if 语句的使用限制,明确指出信号不能用于改变 if 语句的行为,也不能在依赖于信号的 if 语句中赋值。 circom 零知识证明 R1CS 电路 条件分支 信号 RareSkills 发布于 2025-04-16 3098 0 0
ZK 中有状态计算简介 in 零知识证明之书 文章介绍了在算术电路中进行迭代计算(如幂、阶乘或计算斐波那契数列)时,如何通过预先计算所有可能的值并使用 Quin 选择器来解决条件停止的问题。文章通过阶乘和斐波那契数列的例子,展示了如何在 Circom 中实现这种方法,并强调了约束的重要性,最后提供了一个关于幂运算的练习。 算术电路 迭代计算 阶乘 斐波那契数列 Quin 选择器 circom R1CS RareSkills 发布于 2025-04-16 2753 0 0
直观理解Groth16 本文以直观的方式解释了Groth16零知识证明系统的工作原理。 Groth16 零知识证明 R1CS QAP 双线性配对 可信设置 zksecurity 发布于 2026-05-02 323 0 0
从R1CS构建零知识证明 in 零知识证明之书 文章详细介绍了如何通过将Rank 1 Constraint System (R1CS)中的见证向量转换为有限域椭圆曲线点,并使用双线性配对来实现零知识证明。文中还讨论了验证步骤的实现细节,并指出了该算法在实际应用中的低效性。 零知识证明 R1CS 椭圆曲线 双线性配对 见证向量 RareSkills 发布于 2024-08-28 4415 0 0
掌握一阶约束系统 R1CS 及其在 Circom 中的示例 本文详细介绍了Rank-1 Constraint Systems (R1CS) 在零知识证明中的应用,通过多个实例展示如何构建R1CS,使用Circom和snarkjs工具实现电路,并提供了数学公式的详细推导与代码实现。文章涵盖了R1CS的基本定义、与逻辑门电路的关系、构造方法以及多个示例,包括相应的约束解析和代码实现,具有较强的实用性和技术深度。 R1CS 零知识证明 circom snarkjs 电路实现 数学约束 thogiti 发布于 2023-10-19 2474 0 0
Sonobe 2026 更新第一部分:审计报告 本文总结了Sonobe加密库的审计结果,该库实现了折叠方案和IVC。审计由人类和AI审计员共同进行,覆盖了Nova、CycleFold等核心模块。发现了两项严重漏洞(C-01和C-02),可能导致IVC验证完全被绕过。其他严重程度的问题包括R1CS结构不检查、错误的状态绑定等。审计表明人类和AI在发现不同类型漏洞上互补。文章详细描述了每个bug及其修复。 折叠方案 交互式验证 R1CS Nova CycleFold 密码学审计 psedev 发布于 2026-06-01 84 0 0
将代数电路转换为R1CS(一阶约束系统) in 零知识证明之书 文章详细介绍了如何将一组算术约束转换为Rank One Constraint System (R1CS),涵盖了转换中的优化和Circom库的实现方法。 R1CS 算术电路 circom Modular Arithmetic 零知识证明 RareSkills 发布于 2023-07-13 3925 0 0
在可信设置中评估和二次算术程序 in 零知识证明之书 本文详细介绍了如何在可信设置的基础上评估二次算术程序(QAP),并解释了如何在不泄露证据的情况下证明QAP的满足性,使用恒定大小的证明。同时还涉及了R1CS、椭圆曲线配对等技术的详细实现。 QAP R1CS 椭圆曲线配对 可信设置 Groth16协议 RareSkills 发布于 2023-08-30 3508 0 0