Multi-signature Wallet (multisig)
多重签名钱包(Multi-signature Wallet,简称 multisig wallet)是一种加密货币钱包,它要求每笔交易必须提供多个签名(而非仅一个)才能执行。与依赖单一私钥的传统钱包不同,多重签名钱包需要多个私钥来授权并完成交易。[1]
类型
常用的多重签名钱包类型包括:
n-of-n 多重签名钱包
交易需要多个密钥授权。所有密钥都必须用于创建签名。示例包括 2-of-2 多重签名钱包、3-of-3 多重签名钱包等。例如:
- 2-of-2 多重签名钱包:这种钱包通过双重身份验证进行强化,采用 2-of-2 多重签名算法。它将私钥存储在两个不同的设备上。例如,一个私钥可能在电脑上,而另一个在移动设备上。如果没有这两个设备的签名,交易就无法进行。虽然 2-of-2 多重签名钱包增强了安全性,但如果其中一个设备损坏或丢失,则存在无法访问资金的风险。[1][2]
n-of-m 多重签名钱包
交易需要部分密钥而非全部密钥进行授权。示例包括 1-of-2 多重签名钱包、3-of-5 多重签名钱包等。例如:
- 3-of-5 多重签名钱包:这种多重签名钱包变体需要 5 个可用私钥中的 3 个来验证交易。交易所经常部署它们来增强其热钱包的安全性。支持 3-of-5 多重签名地址的交易所会在联机状态下保留一个私钥,并将第二个私钥离线保存在断网设备上。同时,一家独立的安保公司持有第三个密钥,配偶或监护人可能持有第四个,另一个设备可能存储第五个。由于私钥由三个不同的实体管理,黑客攻击其中一个并不会危及钱包。离线备份进一步保护了热钱包,尤其是在安保合作伙伴倒闭的情况下。[1][2]
硬件多重签名钱包
一些硬件钱包(被认为是存储加密货币最安全的方式之一)提供多重签名功能。硬件钱包是离线存储私钥的物理设备,与多重签名结合使用时,可提供额外的安全保障。
软件多重签名钱包
许多加密货币钱包提供基于软件的多重签名功能,使其能够被更广泛的用户群体使用。这些钱包可以在各种设备上使用,包括台式电脑和移动电话。
托管多重签名钱包
一些加密货币交易所和托管服务提供多重签名钱包以增加安全性。在这种情况下,交易所或服务提供商持有其中一个私钥,而用户持有其他私钥,确保双方必须共同同意才能进行交易。
智能合约多重签名钱包
一些区块链平台(如 以太坊)允许用户使用 智能合约 创建多重签名钱包。这些智能合约可以通过编程来执行复杂的交易授权规则和条件。
冷存储多重签名钱包
冷存储 多重签名钱包通常在离线环境中创建和存储,以实现最高安全性。私钥在不连接互联网的设备上生成和存储,使其具有极强的抗黑客攻击能力。
跨货币多重签名钱包
一些多重签名钱包支持多种加密货币,允许用户在一个钱包中安全地管理不同的数字资产。[5]
技术原理
多重签名钱包由预定数量的授权签名者建立,每个签名者都拥有自己的私钥。当发起交易时,交易会被广播到区块链网络,但在提供必要的签名之前,它保持未确认状态。该钱包根据预定义的法定人数强制执行签名要求。[1]
例如,在一个 2-of-3 的多重签名钱包中,三位签名者中的两位必须提供签名。授权签名者会检查交易并使用其私钥附加数字签名。一旦获得所需数量的签名,交易就会被确认,加密货币 随之完成转移。[1][3]
功能特点
- 所有共同付款人(copayers)都可以查看钱包的资金和交易情况。
- 钱包发出的交易需要一个或多个共同付款人的签名,从而增强了资金安全性。
- 每个共同付款人都拥有唯一的恢复助记词。然而,如果任何一个共同付款人的恢复助记词丢失,可能导致没有足够的签名来授权交易。如果没有足够的共同付款人签名,钱包中的资金将无法提取。
- 该钱包支持在单一多重签名密钥下存储多种加密货币。[5]
优势
增强的安全性
与单签名钱包相比,多重签名钱包提供了卓越的安全性。即使一个私钥被泄露,攻击者在没有强制性额外签名的情况下也无法动用资金。
降低人为错误风险
通过要求多个人员或实体的批准,多重签名钱包减轻了意外损失或未经授权转账的风险。
防范内部威胁
在业务或组织环境中,多重签名钱包可以防御内部恶意行为,因为这需要多个内部人员协作才能危及资金安全。
双重身份验证 (2FA)
多重签名钱包本质上充当了一种双重身份验证 (2FA) 形式。指定的签名者必须确认任何待处理的交易。如果恶意行为者获得了密钥的未经授权访问权限,用户可以迅速停止并撤销其访问权限。为了加强这一安全措施,私钥通常存储在不同的位置或由不同的人持有。
托管服务
多重签名钱包经常被用于托管服务。它们保留资金直到满足特定条件,为交易提供了一种透明且强化的方法。
商业应用场景
在企业界,多重签名钱包在财务管理方面极具价值。它们使高管财团能够监控并背书财务往来。\[1\]
单密钥 vs 多重签名
| 钱包 / 特性 | 单密钥钱包 | 多重签名钱包 |
|---|---|---|
| 密钥数量 | 依赖单一私钥进行访问和控制。钱包交易仅需一个签名即可授权。 | 需要多个私钥来授权交易。所需签名数量取决于多重签名的具体配置。 |
| 安全性 | 安全性较低。如果单一私钥泄露或丢失,资金极易被盗,且缺乏备份或冗余。 | 增强的安全性。攻击者在没有获得所需数量的额外签名的情况下无法访问资金。 |
| 复杂性 | 设置简单。 | 设置和管理较为复杂。需要与多方协调、处理多个私钥并配置特定的安全参数。 |
| 恢复与冗余 | 缺乏内置冗余。如果私钥丢失或泄露,恢复可能非常困难,资金可能会永久丢失。 | 设计具有冗余性。如果一个密钥丢失或泄露,允许通过备份进行操作。 |
| 交易授权 | 仅由单一私钥持有者授权,交易快速且直接。 | 需要指定数量的授权签署人批准,增加了额外的复杂层级,并可能延长交易授权时间。 |
| 安全权衡 | 简单便捷,但伴随较高的安全风险。 | 增强了安全性,但管理起来可能更复杂。 |
| 使用场景 | 适合注重简便性和快速访问资金的个人。通常用于日常支出。 | 企业账户、家庭共享账户、托管服务以及对信任和问责制有基本要求的场景。[4] |
多重签名钱包攻击
网络钓鱼攻击
攻击者可能会冒充钱包提供商或受信任的个人,诱骗用户泄露其私钥或身份验证码,从而破坏多重签名钱包的安全性。
社交工程
攻击者可能会试图操纵或欺骗其中一名授权签署人,以获取其私钥。这可以通过多种手段实现,例如冒充、贿赂或胁迫。
密钥窃取
如果其中一个私钥被泄露或窃取,攻击者就可以在其他授权签署人不知情或未同意的情况下使用该私钥签署交易。这是多重签名钱包中的一个重大漏洞。
密钥管理不当
不良的密钥管理习惯,例如将私钥存储在不安全的位置或使用弱密码,可能会使多重签名钱包面临未经授权的访问。
软件漏洞
钱包软件或底层区块链网络中的漏洞可能被攻击者利用,从而控制多重签名钱包。保持钱包软件和固件的及时更新至关重要。
物理攻击
在某些情况下,对用于存储私钥的设备或存储介质进行物理攻击可能会导致密钥泄露。安全的硬件存储对于降低此类风险至关重要。
合谋攻击
在需要多个授权方签署交易的情况下,如果两个或多个签署人密谋批准欺诈交易,就会发生合谋攻击。在多重签名设置中选择受信任的各方是强制性的。
对单一方的过度信任
多重签名钱包旨在将信任分配给多个参与方。然而,如果一方拥有明显更多的控制权或密钥访问权限,则可能会损害钱包的安全性。
智能合约漏洞
使用智能合约实现的多重签名钱包可能容易受到编码错误或合约代码漏洞的影响,从而导致意外行为和潜在的利用。
恢复信息丢失
多重签名钱包通常设有恢复机制,例如备份密钥或助记词。如果这些恢复选项丢失或泄露,重新获得钱包访问权限将变得非常困难。[11]
多重签名钱包黑客攻击事件
Bitfinex (2016)
- Bitfinex 在2016年8月遭受了一次备受关注的安全漏洞攻击。该交易所当时使用 2-of-3 多重签名钱包配置来保护客户资金。
- 黑客利用了 Bitfinex 多重签名钱包软件中的一个漏洞,窃取了约 120,000 枚 比特币 (Bitcoins),当时价值数千万美元。[8]
Parity 钱包漏洞 (2017)
- 区块链软件公司 Parity Technologies 在2017年经历了多起与其多重签名钱包软件相关的安全事件。
- 2017年7月,Parity 多重签名钱包代码中的一个漏洞导致黑客攻击,致使多个项目和个人的 150,000 多枚 ETH 损失。
- 2017年11月,Parity 多重签名钱包代码中的另一个漏洞导致存储在多个钱包中的约 513,000 枚 ETH 被冻结。
- 这些事件引发了人们对基于智能合约的多重签名钱包的可靠性和安全性的担忧。[9]
示例
Armory
Armory 是使用最广泛的 BTC 多重签名钱包。它提供多种钱包样式,并针对某些类型的黑客攻击提供内置保护。用户可以选择将私钥离线存储在 USB 设备上。
Electrum
Electrum 是 BTC 最古老的多重签名钱包之一。其界面既用户友好又安全。Electrum 与 Ledger 和 Trezor 等其他钱包兼容。它利用简单的支付验证系统,并专门支持比特币。
BitGo
BitGo 是一款专门针对比特币的多重签名钱包,提供了一系列有用的集成功能。它允许用户将其钱包与第三方加密货币交易所集成。BitGo 的开源钱包包括针对黑客攻击的免费保险,并提供桌面版和网页版。
Trezor 和 Ledger
虽然这些主要是硬件钱包,但当与兼容的软件钱包结合使用时,它们也提供多重签名解决方案。
[6][7]
Safe
Safe(原名 Gnosis Safe)是 Gnosis 开发的产品。它是一个可定制的多重签名钱包基础设施,在以太坊上作为 智能合约 钱包运行。它在执行交易前需要预定义数量的批准,并支持各种代币,包括 ETH、ERC-20 和 ERC-721。Safe 由 SafeDAO 管理,这是一个被称为 Safe Guardians 的去中心化集体。[12]