12个重大版本
0.15.0 | 2024年7月18日 |
---|---|
0.13.0 | 2024年5月10日 |
0.12.0 | 2024年3月4日 |
0.11.0 | 2023年10月2日 |
0.2.0 | 2022年5月2日 |
#261 in 加密学
每月177次下载
在 3 crates中使用
505KB
11K SLoC
legogroth16
此仓库包含LegoGroth16的实现,是LegoSNARK变体的Groth16 zkSNARK证明系统。
此项目最初是这个的分支,但已更新为
- 通过指定提交的证人的子集的数量,例如
n
,在CRS生成期间提交的证人的数量。按照惯例,它提交了电路中分配给证人的前n
个变量,并且证明包含该承诺 - 要么包含CP_link,要么省略它,但只有证明包含承诺。这里的证明包含对证人变量的2个承诺(其中一个是上面的相同),但具有不同的承诺密钥和随机数。
- 为Circom电路创建和验证证明
- 使用Snarckpack进行证明聚合
LegoSNARK论文附录D中的线性子空间zkSNARK在此处。
此库根据MIT许可证和Apache v2许可证发布(见许可证)。
构建指南
构建库
cargo build --release
此库为每个提供的crate提供单元测试。使用以下命令运行测试:
cargo test
要构建不带std
但带有Circom支持和证明聚合的库,请运行
cargo build --no-default-features --features=circom,aggregation,wasmer-sys
要构建具有Circom支持和证明聚合的WASM,请运行
cargo build --no-default-features --features=circom,aggregation,wasmer-js --target wasm32-unknown-unknown
要运行所有不带std
的测试,请运行
cargo test --no-default-features --features=std,circom,aggregation,wasmer-sys
许可证
此库根据以下许可证之一授权,由您自行选择。
- Apache许可证版本2.0(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
除非您明确说明,否则您提交给本库的任何贡献都应按上述方式双重许可(如Apache v2许可证中定义),没有任何附加条款或条件。
致谢
本工作得到了以下支持:谷歌教师奖;美国国家科学基金会;加州大学伯克利分校长期网络安全中心;以及以太坊基金会、Interchain基金会和Qtum的捐赠。
此库的早期版本是作为论文“ZEXE: 使去中心化私有计算成为可能”的一部分开发的。
依赖项
~6–17MB
~218K SLoC