1个不稳定版本
0.1.0 | 2024年7月17日 |
---|
#1138 in 加密学
每月 102次下载
14KB
265 行
VerkleTree
VerkleTree是一个Rust库,使用BLS12-381椭圆曲线和KZG承诺来高效存储和验证数据。此库提供构建Verkle树、生成证明和验证证明的功能。
特性
- Verkle树构建:从一组数据中构建Verkle树。
- 证明生成:为Verkle树中的特定数据点生成证明。
- 证明验证:验证生成的证明。
安装
要使用此库,请将以下内容添加到您的Cargo.toml
verkle-tree = "0.1.0"
用法
以下是一个使用库的基本示例
use verkle_tree::{VerkleTree, VerkleProof};
use ark_bls12_381::Fr as F;
fn main() {
let datas = vec![F::from(10), F::from(20), F::from(30), F::from(40), F::from(50), F::from(60), F::from(70), F::from(80), F::from(90), F::from(100), F::from(110), F::from(120), F::from(130), F::from(140), F::from(150), F::from(160)];
let width = 4;
let verkle_tree = VerkleTree::new(&datas, width);
let index = 0;
let data_at_index = datas[index];
let proof = verkle_tree.generate_proof(index, &data_at_index);
let is_valid = verkle_tree.verify_proof(&proof);
assert!(is_valid);
}
测试
要运行测试,请使用以下命令
cargo test
待办事项
- 添加使用随机评估的多证明支持
- 存储VerkleTree
- 添加与Merkle树的比较基准
- VerkleTree solidity验证器???
贡献
欢迎贡献!请打开一个问题或提交一个拉取请求。
许可证
本项目采用MIT许可证。有关详细信息,请参阅LICENSE文件。
依赖项
~5.5MB
~100K SLoC