3个稳定版本
新版本 1.0.2 | 2024年8月14日 |
---|
#1013 在 密码学
303 每月下载量
48KB
1K SLoC
gnark BN254验证器
gnark-bn254-verifier crate用于在Bn254曲线上验证Groth16和PlonK证明,确保与由gnark库生成的证明兼容。可以将从gnark保存的证明和验证密钥加载到该库中,以便轻松验证证明。
如何从gnark保存证明和验证密钥
要从gnark保存证明和验证密钥,可以使用以下代码片段
// Write the verifier key.
vkFile, err := os.Create("vk.bin")
if err != nil {
panic(err)
}
defer vkFile.Close()
_, err = vk.WriteTo(vkFile)
if err != nil {
panic(err)
}
// Write the proving key.
proofFile, err := os.Create("proof.bin")
if err != nil {
panic(err)
}
defer proofFile.Close()
_, err = proof.WriteTo(proofFile)
if err != nil {
panic(err)
}
用法
要使用此库,请将其添加到您的Cargo.toml
中的依赖项
[dependencies]
gnark-bn254-verifier = "1.0.2"
然后,您可以通过调用verify
函数来验证证明
use gnark_bn254_verifier::{verify, ProvingSystem, Fr};
fn main() {
let proof = std::fs::read("proof.bin").unwrap();
let vk = std::fs::read("vk.bin").unwrap();
if verify(&proof, &vk, &[Fr::from(1u8), Fr::from(7u8)], ProvingSystem::Plonk) {
println!("Proof is valid");
} else {
println!("Proof is invalid");
}
}
功能
- 使用gnark生成的Groth16和PlonK证明的验证。
- 易于集成到Rust项目中。
依赖项
~6.5MB
~120K SLoC