TL;DR

  • 阈值密码学将执行密码操作的能力分配给多个参与者。只有当达到授权阈值的参与者协同合作时,操作才能成功。在阈值签名中,参与者无需事先重建完整的私钥,即可在同一组公钥下共同生成一个常规数字签名。
  • t-of-n 这一符号表示,要完成预期的操作,至少需要 n 个参与者中的 t 个。一个安全的方案通常旨在保护密钥机密性,使其免受少于 t 个恶意参与者的破坏,并在至少 t 个合格参与者保持在线时维持可用性。这些保障取决于所定义的攻击者、网络和实现模型。
  • 沙米尔秘密共享将存储的秘密分割,以便阈值能够将其重建。普通的沙米尔共享并未定义在秘密处于分割状态时如何计算 ECDSA、Schnorr 或 EdDSA 签名。阈值签名协议可能在内部使用沙米尔份额,但它增加了交互式计算、证明、随机数处理和验证等环节,因此无需进行重建。
  • 各方就确切的消息和会话达成一致,生成一次性随机数或承诺,根据各自的私有份额计算签名份额,验证这些份额并将其聚合。输出结果是基于组公钥的标准签名。该协议仅披露最终签名以及应用程序暴露的任何元数据,而非完整的私钥。
在一个街区

多方计算(MPC)是一个广泛的领域。阈值签名是MPC的一种应用,并非所有多方计算系统的同义词。 t-of-n 阈值签名通常需要至少 t/n 名参与者才能生成签名,其目标是在少于 t 次恶意攻击的情况下确保秘密安全。必须同时考虑可用性阈值和保密性阈值。 Shamir 秘密共享非常适合分割存储的秘密。单独使用时,它会在常规签名之前重建该秘密;而阈值签名则在份额保持分布式状态时执行签名计算。 当采用安全的分布式密钥生成协议从一开始就生成密钥份额时,完整的私钥根本无需存在。但在使用可信中间商、导入现有密钥或重建备份的系统中,完整的私钥可能存在。

什么是阈值密码学?

快速解答

阈值密码学将执行密码操作的能力分配给多个参与者。只有当达到授权阈值的参与者协同合作时,操作才能成功。在阈值签名中,参与者无需事先重建完整的私钥,即可在同一组公钥下共同生成一个常规数字签名。

传统的签名密钥是一种集中式授权机制。凡能使用私钥者均可进行签名,而永久丢失私钥者可能丧失访问权限。备份虽能提高可用性,却会产生同一授权的额外副本。阈值密码学改变了这种结构:参与者持有份额,并共同计算加密操作。其目标是确保单个设备、操作员或安全漏洞不足以同时导致密钥被盗和永久丢失。

“阈值”一词描述了一种策略,例如“2/3”或“3/5”。在“2/3”签名设计中,任意两名授权参与者即可完成操作。 单个参与者不应能够单独进行签名或获知底层密钥。份额可存储在设备、硬件安全模块、服务器、离线系统中,或由不同人员持有。架构的重要性不亚于算术逻辑:由一名云管理员控制的三份份额,其行为可能表现为一个故障域,而非三个独立主体。

多方安全计算(MPC)的范围比阈值签名更广。多方安全计算研究的是各方如何在控制信息泄露的同时,对私有输入进行函数计算。阈值密钥生成、签名、解密和随机数生成则是其特定应用。因此,标榜为“MPC”的钱包可能采用截然不同的协议、阈值、恢复设计和安全模型。仅凭这一标签,很难判断其实际的安全保障程度。

t-of-n 实际上能提供什么保障?

快速解答

t-of-n 这一符号表示,要完成预期的操作,至少需要 n 个参与者中的 t 个。一个安全的方案通常旨在保护密钥机密性,使其免受少于 t 个恶意参与者的破坏,并在至少 t 个合格参与者保持在线时维持可用性。这些保障取决于所定义的攻击者、网络和实现模型。

阈值并非一种通用的保证。专家们将保密性、不可伪造性、可用性、鲁棒性和可追溯性区分开来。一种设计可能既能保护密钥,又允许一名恶意参与者阻断每次签名尝试;它可能能够识别破坏者,但若不替换该参与者仍无法完成签名;它可能在静态攻击者模型下容忍一名被攻破的签名者,但在攻击者随时间推移攻破不同签名者时则会失败。

属性它所解答的问题为何重要
保密性 / 密钥隐私少于 t 个份额是否会泄露私钥或足以重建私钥的信息?保护底层权威机构免受低于阈值的攻击。
不可伪造性攻击者能否在未达到授权阈值的情况下生成有效的签名?这是阈值签名的安全核心目标。
活性当有足够数量的诚实参与者在线时,他们能否完成操作?一个安全但会永久中止的钱包是无法使用的。
健壮性即使遇到格式错误的消息或恶意参与者,协议能否仍能完成操作,而不是仅仅中止?决定其对抗拒绝服务攻击的韧性。
可识别的中断如果协议失败,诚实的参与方能否确定是哪一方参与者行为不当?支持参与者排除、责任追溯和运行恢复。
主动安全能否刷新共享数据,以防止不同时间点发生的入侵问题无限期累积?在该模型下,将攻击者的刷新窗口限制为一个。
自适应安全如果攻击者在观察协议会话期间或之后选择要破坏的目标,会发生什么情况?更贴近长期运行的生产系统的实际模型。
可组合性这些保障在存在多个并发会话和周边协议的情况下是否依然有效?这对大规模服务签名至关重要。

