个人通常将比特币存储在单一的私人密钥下。简而言之,这意味着移动所有者的比特币只需要一个比特币密钥。但对于存储大量比特币机构来说,这种方法并不安全。
相反,对比特币组织的控制应该分散在多人身上,以确保在支出时存在制衡,同时确保没有人成为盗窃(或更糟)的目标。
要将控制权分配给多个参与方,常用的方法有三种:
· 比特币多重签名交易(multisig)
· Shamir的秘密共享计划(SSSS)
· 专用硬件安全模块(HSM)
毫无疑问,比特币multisig将是大多数实体比特币投资机构的最佳选择。它经过良好的测试,部署成本低,灵活、可审计,并且支持常规交易。然而,SSSS今天仍然被一些组织使用,并且在利基环境中占有一席之地,所以两种方法是值得的讨论,可以帮助那些正在探索存储选择的组织。
关于SSSS和multisig之间的差异
私钥基础知识
私钥可以看作是汽车的钥匙。车钥匙是唯一可以移动你的车工具,每辆车都有独一无二的钥匙。在比特币中,私钥用于移动存储在公开可见地址中的比特币。每个地址都有自己唯一的密钥。
“钱包”是一个个人或组织拥有的地址集合。地址和地址的密钥由一个主私钥生成。
谁控制了主私钥,谁就控制了钱包。如果密钥永久丢失或销毁,则与主私钥关联的比特币可以被视为永久丢失。
主私钥存储问题
当一个组织决定用一个主私钥存储比特币时,他们只有两种选择:
1. 把钥匙给一个人:这个人可能会犯“胖手指”式的错误,丢失设备,忘记密码,受到小偷的威胁,甚至屈服于为自己拿走一些资金的诱惑。如果他们是度假或生病,这样只有等他们回来才能使用比特币。如果他们在没有告诉任何人密码的情况下去世了……比特币就变成了一项非常长期的“投资”。
2. 与多人共享同一密钥: 如果一个人丢失了密钥,或者一个人无法使用,比特币仍然可以移动。然而,每个密钥持有者仍然具有上述相同的风险。无法验证每笔交易中谁的密钥被使用,这意味着在发生盗窃时几乎没有责任。它还为每个钥匙持有人提供了铁质合理的推卸责任,除非他们想从事内幕交易——三个人拿着钥匙,代币在移动,你怎么知道这三个人中谁在移动它们?
Shamir的秘密共享计划
一种解决方案是Shamir的秘密共享方案(SSSS),该方案允许公司将其主私钥分割给多个用户。
背景
早于比特币(1979年发现),SSSS是一种密码方案,用于将一小段数据(如私钥)分割成多个部分。该方案完全可定制,允许用户定义部件总数(m)和重新创建整个部件所需的部件数(n)。
在SSSS下,持有一个部件不会显示部分数据。此外,任何n个部分的组合都可以——它们不需要以任何特定的顺序组合。
一个常见的例子是2 / 3拆分,它将数据拆分为三个部分,其中任何两个部分都是恢复数据所必需的。但几乎任何m-of-n组合都是可能的,比如4 / 6或15 / 15。
Shamir的秘密共享方案2:3:每个参与者收到同一个钱包的一个密钥部分。重建整体需要两部分。
比特币的SSSS
应用于比特币,一个组织可以使用SSSS将主私钥分割成不同的部分,只有当m (n)个部分组合在一起时,主私钥才会显示出来。然后,这些单独的部分可以分发给该组织的多个成员,这些成员需要合作才能使用该组织的比特币。
SSSS可以被认为是加密的,更灵活的版本有Ledger的“冗余”种子短语备份
优点
· 比标准的单一密钥更好: 只要安全生成SSSS(参见下面的设置风险),那么它就可以为组织提供保护,防止长期比特币投资被盗、丢失和内幕交易。为了访问存储的比特币,必须对多个部分进行破解(其他参与者不会发现)。
· 支持山寨币: 对于任何投资山寨币的人,SSSS可以用来分割任何私钥。
缺点
· 设置风险:当涉及到生成单独的部件时,必须首先生成私钥,然后使用SSSS软件进行分割。如果在设置过程中涉及到一个坏参与者,SSSS不会保护私钥不被窃取或错误处理。
· 单独使用: SSSS方案仅适用于特定条件下的单独使用。一旦使用mof n部件重新构造了私钥,私钥就不再安全。
· 不可审计:SSSS的参与者无法验证他们的部分是否需要使用存储的比特币。私钥的多个完整副本可以创建并存储在其他地方。
· 技术: 自己建立SSSS需要一些技术知识。
外部的SSSS
Coinbase托管声称在内部使用类似SSSS的方案(或SSSS本身)来保护客户的代币,以便成为“链不可知论者”。也有迹象表明,Winkelvoss twins可能正在使用SSSS来持有比特币。
SSSS的解决方案
建立自己的SSSS可能有点棘手,需要一些实际的技术经验。我们不支持或推荐以下任何一种解决方案,但推荐了一个列表,供人们做自己的研究:伊恩科尔曼的SSSS工具;point-at-infinity;KPN-CISO。记住,当涉及到处理您的私钥时:不要信任任何人,请做好充分验证!
比特币Multisig
背景
比特币本身支持多种智能合约。最常用的智能合约之一是multisig。与SSSS非常类似,用户可以创建比特币地址,直到有m / n的人使用他们的私钥签署合约,才能使用这些地址。
在比特币多重签名中,每个参与者都有自己的私钥。要创建一个新的multisig钱包,每个参与者只需要向其他参与者公开他们的公钥,以确保他们自己的私钥安全。
从那时起,任何发送到multisig钱包的比特币都需要n个密钥才能再次移动。
Multisig 2-of-3:每个参与者都有自己的密钥,用于创建一个总是需要两个密钥才能使用的新钱包
优点
· 最小化设置风险:与SSSS不同,无论是在设置中,还是在进行交易时,都不需要向其他参与者公开单独的私钥。
· 多用途:由于私钥从来不会透露给一个人,比特币multisig使用多次是安全的。
· 可审计: multisig的参与者可以通过密码验证比特币是否保存在multisig中,以及multisig的参数。与SSSS不同的是,他们可以确信,除了multisig之外,没有其他人能够访问比特币。
· 更容易处理密钥丢失: 如果任何参与者丢失了一个私钥,剩下的m个参与者可以轻松地将比特币转移到一个新的多签名地址,并生成一个新的密钥来替换丢失的密钥。
· 现成的解决方案: 许多初创公司已经使建立和管理一个多团体的技术过程变得非常用户友好(参见下面的多团体解决方案)。
缺点
· 对山寨币的支持有限:多签名合同是比特币的固有特性,这意味着山寨币不一定能以同样的方式运行,2017年的以太坊Parity黑客攻击就证明了这一点。只有一小部分基于比特币代码库的山寨币支持比特币风格的multisig,例如Litecoin和Dogecoin。
· 不要丢失公钥:除了保管好自己的私钥外,每个参与者还应该保存一份其他参与者公钥的副本,以便在丢失的情况下重建钱包。
· 隐私: 多签名交易作为一种特殊的交易类型在区块链上清晰地显示。交易对手方(可能还有区块链情报公司)将能够识别您的比特币被保存在一个多签名钱包中,以及需要多少密钥才能使用。
Multisig解决方案
作为安全比特币存储的黄金标准,越来越多的多重签名解决方案将允许组织在其团队中分发密钥: Electrum、Casa、BitGo、Blockstream Green、Unchained Capital,当然还有Clavestone!
结语
何时使用Multisig
绝大多数情况下,组织需要可靠地分配对其比特币持有量的控制权。
何时使用SSSS
· 当您绝对必须分配控制altcoin控股。
· 当您需要确保第三方无法观察到对比特币的控制已被分发。
· 由于建立SSSS的人需要信任,因此更适合个人持股而不是组织持股。
· 当您需要分发一个或所有多签名的私钥时(SSSS可以与多签名一起使用)。