确保比特币安全具有挑战性,因为比特币不是抽象的价值参考,就像银行账户的余额。比特币非常像数字现金或黄金。你可能听到过这样的表达:“占有是法律的十分之九”。那么,在比特币中,占有是法律的十分之一。拥有解锁比特币的密钥相当于拥有现金或贵重金属。你可能会失去它,放错位置,被盗,或者不小心把错误的数字给别人。在每一种情况下,用户都没有追索权,就好像他们在公共人行道上放弃了现金一样。
但是,比特币具有现金,黄金和银行账户不具备的能力。包含您的密钥的比特币钱包可以像任何文件一样备份。它可以存储在多个副本中,甚至可以打印在纸张上进行硬拷贝备份。您不能“备份”现金,黄金或银行账户。比特币与之前的任何东西都不相同,我们需要以一种新颖的方式来思考比特币安全。
比特币的核心原则是去中心化,它对安全性有重要影响。传统的银行或支付网络等集中模式依赖于访问控制和审查,以防止不良行为者。相比之下,像比特币这样的分散系统将责任和控制交给了用户。由于网络的安全性基于工作量证明,而不是访问控制,因此网络可以公开,并且比特币流量不需要加密。
在诸如信用卡系统的传统支付网络中,支付是开放式的,因为它包含用户的私人标识符(信用卡号码)。在初始收费后,任何可以使用该标识符的人都可以“拉取”资金并一次又一次地向拥有者收费。因此,支付网络必须通过加密进行端对端的安全保护,必须确保没有窃听者或中间人可以危害付款流量,包括传输中或存储时(静止时)。如果一个不良行为者获得了访问系统的权限,他可以危害当前的交易,以及 可用于创建新交易的支付令牌。更糟糕的是,当客户数据遭到破坏时,客户面临身份盗用的风险,必须采取措施防止被盗账户的欺诈性使用。
比特币有很大的不同。比特币交易仅向特定收件人授予特定的价值,不能伪造或修改。它不会透露任何隐私信息,例如当事人的身份,也不能用于授权额外付款。因此,比特币支付网络不需要加密或防止窃听。事实上,您可以通过开放的公共频道(例如不安全的WiFi或蓝牙)来广播比特币交易,同时不会降低安全性。
比特币的去中心化安全模式将大量权力交给用户。有了这个权力就有责任对密钥进行保密。对于大多数用户来说,这并不容易,特别是在通用计算设备上,例如连接互联网的智能手机或笔记本电脑。虽然比特币的去中心化模式可以防止向信用卡那样出现大规模危机,但许多用户无法充分保护他们的密钥,并一个接一个地被黑客入侵。
比特币开发者最重要的原则是去中心化。大多数开发人员都熟悉集中式安全模型,并可能试图将这些模型应用到他们的比特币应用程序中,从而带来灾难性后果。
比特币的安全性依赖于对密钥的去中心化控制以及矿工的独立交易验证。如果你想利用比特币的安全性,你需要确保你保持在比特币安全模型中。简而言之:不要将密钥从用户手中接管,也不要将交易从区块链中移除。
例如,许多早期的比特币交易所将所有用户资金集中在单个“热”钱包中,密钥存储在单个服务器上。这种设计消除了用户的控制权,并集中控制单个系统中的密钥。许多此类系统已被黑客入侵,对客户造成灾难性后果。
另一个常见的错误是,为了减少交易费用或加速交易处理,错误地将交易“脱离区块链”。一个“离线的区块链”系统将在内部的集中式账本上记录交易,并且偶尔将它们同步到比特币区块链上。这种做法再次以专有和集中的方式取代了去中心化的比特币安全性。当交易离开区块链时,安全措施不当的集中账本可能被伪造,导致资金流失和储备枯竭,而不被人注意到。
除非您准备在运营安全,多层访问控制和审计(如传统银行所做的那样)上投入大量资金,否则在将资金用于比特币的去中心化环境外之前,应该仔细考虑。即使你有足够的资金和规则来实施强大的安全模式,这样的设计也只是复制了传统金融网络的脆弱模式,这种模式受到身份盗用,腐败和贪污的困扰。为了利用比特币独特的去中心化安全模式,您必须避免可能会感到熟悉但最终颠覆比特币安全性的集中式体系结构的诱惑。
传统的安全体系结构基于一个称为 信任根 root of trust 的概念,它是一个可信的核心,用作整个系统或应用程序安全的基础。安全架构是围绕信任根发展起来的,是一系列同心圆,如洋葱中的层,从中心向外扩展信任。每层使用访问控制,数字签名,加密和其他安全基元构建更可信的内层。随着软件系统变得越来越复杂,它们更容易包含错误,这使得它们容易受到安全危害。结果,软件系统越复杂,就越难保证安全。信任根的概念可以确保大多数信任被放置在系统中最不复杂的部分,系统中最不易受影响的部分,更复杂的软件则围绕着它。这种安全体系结构在不同规模上重复出现,首先在单个系统的硬件中建立信任根,然后通过操作系统将信任根扩展到更高级的系统服务,最后跨越多个服务器减少信任。
比特币安全架构不同。在比特币中,共识系统创建了一个完全分散的可信公共账本。经过正确验证的区块链使用创世区块作为信任根,建立一个直至当前区块的信任链。比特币系统可以也应该使用区块链作为他们的信任根。在设计由许多不同系统上的服务组成的复杂比特币应用程序时,您应仔细检查安全架构,以确定信任的位置。最终,唯一应该明确信任的是完全验证的区块链。如果您的应用程序明确或隐含地信任除区块链之外的任何其他信息,那么应该引起关注,因为它会引入漏洞。评估应用程序的安全体系结构的一个好方法是考虑每个单独的组件并评估一个假想的场景,其中该组件完全受到攻击并处于恶意行为者的控制之下。依次评估应用程序的每个组件受到危害时对整体安全性的影响。如果您的应用程序在组件受损时不再安全,则表明您错误地信任这些组件。一个没有漏洞的比特币应用程序应该只会损害比特币共识机制,这意味着它的信任根源是比特币安全架构中最强大的部分。
众多被黑客入侵的比特币交易所的例子有助于强调这一点,因为即使在最偶然的审查下,其安全架构和设计也会失败。这些集中式实施已经将信任明确地投入到比特币区块链以外的众多组件中,比如热钱包,集中化账本数据库,易受攻击的加密密钥以及类似的模式。
人类已经使用了数千年的物理安全控制。相比之下,我们在数字安全方面的经验还不到50年。现代通用操作系统并不是非常安全,并不适合存储数字货币。我们的电脑通过永远在线的互联网连接不断暴露于外部威胁下。他们运行数百个作者的数千个软件组件,通常无限制地访问用户的文件。在您的计算机上安装的数千个软件中,一个流氓软件,可能会危及您的键盘和文件,窃取存储在钱包应用程序中的任何比特币。保持计算机无病毒和无木马所需的计算机维护技能超出了大多数计算机用户的水平。
尽管有数十年来信息安全方面的研究和进步,但数字资产仍然很容易受到坚定的对手的攻击。即使是在金融服务公司,情报机构和国防承包商中受到高度保护和限制的系统也经常遭到侵犯。比特币创造的数字资产具有内在价值,可以被盗取,并立即不可撤销地转移给新的所有者。这为黑客创造了一个巨大的诱因。到目前为止,黑客在入侵之后不得不将身份信息或账户令牌(如信用卡和银行账户)转换为价值。尽管销赃和洗钱很困难,但我们发现盗窃案日益增多。比特币升级了这个问题,因为它不需要被销赃或洗钱;这是数字资产的内在价值。
幸运的是,比特币也创造了提高计算机安全性的动力。之前计算机被入侵的风险是模糊和间接的,比特币使这些风险变得清晰明了。在计算机上持有比特币有助于将用户的注意力集中在提高计算机安全性的需求上。作为比特币和其他数字货币的激增和采用的直接结果,我们看到了黑客技术和安全解决方案的升级。简而言之,黑客现在有了一个非常肥美的目标,而用户也有了明确的动机来保护自己。
在过去的三年中,作为比特币应用的直接结果,我们看到了以硬件加密,密钥存储和硬件钱包,多重签名技术以及数字托管等形式在信息安全领域的巨大创新。在下面的章节中,我们将研究实际用户安全的各种最佳实践。
从长远来看,比特币安全越来越多地采取硬件防篡改钱包的形式。与智能手机或台式电脑不同,比特币硬件钱包只有一个目的:安全地持有比特币。没有通用软件的危害并且接口有限,硬件钱包可以为非专业用户提供几乎万无一失的安全级别。我期望看到硬件钱包成为比特币存储的主要方法。有关这种硬件钱包的示例,请参阅 Trezor。
虽然大多数用户都对比特币失窃有正确的担忧,但风险更大。数据文件一直在丢失。如果他们包含比特币,损失会更加痛苦。为了保证他们的比特币钱包的安全,用户必须非常小心,不要太过分,而最终会失去比特币。2011年7月,一个众所周知的比特币意识和教育项目损失了近7,000比特币。为了防止盗窃,拥有者们实施了一系列复杂的加密备份。最后,他们意外地丢失了加密密钥,使得备份毫无价值并且失去了一笔财富。就像把钱埋在沙漠中一样,如果你过于仔细地保护你的比特币,你可能无法再找到它。
你会把你的全部资产以现金形式放入你的钱包吗?大多数人会认为鲁莽,但比特币用户经常把所有的比特币放在一个钱包里。相反,用户应该将风险分散到多种多样的比特币钱包中。谨慎的用户将比特币的一小部分,或许不到5%的比特币保留在在线或移动钱包中作为“零钱”。剩下的应该分成几种不同的机制存储,比如桌面钱包和离线(冷存储)。
每当公司或个人存储大量比特币时,他们应该考虑使用多重签名比特币地址。多重签名通过要求多个签名进行付款来解决资金安全问题。签名密钥应存储在多个不同位置,并由不同人员控制。例如,在公司环境中,密钥应该由多个公司管理人员独立生成并保存,以确保任何人都不会损害资金。多重签名地址也可以提供冗余,即一个人拥有多个存储在不同位置的密钥。
比特币是一种全新的,前所未有的复杂技术。随着时间的推移,我们将开发更好的安全工具和实践,使非专业人员更容易使用。目前,比特币用户可以使用这里讨论的许多技巧来享受安全且无故障的比特币体验。