0Pricing
Cryptology Academy · 课时

分布式密钥生成协议

探索 DKG 协议,了解各方如何共同生成共享密钥,且任何单方都无法获知完整秘密。

分布式密钥生成协议 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。

DKG 的目标与动机

分布式密钥生成(DKG)解决了门限密码学中的可信分发者问题。如果没有 DKG,就必须由某个中央方生成密钥对并分发份额,而且该方会在某个时刻知道完整私钥。DKG 允许 n 个参与方通过协议共同生成公钥/私钥对,其中任何单个参与方都无法获知私钥,包括协议协调者在内。

佩德森 DKG(1991)

佩德森 DKG 是首个实用的 DKG 协议,于 1991 年发表。n 个参与方中的每一方都会生成一个随机秘密 s_i,并运行可验证秘密共享(VSS)协议来共享该秘密。每一方都会广播其多项式系数的承诺。所有参与方完成各自贡献的共享后,合并后的秘密就是所有 s_i 值之和,而每一方都持有这个总和的一个份额。

作为构建模块的费尔德曼 VSS

费尔德曼 VSS(费尔德曼于 1987 年提出的可验证秘密共享)是大多数 DKG 协议的核心构建模块。分发者将多项式系数承诺为群元素(C_j = g^{a_j} mod p)。收到份额 f(i) 的每一方,都可以通过检查 g^{f(i)} 是否等于 C_j^{i^j} 的乘积,来根据这些承诺验证该份额。这使参与方能够检测分发者是否发送了错误的份额。

联合费尔德曼 DKG 及其局限性

联合费尔德曼 DKG 为全部 n 个参与方并行运行费尔德曼 VSS,每一方都作为自己秘密的分发者。随后,如果参与方收到无效份额,就会提出投诉。最终密钥是未被投诉的分发者所提供秘密之和。然而,联合费尔德曼 DKG 无法抵御根据协议消息来决定入侵对象的自适应对手;Gennaro、Jarecki、Krawczyk 和 Rabin 发现了这一弱点。

GJKR 安全 DKG

GJKR DKG 协议(Gennaro、Jarecki、Krawczyk 和 Rabin 于 1999 年及 2007 年提出)解决了联合费尔德曼 DKG 的弱点。GJKR 使用佩德森 VSS(具有信息论隐藏性的承诺)代替费尔德曼 VSS,并增加了投诉轮次,使参与方可以对无效份额提出异议。由此得到的 DKG 能够抵御自适应对手,并成为安全 DKG 的理论标准参考。

DKG 的通信轮次

GJKR DKG 需要三个轮次:承诺轮(每一方广播 VSS 承诺)、份额轮(参与方通过点对点方式相互发送份额)以及投诉轮(参与方广播关于无效份额的投诉)。无法解决投诉的参与方会被取消资格。第四轮会将有效参与方的贡献合并为最终公钥和分布式私钥份额。

以太坊验证者密钥中的 DKG

以太坊的验证者密钥管理使用 DKG 实现分布式验证者技术(DVT)。EIP-4844 和 DVT 生态系统(Obol 网络、SSV 网络)使用基于 BLS12-381 的门限 BLS 签名,使验证者委员会能够签署区块,同时不让任何单个运营方知道完整的验证者密钥。这提高了验证者的容错能力,并降低了密钥遭入侵后被惩罚的风险。

DRAND 分布式随机性信标

DRAND 是一种分布式随机性信标,以太坊信标链使用它来生成不可预测的随机数。DRAND 在一组熵联盟节点(Cloudflare、EPFL、Protocol Labs 等)之间运行 DKG,以生成门限 BLS 密钥。每一轮中,t-of-n 个节点贡献部分签名,这些签名合并后会形成不可预测的随机值。任何单个节点都无法操纵或预测输出。

施诺尔与 ECDSA 的 DKG

对于施诺尔/EdDSA 门限方案而言,DKG 比 ECDSA 简单得多。在施诺尔门限方案中,分布式私钥就是各参与方秘密之和(x = x1 + x2 + ... + xn),公钥则是各公钥份额之和(X = X1 + X2 + ... + Xn)。对于 ECDSA,由于存在非线性,DKG 必须生成乘法份额,因此需要更复杂的协议。

密钥份额的刷新协议

长期存在的门限密钥份额可能会在对手随着时间缓慢入侵参与方的过程中逐步遭到泄露。主动式秘密共享(刷新协议)会定期重新随机化份额,同时不改变底层密钥。刷新后,刷新前的份额将失效,从而缩小易受攻击的窗口。GJKR 及其后续协议都包含刷新协议,其运行结构与初始 DKG 相同。

实用的 DKG 实现

DKG 已在多个生产系统中得到实现。以太坊 DVT 客户端 Obol Charon 使用基于 BLS12-381 上的佩德森 VSS 的 DKG 仪式。Silence Laboratories 的 Silent Shard 使用 DKG 实现移动端 MPC 钱包。dkg-go 库为 Go 应用实现了 GJKR。Threshold Network(原名 Keep Network)使用 DKG 实现其门限 ECDSA 服务,以保护比特币上的 tBTC。

佩德森 DKG 小测验

是什么关键特性使佩德森 DKG 优于单一可信分发者方案?

DKG 协议回顾

DKG 让全部 n 个参与方共同生成门限密钥对,从而消除了可信分发者,而且任何参与方都不知道私钥。佩德森 DKG 让每一方都对自己的贡献运行 VSS。GJKR 通过投诉轮次增加了自适应安全性。DKG 支撑着以太坊 DVT(Obol、SSV)、DRAND 随机性信标以及生产环境中的 MPC 钱包方案。刷新协议通过定期重新随机化份额来延长安全保护。

常见问题解答

「分布式密钥生成协议」课时是免费的吗?

是的 — 「分布式密钥生成协议」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。

「分布式密钥生成协议」这节课中我会学到什么?

探索 DKG 协议,了解各方如何共同生成共享密钥,且任何单方都无法获知完整秘密。 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cryptology Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「分布式密钥生成协议」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cryptology Academy 课中编写并运行代码吗?

能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 门限签名方案:基本概念
  2. 门限 ECDSA:多方签名
  3. 分布式密钥生成协议
  4. 区块链与 HSM 中的门限方案
← 返回 Cryptology Academy