ZKDocs 新增内容:深入解析密码学协议与安全实现

ZKDocs 近期新增了四个关键密码学协议章节,包括内积论证(IPA)、Pedersen承诺、KZG多项式承诺及宽模约减技术,为开发者提供详实的实现指南与安全考量,助力零知识证明等非标准密码协议的安全部署。

ZKDocs 新增内容 - The Trail of Bits Blog

我们已为 ZKDocs 添加了更多内容

Jim Miller
2023年12月26日
密码学

我们更新了 ZKDocs,新增了四个章节并对现有内容进行了补充。ZKDocs 为那些在实践中使用但很少被讨论的密码协议提供解释、指导和文档。因此,我们新增了四个章节,详细介绍了之前缺乏实现指南的常见协议:

  • 内积论证(IPA),它是 Bulletproofs 的基础
  • Pedersen 承诺
  • KZG 多项式承诺
  • IPA 多项式承诺

我们还在随机采样章节新增了一个子节,详细介绍了一种称为宽模约减的有效随机采样技术。该技术在特定密码学圈内广为人知,但据我们所知尚未被广泛公开。

本文对这些新增内容进行了高层面的总结。

ICYMI:什么是 ZKDocs?
近两年前,我们首次发布了网站 ZKDocs,旨在为非标准密码协议提供更好的实现指南。ZKDocs 为零知识证明等常见非标准化密码协议提供高层摘要、协议图、重要安全考量等内容。

内积论证(IPA)

如果您关注密码学领域,可能听说过 Bulletproofs——一种近年来流行的零知识证明。尽管广受欢迎,但很少有人真正详细理解这些证明的工作原理,因为它们非常复杂!要感受其复杂性,请查看 dalek cryptography Bulletproofs 实现中的优秀协议图:

Bulletproofs 协议图(来源)

Bulletproofs 的基本构建块是 IPA。与大多数密码协议一样,IPA 和 Bulletproofs 之所以如此复杂,是因为它们经过理论家多年迭代改进和优化。如果没有先前更简单迭代的背景,很难理解最终协议。幸运的是,我们在 ZKDocs 的新章节将 IPA 分解为更简单的结构,并展示了如何通过这些改进实现当前使用的最终协议。与所有 ZKDocs 内容一样,本节包含有用的协议图和重要安全考量。

承诺方案

密码承诺方案的概念相对直观:一个人(承诺方)首先产生一个密码承诺,向所有其他观察者隐藏某个秘密值,然后在稍后时间打开承诺以揭示该值。对于安全方案,承诺不会泄露任何关于秘密的信息,并且承诺方不可能对秘密值进行模棱两可的解释。传统承诺方案允许承诺方提交并揭示特定值,通常是素数模整数。

多项式承诺是标量承诺方案的泛化,也是零知识协议中的重要构建块。多项式承诺方案(PCSs)允许一方向另一方证明多项式在某个点集上的正确评估,而不泄露关于多项式的任何其他信息。

我们更新了 ZKDocs,解释了最常见的承诺方案——Pedersen 承诺,以及两种常见的 PCS:IPA PCS(源自 IPA)和 KZG PCS。

宽模约减

密码学的许多方面通常涉及随机值和素数;各种协议的一个常见要求是需要为某个素数 p 生成一个介于 0 和 p 之间的随机值。虽然这听起来相对简单,但在实践中安全地做到这一点很棘手。

问题是计算机处理的是位和字节。通常,随机数生成器会产生一个介于 0 和 2^n 之间的随机数,其中 n 是请求的随机位数。不幸的是,2^n 不是素数,因此不能直接用于为某个 p 生成介于 0 和 p 之间的值。这种基本不匹配导致许多人使用以下明显、简单但不安全的方法生成随机数,我们在 ZKDocs 中详细介绍了这一点:

不安全随机采样模 p(来源)

ZKDocs 记录了几种不同的技术来避免上述图中描述的模偏差。最好的技术称为宽模约减,概念很简单:如果你有一个 k 位的素数 p,那么生成一个 (k + 256) 位的随机值(其中 256 是一个可调整的安全参数),然后将其模 p 约减。(请注意,这也适用于复合模数,因此 p 甚至不必是素数,但我们使用素数,因为它是一个常见例子)。如果你好奇为什么这种方法安全,ZKDocs 的最新补充内容分解了统计论证来解释原因。

我们需要您的帮助!

我们希望积极维护和扩展 ZKDocs 的内容。为了使 ZKDocs 尽可能有效,我们希望确保新内容对社区有帮助。如果您喜欢 ZKDocs,请告诉我们您希望我们添加哪些其他内容!最好的方式是在 ZKDocs GitHub 页面上直接提出问题。

如果您喜欢这篇文章,请分享: Twitter LinkedIn GitHub Mastodon Hacker News

页面内容

  • 内积论证(IPA)
  • 承诺方案
  • 宽模约减
  • 我们需要您的帮助!

近期文章

  • 使用 Deptective 调查您的依赖项
  • 做好准备,Buttercup,AIxCC 评分回合正在进行中!
  • 使您的智能合约超越私钥风险
  • Go 解析器中意外的安全陷阱
  • 我们审查首批 DKLs23 库的收获
  • Silence Laboratories 的 23 个库

© 2025 Trail of Bits.
使用 Hugo 和 Mainroad 主题生成。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计