


要理解门限签名方案(TSS),我们首先需要建立密码学基础。自 20 世纪 70 年代以来,越来越多的互联网系统(如 TLS(传输层安全协议)和 PGP(Pretty Good Privacy))采用了非对称加密技术,也称为公钥密码学(PKC)。这种加密方式需要一对不同的密钥:公钥和私钥。公钥可以公开让任何人使用而不会影响安全性,而私钥则始终保持严格保密,是系统安全架构的核心。
加密和数字签名是公钥密码学(PKC)最基本的两大应用。这两类方案都依赖三组核心算法。第一组算法生成私钥和公钥对,确立两者间的密码学联系。第二组算法负责生成密文(加密场景)或签名(数字签名场景)。第三组算法用于解密或验证,以确保密码操作能被授权方验证。
在数字签名场景中,签名算法通过持有者专有的私钥生成唯一签名。该签名会以数学方式绑定在指定消息上,使任何掌握公钥的人都可验证其真实性和正确性。验证过程确保消息未被篡改,且确实来源于私钥持有者,保障了数字通信的完整性和不可否认性。
毫无疑问,区块链技术是分布式系统的一项革命性进步。它提供强大的共识层,以透明且不可篡改的方式组织和记录事件。这一基础设施让用户能够构建无需中心化中介的去中心化经济、治理和金融应用。令人称奇的是,驱动基础区块链运作所需的密码学,仅需用到数字签名,是公钥密码学极具代表性的优雅应用之一。
在区块链系统中,私钥代表独特身份或所有权,而签名则作为该身份的公开声明。区块链网络会依照预设共识规则对这些声明进行排序和验证。这些规则确保签名在密码学上无法伪造并且数学上正确,从而为无信任环境下的交易提供必要的安全保障。
与早期区块链实现所采用的传统密码学不同,如今的密码学工具箱中包含大量功能强大的先进技术,如零知识证明(允许一方证明自己掌握某信息却不暴露内容)、同态加密(可对加密数据直接计算)、多方安全计算(MPC,支持多方在保证隐私的前提下共同完成计算)。过去十年,区块链研究极大推动了应用密码学发展,这些领域都取得了重大突破。
本文聚焦于一项对区块链安全和密钥管理尤为重要的创新成果:高效安全的门限签名。
多方安全计算(MPC)是密码学的一个重要分支,源自 Andrew C. Yao 近 40 年前的开创性研究。在 MPC 协议中,一组不互信的参与方能够在不泄露各自输入的前提下,共同完成某个函数的计算。这种方式实现了协作计算,无需任何一方公开自身敏感数据。
举例来说,假设公司 n 名员工希望知道谁的工资最高,但不想互相透露工资。在 MPC 下,工资是私密输入,输出仅为工资最高员工的姓名。整个计算过程不会泄露任何单个工资信息,实现了隐私与目标并重。
MPC 协议的两大核心属性是正确性与隐私性:
我们可将 MPC 原理用于分布式生成数字签名,即门限签名方案。传统数字签名有三步,每步都需适配分布式场景:
密钥生成:在分布式场景中最为复杂。公钥需用于后续验证,但任何一方都不能持有完整私钥。实际操作是为每个参与方生成独立密钥份额。密钥生成过程要保证所有方获得相同公钥,各自获得唯一的密钥份额。隐私性保证份额间不泄露,正确性保证所有份额组合后公钥正确。
签名生成:分布式签名函数,每方输入自身密钥份额以及共同的待签消息。输出是和单方持有完整私钥签名完全一致的数字签名。隐私性确保即使部分参与方试图探查他人份额,签名过程也不会泄漏任何密钥份额。
验证:验证算法与传统单密钥场景一致。兼容现有区块链基础设施,任何知晓公钥的人都可用标准流程验证签名。这正是区块链验证节点处理交易的具体实现,无法区分 TSS 生成的签名和传统单密钥签名。
门限签名方案(TSS)即指将分布式密钥生成和分布式签名协议组合,构建完整的分布式密码密钥管理体系。
TSS 集成区块链基础设施的常见方式,是将区块链客户端软件中的密钥生成和签名操作,从传统单密钥方法切换为 TSS 协议。这里的“区块链客户端”指全节点在网络中的所有操作。TSS 技术实际能将所有私钥相关操作替换为多方分布式计算。
传统区块链地址生成流程是:用密码学安全的随机数生成私钥,再通过椭圆曲线运算等方式推导公钥,最后经哈希函数和编码推导出区块链地址。
采用 TSS 后,流程显著不同。私钥不再由单方生成,而是由 n 方通过分布式协议协作生成公钥。每方只持有私钥的一个秘密份额,计算过程中任何一方都无法获知其他份额。共同生成的公钥可按传统方式推导区块链地址,区块链网络无需关心地址生成方式。关键优势在于,私钥不再是单点失效源,因为每方仅拥有一部分,任何单方都无法单独伪造签名。
同理,交易签名也可采用分布式方案。签名不再由单方持有完整私钥执行,而是多方协作生成。每方以自身份额为输入,共同生成可被公钥验证的有效签名。签名外观与单方生成无异,但必须有门限数量的多方协作完成。这意味着计算从单点变为更具弹性的分布式协作,更能抵御攻击。
分布式密钥生成还可设置不同访问结构。最常见是“n 选 t”结构,即 n 方中任意 t 方即可协作生成有效签名。可容忍 t-1 个私钥份额操作失效或泄漏,系统安全性不受影响。这种灵活性便于组织根据实际安全需求和风险容忍度自定义安全模型。
部分区块链平台提供类似 TSS 的协议内置或可编程功能,通常称为多重签名(multisig)。理解两者区别时,可以认为 multisig 在区块链应用层实现了类似 TSS 的功能,而非底层密码学协议。
简言之,multisig 与 TSS 都追求多方共同授权交易的目标,但实现机制完全不同。TSS 在链下通过密码学生成普通单签名,multisig 则完全在链上运作,区块链需验证多份独立签名。
这种架构差异有多项重要影响。区块链网络需要能编码和处理 multisig 交易,这会暴露访问结构(如签名人数和身份),链上任何人都可分析。此外,multisig 交易通常比普通交易成本更高,因为所有签名人和签名信息都需上传并长期存储在区块链上。
相比之下,TSS 会将多签细节折叠成一笔普通单签交易,降低交易成本和信息暴露,保护参与者隐私。而 multisig 优势在于交易广播后无需后续交互,无需签名人间复杂通信。
核心差异是 multisig 需为每个区块链协议单独实现,部分老网络甚至不支持或仅有限支持 multisig。TSS 仅依赖密码学本身,与区块链协议无关,因此理论上可为任何用标准数字签名的区块链提供支持。
Shamir 密钥分享方案(SSSS)采用不同方式分布存储私钥。SSSS 允许将静态私钥拆分存储于多个位置。但 SSSS 与 TSS 有两个关键区别,适用场景各异:
密钥生成:SSSS 由一个“分发者”(dealer)生成完整私钥,再拆分为若干份额分发。即密钥生成阶段完整私钥实际存在于一个位置,并由分发者分发各份额。这在生成阶段形成安全隐患。TSS 则消除了分发者,密钥生成过程自始至终分布式,完整私钥全程未被构造,安全性更强。
签名生成:SSSS 需签名时,各方合并份额重构完整私钥,每次签名都存在短暂的单点失效风险。TSS 全程分布式完成签名,各方仅用自身份额参与协议,最终联合生成有效签名,任何单方都无法掌握完整密钥。
由此可见,TSS 下私钥,即整个系统的最终安全根本,生命周期内从未在任何单一位置存在,无论生成、签名还是其他操作。这使 TSS 在主动密码学操作上较 SSSS 实现了本质性的安全提升。
基于 TSS 的加密货币钱包与传统钱包实现方式差异显著。传统钱包一般生成一组助记词(通常 12 或 24 个单词),据此确定性推导所有钱包地址及对应私钥。用户可据此结构访问私钥并签名,也可在钱包丢失或损坏时凭助记词恢复所有密钥。
门限钱包结构复杂得多。虽然可生成类似传统钱包的 HD 结构,但整个生成过程必须通过分布式 MPC 协议完成。所有参与方需协作确定下一个待推导密钥,沿 HD 路径推进。每方各自持有助记词,但这些词组通过分布式流程独立生成,绝不会合并。这样任何单方都无法独立从种子派生出私钥,整个密钥推导流程始终保持分布式安全。
TSS 钱包还具备传统钱包无法实现的额外安全特性:可在不变更公钥和区块链地址的前提下进行私钥轮换。私钥轮换,也称主动秘密分享,是一种 MPC 协议。它以现有份额生成全新份额,旧份额可安全销毁,新份额可无缝用于签名,公钥和地址保持不变。
这种架构为安全模型引入“时间维度”,攻击者必须在同一时刻攻陷多个位置才能破解门限钱包。即使将轮换前和轮换后的份额结合,攻击者也无法提升伪造签名的能力。系统可抵御分阶段攻陷不同方的攻击。
但这类钱包的不足是缺乏单一主助记词,无法与传统单密钥钱包和恢复流程兼容,用户无法凭 12 个单词在其他系统恢复钱包。因此需慎重规划密钥份额的持有方、备份及恢复机制。
门限钱包有多种部署架构:
委托 TSS 计算:用户将 TSS 计算委托给 n 个独立服务器,由它们代表运行协议。这样可将密钥生成、管理和签名外包给服务商,服务商不拥有资产所有权,仅提供安全服务以换取报酬。这类似于云服务模式。
多设备协作:用户在自己拥有的多台设备间运行 TSS 协议,例如 IoT 设备、手机、笔记本等分别作为参与方。此法用户完全掌控各参与方,但需设备协同。
混合模式:部分参与方由外部服务商控制,部分由用户设备运行,结合了前两种方案的优点。
第一种方式可卸载用户侧的计算压力,但服务商串通盗取资产存在风险。虽假设足够多的服务商不会同时被攻陷,现实中仍有法律或联合攻击威胁。
第二种方式让用户对全部参与方绝对掌控,无第三方风险,但需要多设备同时在线,协作签名,操作相对繁琐。
第三种方式常被认为最佳折中,既可便捷交易,又必须用户授权。即使服务商一方被攻陷,攻击者也需同时攻陷用户自有设备才能伪造签名。
多年来,研究者发现数字签名有诸多创新用途,其中不少极为复杂。TSS 作为密码学基础原语,可显著提升区块链系统的安全性。更广泛地说,许多原本通过智能合约实现的功能,理论上都可用基于 TSS 的密码协议替代。
去中心化应用、二层扩容、原子交换、混币协议、继承机制等均可基于 TSS 框架实现。这有望用更高效、廉价、可靠的链下密码协议,取代昂贵且潜在风险的链上智能合约操作。将复杂逻辑从区块链迁移至密码协议,可大幅降低交易成本并提升隐私。
例如,Multi-Hop Locks 利用二方签名,可作为部分二层支付通道网络的替代方案,提升支付通道的安全性和隐私性,减少链上信息。ShareLock 则是极具性价比的链上混币方案,基于单次门限签名验证,无需复杂智能合约逻辑。这些例子显示 TSS 可实现许多此前难以落地的新型设计。
近年来,TSS 实现的数量与质量持续提升。但作为区块链领域的新兴技术,仍有一些局限和需要认真关注的问题。与经历长时间验证的传统公钥密码学相比,TSS 协议设计和实现都更为复杂。
TSS 协议的复杂性意味着其尚未经历传统密码学那样的充分检验和审查。通常,TSS 协议需更多甚至更弱的密码学假设,如承诺方案、零知识证明等辅助工具。因此,传统单密钥体系没有的新型攻击面还在持续被研究和修复。
实现漏洞也需警惕,TSS 协议的分布式特性可能导致代码中出现微妙的错误。建议有 MPC 和 TSS 专业能力的安全工程师和应用密码学专家协助安全部署,确保充分的审计和测试。
值得肯定的是,TSS 生态正不断壮大、成熟。这源于研究社群的高质量贡献、协议和实现的同行评审、专业安全审计和算法性能优化。随着技术成熟、实现落地并在实际环境中被验证,TSS 的安全性信心将持续增强。
尽管如此,TSS 在区块链安全和密钥管理领域的巨大潜力,仍使其值得深入研究和持续发展。
在区块链系统中部署 TSS 时,有若干实际问题需注意。首先,参与方之间的通信开销可能较大,尤其是协议需多轮交互时。网络延迟与可靠性是 TSS 系统性能的关键。组织需合理设计网络架构,确保密钥生成和签名期间,参与方间通信高效可靠。
另一个重要问题是参与方故障与恢复。在分布式系统中,部分参与方短暂不可用不可避免。TSS 协议要具备鲁棒性,只要门限要求达成,即使部分方暂时离线,系统仍能运行。同时,新增或移除参与方的流程也需细致设计与实现。
门限参数(t 和 n,t-of-n 方案)的选择非常关键,应结合系统安全需求和实际运维约束权衡。门限越高,安全性越强,但每次操作需要更多方协作,可能影响可用性和性能。组织需在安全性、可用性和效率间平衡 TSS 部署配置。
最后,TSS 钱包及应用的用户体验也值得关注。TSS 的分布式特性可能带来延迟和复杂,用户可能会感到困惑或不便。通过精心的界面设计和清晰传达安全优势,可帮助用户理解并接受这些权衡。随着 TSS 技术成熟和实现优化,许多用户体验问题有望逐步解决,使 TSS 系统更易于被主流用户接受。
门限签名允许多方共同生成签名,无任何单方持有完整私钥。与普通数字签名不同,门限签名通过分散签名权,提高了安全性和抗风险能力。
门限签名实现多方分散签名权,支持联合授权并提升安全性。广泛应用于多签钱包、去中心化托管方案和分布式治理机制,有效防止单点失效。
两者都要求多签完成交易。多重签名钱包通过智能合约管理多把独立私钥,门限签名则通过密码学秘密分享拆分密钥。门限签名链下生成,不暴露单独密钥片段,因此更具隐私性和高效性。
门限签名要求多方合作完成签名。即使部分密钥被攻破,只要签名门限达成,资产依然安全。此方案提升安全性和去中心化治理能力,有效防止单点失效。
门限签名将密钥控制权分散至多方,消除单点失效风险。无人单独拥有全部签名权,降低被攻破概率。所有交易需达成共识,较集中的密钥管理方式更能防范密钥被盗和未经授权访问。
门限签名需掌握 Shamir 秘密分享算法、多重签名方案和分布式密钥管理的基本原理,确保能够安全地在多方间分割和重构密码学密钥。











