当前位置:首页区块链多重签名、SHAMIR秘密共享和MPC比较

多重签名、SHAMIR秘密共享和MPC比较

对于任何拥有大量比特币的人来说,包含单点故障的托管结构应该被视为不可接受的。如果钱包只有一个组件,当丢失或被盗时,可能会导致资金永久损失,那么考虑它就太危险了。没有人愿意让巨额财富在灾难的边缘摇摇欲坠。

个人比特币持有者有许多可用的工具可以帮助降低丢失或被盗的风险。在上一篇文章中,我们介绍了其中一些工具,重点介绍了通常应用于单签名钱包的修改。然而,我们还解释了为什么这些方法无法完全消除单点故障。

对于想要确保比特币金库安全的企业、政府或其他机构来说,消除单点故障不仅是可有可无,而且是先决条件。对于这些实体来说,唯一值得考虑的托管模式是包含获取资金门槛要求的托管模式。阈值要求描述了一种涉及多个单独安全组件的结构,其中需要这些组件的子集来批准任何提款。这是实现机构级安全性并完全消除单点故障的唯一方法。

在本文中,我们将介绍如何使用三种不同的方法应用阈值安全:脚本多重签名、Shamir 秘密共享 (SSS) 和多方计算 (MPC)。我们还将深入探讨与每种方法相关的权衡,以及机构如何选择最佳设置来满足其需求。

什么是多重签名?

如果您不确定脚本多重签名是什么,我们建议您查看我们之前的文章,该文章专门解释了多重签名钱包的工作原理及其用途。快速回顾一下,多重签名钱包涉及多个私钥,并且可以配置为需要特定数量(阈值)的私钥来签署任何交易。签名可以在不同的时间和地点生成,从而使每个密钥保持物理分离。一旦产生了一定数量的签名,它们就可以合并成一个能够花费资金的比特币交易。

多重签名、SHAMIR秘密共享和MPC比较

这种创建阈值要求的相对简单的方法对于消除所有单点故障非常有效。只要支出阈值大于 1 但小于密钥总数,那么任何单个密钥都可能丢失、被盗或被破坏,而比特币不会变得无法恢复。剩余的密钥可以签署恢复交易,将资金转移到新的多重签名设置。

中本聪在比特币首次发布时为多重签名奠定了基础,预计它可能成为一种流行的资金保护机制。然而,直到2012 年 P2SH 软分叉,多重签名才开始成为广泛使用的工具。此后,多重签名已经证明自己是十多年来经过考验的安全模型,涵盖多种不同的地址类型。

沙米尔的秘密分享是什么?

沙米尔秘密共享(SSS)是由著名密码学家阿迪·沙米尔于 1979 年开发的秘密共享算法。它可以作为引入保护比特币阈值要求的另一种方式。SSS 允许用户将密钥拆分为多个分布式“共享”,只需重新组装密钥所需的共享数量达到一定阈值。这可用于设计 2-of-3 或 3-of-5 等仲裁,类似于多重签名。

多重签名、SHAMIR秘密共享和MPC比较1

然而,这种方法在其生命周期的某些情况下仍然会导致单点故障。一个例子是密钥最初被分割成 SSS 份额。此操作通常在单一时间和地点在单一设备上完成。如果攻击者破坏了该设备、密钥生成过程或共享创建过程,他们就破坏了密钥。另一个例子是每当用户需要重新组合密钥来签署交易时。必须在单一时间和地点再次在单一设备上汇集阈值数量的共享,攻击者可以利用这些共享。

实现加密货币托管 SSS 技术的一种相当简单且广泛使用的方法是通过Shamir 备份,由 Satoshi Labs 于 2017 年开发。它可以作为某些 Trezor 硬件钱包型号的选项。

多重签名、SHAMIR秘密共享和MPC比较2

什么是MPC?

MPC(多方计算)是密码学的一个子领域,其历史可以追溯到 20 世纪 70 年代。MPC 的目标是允许多个参与者共同执行计算,而每个参与者对计算的贡献不会透露给组中的其他成员,因此可以保持私密性。这允许多方在不同的环境中进行协作,而无需相互信任。

