3 个版本 (破坏性更新)
0.4.0 | 2024年1月29日 |
---|---|
0.3.0 | 2021年6月7日 |
0.2.0 | 2021年3月27日 |
#2547 in 加密学
63KB
1K SLoC
线性时间 sumcheck
linear-sumcheck
是一个 Rust 库,实现了 sumcheck 协议。
此 crate 实现以下协议
MLSumcheck
:布尔超立方体上的多线性多项式乘积的评估形式 sumcheck 协议。GKRRoundSumcheck
:GKR 圆函数的 sumcheck 协议。此协议将MLSumcheck
作为子例程。
警告:这是一个学术概念原型,特别是尚未经过仔细的代码审查。此实现不适合生产使用。
构建指南
此库在 Rust 编译器的 stable
工具链上编译。要安装最新版本的 Rust,首先按照此处的说明或通过您平台的软件包管理器安装 rustup
。安装 rustup
后,通过调用以下命令安装 Rust 工具链
rustup install stable
之后,使用 cargo
(标准的 Rust 构建工具)构建库
git clone https://github.com/arkworks-rs/sumcheck.git
cd sumcheck
cargo build --release
此库附带一些单元测试和集成测试。使用以下命令运行这些测试
cargo test
最后,此库配备了分析基础设施,可以打印执行时间的详细跟踪。要启用此功能,请使用以下命令编译:cargo build --features print-trace
。
基准测试
要运行基准测试,请通过 rustup install nightly
安装夜间 Rust 工具链,然后运行以下命令
cargo +nightly bench --all-features
以下所有基准测试都是在 ark-test-curves
库中实现的 BLS12-381 标量字段上进行的。基准测试在一台配备 Intel Xeon 6136 CPU,主频为 3.0 GHz 的机器上运行。
MLSumcheck
的基准测试
GKRRoundSumcheck
的基准测试
许可证
本库的许可证可以是以下任何一个,由您自行选择。
除非您明确声明,否则您提交给本库的任何贡献都应按照上述许可证(Apache v2许可证中定义)进行双许可,不附加任何额外的条款或条件。
参考文献
Libra:具有最优验证者计算的简洁零知识证明
谢天成,张嘉恒,张宇鹏,查拉拉莫斯·帕帕曼托斯,宋丹
电路评估的最优时间交互证明
Justin Thaler
依赖项
~6MB
~114K SLoC