首页
/ Gnark v0.13.0 版本发布:零知识证明框架的重大升级

Gnark v0.13.0 版本发布:零知识证明框架的重大升级

2025-06-30 02:20:56作者:龚格成

Gnark 是一个用 Go 语言编写的高性能零知识证明(ZKP)框架,由 ConsenSys 团队开发。它允许开发者构建和验证零知识证明系统,特别适用于区块链和隐私保护应用场景。本次发布的 v0.13.0 版本带来了多项重要改进和新功能,包括性能优化、新算法支持以及多项功能增强。

核心功能增强

1. 哈希函数支持扩展

新版本增加了对 Merkle-Damgård 和 Poseidon2 哈希函数的支持。Merkle-Damgård 结构是许多经典哈希函数(如 SHA 系列)的基础结构,而 Poseidon2 则是一种专为零知识证明优化的哈希算法,具有证明友好的特性。

特别值得注意的是,团队对 Poseidon2 的实现进行了 GKR(Goldwasser-Kalai-Rothblum)电路优化,这是一种交互式证明系统,可以显著提高证明效率。同时,SHA3 哈希函数现在支持 FixedLengthSum 功能,允许对固定长度的输入进行更高效的哈希计算。

2. 多精度计算优化

在零知识证明系统中,处理大数运算是一个常见需求。v0.13.0 对多精度计算进行了多项优化:

  • 改进了非本地零值的 IsZero 边缘情况处理
  • 实现了更高效的 selector.Mux 递归 BinaryMux 实现,优化了各种大小的选择器性能
  • 增加了对哈希函数的 FixedLengthSum 优化,通过最小长度参数提高了计算效率

3. Groth16 证明系统改进

Groth16 是目前最广泛使用的 zk-SNARK 证明系统之一。新版本中:

  • 重构了 Groth16 的多方计算(MPC)实现
  • 修复了 Groth16 MPC 第一阶段的比例验证问题
  • 增加了密钥切换功能,提高了系统的灵活性

性能提升

1. GPU 加速支持

v0.13.0 集成了 OSS ICICLE(版本 v3.2.2)用于 GPU 加速。ICICLE 是一个开源库,专门为密码学计算提供 GPU 加速支持,这将显著提高证明生成和验证的速度,特别是对于大规模计算场景。

2. 电路优化

  • 实现了更高效的约束系统布线管理,新增了 GetWiresConstraintExact 方法
  • 优化了约束元素的通用接口设计,提高了代码的复用性和可维护性
  • 改进了查找表(lookup table)的实现,确保在所有 limbs(大数的分段表示)上进行规范化形式的范围检查

新算法与数学工具

1. 椭圆曲线支持

  • 增加了 Pectra BLS12-381 椭圆曲线的预编译支持
  • 实现了 BLS12-381 曲线上的映射到 G2 群功能
  • 修复了 GLV(Gallant-Lambert-Vanstone)方法中负标量的处理问题

2. 场运算扩展

  • 实现了对小域的场仿真支持
  • 增加了场扩展支持,允许在本地场上构建扩展场运算
  • 引入了 WideCommitter,用于获取场扩展中的承诺

3. GKR 系统迁移与优化

将 GKR 系统从 gnark-crypto 迁移到 gnark 主库,并进行了多项优化:

  • 实现了门注册表(Gate Registry)机制
  • 重构了单门(unigate)实现
  • 提供了详细的 GKR 示例文档

开发者体验改进

1. 断言功能增强

  • 增加了 emulated.AssertIsDifferent 方法,用于仿真环境中的不等断言
  • 改进了自动元素初始化,使其能够感知当前场特性

2. 常量处理

实现了常量值的二进制分解功能,这在零知识证明系统中特别有用,因为许多密码学操作(如标量乘法)可以通过预计算和查找表来优化。

3. 代码质量与文档

  • 统一了代码风格,使用 goimports 工具进行格式化
  • 增加了多项文档说明,特别是关于未定义结果的通知
  • 修复了 MiMC 哈希函数的注册问题

总结

Gnark v0.13.0 是一个功能丰富且注重性能的版本,它为开发者提供了更多构建高效零知识证明系统的工具和选项。从基础数学运算到高级证明系统,从 CPU 到 GPU 加速,这个版本在多方面都有显著提升。特别是对 GKR 系统的支持和优化,为需要高效交互式证明的应用场景打开了新的可能性。

对于正在使用或考虑使用零知识证明技术的开发者来说,升级到 v0.13.0 将能够利用这些新功能和改进,构建更高效、更灵活的隐私保护解决方案。

登录后查看全文
热门项目推荐

热门内容推荐

最新内容推荐

项目优选

收起
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
144
1.93 K
kernelkernel
deepin linux kernel
C
22
6
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
192
274
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
145
189
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
930
553
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
8
0
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
423
392
金融AI编程实战金融AI编程实战
为非计算机科班出身 (例如财经类高校金融学院) 同学量身定制,新手友好,让学生以亲身实践开源开发的方式,学会使用计算机自动化自己的科研/创新工作。案例以量化投资为主线,涉及 Bash、Python、SQL、BI、AI 等全技术栈,培养面向未来的数智化人才 (如数据工程师、数据分析师、数据科学家、数据决策者、量化投资人)。
Jupyter Notebook
75
66
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.11 K
0
openHiTLS-examplesopenHiTLS-examples
本仓将为广大高校开发者提供开源实践和创新开发平台,收集和展示openHiTLS示例代码及创新应用,欢迎大家投稿,让全世界看到您的精巧密码实现设计,也让更多人通过您的优秀成果,理解、喜爱上密码技术。
C
64
511