当应用于比特币托管时,MPC 涉及分布式“份额”,类似于 SSS。然而,与 SSS 不同的是,共享不会从私钥中分离出来,也不会用于重建私钥。相反,多方直接根据其份额阈值计算单个签名。

多重签名、SHAMIR秘密共享和MPC比较3

与 SSS 不同,MPC 不需要单点故障。MPC 份额可以彼此单独生成,并且永远不需要将它们放在一起来操作钱包。从共享中生成的信息可以传达给其他参与者,而无需透露共享本身。

由于比特币和其他加密货币主要使用基于 ECDSA(椭圆曲线数字签名算法)的签名系统,因此 MPC 必须适应这种情况。第一个实用的 ECDSA 阈值协议于 2018 年发布。 [ GG18,LNR18 ]

阈值模型之间的权衡是什么?

有三种不同的阈值安全模型可供选择,下一步是了解每个选项的优点和缺点。

多重签名的权衡

脚本多重签名是一种实现阈值安全的标准化方法,是比特币协议的本机。该结构被认为相对简单且坚固。进入的门槛也很小——如果比特币用户知道如何操作单签名钱包,那么学习如何设置和使用多重签名钱包并不是一个大的飞跃。

当多重签名钱包初始化时,为将比特币接收到钱包而生成的地址具有内置的阈值要求。一旦多重签名地址获得资助,比特币就受到不可变合约的保护,该合约本质上已写入区块链本身。更改合约(例如更改访问控制策略、调整保护比特币的密钥)的唯一方法是将比特币移动到使用不同合约构建的新地址。对于合作保护比特币安全的多方来说,这种底层的不可变合约机制可以提供最高程度的保证,确保资金按照各方的意愿得到保护。如果有什么要从根本上改变,那么通过公开交易的发生,每个人都会变得显而易见,并且批准改变的密钥也会被知道。这就是 Unchained 等协作托管提供商在我们的产品中依赖脚本多重签名的原因。

然而,在区块链上公开部署合约需要权衡。由于比特币是从多重签名地址中支出的,因此该地址的访问控制策略必须永久发布在区块链上。然后观察者可以看到正在使用的多重签名仲裁的详细信息。尽管剩余资金可以轻松迁移到新地址,但过去的安全安排暴露的事实并不理想。此外,需要将比特币从一个地址转移到另一个地址以调整访问控制策略,这意味着该过程始终涉及交易费用(法定人数越大,费用就越高)。

对于重视托管山寨币的实体(例如加密货币交易所)来说,脚本多重签名可能比其他两种阈值安全方法带来更大的挑战。这是因为在区块链级别上施加了多重签名阈值法定人数,并且不同的加密货币使用不同的区块链。许多加密货币甚至根本不支持本机、强大的多重签名实现。同时,SSS 和 MPC 在关键级别强制执行阈值法定人数,并且看起来像公开的单签名交易。由于几乎所有加密货币都支持类似的单签名托管标准(大多数加密货币可以使用相同的密钥),这使得 SSS 和 MPC 具有更强的跨链兼容性。

与沙米尔秘密共享的权衡

SSS 提供了另一种基于相对简单且经过实战检验的密码学设计阈值要求的方法。就加密货币托管而言,SSS还有一种广泛部署、准入门槛低的方法(Shamir备份)。一旦某人有了使用传统单签名钱包的经验,使用 Trezor 设置具有 Shamir 备份的钱包并不是一个巨大的飞跃。

与多重签名不同,SSS 完全在区块链上面向公众的地址和交易之外运行。相反,阈值要求是由私钥如何分割为份额决定的。这意味着将密钥分割成多个份额并随后重新组装它们可以私下进行,因此只有参与比特币托管安排的人才知道 SSS 正在被使用。除了隐私优势之外,将阈值结构保留在区块链之外还意味着 SSS 交易不会导致费用增加,并且它可以用于保护许多不同的加密货币。尽管大多数加密货币都有自己独特的区块链,但它们都可以共享相同的私钥作为接入点,并且该密钥又可以使用 SSS 进行分割。

SSS 的最大缺点已经在上面提到过——私钥必须一次存在于一个地方,在第一次分割成份额之前,以及在份额为了批准提款而重新组合时。这些漏洞会造成临时的单点故障,这意味着 SSS 本身并不能提供真正的机构级安全性,这与多重签名或 MPC 不同。