即使是“少于 t 个份额不会泄露任何信息”这一表述也需要明确其适用范围。完美的沙米尔秘密共享仅针对数学份额给出了信息论层面的论断。而实际部署的阈值钱包还会生成交易记录、公开承诺、日志、时间信息和错误消息。这些周边系统可能会泄露元数据、引发选择输入攻击或暴露实现缺陷,而这些情况并不与理想秘密共享定理相矛盾。

要点:t-of-n 仅说明了法定人数,但并未说明攻击者模型、恶意签名者能否使系统停摆、份额能否刷新,以及代码是否经过独立验证。

为什么沙米尔秘密共享与阈值签名不同?

快速解答

沙米尔秘密共享将存储的秘密分割,以便阈值能够将其重建。普通的沙米尔共享并未定义在秘密处于分割状态时如何计算 ECDSA、Schnorr 或 EdDSA 签名。阈值签名协议可能在内部使用沙米尔份额,但它增加了交互式计算、证明、随机数处理和验证等环节,因此无需进行重建。

沙米尔(Shamir)于1979年提出的构造方案,将秘密表示为一个随机多项式的常数项。每位参与者都会获得该多项式上的一点。只要达到所需的阈值,即可对多项式进行插值并恢复秘密;若点数不足,则无法确定秘密。这是一种保护备份、托管材料和恢复密钥的优雅而强大的方法。

操作上的局限性出现在必须使用该秘密时。如果唯一可用的工具是沙米尔重建算法,则授权参与者需在一台机器上组合各自的碎片,获取完整的私钥,并调用普通的签名算法。此时,重建设备、内存、进程日志、交换空间以及操作员都将成为单一的暴露点。虽然秘密随后可以被擦除,但攻击面已经存在。

阈值签名是对份额进行算术运算。参与者生成部分值,证明或验证这些值是否格式正确,并将部分结果组合成签名。在签名会话期间,完整的签名密钥无需出现。许多阈值方案将沙米尔式多项式分割作为其组成部分之一。真正的区别在于:一方面是进行重建的密钥存储,另一方面则是完全分布式的签名协议。

能力普通沙米尔备份阈值签名
跨位置存储密钥是。是,以实时密钥分量或协议状态的形式。
使用少于阈值的密钥份额无法重建。根据该安全模型,不存在有效的签名。
在不重建密钥的情况下进行签名不,仅凭此无法实现。是。
生成一个普通签名仅在重建并进行普通签名后才行。是的,通过组合签名份额。
需要非ce和转录本控制仅用于存储时则不需要。是的;这些是签名安全性的核心。
在不更改公钥的情况下更换参与者需要明确的重新分发流程。仅当该方案支持刷新或重新共享时才可行。
最适合冷备份和灾难恢复。通过分布式授权进行重复的操作签名。

完整的私钥是否曾真正存在过?

简答:有时会。在基于DKG的系统中,参与者共同生成份额和组公钥,因此在协议假设下,没有任何单个参与者能够获知完整的私钥。但可信经销商、导入密钥转换或重建备份等操作,可能会在设置或恢复过程中生成完整的密钥。决定答案的是系统生命周期,而非营销标签。

Threshold signature lifecycle diagram. It compares trusted-dealer or imported-key setup with distributed key generation, then shows live shares, participant validation, nonce commitments or preprocessing, signature-share generation, aggregation and ordinary chain verification. A warning explains that the full key may exist in dealer or import paths but not in a correctly executed DKG path.

图2。“密钥从未存在”这一说法仅在以下情况下成立:系统生命周期设计旨在避免在设置、签名、备份和恢复过程中出现完整密钥。

可信经销商

经销商生成一个常规私钥,创建密钥分片并进行分发。如果经销商使用强随机性、对每位参与者进行身份验证、验证分片承诺,并可靠地销毁原始密钥和未使用的分片,则此过程可以是安全的。尽管如此,这仍会产生一个掌握完整密钥的时刻和主体。RFC 9591 将密钥生成置于主FROST协议之外,并将可信经销商流程仅作为附录包含其中。

分布式密钥生成

分布式密钥生成(DKG)协议允许参与者贡献随机性,并共同推导出密钥份额及一个公共密钥。只要协议正确实现且未超过腐败阈值,任何单一参与方都不应获知对应的私钥。DKG并非单一算法:不同的方案对广播、认证信道、投诉、恶意参与方及参与者可用性有不同的假设。

导入现有密钥

机构可能希望保留现有的地址、账户历史或公钥。某些协议支持转换或共享现有密钥。该过程可能需要密钥所有者处理完整的密钥,也可能使用专门的导入协议。导入前的安全历史依然重要:分发密钥并不能撤销先前的复制、拍照、备份或泄露。

恢复与紧急重建

某些系统保留了一条“紧急恢复路径”,可通过备份材料重建密钥。这虽能提升灾难恢复能力,但同时又重新引入了阈值设计原本旨在避免的“单密钥暴露”风险。其他系统则刻意不提供重建路径,并要求每次恢复操作都必须达到一定数量的在线参与者阈值。这两种方案均非自动正确;该选择应明确规定、经过测试,并纳入威胁模型中。

MPC 如何从多个份额生成一个签名?

快速解答

各方就确切的消息和会话达成一致,生成一次性随机数或承诺,根据各自的私有份额计算签名份额,验证这些份额并将其聚合。输出结果是基于组公钥的标准签名。该协议仅披露最终签名以及应用程序暴露的任何元数据,而非完整的私钥。

