国外的一篇好文:区块链真的安全吗?

2018-08-17  本文已影响0人  链圈社区

导读:

安全, 自始至终都是区块链领域的核心命题。

区块链应用在设计研发中利用了密码学、博弈论、分布式系统等诸多学科知识,以其去中心化、不可篡改的鲜明特性,被推崇为网络安全的完美解决方案,在金融、物联网、经贸结算、资产管理等众多领域都会有广泛的应用。

区块链真的那么“安全”吗,种种光环之下,为什么加密货币失窃事件仍然频发?50%算力的博弈会是否会把区块链乌托邦推向崩溃的边缘?在区块链领域中,“安全”被如何解构又重构?

本文选自麻省理工技术评论,系统解读了区块链的安全悖论,值得一读。

使用区块链技术的关键,在于让人们以一中安全的、不可篡改的方式进行价值交换,尤其是对于那些本来互不信任的人们,这一工具的价值更加凸显。这是因为区块链使用了极其复杂的数学方法和非常前沿的软件规则来存储数据这让黑客们很难找到突破口。但是,当复杂的数学方法和软件规则与真实世界中人产生交互时,即使是设计最为精密的区块链系统也难以保证安全性,因为人类擅长欺骗,而欺骗让事情变得越发复杂。

要理解其中的原因,可以从区块链之所以安全的“游戏规则”开始入手。比特币就是一个最好的例子。在比特币的区块链中,共享数据是每笔比特币交易的历史记录:即一份账簿。这个账簿有多个副本,存储在由“节点”组成的计算机网络上。每次有人向账簿提交一笔交易时,每个节点都会进行检查,以确保交易是真实有效的,即确保使用比特币进行交易的人手上真的持有相应数量的比特币。节点之间会竞争记账权,将产生的交易行为计入账本,并将它们同步到所有区块中。而这些节点的拥有者被称为矿工,成功将新区块添加到链条中的矿工就可以获得比特币作为奖励。

从理论上说,这个系统之所以不可篡改,得益于两个原因:一是每个区块都有一个基于密码学的独一无二的数字“指纹”,另一个是“共识协议”,在这一协议的基础上,所有网络节点得以就过往发生的交易历史达成共识。

这个数字指纹被称为哈希运算,进行哈希运算需要耗费大量的算力时间和电能。因此,它可以作为矿工们进行哈希运算进而完成记账的工作量证明,通过这一证明,矿工们能够获得比特币奖励(因此,行业都说比特币使用了POW协议)。另外,哈希运算也起到了加密的作用。由于对已有的区块进行改变需要通过新的哈希运算才能达成,所有的区块都会对这一哈希值进行确认并同步做出更改,这就是所谓的“共识协议”。

最后的安全部分是哈希还充当区块间的链接:每个区块都记录了前一个区块中的哈希。因此,如果想要可追溯的变更帐本中的条目,你需要重建一个新的哈希运算并且同步到所有区块之中,而且你的运算速度必须必其他的节点更快,才能成功记账。所以,除非你的算力大于其他所有节点的算力之和 (即使这样,也不能100%保证成功),否则你添加的任何区块都会与现有区块产生冲突,并直接导致你对账目的改变无效,这就是区块链不可篡改的原因。

区块链中的“舞弊”

理论就先说到这里。现实中,“安全”的实现就要困难许多。即使许多区块链的运行原理和比特币一样(许多加密货币确实是这样的),也并不意味着它就像比特币一样安全。麻省理工学院(MIT)数字货币计划(Digital Currency Initiative)主任内哈•纳鲁拉(Neha Narula)表示,即使开发人员使用经过检验而可靠的的加密工具,还是很容易产生安全隐患。从这一点来看,比特币存在历史最长,也是经历了最充分检验的区块链应用。

同时,人们也找到了意想不到作弊的方法。康奈尔大学(Cornell University)的埃明·居恩·西雷尔(Emin Gün Sirer)和他的同事已经证明,即使你的挖矿能力还不到其他矿工的一半,也有办法颠覆整个区块链。细节部分有些技术性,但从本质上讲,“自私的矿工”可以通过欺骗其他节点把时间浪费在已经解决哈希运算上,从而获得相对优势。

另一种可能性是“日食攻击”。为了比较数据,区块链上的节点必须保持与其他节点的持续的通信。攻击者如果设法控制一个节点的通信,并欺骗它接受来自网络其他部分的虚假数据,就可以欺骗它浪费算力或者确认虚假交易。

总而言之,不管区块链协议有多严格,它“并不存在于真空中”,萨若(Sirer)说。最近经常被媒体报道的加密货币失窃事件,就经常发生在区块链系统与真实世界产生交互的场景中,如软件账户或第三方应用等。

例如,黑客可以侵入“热钱包”。“热钱包”是一种与互联网连接应用程序,它主要用来存储是的人的秘钥,任何拥有加密货币的人必须使用热钱包才能够进行货币交易。交易所拥有的热钱包已经成为黑客攻击的首选目标。许多交易所声称,它们将用户的大部分资金存放在“冷钱包“中——即将私钥储存在不联网的存储设备上。但从日本交易所Coincheck 1月份发生的失窃事件来看,情况并非总是如此。

也许区块链和现实世界之间最复杂的接触点是“智能合约”,它是存储在区块链中实现交易自动化计算机程序。2016年,黑客利用以太坊区块链智能合约里一个未被发现的漏洞,从“分布式自治组织”(DAO:一种新型区块链投资基金)盗取了当时价值约800万美元的360万个以太币。由于DAO代码位于区块链中,因此以太坊社区不得不推动了一次具有争议的系统升级,即进行“硬分叉”。

从本质上来说,硬分叉改写了不可篡改的账本,在这一账本中加密货币从未失窃。至今,研究人员仍在开发确保智能合约不会发生故障的方法。

“中心化”悖论

“去中心化”是区块链系统的安全保障之一。如果区块链副本被存储在一个庞大的广泛分布式节点网络上,就不会有任何可被攻击的弱点,而且任何人都很难聚集足够的算力来破坏网络。但萨若及其同事最近的研究成果则表明,无论是以太坊还是比特币都没有想象中的那么去中心化。他们发现,排名前四的比特币挖掘组织每周的平均开采量超过该系统平均开采量的53%。按照相同的标准计算,以太坊的三大矿池拥有全网61%的算力。

有人说,替代性的共识协议(alternative consensus protocols),即那些不依赖于采矿的协议,可能会更加安全。但这一假设尚未得到大规模的测试,新的协议可能也会有自己的安全问题。

另外一些人在私链上看到了希望,它与诸如比特币等任何人都可以下载软件加入到区块链中的情况不同,私链与去中心化的区块链精神似乎格格不入,但这种方法吸引了包括金融行业在内的诸多机构,他们希望能够在非公开的范围内构建共享数据库。

然而,私链也有自己的问题。谁有权授权区块准入? 系统如何确保验证者身份的真实性? 私链可能会让其拥有者感到更安全,但它实际上只是给了私链拥有者更多的控制权,这意味着无论这一私链的其他节点是否同意,他们都可以对账本进行肆意的更改,许多区块链信徒都指责这一做法违背了区块链的共识精神。

所以最后,在区块链的语境中,“安全”的定义变得非常困难。安全对立面的危险是什么?安全又是为了达成什么目的?“这取决于你看待问题的角度,”纳如拉说道。

上一篇下一篇

猜你喜欢

热点阅读