科技 04-27 09:59

区块链真的安全吗?

其实“安全”没那么简单。

区块链真的安全吗? - 蜜蜂网 - www.meafun.com

由于“不可篡改”、历史记录和密码验证等特点,区块链安全性而闻名。但是,研究者发现,区块链并不一定有看上去那么安全。这一方面是因为技术上仍然存在有可能被攻击的地方,另一方面则是因为无论是怎样的技术工具,在运用之中都有发生人祸的可能性。《麻省理工技术评论》本月发布了一期以区块链为主题的新刊,其中有一篇文章就谈及区块链的安全问题。作者除了讨论有可能的攻击方法之外,也从理念上提出了问题:区块链的安全问题可能还要取决于使用区块链之人的立场。

安全问题,有时候不仅仅是一个技术问题,也是一个屁股(立场)问题。

为什么区块链是安全的?

区块链的关键在于,让不同的人——尤其是互不信任的人,能够以一种安全、不会被轻易干涉的方式来共享有价值的数据。这是因为区块链以复杂的数学原理和创新的软件规则来存储数据,攻击者想要干涉这些规则是非常困难的。但是,即使是设计得最好的区块链系统,其安全性也并非万全无虞,因为这些花哨的数学原理和软件规则终究是要在真实世界中和人联系起来;而人,都是技巧纯熟的作弊者,真实世界中的事情常常也没那么简单。

区块链真的安全吗? - 蜜蜂网 - www.meafun.com

要理解为什么安全性是个问题,首先要理解为什么区块链理论上是“安全”的。比特币是个很好的例子。在比特币的区块链上,共享的公共数据是每一笔比特币交易的历史,也就是说实际上这是一本账本。这份账本存储在一个计算机网络上,有无数的副本;网络上的这些计算机被称作“节点”。每当有人向账本提出一次交易申请,节点们要检测这次交易是否有效——那个要付钱的人是否确实有钱。其中的一部分节点会展开竞争,将有效的交易打包成“区块”,并把它添加到之前的区块构成的“链”上。这些计算机的拥有者就被称作“矿工”。成功添加了新区块的矿工会得到比特币作为奖励。

理论上,这个系统之所以“不受干涉”是因为两点:首先每个区块都有一个独特的密码指纹,其次还有一份“一致性协议”(consensus protocol,又译共识协议),也就是网络上所有节点都同意的关于共享历史数据的一套程序。

区块链真的安全吗? - 蜜蜂网 - www.meafun.com

这一密码指纹,被称为一个哈希(hash),需要很多的计算时间和能源才能算出来。于是,这就成为了向区块链成功添加了区块的那个矿工确实付出了劳动的凭证,他因此有资格得到比特币作为奖励。由于这个缘故,通常认为比特币使用的是一种“工作量证明”(proof-of-work,PoW)协议。这个哈希同样也能作为一种封条,因为要改变这个区块就会导致出现一个新的哈希。验证一个哈希和它的区块是否匹配是很容易的,一旦节点们验证完成,它们就会把这个新区块更新到它们各自的区块链副本中。(也就是说,如果改变了这个区块,那么新生成的这个区块的哈希就会和其他节点上存储的这个区块不一致。)这就是一致性协议。

最终的安全要素则是,这些哈希本身也构成了区块链上的环节:每一个新区块中都包含了在它产生之前的所有区块的独一无二的哈希。所以,如果你想逆向改变账本上的一个条目,你不仅需要为这个条目所在的那个区块算出一个新的哈希,还要为这个区块之后所有储存了这个区块的区块们都算出新哈希。而且你的速度要快,必须要在其他节点添加上一个新区块之前完成这一切。所以,除非你的计算机比其他所有的节点加起来的算力都强(即使这样也不能保证一定成功),否则你添加的区块就会和现存的区块冲突,其他的节点会自动拒绝你的更改。这就是为什么说区块链不受干涉,或者说“不可篡改”。

并非无懈可击:创意百出的作弊方法

理论讲得够多了,要实践理论则更难。一个系统即使像比特币这样运作(比如很多加密货币就是如此),也不意味着它真的就这么安全。麻省理工学院数字货币小组的负责人Neha Narula说,即使开发者使用的是经过验证的、可靠的加密工具,也很容易不小心以不安全的方式来使用、组合它们。比特币是历史最长的一个区块链,它是身经百战了。

