单签名与多签名:比特币自托管方法比较
来源:Bitcoin Magazine;编译:邓通,金色财经
如果您想要消除持有比特币的托管风险,您必须自行托管。比特币的托管由控制比特币密钥的人确定——如果您不持有您的比特币密钥,那么其他人就持有了。正如俗话所说,没有您的密钥,就没有您的比特币。
一旦有人决定要自行托管他们的比特币,下一个问题就是如何做到。大多数人很早就发现硬件钱包是使用比特币密钥的最安全方式。然而,选择硬件钱包并不是全部选择;您还可以在单签名、多签名和其他几种技术之间选择。在本文中,我们将研究这些选项,并将它们彼此进行比较。
单签名
单签名是一种只需要一个私钥进行比特币交易签名的钱包结构。这是持有比特币的最古老和最基本的方法。因此,目前超过70%的比特币以这种方式持有。
尽管设置和使用单签名相当简单,但许多人发现单签名不能提供足够的舒适感。只有一个密钥意味着总会存在一个单一故障点,可能导致资金丢失。例如,如果您的单签名密钥丢失了,那么您将无法访问您的比特币。或者,如果您的密钥落入了窃贼手中,窃贼可以将您的比特币转移到他们自己的钱包中。
重要的是要记住,比特币私钥仅仅是随机生成的秘密信息。这些信息可以由脱机工具(如硬件钱包)生成,但也应该以种子短语的形式进行物理存储。这意味着要保护一组12或24个单词的种子短语的安全和私密性。
即使对于非常谨慎和有组织的人来说,重要物品也可能因为错误或无法控制的情况而丢失。如果丢失的物品恰好是您比特币财富的唯一密钥,那将是灾难性的。自然而然,人们会积极寻求确保这种情况永远不会发生的策略。让我们探讨一些流行的方法!
在我们深入探讨多签名之前,值得一提的是,人们采用了一些修改单签名的方法。一些人尝试改善他们的单签名安全性的方式涉及即兴策略,而另一些涉及标准化的技术工具。
即兴单签名修改
在学习额外技术之前,持有单签名钱包中比特币的人可能会考虑一些简单的技巧,看起来可以保护资金不丢失。例如,复制种子短语、将种子短语分成多个部分、对种子短语进行编码,或创建多个单签名钱包来分散财富。这些技巧都带来了用户可能最初未能意识到的权衡。现在我们将简要地对它们进行更详细的介绍。
复制种子短语
复制种子短语是人们用来帮助避免在单签名钱包中丢失比特币访问权限的一种策略。这样做可以提供额外的保护,防止自然灾害或丢失。通过在几个不同的地点存储种子短语的多个副本,即使一个地点发生意外破坏,您也不会丢失对种子短语信息的访问权限。
另一方面,应该考虑到这种方法的一个重大缺点。在其他方面基本的单签名安排中,种子短语是某人发现您钱包余额并从中取走比特币所需的唯一物品。换句话说,如果一个不诚实的人找到了您的任何一份种子短语副本,他们就可以从您那里窃取比特币。因此,在多个地点存储您的种子短语可能会增加这种情况发生的机会。
种子短语分割
因为种子短语通常由12或24个单词组成,一些用户会考虑将单词列表分成几个部分并分别存储。这符合这样的逻辑,即如果一个窃贼只获取了不完整的单词列表,他们将无法窃取比特币。
然而,在本文涉及的所有想法中,这个想法是最有问题的。防盗逻辑存在缺陷——如果一个窃贼设法找到了您种子短语的一部分,他们可能更接近于能够猜出剩余的单词并从您那里窃取比特币。除了未能提供预期的保护水平外,这种方法还可能使您作为用户更难(甚至不可能)访问您的比特币,如果任何一个种子短语部分丢失了。
种子短语编码
一些单签名用户会考虑对其种子短语进行编码,其想法是,如果窃贼找到了编码后的信息,他们将无法解码并获得原始种子短语以窃取比特币。尝试这种方法有许多可能的途径,包括使用秘密公式改变单词,或将您的种子短语隐藏在更大的一组单词中。
编码策略越复杂,窃贼就越难以逆向获取比特币的访问权限。但这是一把双刃剑,因为复杂的编码策略也会增加犯错误或忘记解码结果的可能性。换句话说,它为您丢失比特币的访问权限增加了新的途径。
多个单签名钱包
众所周知,要避免“把所有鸡蛋放在一个篮子里”是一种普遍认可的智慧。如果您将所有比特币都保存在一个单签名钱包中,那么不断存在的丢失或被盗风险可能会让人难以接受。因此,一些人决定将其比特币的一部分分别保存在几个不同的单签名钱包中。
这种策略的缺点是增加了复杂性,并创建了额外的需要跟踪的敏感项目。虽然将比特币分散到不同的钱包中可以消除整个余额的单点故障,但实际上却为您财富的重要部分创造了更多的单点故障。例如,如果您创建了四个单签名钱包,并将您的比特币的25%分散到每个钱包中,您可能已经降低了丢失100%比特币的几率,但您也提高了在任何一个钱包变得不可访问的情况下丢失25%比特币的几率。正如我们很快将在本文的后续部分中看到的那样,有方法可以消除整个比特币余额的单点故障,而不会引入这个问题。
标准化的单签名修改
除了上述一些临时方法之外,还有一些标准化工具可用于帮助解决单签名钱包的某些风险。这些工具包括BIP 39密码短语、种子XOR和Shamir的秘密共享。对于每个选项,也需要考虑一些权衡。
BIP 39 密码
每当您生成一个比特币密钥时,可能会被要求是否要添加一个密码短语,或者您可能会在钱包设置中找到此选项。密码短语是添加到种子短语中的额外一组字符(类似于第13个或25个单词),它们对大小写敏感,可以包含数字或特殊字符。它们作为BIP39的一部分,从2013年开始作为标准选项与种子短语一起引入。如果密钥使用了密码短语构建,那么在重新创建密钥和支出资金时将始终需要密码短语。
如果一个密钥包含一个与种子短语分开存储的密码短语,那么结果就类似于种子短语分割。为了访问比特币,需要两个组件,这增加了阻止盗窃的难度。实际上,密码短语可以实现这一点,而不会像种子短语分割那样带来相同的安全风险,而且它还保留了设置一个诱饵钱包的选项(通过仅使用种子短语保护较小金额的资金,使您有可能否认您拥有可通过密码短语发现的其他资金)。
另一方面,密码短语也会创建另一个关键组件,可能会丢失,导致您永久失去对比特币的访问权限。如果您将密码短语书面存储,然后它被遗失或损坏,那么您的种子短语将不足以恢复对资金的访问。如果您试图记住密码短语,然后最终忘记了它,您也会面临类似的情况。请注意,简单、容易记忆的密码短语是脆弱且无效的,因为它们可能被攻击者猜到。最好使用强密码短语,但这样做并试图记住它是人们在自我托管中丢失比特币的最常见方式之一。
Seed XOR
Coinkite,Coldcard硬件钱包背后的制造商,推出了另一种解决方案,名为Seed XOR。通过使用一些数学魔法,Seed XOR允许您将您的种子短语分割成多个唯一的12或24个单词的种子短语,所有这些短语都需要重新组合才能再现原始的种子短语。通过分别存储新的种子短语,这创建了另一种种子短语分割的形式,而没有了自制设置中提到的安全风险。它还提供了虚假钱包的选项,因为每个结果种子短语组件也可以用作一个新的单签名钱包的密钥,其中包含较少的资金。
虽然Seed XOR功能内置于Coldcard中作为一种选择,但执行拆分或重新组合所需的数学计算也可以在没有Coldcard设备的情况下通过纸张完成。然而,请记住,Seed XOR包含了我们在前面部分讨论过的类似缺点。虽然提供了一定程度的防盗功能,但它增加了失去比特币访问权限的风险,因为如果任何一个新产生的种子短语丢失了,您将无法重新创建您的原始密钥并从原始钱包中支出。接下来,我们将探讨一些可以避免这个问题的技术。
Shamir的秘密分享算法
在1979年,著名的密码学家阿迪·沙米尔提出了一种称为Shamir的秘密分享(SSS)的秘密分享算法。它的工作原理是将秘密信息(可能是比特币私钥)用于生成若干新的信息片段,有时称为“碎片”或“份额”。这些份额单独来看毫无用处,必须结合在一起才能重新生成原始秘密。SSS之所以特别,与Seed XOR之类的方法不同,是因为它可以被构造成只需要部分份额就能生成秘密,而不是所有份额。例如,用户可以创建一个2-of-3的仲裁,其中存在三个独特的份额,但任何两个份额都可以组合在一起重建秘密。
这非常有用,因为它可以提供类似于前面讨论过的一些方法的防盗特性,它可能会减少丢失的风险!在2-of-3仲裁的例子中,如果一个小偷找到了一份与比特币密钥相关的SSS份额,他将无法访问钱包中的资金。与此同时,如果一份份额丢失或被销毁,钱包所有者仍然可以使用剩余的两份份额恢复他们的比特币。
Trezor硬件钱包的创建者Satoshi Labs引入了一种在创建比特币密钥时使用SSS的标准。它被称为“Shamir备份”,详细信息可以在SLIP 39中找到。在设置Trezor Model T时,它作为一个选项存在,如果选择了这个选项,设备将生成用户所需的份额仲裁,每个都表示为20个单词。这些由20个单词组成的集合不能用作虚假钱包的种子短语(与Seed XOR类似),也不应与其他单词组合在一起尝试这样做,因为SLIP 39使用自己的特殊单词列表。
SSS的一个显著弱点是,在使用所需数量的份额重新组装比特币密钥(例如,从单一签名钱包中支出资金)时,会出现临时的单一故障点。在签名时,密钥的整体必须存在于一个地方,这可能是攻击者利用的有利窗口。这是无法避免的事实,无论使用什么修改。然而,多重签名可以避免这个问题,并消除您的比特币托管的所有单点故障。
多重签名
最后,我们来到了多重签名,这不是像我们到目前为止所涵盖的那样是单一签名的修改,而是一种基本上不同的持有比特币的方式。
正如我们在多重签名指南中所描述的那样,多重签名钱包是由多个唯一密钥创建的。参与的密钥数量由钱包创建者确定,以及需要这些密钥中的多少来签署支出比特币的数量。这些数字被表示为仲裁,例如2-of-3,这意味着有三个密钥,其中两个必须提供签名才能支出比特币。
多重签名通过消除单一故障点提供比单一签名更好的安全性,保护您的比特币免受损失和盗窃。虽然并非所有的多重签名仲裁都提供这些保护,但像2-of-3这样的设置,这是Unchained提供的唯一选项,可以在足够满足大多数个人和企业的这两个类别的需求方面找到一个比较满意的点。
虽然多重签名的仲裁可能与SSS的仲裁相似,但存在一个重要的区别。如果创建了一个用于从多重签名钱包中支出比特币的交易,每个密钥都可以独立签名,而且可以在不同的时间和地点签名。换句话说,尽管一个2-of-3多重签名钱包需要两个密钥签署提取交易,但这些密钥永远不需要共同位置。事实上,这些密钥甚至不需要在创建钱包时首次汇聚在一起,而对于SSS来说并非如此。这从安全的角度来看非常好,并且对于希望通过不同成员持有不同密钥来管理比特币资产的团队来说,这种结构也更加方便。
权衡:不便和费用
多重签名为您的比特币提供了强大的安全性,但却以更少的便利性为代价。多重签名使攻击者更难花费您的比特币,但这也意味着最终用户的便利性会受到影响。
涉及多重签名的交易在挖矿费方面也历来比涉及单一签名的交易要更昂贵(平均而言)。然而,现在随着Taproot软分叉的激活,这一情况可能会开始改变。随着利用Taproot的新技术和Taproot的广泛采用,多重签名交易的费用结构将与单一签名交易相同。
自我托管与协作托管
由于多重签名比基本的单一签名钱包设置和使用更加复杂,自行尝试多重签名的一个重大缺点是缺乏可靠的技术支持。正如我们在涵盖此主题基础知识的文章中所解释的那样,钱包所有者将有更多的密钥需要跟踪,并且有关钱包配置的详细信息也很重要(以钱包描述符或钱包配置文件的形式保存)。对于新手来说,管理这些额外的部分可能会感到不知所措。
协作托管保险库可以准确地称为自托管的一种形式,因为您是唯一拥有完全权力支配比特币的人。这种方法通常涉及与合作伙伴分享一些关于您的比特币的信息,但它带来了简化设置的好处,减少了您需要自行跟踪的项目数量,帮助维护钱包,支持向受益人传递比特币,并轻松访问交易和贷款等金融服务。
3-OF-5怎么样?
在设置多重签名保险库时,一个重要的决定是选择适当的法定人数,其中2-of-3和3-of-5是远远最广泛用于在冷存储中保护比特币的。虽然在某些情况下可能有用,但3-of-5引入了比大多数情况下需要的更多复杂性。它可以提供额外的冗余性,但这一点可以重复以支持4-of-7,然后是5-of-9,依此类推直至无穷大。我们制作了一张图来帮助可视化这一点。
现在我们已经介绍了所有众所周知的持有比特币的方式,让我们将它们放在图表中来比较它们的功能!
我应该使用单签名还是多签名?
正如上面的图表所示,自托管比特币的不同结构之间存在权衡,这意味着没有一种普遍正确的方法。为了确定单签名或多签名对您来说哪种模型更好,您必须首先确定您的偏好和优先事项。
单签名和多签名往往在不同的领域表现出色,这一重要观察引出了一个问题:为什么不两者兼而有之呢?与其将这些模型视为对手,不如将它们视为彼此的完美补充!考虑使用多重签名钱包进行高安全性、长期的比特币储蓄,同时使用单签名钱包来持有较小金额,以便进行便利的交易(也许是支持闪电网络的移动钱包)是合理的。