探索Spartan:无信任设置的高速zkSNARKs

探索Spartan:无信任设置的高速zkSNARKs

SpartanSpartan: High-speed zkSNARKs without trusted setup项目地址:https://gitcode.com/gh_mirrors/spartan1/Spartan

项目简介

Spartan是一个高性能的零知识证明系统(zkSNARK),这种密码学原语允许证明者向验证者证实一个数学陈述的真实性,而不透露除该陈述合法性之外的任何信息。这个开源项目提供了一个名为libspartan的Rust库,实现了无需信任设置的zkSNARK。Spartan的技术细节在我们的论文中有所描述,该论文发表于2020年的CRYPTO会议上。

项目技术分析

libspartan支持通过R1CS(rank-1 constraint satisfaction)表达的任意NP问题的证明,这是一个广泛使用的语言,可以从感兴趣的高度编程语言高效地转换和编译。安全性基于随机Oracle模型中的离散对数难题。库中的实现采用了ristretto255,这是一种基于curve25519椭圆曲线的高效率的素数群抽象,并利用了curve25519-dalek进行椭圆曲线算术运算。

应用场景

Spartan可以用于各种场景,包括但不限于:

  1. 证明知道一个秘密s使得其哈希值等于公开的d(例如,SHA-256或Keccak),保证隐私安全。
  2. 验证数据库驱动的云服务执行的状态机转换正确性,以实现审计透明度。

项目特点

  • 无需信任设置:Spartan是透明的zkSNARK,不涉及需要保密的“有毒”初始化阶段。
  • 通用性:可用于证明任意NP陈述,支持广泛的潜在应用。
  • 亚线性验证成本:这是第一个为任意NP陈述提供亚线性验证成本的透明证明系统。
  • 标准化安全性:依赖于标准的离散对数难题假设,在随机Oracle模型中确保安全性。
  • 最佳性能:与其他透明SNARKs相比,Spartan拥有更快的证明器速度,更短的证明大小和更低的验证时间。

实现与示例

libspartan使用merlin自动化Fiat-Shamir变换,还引入了RandomTape类型扩展了Transcript,以便在无需创建OsRng对象的情况下,使prover内部方法能使用私有transcript产生随机数。

要在Rust项目中使用libspartan,只需在Cargo.toml添加以下依赖:

spartan = "0.8.0"

提供了创建和验证SNARK证明以及NIZK变种证明的示例代码,让你能够快速上手并深入了解如何实际应用Spartan。

总之,如果你正在寻找一个既安全又高效的零知识证明解决方案,Spartan无疑是值得考虑的选择。它的通用性、高效性和无信任设置特性使其成为许多去中心化应用的理想选择。现在就加入社区,探索Spartan带给你的无限可能吧!

SpartanSpartan: High-speed zkSNARKs without trusted setup项目地址:https://gitcode.com/gh_mirrors/spartan1/Spartan

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓬玮剑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值