使用区块链的关键在于让人们 - 尤其是不相互信任的人们 - 以安全,防篡改的方式共享有价值的数据。这是因为区块链使用复杂的数学和创新的软件规则存储数据,这些规则对攻击者来说是非常困难的。但即使是设计最好的区块链系统的安全性也可能出现在那些花哨的数学和软件规则接触人类的地方,而这些人类是技艺娴熟的骗子,在现实世界中,事情会变得混乱。

要理解为什么,请从原则上使区块链“安全”开始。比特币是一个很好的例子。在比特币的区块链中,共享数据是有史以来每笔比特币交易的历史记录:会计分类帐。分类账存储在计算机网络上的多个副本中,称为“节点”。每次有人向分类账户提交交易时,节点都会检查以确保交易有效 - 使用比特币的人可以使用比特币。他们的一个子集竞争将有效交易打包成“块”并将其添加到以前的链中。这些节点的所有者被称为矿工。成功在链条上添加新块的矿工将获得比特币作为奖励。

使系统在理论上防篡改的原因有两点:每个块独有的加密指纹和“共识协议”,即网络中的节点同意共享历史的过程。

称为散列的指纹需要大量的计算时间和精力才能生成。因此,它证明了将区块添加到区块链的矿工进行了计算工作以赚取比特币奖励(因此,比特币被称为使用“工作证明”协议)。它也可以作为一种密封,因为改变块需要生成一个新的哈希。然而,验证散列是否与其块相匹配很容易,并且一旦节点完成,它们就用新块更新它们各自的块链副本。这是共识协议。

最后的安全元素是散列也可以作为区块链中的链接:每个区块都包含前一个区块的独特散列。因此,如果您想以追溯方式更改分类账中的条目,则不仅需要计算新的哈希值,还要计算每个后续的块。而且你必须这样做比其他节点可以将新块添加到链中更快。因此,除非您的计算机比其他节点组合的功能更强大(即使这样,成功并不能保证),但您添加的任何模块将与现有模块冲突,其他节点将自动拒绝您的更改。这是区块链防篡改或“不可变”的原因。

创造性的作弊方式

这个理论非常重要。在实践中实施它更困难。事实上,像比特币这样的系统就像许多加密货币一样工作 - 并不意味着它就像安全一样。即使开发人员使用经过验证的真实密码工具,麻省理工学院数字货币计划主任Neha Narula说,很容易意外地将它们放在不安全的地方。比特币一直是最长的,所以它是最彻底的战斗测试。

人们也找到了创造性的欺骗手段。EminGünSirer和他的康奈尔大学的同事们已经表明,即使你拥有的其他矿工的采矿能力不到一半,也有一种方法可以颠覆区块链。细节在某种程度上是技术性的,但实质上一个“自私的矿工”可以通过欺骗其他节点浪费时间在已经解决的加密谜题上获得不公平的优势。

另一种可能性是“ 日食攻击”。区块链上的节点必须保持持续通信以便比较数据。一个设法控制一个节点的通信并使其接受来自网络其余部分的虚假数据的攻击者可以欺骗它来浪费资源或确认虚假事务。

最后,无论区块链协议如何防篡改,它“不存在于真空中”,Sirer说。加密货币黑客推动最近的头条新闻通常是区块链系统与真实世界连接的地方的失败 - 例如,在软件客户端和第三方应用程序中。

例如,黑客可以闯入“热门钱包”,与互联网连接的应用程序用于存储任何拥有加密货币的人所需的私人加密密钥,以便将其花费。在线加密货币交易所拥有的钱包已成为主要目标。许多交易所声称他们将大部分用户的资金用于“冷”硬件钱包 - 存储设备与互联网断开。但正如日本交易所Coincheck的一月价值超过5亿美元的加密货币抢劫案所显示的那样,情况并非总是如此。

也许区块链和现实世界之间最复杂的接触点是“智能合约”,它是存储在某些可以使交易自动化的区块链中的计算机程序。2016年,黑客利用在以太坊区块链上撰写的智能合约,从分散自主组织(DAO)(一种基于区块链的新型投资基金)窃取360万张乙醚,价值约8000万美元,这是一个无法预料的怪癖。

由于DAO代码居住在区块链中,以太坊社区不得不推出一个名为“硬分叉”的有争议的软件升级来获取收益 - 从本质上来说,创造了一个新版历史,其中钱从未被盗用。研究人员仍在开发确保智能合约不会发生故障的方法。

集权问题

假设区块链系统的一个安全保证是“分散化”。如果区块链的副本保存在一个庞大而分布广泛的节点网络中,那么就没有任何弱点可以攻击,任何人都难以建立足够的计算能力颠覆网络。但是Sirer及其同事最近的工作表明,比特币和以太坊都不像你想象的那样分散。他们发现,排名前四的比特币开采业务每周的系统平均采矿量超过53%。同样的措施,三个以太坊矿工占61%。

有人说,替代共识协议,也许不依赖于挖掘的协议可能更安全。但是这个假设没有经过大规模的测试,新的协议可能会有自己的安全问题。

其他人则看到需要获得加入的区块链的潜力,与比特币的情况不同,任何下载软件的人都可以加入网络。这样的系统对加密货币的反分级精神非常憎恶,但这种方法吸引了寻求利用共享加密数据库优势的金融机构和其他机构。

但是,许可系统提出了自己的问题。谁有权授予许可?系统如何确保验证者是他们自称的人?一个被许可的系统可能会让它的所有者感到更安全,但它确实给了他们更多的控制权,这意味着他们可以改变其他网络参与者是否同意 - 真正的信徒会认为这违反了区块链的想法。

所以最终,“安全”最终难以在区块链中定义。从谁那里安全?安全的是什么?“这取决于你的观点,”Narula说。

信息化和软件服务网 - 助力数字中国建设 | 责编:夏丽