此外,SSS 本身并不提供调整访问控制策略的方法。一旦私钥被分割成法定数量的共享,这些共享将始终保持复制该密钥的能力。如果一个团体正在使用 SSS 共同保护金库,并且该团体的一名成员离开,那么以安全的方式撤销该个人的权限可能会带来挑战。该组的其余成员可以重新组装密钥,然后将其分割成新的共享,但旧的共享需要以可验证的方式销毁。否则,资金将需要发送到受不同密钥保护的全新钱包。

与 MPC 的权衡

与 SSS 非常相似,MPC 在密钥级别而不是区块链级别强制执行阈值要求。这带来了类似的优势,例如授予更高的隐私能力、避免增加交易费用,以及允许在多种不同的加密货币中使用一种 MPC 托管结构。

重要的是,MPC 设法避免使用 SSS 带来的临时单点故障。通过使用不同的加密方法,密钥份额可以从钱包首次创建的那一刻起就独立存在,甚至在签署提款交易时保持独立。大多数 MPC 实现还包括调整访问控制策略(创建新的法定份额)的本机方法,而无需将资金发送到新的钱包地址。

然而,阈值 ECDSA 的 MPC 被认为是非常复杂的密码学,并且没有商定的使用标准。有许多不同的协议,前两个是由 Gennaro 和 Goldfeder [ GG18 ] 以及 Lindell 等人于 2018 年独立开发的。[ LNR18 ]。从那时起,我们还看到了 Doerner 等人的协议。[ DKLs19 ],Castagnos 等人。[ CCL+20 ],Damgård 等人。[ DJM+20 ],卡内蒂等人。[ CMP20 ],Gągol 等人。[ GKSS20 ],Gennaro 和 Goldfeder [ GG20 ],Canetti 等人。[ CGG+21 ],艾布拉姆等人。[ ANO+21 ],Doerner 等人。[ DKLs23 ],也许还有其他。虽然新协议倾向于对旧协议进行某些改进,但它们进行同行评审、审计和其他测试的机会可能较少。

MPC 涉及的复杂性越高,攻击面就越宽。使用额外的组件和程序,就会有更多的空间出现错误和潜在的安全漏洞。严重安全缺陷(包括完整私钥提取攻击)的证据已经不止一次出现,影响了上面列出的一些阈值 ECDSA 协议。

MPC 还首先受到谁可以实际使用它的限制。如前所述,阈值 ECDSA 非常复杂。对于普通人来说,没有可用的工具可以安全或轻松地独立设置 MPC。虽然一些企业提供相当易于使用的协作托管 MPC 钱包,但这些企业没有为用户提供在企业消失时恢复资金的简单方法(或者根本没有方法,在这种情况下它们是单点故障)。由于脚本多重签名是一个简单且开放的标准,因此使用多重签名提供协作托管解决方案的企业可以提供开源且易于使用的恢复工具。即使协作多重签名业务不再提供帮助,这也为客户收回资金创造了一条直接的途径。

哪种型号最好?

正如我们刚刚介绍的,使用多重签名、SSS 和 MPC 之间存在许多权衡。可以将它们排列在图表中以进行直观比较:

多重签名、SHAMIR秘密共享和MPC比较4

如果一家企业专门从事多种不同加密货币的托管,他们可能会聘请专业团队来仔细建立 MPC 托管模型。然而,如果企业或个人正在寻找一种简单而可靠的方法来长期保护比特币,那么使用脚本多重签名并接受隐私权衡可能会更好。SSS 很少单独使用,因为它无法始终执行机构级阈值要求。

协作托管的组合模型

虽然多重签名、SSS 和 MPC 通常被认为是相互竞争的安全模型,但可以将其中多个模型合并到整体托管结构中。如前所述,SSS 和 MPC 允许密钥共享的阈值来为交易生成签名。如果签名是为了从单签名钱包中支出资金,那么不需要其他任何东西来完成交易。然而,如果签名是为了从多重签名钱包中支出资金,则还可能需要来自其他密钥的额外签名。

多重签名、SHAMIR秘密共享和MPC比较5

