A large, metallic vault door with three golden

多重签名钱包的解释:M-of-N 审批如何实际转移资金

By AI News Crypto Editorial Team9 min read

多重签名钱包的解释:多重签名钱包只有在至少 M 个 N 个授权密钥批准同一交易时才会发送资金,而不是依赖一个私钥。这样的设计将保管转变为一种操作模型,具有提案和审查流程、费用物流以及特定链的实施选择,这些选择可以保持资金安全或使其陷入困境。

关键要点

重要的心理模型是治理,而不是密码学。多重签名设置编码了一个与团队、家庭或

去中心化自治组织(DAO)

的行为相匹配的审批政策。如果真实的过程是“两个必须签字”,那么 2 的 2 匹配了意图,但如果任何一个签名者消失,就会产生硬停机风险。如果真实的过程是“两个签字,但必须有恢复路径”,那么 2 的 3 是常见的默认值,因为它容忍一个缺失的密钥,同时仍然防止单方面控制。多重签名还在保管光谱上占据特定位置。当签名者控制密钥且没有第三方可以单方面移动资金时,它仍然是一个非托管钱包

模型。不同之处在于,“所有者”现在是一个群体政策,而不是一个人。该政策可以由链本地实施,或通过智能合约链上的合同强制执行。这个实施选择是许多操作惊喜的来源。M-of-N 模型和工作流程阈值规则是整个游戏:N 是授权密钥的总数,M 是批准交易所需的最小签名数。常见配置与真实的审批流程干净地映射:2 的 2 适用于平等伙伴,2 的 3 适用于有备份密钥的小团队,3 的 5 适用于可以承受缺席的委员会式控制。

工作流程很重要,因为多重签名是每次资金移动时运行的审批管道。典型流程遵循有序的顺序:

1. 创建交易提案。一个授权签名者起草目标

地址

、金额和任何调用数据。2. 收集签名。其他授权签名者审查提案并用他们的私钥签名。3. 验证阈值。钱包检查至少有 M 个有效签名者批准。4. 广播和执行。完全批准的交易被发送到网络以进行确认。两个操作细节往往决定多重签名是否感觉“安全”或“卡住”。第一个是签名者的可用性:如果 M 个签名者无法在组织需要的时间内做出回应,钱包就会成为瓶颈。第二个是费用资金。EIP-86 在以太坊历史早期指出了一个具体的痛点:多重签名操作可能需要多个批准交易,参与者可能需要 ETH 来支付提交这些批准的费用。这不是一个理论上的脚注。这是当一个团队试图在时间压力下移动资金时出现的摩擦,发现签名者甚至无法支付批准费用。链上和智能合约多重签名

比特币风格的多重签名和以太坊风格的多重签名从外部看起来相似,但由于构建方式不同,它们的失败方式也不同。链上多重签名是原生协议支持,以比特币 P2SH 作为典型示例。支出条件存在于链的脚本规则中。优点是表面面积较小,因为没有单独的合同代码需要信任。缺点是功能集受到基础协议支持的限制。

智能合约多重签名是另一种动物。在以太坊和类似链上,多重签名通常是一个

智能合约

钱包,Safe 钱包是广泛使用的参考实现。该合同持有资产并在代码中强制执行审批规则。这解锁了灵活性,但也引入了合同风险和兼容性工作。兼容性是以太坊多重签名变得不再仅仅关于签名而更多关于标准的地方。许多应用程序期望来自外部拥有账户的签名消息。合同无法生成正常的 ECDSA 签名,因为它没有私钥。ERC-1271 是解决此问题的握手:它定义了一个 isValidSignature(hash, signature) 方法,应用程序可以在“签名者”是合同时调用,并且在验证通过时需要返回魔法值 0x1626ba7e。当一个去中心化应用支持 ERC-1271 时,它可以将来自合同钱包的批准视为真实授权。当它不支持时,多重签名可能会被阻止在依赖签名消息的工作流程中,例如链下订单系统。多重签名的使用场景

多重签名出现在任何需要共享控制和审计痕迹的地方。企业和项目财库使用多重签名来强制转账的明确批准,因此没有单一操作员可以单方面移动资金。DAO 和社区基金使用多重签名作为一种务实的控制层,特别是当团队希望对谁批准了什么有可见的问责制时。

类似托管的安排是另一个自然的适配。2 的 3 模式可以将一个密钥分配给买方,一个分配给卖方,一个分配给中立仲裁者。只有当两个当事方达成一致时,资金才会移动,这减少了对单一中介的信任需求。相同的结构可以用于合作伙伴资金,其中任何一方都不希望另一方拥有单方面的提款权。

个人安全设置是较为安静的用例,通常被误解。2 的 3 可以将密钥分散到设备和位置上,或为恢复添加一个可信的备份。关键点不是创建复杂的签名仪式。关键点是分离故障域。如果所有密钥都位于同一设备生态系统中,或所有密钥都由同一个人“为了方便”持有,那么多重签名标签就是在做市场营销,而不是风险工作。

这也是操作模型论点的关键所在。正确的 m 的 n 是与审批流程和如果签名者消失时可接受的停机时间相匹配的。2 的 2 对于一个联合账户可能是完美的,直到一个密钥丢失。3 的 5 对于连续性可能是完美的,直到团队意识到批准现在需要安排。

