#zk-snarks #proofs #proof

spartan2

高速SNARKs

1个不稳定版本

0.1.0 2023年9月29日

#1977加密学

自定义许可证

240KB
6K SLoC

斯巴达2:高速零知识SNARK。

斯巴达是一种高速zkSNARK,其中zkSNARK是一种类型加密证明系统,它允许证明者用一个简短的证明向验证者证明一个数学陈述,并具有简短的验证,而不会泄露陈述之外的信息。斯巴达提供线性时间多项式IOP,当与多项式承诺方案结合使用时,提供简洁的交互式论证。它使用Fiat-Shamir变换来实现非交互性。

与斯巴达的早期实现相比,本项目目标是提供一个通用于多项式承诺方案的斯巴达实现。此版本还接受使用bellperson表达的计算电路。我们目前支持R1CS。未来,我们计划添加对其他电路格式(例如,Plonkish,CCS)的支持。证明不是零知识的(我们计划在不久的将来添加)。此代码的第一个版本是从Nova的开源代码派生出来的。

参考

以下这篇在CRYPTO 2020上发表的论文提供了斯巴达证明系统的详细信息

斯巴达:无需可信设置的通用高效zkSNARK
Srinath Setty
CRYPTO 2020

贡献

本项目欢迎贡献和建议。大多数贡献需要您同意贡献者许可协议(CLA),声明您有权并且确实授予我们使用您贡献的权利。有关详细信息,请访问https://cla.opensource.microsoft.com

当您提交拉取请求时,CLA机器人会自动确定您是否需要提供CLA,并相应地装饰PR(例如,状态检查,注释)。只需遵循机器人的指示即可。您只需在整个使用我们的CLA的仓库中这样做一次。

本项目已采用Microsoft开源行为准则。有关更多信息,请参阅行为准则FAQ或通过[email protected]提出任何额外的问题或评论。

商标

本项目可能包含项目、产品或服务的商标或徽标。Microsoft商标或徽标的授权使用受Microsoft的商标和品牌指南约束,并必须遵循。在此项目的修改版本中使用Microsoft商标或徽标不得引起混淆或暗示Microsoft的赞助。任何使用第三方商标或徽标的使用均受这些第三方政策的约束。

依赖

~7-10MB
~195K SLoC