数字签名是消息、公钥和秘密签名材料之间的数学关系。阈值协议利用签名方案的代数特性或使用通用安全计算工具,使每个参与者在不泄露其输入份额的情况下对该关系做出贡献。Schnorr 风格签名与 ECDSA 之间的细节存在显著差异,但操作生命周期具有共同的阶段。

  • 会话建立。系统定义组密钥、参与者集、阈值、精确消息、链特有的签名摘要、协议版本以及唯一的会话标识符。
  • 输入验证。每个参与者需验证消息在语法上是否有效,且符合策略要求。阈值协议绝不能成为任意输入的签名预言机。
  • 随机数或预签名准备。参与者生成一次性密钥值、承诺,以及在某些 ECDSA 方案中所需的乘法材料。这些值必须是唯一的,与会话正确绑定,并像密钥材料一样受到保护。
  • 签名份额生成。至少 t 名参与者将其私有份额与公共记录相结合,生成部分签名或相关的 MPC 输出。
  • 份额验证与聚合。无效份额将被拒绝。协调员或所有参与者将有效份额组合成一个最终签名。
  • 常规验证。区块链或应用程序使用其常规验证器,在组公钥下对最终签名进行验证。它无需理解内部阈值协议。

协调员是一个协议角色,不一定是可信密钥持有者。例如在 FROST 中,协调员可以收集承诺、选择签名者集、分发消息并聚合份额,而无需接收私有份额。协调员仍可能引发拒绝服务、发送不一致的视图或提交恶意消息,因此经过身份验证的通信和参与者端的验证仍然必不可少。

为什么随机数、预处理和协调器很重要?

快速解答

阈值签名引入了围绕一次性随机数、参与者承诺和共享记录的协议状态。重复使用或操纵随机数、混淆会话、接受格式错误的证明,或允许参与者对不同消息进行签名,都可能导致群组密钥泄露或产生无效签名。预处理虽然能降低延迟,但会生成必须加以保护的宝贵预签名库存。

随机数是密钥的一部分

Schnorr、EdDSA 和 ECDSA 签名均依赖于通常称为“随机数”的每个签名对应的密钥值。在普通的单方签名中,可靠的库可以在一个可信边界内生成或推导出随机数。而在阈值协议中,多个参与方共同贡献或计算与随机数相关的状态。重复使用的随机数、重放的承诺或故意畸形的乘法消息,都可能导致一个或多个签名会话演变为密钥提取攻击。 RFC 9591 明确警告称,适用于普通 EdDSA 的确定性随机数推导在多方环境中是不安全的,需要生成全新的均匀随机随机数。

预处理将操作移至消息之前

许多阈值-ECDSA系统会在交易内容确定之前就计算出计算成本较高的材料。这样,在线阶段就可以简化为少量消息,这对冷签名者和高延迟网络非常有用。其代价在于操作层面:预签名会变成一次性使用的加密资源。重复使用、回滚、在副本间复制或状态同步丢失都可能造成灾难性后果。备份绝不能将已消耗的预签名恢复为未使用状态。

会话绑定可防止混搭攻击

每条消息都应与协议版本、组公钥、参与者集、消息摘要、链、网络、签名者角色以及唯一会话绑定。参与者应拒绝过期或不一致的承诺,并确认最终交易的字节与策略授权的字节完全一致。这正是应用设计与密码学交汇之处:如果适配器提供了错误的有效载荷,即使签名核心在形式上安全,仍可能对错误的链、错误的随机数、错误的合约调用或错误的目标进行签名。

健壮性并非自动实现

某些协议虽能保证机密性和不可伪造性,但一旦有参与者行为不当就会中止。可识别的中止机制可以指明导致失败的责任方;而健壮性则旨在即使存在某些恶意参与者,仍能完成交易。RFC 9591 并未声称具备健壮性,并指出诸如 ROAST 之类的高层封装协议可在某些场景下应对恶意干扰。

什么是 FROST,RFC 9591 标准化了什么?

快速解答

FROST 是一种阈值 Schnorr 协议,经过两轮通信即可生成签名。RFC 9591 规定了签名协议、密码套件和测试向量。它并未对分布式密钥生成、鲁棒性、元数据保护或单轮预处理变体进行标准化,且该文档属于 IRTF 研究类信息性 RFC,而非互联网标准。

FROST 利用了 Schnorr 签名的线性结构。每位选定的参与者持有组签名密钥的一部分。在第一轮中,参与者生成一次性随机数并发布承诺。在第二轮中,他们计算与消息、签名者集和承诺相关的签名份额。协调员验证并合并这些份额,以获得最终的 Schnorr 签名。

RFC 9591 包含RFC 9591 本身并未提供
两轮 FROST 签名协议。完整的分布式密钥生成标准。
适用于 Ed25519、ristretto255、Ed448、P-256 和 secp256k1 的密码套件。与使用相同曲线的每个协议自动兼容。
签名份额验证和聚合程序。针对恶意参与者的强健完成机制。
作为参考附录的“可信经销商”密钥生成方法。保证在设置过程中不存在完整的密钥。
针对随机数重用、侧信道和消息验证的安全考量。元数据隐私、防止降级或后量子安全性。
针对指定套件的测试向量。针对特定区块链的交易解析、策略或钱包恢复。

研究型 RFC 与互联网标准之间的区别至关重要。RFC 9591 代表了加密论坛研究小组的共识,并为实现者提供了一份精确的通用规范,但其状态部分明确指出该文档仅供参考,并不属于 IETF 标准轨道。NIST 已另行启动针对阈值方案的多年评估流程;FROST 正是此次征集预览的方案之一。

RFC secp256k1 套件是否与比特币 Taproot 兼容?

