#merkle-tree #elliptic-curve #data #proof #commitment #verification #verkle

verkle-tree

VerkleTree是Verkle树的Rust实现,这是Merkle树的强大升级,提供更高效的效率和更小的证明大小。此crate提供了一个强大、高效且易于使用的库,用于创建、操作和验证Verkle树。

1个不稳定版本

0.1.0 2024年7月17日

#1138 in 加密学

Download history 77/week @ 2024-07-12 21/week @ 2024-07-19 3/week @ 2024-07-26 1/week @ 2024-08-02

每月 102次下载

MIT许可证

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