安全益处和操作权衡

多重签名的安全益处是显而易见的:妥协一个密钥不足以移动资金。这减少了网络钓鱼、单一设备上的恶意软件或单个内部人员叛变的影响范围。它还创造了更清晰的问责制,因为批准与不同的签名者密钥相关联,并且可以作为钱包执行历史的一部分进行审计。

权衡主要是操作性的,它们表现为失败模式。协调是显而易见的,但更昂贵的问题通常是程序性的。非正式审查导致签署错误的有效载荷、发送到错误的目的地或批准错误的随机数。多重签名使建立检查清单文化变得更容易,但默认情况下并不强制执行。

费用物流是另一个反复出现的陷阱。EIP-86 明确指出,多重签名可能需要多个批准交易,参与者可能需要 ETH 来支付费用。这在每个多重签名小组中都创造了一个政策问题:谁负责为批准保持签名者的资金充足,当他们没有资金时会发生什么。账户合约方法部分是出于希望合同持有 ETH 并支付费用的动机,正因为“每个签名者都需要燃料”是一个脆弱的操作假设。

阈值选择是最后的权衡,增加更多签名者并不能解决这个问题。2 的 2 最大化了相互控制,但如果一个密钥丢失,可能会永久冻结资金。2 的 3 受欢迎,因为它通过备份密钥内置了冗余。3 的 5 在缺席时更注重连续性而非速度。更高的 N 可能会增加协调失败,这意味着“更多签名者”可能会降低钱包在需要时采取行动的概率。

多重签名与 MPC 的比较

多重签名(Multisig)和多方计算(MPC)都旨在降低单钥风险,但它们在问责和操作属性上有所不同。多重签名使用由不同签名者持有的多个完整密钥,钱包在链上结合批准以授权交易。批准轨迹是明确的,并与不同的签名者身份相关联,这就是为什么在透明性和可审计性是要求时,多重签名通常更受青睐。

多方计算将签名密钥分割成碎片,并通过链下计算生成签名,任何一方都不会持有完整密钥。这种架构可以支持更顺畅的自动化,并且在多链操作中可能更具区块链无关性。其权衡在于,批准过程并不是像多重签名那样固有的链上、逐个签名者的审计轨迹。

决策框架不是“哪个更安全”的普遍主张,而是“什么需要在链上可证明,什么需要快速且操作顺畅。”如果要求是治理和对批准的清晰问责,多重签名自然适合。如果要求是在多个链上实现政策驱动的自动化操作吞吐量,多方计算通常更为合适。

这也是实现细节重要的地方。在原生支持的链上的多重签名与依赖于ERC-1271兼容性的基于合约的多重签名在签名消息工作流中表现不同。这种差异是钱包类型解释的一部分,这也是为什么两个产品都可以被称为“多重签名”,但在完全不同的方式下失败。

总结

我看到团队将多重签名视为一个复选框,然后发现他们构建了一个脆弱的批准管道。昂贵的时刻不是钱包创建的那一天,而是当一个签名者在旅行,一个设备坏了,团队意识到他们选择的阈值意味着一个非常真实的停机预算的那一天。

清晰的姿态是将多重签名设计成一个桌面控制系统:提案、审查、签名、阈值检查、广播,拥有费用资金的所有权和签名者失踪的计划。2-of-2是控制最大化且容易冻结,2-of-3是实际默认,因为它有恢复路径,而3-of-5是在连续性比速度更重要时使用的。签名者的数量不是特性,操作模型才是。

来源

Cobo

以太坊改进提案

  • 以太坊改进提案
  • Medium
  • [@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop
  • [@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

Frequently Asked Questions

2 of 3 多重签名是什么意思?

2 of 3 多重签名意味着有三个授权密钥(N=3),任何两个密钥(M=2)必须批准才能执行交易。这种方式很受欢迎,因为它容忍一个缺失或丢失的密钥,同时仍然防止单方面控制。许多团队将第三个密钥作为单独存储的备份。

多重签名钱包是非托管的吗?

如果签名者控制密钥,并且没有第三方可以单独移动资金,它可以是非托管的。托管模型是共享的,这意味着“所有者”是批准规则,而不是单一的密钥持有者。一些企业设置增加了服务提供商以进行协调,但决定性特征是任何外部方是否可以单方面签名。

多重签名钱包和MPC钱包有什么区别?

多重签名使用多个完整的密钥,并通过在链上组合批准来授权交易。MPC将一个密钥分割成多个片段,并通过链下计算生成签名,而不需要组装完整的密钥。多重签名倾向于最大化链上可审计性,而MPC通常优化自动化和多链操作。

为什么ERC-1271对以太坊上的Safe钱包多重签名很重要?

许多以太坊应用程序期望来自外部拥有账户的签名消息,但合约钱包无法生成正常的ECDSA签名。ERC-1271定义了isValidSignature(hash, signature),以便应用程序可以询问合约钱包某个签名是否应被视为有效。该标准要求在验证通过时返回0x1626ba7e。

多重签名钱包卡住的主要原因是什么?

最常见的原因是签名者的可用性和费用物流。如果门槛要求的签名者无法及时响应,批准将会停滞。EIP-86还强调,多重签名可能涉及多个批准交易,参与者可能需要ETH来支付提交批准的费用。