并非自动兼容。比特币 BIP340 定义了仅含 x 的公钥、带标签的哈希、特定的挑战方程以及 64 字节编码。RFC 9591 中的 FROST secp256k1 密码套件则采用其特有的域分离哈希构造和通用压缩点处理方式。即使协议使用相同的曲线,生成的签名仍可能被 BIP340 验证器拒绝。 因此,与比特币兼容的阈值 Schnorr 签名需要一种专门针对 BIP340 语义设计的构造和实现。

要点:“使用 secp256k1”并非兼容性证明。曲线仅是签名系统中的一个层级。

为什么阈值 ECDSA 比阈值 Schnorr 更难实现?

快速解答

Schnorr 签名是线性的,因此可以对正确加权的签名份额进行加法运算。ECDSA 包含与秘密随机数逆元的乘法运算,这迫使各方在不泄露共享密钥的情况下计算其乘积和逆元。这需要额外的多方计算(MPC)机制、证明和协议轮次。

简而言之,一个 ECDSA 签名包含一个值 s = k^-1(H(m) + r x) mod q,其中 x 是私钥,k 是一次性随机数。 在阈值设置中,任何一方都不应知道 x 或 k。因此,参与者必须获得涉及 x 和 k 的乘积的加法或多项式份额,以及最终与逆元相关的表达式的份额,同时防止恶意方选择会导致泄露另一份额的畸变值。

基于Paillier的协议采用加法同态加密和“乘法转加法”(MtA)子协议。其他协议族则使用类群或无知转移。 零知识证明或一致性检查可验证加密值和份额是否位于规定范围内并满足协议关系。与阈值Schnorr相比,这些组件带来了更大的实现复杂度:大整数运算、证明系统、记录管理、预处理、故障归因以及多项密码学假设。

维度阈值Schnorr / FROST阈值 ECDSA
核心代数线性关系;签名份额可进行加法组合。涉及共享随机数逆元和密钥乘积的非线性关系。
典型的签名交互过程RFC 9591 中为两轮;RFC 之外存在预处理变体。因协议而异;在线/离线设计可缩短在线阶段。
辅助原语素数阶群、哈希、密钥分割、承诺及份额验证。可选添加 Paillier 加密或类群加密、无知转移、范围证明和零知识验证。
实现复杂度相当高,但相对直接。较高,且历史上存在许多实现陷阱。
验证者输出针对所选套件的普通 Schnorr 签名或兼容签名。当满足链特有的编码规则时,生成普通 ECDSA 签名。
协议概况FROST 采用共享的 CFRG 规范。存在多个协议家族;尚无单一的通用部署标准。

阈值 ECDSA 依然重要,因为比特币的传统密钥和 SegWit v0 密钥消费、以太坊的外部持有账户以及许多其他已部署系统均依赖 ECDSA 进行验证。与现有地址和硬件的兼容性可以证明这种复杂性的合理性,但在做出选择时,应充分意识到更大的攻击面。

哪些阈值 ECDSA 协议族值得关注?

快速解答

已部署及研究领域的协议包括Paillier/MtA协议(如Gennaro-Goldfeder和CGGMP)、Doerner-Kondi-Lee-Shelat提出的双方和多方协议、类群构造以及较新的两轮和三轮设计。GG18、GG20和CGGMP21等名称代表的是具体论文,而非可互换的行业标准。

该领域发展迅速,且协议昵称往往被不准确地使用。实现者必须明确指定具体的论文修订版、参数集、安全性证明及代码版本。被描述为“GG18”的库可能包含后续补丁、省略了必需的证明、添加了专有预处理,或实现了较旧且存在漏洞的变体。昵称中的年份并不能充分说明其安全性。

协议 / 协议族形态重要贡献或注意事项
Lindell-Nof 及相关双方 ECDSA主要为2-of-2设计。适用于两方的实用分布式密钥生成与签名方案;存在不同的安全假设和构造方式。
GG18 / 更新版Gennaro-Goldfeder通用阈值ECDSA。利用Paillier/MtA实现快速无中介初始化及实用的多方签名;实现细节和修订版本至关重要。
GG20带预处理的一般阈值 ECDSA。增加了非交互式在线阶段和可识别的中止机制;已发布的修订版修正了相关问题。
CGGMP / CGGMP21签名者数量不限;采用主动式和统一通信(UC)导向的设计。在给定假设下,结合了预处理、主动刷新、自适应安全性和可识别中止机制。
DKLS 双方和多方协议族基于OT的ECDSA协议。在某些构造中避免了 Paillier 假设;后续研究提出了三轮不诚实多数签名方案。
类群及更新构造各种阈值及在线/离线权衡。旨在改善带宽、轮数、假设或问责机制;NIST 征集活动正在收集多个候选方案。

本文未对这些协议进行排名。性能取决于参与者数量、地理分布、阈值、预处理、硬件、可用性假设以及实现质量。一篇较新的论文并不一定比成熟的实现更安全,而成熟的实现也不仅仅因为其基础论文经过充分研究就必然安全。

FROST、MuSig2 与普通多签名有何区别?

快速解答

FROST 是一种基于单组密钥份额的 t-of-n 阈值 Schnorr 方案。MuSig2 聚合了多个独立的 Schnorr 密钥,且要求所有 n 名签名者参与,因此属于 n-of-n 方案,而非通用阈值方案。普通链上多签名则要求区块链脚本或合约根据其自身策略验证多个密钥或签名。