人们已经发现了不少颇有创意的作弊办法。康奈尔大学的Emin Gün Sirer和他的同事们向人们展示了,即使你的算力不足其他矿工的一半,也有办法能够颠覆整个区块链。具体的技术细节不必提,不过本质而言,就是一个“自私的矿工”能够欺骗其他节点去浪费时间算一些已经解决的问题,为自己谋好处。

区块链真的安全吗? - 蜜蜂网 - www.meafun.com

还有一种方法则是“日蚀攻击”。区块链上的节点之间需要保持不间断的通讯,这样才能比对彼此的数据。一个控制了节点通讯的攻击者能够欺骗节点去接收假数据,从而让节点去空耗资源或者去确认一些虚假的交易。

最后,无论一个区块链协议多么“不可干涉”,它都“不是存在于真空中的”,Sirer说。最近吸引了人们关注的那些加密货币攻击事件通常都是发生在区块链系统和现实世界相接的地方:比如说软件客户和第三方插件。

比如说,攻击者们可以黑进“热钱包(hot wallet)”当中。持有加密货币的人如果想要花掉它们,就需要一个存储自己持有的密码key的应用,这个应用如果是联网的,就叫做热钱包。加密货币在线交易所的钱包是攻击的首要对象。许多交易所都声称它们将大部分用户的钱都存在“冷”的硬件钱包——也就是不联网的存储设备之中。但是,从一月日本Coincheck交易所那件损失达5亿美元的加密货币攻击案来看,它们说的不一定是真的。

区块链真的安全吗? - 蜜蜂网 - www.meafun.com

区块链和现实世界之间最复杂的接触点可能就是“智能合约”了,它是存储在特定类型的区块链上、能够自动处理交易的电脑程序。在2016年,攻击者利用了写在以太坊区块链智能合约中的一个漏洞,从去中心化自治组织(Decentralized Autonomous Organization,DAO,一种基于区块链的新型投资基金)盗走了3600万以太坊,当时价值8000万美元左右。

由于DAO的代码生长在区块链之中,以太坊社区不得不实施了一次极具争议的软件升级来拿回这些钱,这次操作被称作“硬分叉”。本质上是创造了一个新版本的历史,在这一版的历史中钱没有被盗。研究者们现在仍然在开发新的方法,以确保智能合约不会发生故障。

中心化问题:安全还是不安全,要看你是谁

区块链系统一个理论上的安全保障是“去中心化”。如果区块链的副本保存在一个庞大的分布式节点网络之中,那就不存在哪一个弱点可以攻击;要积聚起足够颠覆整个网络的算力也很难。但Sirer团队最近的工作成果显示,无论是比特币还是以太坊,可能都没有你想象中那么去中心化。他们发现,按系统每周的平均挖矿能力来看,最大的四个比特币矿工已经具有了超过53%的算力。以太坊则是前三大矿工拥有61%的算力。

区块链真的安全吗? - 蜜蜂网 - www.meafun.com

有人说可以采纳新的一致性协议,比如一些不依赖于挖矿能力的协议,可能会更加安全。但是这一假设还并没有经过大规模的测试,而且新的协议可能又会存在新的问题。

还有一些人则寄希望于给区块链加上准入机制,而不是像比特币那样,无论是谁,只要下载了挖矿软件就能加入这个网络。对于那些反等级化的加密货币来说,这样的系统简直令人厌恶;但是对于一些只是想要剥削这门新技术利益的机构来说,这种方式显得很有吸引力。

但是,有门槛的系统则提出了新的问题。谁有这个权威来发放许可?系统如何确保验证者确为正身?对于系统的所有者来说,一个有门槛的系统可能让他们觉得更安全;但是实际上,这只是给所有者更多的权力来控制这个系统,这也就意味着他们可以不管系统其它参与者的意愿对系统做出改变。对于区块链真正的信徒来说,这是对区块链理念本身的违背。

最终,在区块链的语境中,“安全”实际上很难定义。对谁安全?对什么安全?Narula表示,“这取决于你自己的立场。”


  • 0 个人收藏

有好的产品或者项目希望我们报道,猛戳这里 寻求报道

文章评论(0)
后参与讨论
正在加载中
说说你的看法
蜜蜂酱
蜜蜂观察

关注蜜蜂酱微信号, 关注这个时代最好的 产品