虽然这种技术组合听起来不必要且麻烦,但确实在某些情况下它具有实际意义。随着密钥代理和多机构托管的普及,越来越多的专业企业受个人和机构委托来保护多重签名钱包的密钥之一。这些分布式关键代理可以帮助降低托管风险。但是密钥代理应该如何保护他们负责的单个密钥呢?

SSS 或 MPC 可以作为一种策略来最小化或消除此任务中的单点故障。公司关键代理可以设计一个系统,其中企业内的多个不同官员各自持有关键股份,因此只有在这些官员的阈值同意的情况下才能生成签名。此外,如果在 SSS 重组期间发生攻击,或者 MPC 实施最终遭受新的密钥提取漏洞(如前面列出的漏洞),那么客户资金不会立即面临风险。关键代理将有时间做出反应并解决问题,而比特币仍受到更广泛的多重签名钱包的保护。

使用脚本多重签名创建阈值要求作为基础的不可变合约,然后委托专业的密钥代理使用自己的 SSS 或 MPC 阈值来保护多重签名密钥,这无疑是机构确保比特币安全的最安全方法。长期。

TAPROOT 的新功能


2021 年 11 月,发生了 Taproot 软分叉,为比特币生态系统添加了新工具。其中一些工具通过允许某些改进和选项来影响机构级比特币托管的未来。

  • Schnorr 签名: Schnorr 签名算法现在可以在比特币中作为 ECDSA 的替代方案。与前面提到的 ECDSA 协议相比,在 Schnorr 之上使用 MPC 可以实现远不那么复杂的阈值安全方案,因此也可以对其安全性提供更高的信心。FROST是领先的 Schnorr 门限签名协议,而MuSig2也专门用于 N-of-N 仲裁。这两种签名方案都正在成为整个比特币行业的标准化工具,预计它们将使普通个人可以使用 MPC,并获得类似于脚本多重签名的用户体验。
  • 脚本类型隐私: Pay-to-Taproot (P2TR) 地址是一种新的地址类型,允许脚本多重签名比特币地址看起来与用于单签名钱包的地址相同。这提供了显着的隐私改进,因为这意味着比特币地址本身不提供有关其所有者的安全模型的任何线索,例如他们是否可能使用脚本多重签名。
  • 多种支出路径: P2TR 地址还能够包含内置的多种支出路径。这可以为机构级托管创建构建阈值安全的新方法,如BIP 342(基本原理,第 5 节)中所述。例如,用户可以为每个可以支出资金的密钥组合创建一个 N-of-N 脚本多重签名支出路径。不用使用密钥 A、B 和 C 构建 2-of-3 仲裁,而是使用三个独立的 2-of-2 仲裁作为可能的支出路径(一个使用密钥 A 和 B,一个使用密钥 A)来实现类似的结果和 C,以及一个带有密钥 B 和 C 的密钥。这一策略可以增加隐私性,因为只有最终使用的支出路径才会被泄露。类似的概念可以应用于 MPC 密钥共享仲裁,从而允许将 MuSig2 用于阈值。

这些 Taproot 工具相对较新,其采用仍处于早期阶段。许多比特币软件和服务尚未完全支持 Taproot 所提供的功能。还值得注意的是,大多数山寨币本身并没有这些工具。

最后的想法

越来越多的机构对保护比特币金库产生了兴趣,他们需要有效的解决方案。避免单点故障和最小化交易对手风险是首要考虑因素。满足这些标准的最佳方法是利用多重签名结构,其中密钥可以分布在各个企业关键代理之间,没有一个人能够单方面控制比特币。每个密钥代理都可以使用 SSS 或 MPC 为其特定密钥添加额外的阈值保护。

温馨提示:

文章标题:多重签名、SHAMIR秘密共享和MPC比较

文章链接:https://www.btchangqing.cn/645341.html

更新时间:2024年03月17日

本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。

多重签名、SHAMIR秘密共享和MPC比较6
区块链

美国现货比特币ETF是一个里程碑,而英国的ETN则是积极的一步

2024-3-17 13:09:41

区块链

Solana的模因币狂热将链上交易量和费用推至新高

2024-3-18 7:26:54

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索