特性FROSTMuSig2链上多签 / 合约钱包
签名人结构一个组密的分数。若干个完全独立的私钥。若干完整的密钥或合约定义的其他授权。
法定人数t-of-n。n-of-n。链特有的 m-of-n 或可编程策略。
验证者可见一个签名和一个组公钥。一个聚合 Schnorr 签名和聚合密钥。多个签名、脚本执行或合约调用——除非被 Taproot 密钥路径等构造所隐藏。
密钥生成Dealer 或 DKG / 分布式初始化。对现有公钥进行非交互式聚合。每个签名者创建一个普通密钥;策略在链上部署。
参与者替换如果支持,可通过重新共享来保留组公钥。签名人变更将导致聚合密钥发生变化。通常需要新的脚本、合约状态更新或新地址;具体设计因情况而异。
主要标准参考RFC 9591 用于两轮 FROST 签名。BIP327 用于 BIP340 兼容的 MuSig2。比特币脚本/Taproot规则、以太坊合约代码或其他链特有的机制。

MuSig2 有时被称为阈值签名,因为涉及多个参与方的协作。BIP327 明确指出,它是一种 n-of-n 多重签名方案,而非 t-of-n 阈值签名。聚合中使用的每个密钥仍是一个完整的签名密钥。如果其中一名参与方不可用,除非存在独立的备用路径,否则该组无法进行签名。

Taproot 使得可见性比较变得复杂。MuSig2 或其他聚合密钥路径的支出可能看起来像普通的单签名 BIP340 支出,且可选脚本路径在未被使用时仍保持隐藏。脚本路径支出会揭示已执行的分支和证明,但不一定包括所有未使用的分支。因此,“多签名是可见的,阈值签名是不可见的”这一说法过于绝对。

阈值签名与链上多签:权衡点有何不同?

快速解答

链上多签通过独立密钥或合约逻辑,由区块链强制执行法定人数要求;阈值签名则在链下强制执行法定人数要求,并仅向链上展示一个公钥和签名。多签通常提供更简单且可独立验证的策略;阈值签名则以更复杂的链下密码学为代价,提供紧凑的签名、策略隐私性以及潜在的地址连续性。

这种比较并非普适性的排名。比特币脚本、Taproot 和以太坊智能合约账户展现了不同的能力。有些链支持高效的原生多签名;有些则需要合约钱包,或者根本缺乏灵活的脚本。阈值签名可以让链上看到熟悉的签名,但链下协议便成为了可信计算基的一部分。

维度链上多签名阈值签名
执行法定人数的场所由区块链验证规则或合约代码强制执行。通过链下加密协议。
密钥每个签名者通常持有完整的独立密钥。每个参与者持有组签名密钥中的一份份额。
可审计性根据具体实现方式的不同,策略和签名可能可在链上进行验证。验证者通常只能看到一个密钥和一个签名;内部定额在链上无法得到证明。
费用与资源占用可能需要更多数据或合约执行;Taproot聚合可减少这些需求。通常在链层仅需一个普通签名。
故障隔离一个签名者的漏洞并不一定会导致其他完整密钥泄露。协议或实现中的缺陷有时可能从诚实的参与者那里提取出组密钥。
地址连续性更改策略通常会改变脚本或合约状态;具体设计因情况而异。某些重新共享协议会保留相同的组公钥和地址。
可移植性取决于链上脚本或合约的支持情况。取决于精确的签名兼容性以及链适配器的正确性。
恢复可直接在链上编码备份密钥、延迟或治理机制。取决于链下刷新、重新共享、备份及服务设计。

一种实用的设计方案可将两者结合。例如,Taproot 输出可采用聚合或阈值密钥路径进行常规支出,同时保留隐藏的脚本路径以供延时或紧急恢复使用。以太坊智能账户则可要求使用阈值生成的 ECDSA 签名,并配合合约级别的限制。分层设计虽能降低某种风险,但会增加操作复杂性,因此每个恢复分支都必须经过测试,而不仅仅是记录在案。

阈值签名在任何区块链上都有效吗?

简短回答:不行。阈值协议必须生成与目标链验证要求完全一致的签名、公钥格式和消息摘要。在某些情况下,匹配椭圆曲线是必要的,但仅此还不够。链特有的哈希算法、编码、规范化、恢复标识符、地址推导和交易语义都可能导致兼容性问题。

区块链签名栈包含多个层次:数学曲线、签名方程、公钥编码、签名编码、交易序列化、签名摘要、域分离、规范值规则以及账户或脚本语义。阈值签名必须与所有这些层次相匹配。所谓“在任何使用相同曲线的链上都有效”这一说法,忽略了该栈中的大部分内容。

兼容性层为何这至关重要的示例
曲线与群secp256k1、P-256 和 Ed25519 使用的群和编码各不相同。
签名方程基于 secp256k1 的通用 Schnorr 签名方案并不自动等同于比特币 BIP340 Schnorr 方案。
挑战哈希/域分离相同的 R 和公钥在不同的哈希规则下可能会生成不同的挑战值。
签名编码比特币 BIP340 采用固定的 64 字节编码;ECDSA 系统可能使用 DER、紧凑格式或 r/s 格式加恢复元数据。
规范化以太坊和比特币的策略以不同方式限制高s值的ECDSA签名;阈值适配器必须输出符合要求的值。
签名摘要比特币的sighash标志、以太坊的类型化交易以及合约特定消息,各自对不同的字节序列进行签名。
地址推导同一公钥在不同的链或账户类型上可能映射到不同的地址。
应用策略一个有效的签名仍可能授权给错误的网络、代币合约、随机数、金额或目的地。

比特币

