技能简介
这个技能用于开发Noir(.nr)代码库。Noir是一种用于编写零知识证明电路的编程语言,可将程序编译为ACIR中间表示,然后生成和验证证明。适用于创建隐私保护应用和可验证计算。
业务背景
适用于需要隐私保护的业务场景,如金融交易金额隐藏、身份验证不泄露个人信息、供应链数据选择性披露等。核心价值在于让业务方在不暴露敏感数据的前提下,向第三方证明某项声明的真实性,满足合规审计与商业机密保护的双重需求。
落地案例:某金融机构需向监管机构证明客户资产充足率达标,但不愿公开具体账户明细。业务人员使用Noir编写电路规则,将客户资产作为私有输入、监管阈值作为公开约束,生成零知识证明提交给监管方。监管方可验证证明有效性,确认机构确实满足要求,却无从得知任何具体账户信息。
能做什么
- 创建Noir项目骨架
- 编写和编译Noir程序
- 生成 witness(见证)
- 使用证明后端生成证明
- 验证零知识证明
- 运行Noir测试
使用说明
安装技能:
clawhub install noir-developer
安装Nargo(Noir工具链):参考https://noir-lang.org/docs/获取安装指南
开发流程:
1. 规划 – 定义private inputs、public inputs和public outputs
2. 创建项目
# 创建新项目
nargo new my_project
# 或在现有目录初始化
nargo init
3. 编写代码 – 在src/main.nr中编写Noir程序
4. 编译
nargo compile
5. 生成witness
nargo execute
# 或使用NoirJS在浏览器/Node中执行
6. 证明与验证
# 使用选定的证明后端生成证明
# 然后验证证明
7. 测试
nargo test
环境支持:如nargo不支持当前环境(如原生Windows),建议使用GitHub Codespaces、WSL、Docker或VM。
证明后端选择:确认后端的类型后再实现细节。如选择Barretenberg,参考references/barretenberg.md。
参考文档:https://noir-lang.org/docs/
输入与输出
见下方输入与输出表格。
| 项目 | 内容 |
|---|---|
| 输入 | Noir程序代码、私有输入、公开输入 |
| 输出 | ACIR编译结果、witness见证、零知识证明、验证结果 |
| 适用人群 | 区块链开发者、密码学工程师、ZK应用开发者、智能合约开发者 |
| 不包含 | Nargo工具链(需单独安装)、证明后端软件、区块链节点 |
风险提示
- 原始页信息不足:缺少nargo安装命令、缺少证明后端的具体使用示例
- Windows原生环境不支持,需使用WSL/Docker
- 证明后端选择影响实现细节,需提前确认
- 零知识证明计算复杂,性能需优化
- 电路设计错误可能导致证明无效
来源信息
原始链接:https://github.com/openclaw/skills/tree/main/skills/jp4g/noir-developer/SKILL.md
来源类型:github
