3个版本 (破坏性更新)
0.4.0 | 2023年6月9日 |
---|---|
0.3.0 | 2021年6月7日 |
0.2.0 | 2021年3月25日 |
#2306 in 密码学
8,411 每月下载量
用于 17 个crate (11 个直接)
400KB
9K SLoC
多项式承诺
poly-commit
是一个Rust库,实现了 多项式承诺方案。这个库最初是作为Marlin论文的一部分开发的,并按照MIT许可证和Apache v2许可证发布(参见许可证)。
警告: 这是一个学术原型,并且特别地没有经过仔细的代码审查。此实现 不适用于生产使用。
概述
多项式承诺方案是一种密码学原语,它允许一方在给定的有限域上对多项式进行承诺,然后,在以后可以揭示多项式的所需评估,并附带证明其正确性的密码学证明。
此库提供了多项式承诺方案的多种构造。这些构造支持同时承诺多个多项式,这些多项式具有不同的度数限制,将针对同一评估点的多个评估证明批处理到一个,以及证明的批处理验证。
多项式承诺方案满足的关键属性是 简洁性、可提取性 和 隐藏性。有关这些属性的定义,请参阅Marlin论文。
构建指南
此库在Rust编译器的 stable
工具链上编译。要安装最新版本的Rust,首先按照此处的说明安装 rustup
,或者通过您的平台包管理器安装。安装 rustup
后,通过调用安装Rust工具链
rustup install stable
之后,使用 cargo
(标准的Rust构建工具)构建库
git clone https://github.com/scipr-lab/poly-commit.git
cd poly-commit
cargo build --release
此库附带了一些单元和集成测试。使用以下命令运行这些测试
cargo test
最后,此库使用分析基础设施进行配置,该基础设施打印执行时间的详细跟踪。要启用此功能,请使用以下命令进行编译 cargo build --features print-trace
。
许可证
此库根据以下任一许可证进行许可,由您自行选择。
除非您明确声明,否则您提交给此库的任何贡献均应双许可(如Apache v2许可证中定义),无需附加条款或条件。
参考文献
多项式承诺
Aniket Kate, Gregory M. Zaverucha, Ian Goldberg
ASIACRYPT 2010
Sonic:来自线性大小通用和可更新结构化参考字符串的零知识SNARKs
Mary Maller, Sean Bowe, Markulf Kohlweiss, Sarah Meiklejohn
CCS 2019
AuroraLight:在类似Sonic系统中改进证明效率和SRS大小
Ariel Gabizon
ePrint,2019
Marlin:具有通用和可更新SRS的预处理zkSNARKs
Alessandro Chiesa, Yuncong Hu, Mary Maller, Pratyush Mishra, Noah Vesely, Nicholas Ward
EUROCRYPT 2020
来自累积方案的携带证明数据
Benedikt Bünz, Alessandro Chiesa, Pratyush Mishra, Nicholas Spooner
TCC 2020
正确计算的签名
Charalampos Papamanthou, Elaine Shi, Roberto Tamassia
TCC 2013
致谢
本研究得到了以下支持:工程与物理科学研究委员会的资助;谷歌教师奖;加州大学伯克利分校的RISELab;以及以太坊基金会和Interchain基金会的捐赠。
依赖关系
~6–17MB
~193K SLoC