传统和SegWit v0密钥的消费操作使用ECDSA,而Taproot密钥路径签名则使用BIP340 Schnorr。BIP340具有特定的仅x密钥和带标签哈希。MuSig2 BIP327是专门为BIP340设计的。通用的阈值ECDSA或FROST库需要一个比特币适配器,用于处理签名哈希(sighash)的构建、脚本类型、密钥调整、随机数规则以及支持的签名编码。

以太坊

外部拥有的账户使用 secp256k1 ECDSA,并从签名组件中恢复地址。以太坊交易类型、链 ID 和 EIP-712 结构化数据使用不同的签名域。EIP-2 拒绝高 s 值的交易签名。因此,阈值签名者必须针对确切的有效载荷生成规范的 r 和 s 值,并提供正确的恢复信息。

基于 Ed25519 的系统

RFC 9591 包含兼容 Ed25519 和 Ed448 的套件,其最终签名可通过相应的标准验证器进行验证。应用程序仍需提供精确的链消息、公钥格式和交易策略。验证器的兼容性并不验证相关的钱包集成。

刷新、重新共享、恢复和成员资格变更如何运作?

快速解答

主动刷新会将每个份额替换为同一密钥的新份额,同时保持组公钥不变。在专门为此设计的协议中,重新分发还可以更改阈值或参与者集。这两项操作均非自动进行:需要满足足够数量的授权参与者、经过身份验证的通信、正确的状态以及明确的协议支持。

主动刷新

刷新操作会添加零份份额,或重新随机化现有份额,从而确保底层组密钥保持不变。刷新后,旧份额应无法再使用。在主动安全模型下,攻击者若随时间推移逐步攻破不同参与者,必须在单次刷新周期内收集到阈值数量的份额,而非无限期地累积份额。刷新无法修复已达到阈值的被攻破情况,也不会清除攻击者可能已制作的应用程序凭证或策略系统副本。

重新分发与参与者替换

重新分发协议可将新份额分配给新的参与者集,并在保持相同组公钥的同时更改 t 或 n。这可用于替换丢失的设备、轮换员工或变更组织控制权,而无需转移链上资金。这仅在协议支持且有足够数量的授权参与者配合的情况下才可行。产品无法凭空“重建”丢失的份额。

当一个份额丢失时会发生什么?

如果至少剩余 t 个有效份额,该组通常可以继续进行签名。它可能通过重新分发生成一个替代份额。如果幸存的份额少于 t 个,且没有单独的恢复密钥、备份或合约路径,则签名权限将不复存在。阈值方案提高了冗余性;但它不能保证从每种丢失模式中恢复。

当一个份额被盗时会发生什么?

在理想的 t-of-n 秘密共享模型中,少于 t 个份额无法揭示秘密,也无法进行签名。从实际操作角度来看,份额被盗仍是一起活跃的安全事件。攻击者可能在协议会话中利用该份额,将其与未来的入侵行为结合,利用实现漏洞或获取元数据。正确的应对措施是:中止高风险会话,展开调查,刷新或重新分配份额,轮换相关凭证,并验证剩余参与者是否相互独立。

Six-scenario matrix for a 2-of-3 threshold design. It explains the consequences of one unavailable share, one stolen share, two compromised shares, a malicious coordinator, shares placed in one correlated cloud failure domain, and an implementation flaw. The diagram emphasises that thresholds depend on independence and code correctness.
图 3. 2-of-3 设计可承受一个孤立的份额故障;但相关联的基础设施或协议漏洞可能使名义阈值失效。

主要的安全假设和故障模式有哪些?

快速解答

阈值签名只是转移风险,而非消除风险。主要故障类别包括:多阈值同时被攻破、相关联的基础设施、恶意参与者、拒绝服务攻击、非ce或随机性故障、协议或证明漏洞、侧信道、链集成错误、不安全的恢复机制,以及授权错误消息的策略层。

故障模式可能发生的情况主要控制措施
阈值-多份额攻击攻击者能够使用组密钥生成有效的签名。独立的设备和操作员、刷新、最小权限、监控和快速轮换。
关联性破坏一个云身份、管理员、更新通道或库可访问多个共享。将故障域、供应商、凭据、网络和运营所有权分离。
恶意参与者中止、视图不一致、协议消息格式错误或选择性输入攻击。经过认证的记录、共享验证、可识别的中断、鲁棒性及排除程序。
随机数/预签名失败完全密钥提取,或因重复使用、偏倚、回滚或复制导致的无效签名。CSPRNG、一次性状态、防回滚存储、会话绑定和库存控制。
协议实现漏洞尽管纸面级协议是安全的,但仍可能发生密钥提取。严格遵循论文的实现、独立审计、测试向量、在可行情况下采用形式化方法以及补丁治理。
旁路通道通过时序、缓存、功耗、故障或错误行为导致的密钥分割或随机数泄漏。常数时间原语、HSM/设备强化、故障检测以及针对特定环境的测试。
链适配器漏洞对错误的有效载荷、错误的链或被拒绝的编码生成有效签名。独立交易解析、规范编码、测试网、参考向量和策略验证。
恢复失败永久锁定、在不安全的设备上重建密钥,或未经授权的紧急启用。已记录并演练过的恢复流程、定额分离、密封程序及监控。
政策/人为失误法定人数签署了诈骗交易、恶意批准或配置错误的交易。清晰的受信任显示界面、独立审查、限额、白名单、延迟及带外验证。

防范中止的安全措施与防范盗窃的安全措施有所不同

