多重签名(Multisig)

Lei Zhang
Lei Zhang
Sep 3, 2018 · 5 min read

比特币的存储和使用是通过我们说的ECDSA公私密钥对来实现。在比特币中,公钥是作为一个公共地址,而私钥才是可以授权比特币交易的权力之手。比特币持有者通过保密私钥来保护自己的账户安全。在比特币历史的大部分时间里,每个地址都是单个的私钥 — 可以这么说,单密钥地址(标准地址,以“1”开头)存储97%的比特币。

安全性

因为私钥丢失了不可恢复,所以如何保护私钥一直以来都是比特币圈子的大课题。目前有很多方法来保护私钥,比如:

  1. 存储在磁盘上,通过加密来保护
  2. 打印在纸上,放到保险柜里
  3. 硬件钱包

但是,任何物理介质都有可能出现故障,比如钱包文件被盗 ,加密被离线攻击,保险柜被偷了等等。随着比特币变得越来越有价值,现有的针对比特币钱包的恶意软件也层出不穷。如何能够降低单个密钥的风险,并不影响现有交易业务效率,这是虚拟货币圈子里面一直在研究的课题。

访问控制

对于企业来说,这更是一个难题。你可以想象如果企业有一个比特币账户,如何控制账户的访问?对于单密钥方案,必须要把私钥在IT部门内共享,而这对于企业来说,从安全性上来说,是不能被接受的。对于大型企业来说,拥抱比特币,意味着需要一个可靠地访问控制方案,而不是每次交易都依赖CEO来操作密钥。

解决方案:Multi-sig

2012年起,比特币的先驱们开始尝试一种新的地址叫做pay-to-script-hash(P2SH)。P2SH地址以“3”而不是“1”开头。P2SH地址的特点是支持多个私钥,也被称为多重签名。简单的说P2SH地址可以支持“M-of-N”交易,即对于总共N个密钥,只要其中获得其中M个私钥的签名,就可以进行交易。理论上M<=N,但N可以无限大。不过在实践中,区块链确实强制执行一些关于N的大小的限制,目前比较常用的是2-of-2或2-of-3。

举个例子,对于2-of-2,主要是面向安全性。可以理解为一个存款箱,必须要两个钥匙同时出现才能打开。如果一个密钥保存在电脑上,而另一个密钥保存在手机或硬件钱包上,单个系统被黑客攻击不会导致账户的失窃。而2-of-3则提供了redundancy,三个设备中任何一个设备的丢失,不会导致账户的丢失。 同时可以在一定程度上解决访问控制问题,对于一个三人持有的钱包,任何交易都要求至少2个人同意。

常见的几种M-of-N的钱包有

除了钱包,multisig还可以解决如下一些场景应用:

托管账户

Alice希望使用比特币,购买Bob的商品。他们都信任Chloe。于是他们创建了一个2-of-3的P2SH账户。Alice、Bob、Chloe各一把密钥。 如果交易顺利进行,Alice和Bob可以自行完成交易,而不需要引入Chloe。但是当出现争议的时候,Chloe可以裁决,并通过联合Alice或Bob来移动资金。在交易过程中,比特币处于一种锁定的状态,因为没有一个人可以转移资金

机构交易限制

一家公司希望建立一个比特币钱包可以被3个员工访问,但要求任何超过5000美元的交易需要两个人批准。 它可以创建一个2-of-2的P2SH钱包,三名员工持有一个密钥,而一个内部的policy service持有另一个密钥的地址。当三名员工中的一名希望交易时,他会用自己的密钥签名,要求policy service共同签名。Policy Service 通过审查支出额度来决定是否共同签名,或者要求其他两名员工之一进行二次批准。

对于policy service,本身并不是multisig的一部分, 而是由交易所或软件公司的软件来实施的,这意味着这些servcie并不是比特币协议的一部分,所以其安全性更多的取决于流程和政策控制:谁可以改变支出限额? 时间限制? 通知? 什么时候可以改变了吗? 在改变之后是否有冷却期? 谁有权访问policy-enforcement service?是谁写的代码,它是开源的吗?等等

保证金

用户希望在交易所进行交易,但不希望把比特币存到交易所钱包里面,因为他不完全信任他们的安全措施。 于是用户建立了一个2-of-2钱包,他和交易所共享一个密钥,一个独立的policy-enforcement service持有另一个密钥。用户将比特币存入该钱包,作为他在该交易所进行交易的保证金。而Policy-enforcement service的作用是确保用户和交易所都不可以单方面提取资金交易。

趋势

如上述场景所示,多重签名可以在很大程度上改进个人和组织在使用bitcoin和其他虚拟货币的过程中的安全问题,降低资金风险。预计随着时间的推移,大部分比特币都会转移到P2SH多重地址。

多重签名虽然有很多优点,但是它并不是万能的。对于它是什么,能解决什么问题,一直存在着误区。如果看看最近的Bitfinex hack事件,你就可以大概明白安全性上的挑战其实是一直存在的,所以:

Multisig是一个工具。 像所有的工具一样,它的效果取决于你如何使用它。如果你把一把锁安装在浴缸上,你不能指望这把锁解决你前门的安全问题。

Multisig本身不是安全的方案。 它可以是一个强大的精心设计的安全方案的组成部分,但它只是一个零件。 脱离背景、使用场景、目标,来谈论multisig是没有意义的。当multisig用作时作为整体安全计划的一部分,它可以提供额外的安全防护,比如防止贪污,错误,损失,欺诈,单一故障等隐患。但是,它没有支出限制, 你可以提取所有资金。没有时间限制,你可以立即提取资金。没有每日交易限制,你可以每分钟创建数千个交易。没有通知,你不会收到电子邮件或短信的通知。

    Lei Zhang

    Written by

    Lei Zhang

    Entrepreneur

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
    Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
    Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade