可聚合 DKG:分布式密钥生成的优化方案
探索可聚合分布式密钥生成技术,了解如何优化大规模分布式系统中的密钥管理。
目录
介绍
揭秘可聚合分布式密钥生成
Anoma 的一个新颖组件是分布式密钥生成(DKG)方案。George Gkitsas 描述了 DKG 中的概念,从简单的构造开始,逐步构建到可聚合的 DKG。
引言
许多当前的密码学应用需要可信的第三方来生成和/或持有秘密。这个第三方构成了单点故障——它可以遭受 DoS 攻击、被入侵或以不诚实的方式运行。移除对可信第三方的需求可以带来更健壮和值得信赖的系统。
让我们首先用更技术性的术语来描述这个问题。当以下至少一项为真时,我们将系统中的一个节点视为“单点故障”(SPOF):
* 如果该节点变得不可用(无论是由内部原因还是由对手引起),整个系统的运行都会失败
* 节点在任何单一时间点都拥有对密钥的完全访问权限
* 节点的非正常行为可能导致系统返回错误结果
分布式密钥生成(DKG)允许一组参与方生成并存储一个共享密钥,同时防止任何单一参与方在任何时间点访问该密钥。相反,每个参与方持有称为“密钥份额”的信息片段。共享密钥可用于对称或非-对称加密,在后一种情况下,它有一个公钥对应物。
为了执行解-密或签名等密码学操作,必须组装一个最小规模超过阈值 $t$ 的多数派,并且多数派中的每个参与方都必须使用其密钥份额参与该过程。更具体地说,多数派中的每个参与方使用其份额来生成密码学操作的中间结果。然后将这些中间结果发送到一个节点,该节点将它们组合起来生成操作的最终结果。请注意,该节点不会获取任何关于密钥份额或密钥的知识。在这样设置下工作的密码学算法属于门限密码学的范畴。
例如,假设有一个发送者和一个接收者,发送者希望将加密数据发送给接收者,而接收者不信任其掌握密钥。在接收者这边,使用一组共享密钥的参与方。发送者将使用该组的公钥来加密数据,并将其发送给接收者。接收者收到数据后,会将加密数据发送给该组的参与方,请求解密。每个参与方(解密服务器)将使用其密钥份额对加密数据进行操作,并将结果(解密份额)发送回接收者。接收者将依次检查每个收到的解密份额的有效性。当接收者收集到超过阈值数量的有效解密份额时,即可完全解密加密数据。
上述过程在签名方面也类似。各方将成为签名服务器,每个服务器将生成一个签名份额,并将其发送到服务器进行验证。一旦该服务器收集到超过阈位的有效签名份额,它就能够对数据进行群组签名。任何第三方都可以使用该群的公-钥来验证签名。
本文首先解释了更简单的结构,然后逐步构建到可聚合的 DKG 结构。
> “如果你想要保守一个秘密,你也必须把它藏起来。”
>
> — 乔治·奥威尔,《1984》
---
详情文章查看:[https://anoma.net/research/demystifying-aggregatable-distributed-key-generation]