许多“不诚实多数”协议即使在恶意参与者终止会话时仍能保持保密性。这在密码学上虽是成功的结果,但在运营层面却是失败的。财务系统应明确规定:恶意参与者能被多快排除在外、是否存在备用签名人子集、过期会话如何取消,以及在争议期间业务如何继续进行。

协调器可以是非保密的,但依然拥有强大能力

协调者可能负责选择签名者、收集承诺、选择消息、安排会话并发布最终签名。即使没有密钥份额,它也能观察元数据、审查请求、分割参与者视图或反复触发高成本操作。协议消息应经过身份验证,参与者应推导或独立验证交易,且监控机制应能区分普通故障与恶意行为。

阈值签名默认并非后量子安全

FROST、ECDSA 和当前的 Schnorr 系统均依赖离散对数假设。分割密钥并不能使底层签名算法抵御能力足够强的量子计算机。后量子阈值签名是一个活跃的研究和标准化领域,迁移规划必须同时考虑链验证器和分布式密钥管理层。

Alpha-Rays、TSSHOCK 及后续密钥提取研究揭示了什么?

快速解答

这些研究表明,阈值 ECDSA 中的实现捷径可能使恶意参与者在不破解 ECDSA 或椭圆曲线的情况下,提取完整的签名密钥。缺少范围证明、格式错误的 Paillier 参数、薄弱的零知识验证以及协议特有的编码错误,将亚阈值访问转变为完全攻破。

Alpha-Rays

2021 年的 Alpha-Rays 研究描述了针对 GG18 和 GG20 风格阈值 ECDSA 实现的密钥提取攻击。这些攻击针对乘法转加法子协议,以及未提供必要范围证明的“快速”模式等实现选择。恶意参与者可利用这种交互来恢复完整的密钥。 该研究结果并未突破 ECDSA 的安全性;它只是证明,省略证明和验证步骤会使安全性论证失效。

TSSHOCK

2023年披露的TSSHOCK研究记录了针对阈值ECDSA实现的其他攻击。该研究聚焦于同态加密和证明处理中的实现缺陷,并展示了多种私钥恢复途径。其重要启示不仅限于上述具体攻击:阈值ECDSA协议对精确范围、参数验证、证明陈述及错误处理极为敏感。

BitGo 零证明

Fireblocks发现并公开披露的BitGo钱包漏洞,在生产环境集成中揭示了同样的模式。在双方ECDSA流程中缺少证明验证,可能导致一方提取另一方的份额并重建密钥。该受影响的服务在披露后已被暂停并修复。同样,问题并非出在ECDSA原语本身,而是协议实现以及缺少验证边界。

2024年的实际密钥提取研究

此后,学术界和业界的研究分析了主流的MPC钱包实现方案,并报告了需要不同数量签名交互的密钥提取攻击,其中一种情况下,在研究条件下仅需一次签名即可实现。这些结果进一步强调了以下必要性:必须准确识别协议版本,包含每个证明和验证步骤,并将实现审查视为密码安全声明的一部分。

应如何评估多方计算(MPC)或阈值签名实现?

快速解答

首先明确具体的协议、版本和攻击者模型,然后评估代码、随机性、非ce生命周期、通信信道、抗侧信道能力、链适配器、份额独立性、刷新、恢复机制及安全策略。“使用MPC”、“经过审计”或“密钥不存在”这些表述本身并不足以作为充分证据。

密码学规范

  • 明确指出具体的论文、修订版、密码套件和参数集。确认实现是否与引用的证明所对应的版本一致。
  • 记录阈值、参与者数量、静态或自适应破坏模型、诚实多数或不诚实多数假设、中止行为以及鲁棒性声明。
  • 确认密钥的生成或导入方式,是否存在可信经销商,以及是否曾生成过任何完整的密钥或可重建的备份。
  • 识别所有辅助原语:Paillier参数、无知转移、类群、承诺、零知识证明、哈希函数和随机数生成器。

实现与测试

  • 必须由该特定协议家族的专家进行独立审查,而不仅仅是进行一般的智能合约或应用程序审计。
  • 测试所有负面路径:格式错误的点、标量、证明、密文、参与者标识符、签名者集、重复的非ce、重放的消息和中止的会话。
  • 使用适合设备环境的常数时间且抗侧信道的原语;保护日志、崩溃转储、交换分区、遥测和可观测性系统。
  • 根据已发布的测试向量进行验证,并在存在规范的情况下构建跨实现互操作性测试。
  • 建立一套漏洞响应流程,该流程能够在不掩盖运营影响的情况下撤销参与者资格、暂停签名、刷新共享资源并迁移资金。

运营架构

  • 将份额放置在真正独立的故障域中:使用不同的凭证、管理员、设备、网络,并在可行的情况下最好采用不同的软件或硬件根。
  • 保护预签名和随机数状态免受回滚、克隆和备份恢复的影响。将已消耗的状态视为永久消耗。
  • 对参与者消息进行身份验证,并向每位签名者提供足够的交易数据以验证经济行为,而不仅仅是缺乏上下文的哈希值。
  • 预演数据丢失、系统遭入侵、员工离职、云服务中断、协调器故障及灾难恢复等情景。从未执行过的恢复计划仅是假设。
  • 监控签名尝试、参与者选择、证明失败、刷新事件及策略覆盖。加密隐私不应消除运营问责制。
