新的模块化 zk 工具包!⚡ 使用它从链外证明生成 zkps。 流程: - 签署/使用链外证明 - 使用 SP1 生成证明 - 使用 WASM 验证 - 在链上证明验证结果(可选) 特别感谢 @shivansheth 和 @whoisgautxm (zkAttestify) 的贡献,以及 @SuccinctLabs 的支持!
流程如下: 1) 签署/提供有效的链下证明 - 使用 EAS 创建结构化证明 - 使用 EIP712 签名 - 数据保持在链下并且私密。 - 签名是可验证的。 2) 生成 ZK 证明 (SP1) - 使用 SP1 zkvm 解析 EAS 结构 - 验证签名的正确性和逻辑(为演示而硬编码) - SP1 程序生成 Groth16 或 Plonk 证明 - 输出包括证明文件 + 公共输入 该仓库的 dob-program 和 dob-scripts 处理逻辑。 3) 在 WASM 中验证(浏览器或节点) - 加载编译后的验证器 - 提供证明 + 公共输入 - JS 脚本运行证明验证并检查逻辑 4) 可选:在链上证明验证结果 - 将 zk 证明提交到 Solidity 验证合约(groth16 验证器) - 成功后,调用 EAS 以发出新的链上证明 - 模式和数据是可定制的(isOver18 = true) - 让您控制过期/撤销/组合性 - 与原始链下证明没有关联 注意 - 此流程假设您信任链下证明的证明者。 - 生成 groth16/plonk 证明速度较慢。使用 Succinct Prover Network 提高效率。
本教程/演示将引导您了解其工作原理,时间为 15 分钟。它使用一个简单的年龄证明示例。该工具包是模块化的,因此通过一些调整,您可以稍后将其替换为您自己的模式/电路逻辑。
访问Github
想要观看ZKAttestify团队的视频吗?
想要自定义流程吗? 这里是需要调整的内容: - 在 `dob-program/src/main.rs` 中 – 更改逻辑(例如,`degree == "CS"`) - 在 `dob-script/input.json` 中 – 更改证明数据和模式 - 在 `WASM_verifier/` 中 – 验证任何具有相同结构的证明
该项目是一个参考实现。它是模块化的、开源的,并且可以轻松分叉。帮助我们扩展对更多模式、验证者和用例的支持。 我们正在积极寻找希望将此代码库提升到新水平的贡献者和开发者。 请联系我们!🫡
18.49K