Cryptology Academy · 课时

门限 ECDSA:多方签名

学习 GG18、GG20 和 CGGMP 协议,了解它们如何在不重建密钥的情况下实现分布式 ECDSA 签名。

第 2 / 4 课13 个步骤

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

ECDSA 的门限化为何困难

ECDSA 签名需要计算随机数 nonce k、曲线上的点 R = k*G,以及签名 s = k^{-1}(h + r*x) mod n,其中 x 是私钥,r 是 R 的 x 坐标。对 k 求逆以及与私钥相乘使 ECDSA 天生具有非线性;相比之下,Schnorr 签名中的响应只是简单的线性组合。这种非线性使得在多个参与方之间分配计算极具挑战性。

GG18:Gennaro-Goldfeder 门限 ECDSA

Gennaro 和 Goldfeder 于 2018 年提出的 GG18 协议,是首个无需可信经销方即可实现安全的实用双方及门限 ECDSA 构造。其核心思想是使用 Paillier 同态加密,执行 ECDSA 非线性计算所需的乘法到加法(MtA)转换。GG18 针对静态半诚实对手提供基于模拟的安全性。

GG20:安全性改进

GG20(Gennaro 和 Goldfeder,2020 年)通过证明在没有可信设置的情况下也能抵御恶意对手,改进了 GG18。GG20 加入了零知识证明,以确保每个参与方都正确遵循协议。这些证明可以防止恶意参与方操纵一次性随机数或签名,从而提取其他参与方密钥份额中的信息。GG20 成为了许多生产环境 MPC 钱包实现的基础。

CGGMP21:最先进的技术

CGGMP21(Canetti、Gennaro、Goldfeder、Makriyannis 和 Peled,2021 年)是当前最先进的门限 ECDSA 协议。它实现了可识别中止,也就是说,如果签名协议因恶意行为而失败,协议可以识别应对此负责的参与方。这对于重视问责的企业部署至关重要。CGGMP21 已在包括 tss-lib 和 multi-party-sig 在内的热门 MPC 库中实现。

乘法到加法转换

门限 ECDSA 的核心挑战,是在不泄露秘密份额的情况下计算它们的乘积。MtA(乘法到加法)转换会将两个参与方份额 a*b 的乘积转换为加法份额:参与方 1 获得 alpha,参与方 2 获得 beta,使得 alpha + beta = a*b。这一过程使用 Paillier 加密实现:参与方 1 加密 a,参与方 2 对密文同态地乘以 b 并加入随机性,随后由参与方 1 解密结果以获得加法份额。

MtA 中的 Paillier 同态加密

Paillier 加密是一种部分同态加密方案,支持加法以及与明文相乘。给定加密结果 Enc(a),任何人都可以在不解密的情况下,为已知的 b 计算 Enc(a*b)。这一特性使 MtA 协议成为可能:参与方 1 生成 Paillier 密钥对,并发送 Enc(k1) 和 Enc(x1)(分别为一次性随机数和私钥的份额)。参与方 2 使用同态运算计算自己的贡献,而无需获知 k1 或 x1。

门限 ECDSA 中的签名轮次

门限 ECDSA 签名通常涉及多轮通信。在 GG20 中,预处理阶段(2 轮)会计算一次性随机数和随机盲化值的承诺,在线签名阶段(1 轮)则会合并部分签名。预处理可以在消息确定之前完成,从而将在线延迟降低到单轮。CGGMP21 进一步优化了这一过程。

可识别中止

可识别中止意味着,如果门限签名协议失败(因为某个参与方发送了格式错误的消息,或未遵循协议),诚实参与方可以通过密码学方法确定哪个参与方存在违规行为。这要求在每个步骤都提供计算正确性的零知识证明。如果没有可识别中止,恶意参与方就可能通过拒绝完成协议来发起拒绝服务,同时不被识别出来。

EdDSA 和 FROST:更易实现门限签名

EdDSA(基于 Schnorr、使用 Ed25519 的签名)比 ECDSA 更易实现门限签名,因为 Schnorr 签名具有线性结构:响应 z = r + c*x 是加法份额之和。Komlo 和 Goldberg 于 2020 年提出的 FROST(灵活、轮次优化的 Schnorr 门限签名)实现了无需可信设置的两轮门限 Schnorr 签名。FROST 正由 IETF 进行标准化(RFC 草案),用于保护隐私的协议和加密货币钱包。

门限 ECDSA 的性能

由于 MtA 协议和零知识证明,门限 ECDSA 的计算成本高于单方 ECDSA。GG20 的双方签名在现代硬件上大约需要 1–2 秒;当参与方数量 n 较大时,由于需要执行更多成对的 MtA 操作,门限签名耗时会更长。CGGMP21 的优化可将耗时降低到数百毫秒。对于重视签名延迟的加密货币交易而言,这一性能是可以接受的,但仍然不可忽视。

生产环境部署

门限 ECDSA 已在机构金融领域实现大规模部署。Fireblocks 使用基于 GG20 的门限 ECDSA,为超过 4 万亿美元的交易量提供安全保障。Coinbase Prime 使用基于门限签名的 MPC 托管服务。Qredo 和 Copper.co 为机构资产管理提供门限 ECDSA。tss-lib Go 库(由 Binance 使用)和 multi-party-sig(由 Coinbase 使用)是重要的开源实现。

MtA 转换测验

Paillier 同态加密在门限 ECDSA 中发挥什么作用?

门限 ECDSA 回顾

门限 ECDSA 允许 t 个参与方在任何参与方都不知道完整密钥的情况下共同签名。ECDSA 的非线性结构要求使用 Paillier 同态加密执行 MtA 转换。GG18 首创了这一方法,GG20 加入了针对恶意对手的安全性,CGGMP21 则加入了可识别中止。通过 FROST,EdDSA/Schnorr 更易实现门限签名(2 轮、无需可信设置)。Fireblocks 和 Coinbase 的生产环境部署为数万亿美元的资产提供了安全保障。

免费开始

用 AI 导师学习 Cryptology Academy — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
67
课程
261

常见问题解答

「门限 ECDSA:多方签名」课时是免费的吗?

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

「门限 ECDSA:多方签名」这节课中我会学到什么?

学习 GG18、GG20 和 CGGMP 协议,了解它们如何在不重建密钥的情况下实现分布式 ECDSA 签名。 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cryptology Academy 需要有经验吗?

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

「门限 ECDSA:多方签名」课时需要多长时间?

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

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

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

此课程中的所有课时

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