红旗为何这不足或危险
没有协议名称的“军用级 MPC”没有可供评估的技术主张。
所有份额均运行于同一云租户下一旦某个凭证或管理员账户遭到入侵,阈值可能立即崩溃。
恢复操作可在未达到法定人数的情况下重建任何共享可能存在隐藏的主密钥或中央恢复机构。
据称,通用 secp256k1 库支持所有链Curve 兼容性忽略了消息、编码和验证器之间的差异。
审计报告仅涵盖移动应用或智能合约阈值协议、原生加密机制和后端状态可能仍未经过审计。
对份额被盗没有记录在案的应对措施系统可能缺乏刷新、重新分发或紧急迁移机制。
签名者仅收到不透明的摘要他们无法独立验证自己正在授权的经济行为。

常见问题

MPC 与阈值签名是一回事吗?

不。MPC 是一门关于对由多个方持有的私有输入进行计算的广泛学科。阈值签名是 MPC 的一种应用,它使用共享的组密钥生成数字签名。其他 MPC 应用包括阈值解密、私有集合交集和联合随机数生成。

阈值钱包有私钥吗?

它拥有与公钥对应的签名权限,但该权限可能仅以分布式份额的形式存在。在基于DKG的设计中,任何参与者都不会持有完整的私钥。而在经销商、导入或重建设计中,完整的密钥可能在某个阶段存在。

被盗的一个份额能否盗取资金?

在正确实现的 t-of-n 方案中,少于 t 个份额不应能生成签名或泄露密钥。份额被盗仍属安全事件:攻击者可能将其与后续的入侵行为结合,滥用协议会话或利用实现缺陷。在设计允许的情况下,应进行刷新或重新分配份额。

丢失的份额能否被替换?

仅当剩余的授权份额足够多,且协议或恢复架构支持重新分配时才可。幸存的参与者有时可以在保留公钥的同时生成新的份额。如果幸存的份额少于阈值且不存在独立的恢复路径,则无法恢复密钥。

FROST 是一项官方互联网标准吗?

不是。RFC 9591 是代表加密论坛研究组(Crypto Forum Research Group)共识的 IRTF 信息性出版物。它是一份精确的共享规范,但并非 IETF 标准轨道文档。美国国家标准与技术研究院(NIST)正在通过一项于 2026 年正式启动的流程,单独评估阈值方案的提交。

RFC 9591 是否包含密钥生成?

主要规范涵盖两轮 FROST 签名。密钥生成明确不在其主要范围之内。附录中给出了一个可信经销商的示例,实际部署中可采用独立的 DKG 协议。

FROST secp256k1 是否与比特币 Taproot 兼容?

该 RFC 包含 secp256k1 密码套件,但这并不意味着它自动与 BIP340 兼容。比特币使用特定的仅 x 密钥、带标签的哈希值和编码规则。比特币部署需要专门针对 BIP340 的阈值构造和链适配器。

MuSig2 是一种阈值签名吗?

MuSig2 是一种多签名方案,它聚合独立的 Schnorr 密钥,并要求所有 n 个签名者共同参与。BIP327 明确将其描述为 n-of-n 方案,而非一般的 t-of-n 阈值签名方案。

区块链能否识别出使用了 MPC?

通常仅凭最终签名无法判断:其验证方式与普通签名相同,均基于单一公钥。地址类型、合约代码、交易模式、服务元数据或后续披露的信息仍可能揭示托管设计。Taproot 也能隐藏某些多签名和脚本策略,因此不可见性并非 MPC 所独有。

阈值签名比多签名更安全吗?

两者均无绝对的安全优势。多签名提供更简单的链上强制策略和独立的完整密钥;阈值签名则能减少链上足迹、隐藏法定人数,并通过重新分享来保留地址。阈值协议增加了链下加密和实现的复杂性。正确的选择取决于区块链、威胁模型、恢复需求以及操作技能。

阈值签名能否防范诈骗?

虽然它可能需要多次批准并强制执行限制,但合法的法定人数仍可能签署恶意交易。参与者和策略系统在生成份额之前,必须明确了解确切的收款地址、金额、合约调用、网络及权限。

阈值密码学是否属于后量子密码学?

当前的 FROST、Schnorr 和 ECDSA 阈值方案均不具备后量子安全性。它们只是将现有的签名权限进行了分散,但仍保留了底层签名算法的安全假设。后量子阈值方案需要不同的基本组件和区块链支持。

结论

阈值密码学解决了一个实际的运营问题:不应由一个签名密钥来决定大额资产、系统或机构的命运。解决方案并非简单地将密钥分割成碎片。完整的阈值签名设计必须明确定义:份额如何生成、一次性随机性如何保护、参与者如何就同一条消息达成共识、如何拒绝格式错误的贡献、如何归因于故障、如何刷新份额,以及最终签名如何与目标链匹配。

对常规营销话术最重要的纠正是:每一项主张都附带条件。基于 DKG 的系统在其整个生命周期内都能避免使用完整密钥;而基于导入密钥的系统则无法声称拥有同样的历史。单个份额可能在密码学上不足,但在操作上却刻不容缓。一个签名在链上看似普通,却可能依赖于庞大的链下可信计算基。一个协议可能已被证明是安全的,但实际实现却存在安全隐患。

若结合独立故障域、经过审计的代码、严格的非ce纪律、正确的链适配器、经过演练的恢复流程,以及对所批准内容进行验证的签名者,阈值签名可在不牺牲与常规签名验证兼容性的前提下消除单点故障。若仅将其作为标签使用而缺乏这些控制措施,则可能掩盖更复杂的单点故障。

来源与进一步阅读

本文关键参考文献(截至 2026 年 7 月)。

快速测验:它粘住了吗?

提出了一些检查基本原理的问题。下面是带有解释的答案,除了你未来的作品集之外,没有人给你评分。

1/6问题
沙米尔备份与阈值签名有何区别?

这有帮助吗?