MIT Technology Review:曾经不可撼动的区块链正在被黑客侵蚀

avatar
Moni
6年前
本文约4133字,阅读全文需要约6分钟
在传统软件里,如果出现错误可以使用补丁进行修复,但在区块链智能合约上却无法这么做。

本文来自 MIT Technology Review,原文作者:Mike Orcutt

译者丨Moni

编辑丨卢晓明

MIT Technology Review:曾经不可撼动的区块链正在被黑客侵蚀

一直以来,区块链都以稳固的安全性著称,但随着加密货币和智能合约平台中出现了越来越多的安全漏洞,曾经不可撼动的区块链正在被黑客侵蚀。

上月初,加密货币交易所 Coinbase 旗下安全团队注意到了以太坊经典(Ethereum Classic)出现了一些奇怪的事情,虽然以太坊经典目前仍可以在 Coinbase 交易平台上买卖,但是其区块链和所有交易历史都受到了攻击。

攻击者以某种方式控制了超过一半的以太坊经典网络算例,然后开始重写交易历史——这样一来,黑客就有可能不止一次地使用同一个加密货币,也被称为“双重花费”(double spends)。在这次攻击中,有大约价值 110 万美元的以太坊经典被用于双重花费。虽然 Coinbase 声称其账户没有任何加密货币被盗,但并非每个加密货币交易所都像他们那样“幸运”:Gate.io 已经承认收到黑客攻击,价值271,500美元的以太坊经典被窃(但几天后又返还了 10 万美元给 Gate.io)。

就在一年前,这种攻击还仅限在理论上存在,但现在已经“活生生”出现在我们周围。更可怕的是,以太坊经典遭受的 51% 攻击不过是近期一系列区块链攻击中的一次,所以现在是时候引起重视,因为这些黑客攻击已经开始侵蚀曾经不可撼动的区块链了。

自 2017 年初以来,仅在公开渠道披露被黑客偷走的加密货币总价值就已经达到了 20 亿美元,其中绝大多数来自交易所。然而,这些攻击事件并不都是由独立黑客完成的,一些有组织的网络犯罪集团也开始盯上了区块链。最近加密货币分析公司 Chainalysis 表示,至少有两家较为活跃的黑客组织已经从交易所窃走了价值近 10 亿美元的加密货币,但 Chainalysis 公司没有公开这两个黑客组织的具体名称。

实际上,如今我们对加密货币黑客已经不再感到惊讶,与传统金融系统不同的是,区块链上的交易是无法逆转的。除此之外,虽然区块链的安全功能独树一帜,可一旦出现漏洞将会非常致命,我们还能相信区块链技术拥有“不可撼动“的安全性吗?

黑客攻击对象正在从交易所和交易网站转向直接攻击区块链

区块链其实可以看作是由加算计网络维护的加密数据库,每个计算机都存储着最新版本的区块链软件副本。区块链协议是一组规则,用于规定网络中的计算机(也被称为节点)应该按照什么方式来验证新交易、并将验证后的交易添加到数据库中。区块链协议结合了密码学、博弈论和经济学,通过给节点提供激励让他们努力保护网络,而不是为了个人利益去攻击网络。如果协议设置正确,那么想在这套系统里添加错误交易不仅非常困难,而且成本代价也很高,相反验证有效交易却会变得相对容易。

正是因为这些固有优势,让区块链技术对许多行业产生了巨大的吸引力,尤其是金融系统。富达投资(Fidelity Investments)、纽交所拥有着洲际交易所(Intercontinental Exchange)等知名金融机构都开始在自己的金融体系里部署区块链技术,甚至有些国家的中央银行也在考虑基于区块链发行法定数字货币。

然而,区块链系统越复杂,出现设置错误的地方就会越多。举个例子,Zcash 是一个使用了复杂数学方法处理交易的隐私加密货币,但在本月初,Zcash 运营方披露他们秘密修复了一个“偶尔会出现在协议中的加密漏洞“,攻击者可以利用该漏洞制造出无限量的虚假Zcash加密货币,但幸运的是,似乎还没有人真的这么做过。

区块链协议并不是唯一能够确保安全的东西。如果想要交易加密货币或运行阶段,就必须允许相应加密货币的软件客户端,而这些客户端内也可能存在安全漏洞。去年九月,比特币核心(Bitcoin Core)的开发人员不得不匆忙修复一个 Bug (其实也是个秘密),这个 Bug 可能会让攻击者在挖矿的时候获得超出系统允许的比特币。

尽管如此,此前大多数黑客攻击并不是针对区块链或加密货币本身发动攻击,而主要是针对交易所、以及允许购买、交易和持有加密货币的网站。人们因此产生了一个固有印象,认为许多黑客攻击其实都是因为交易所、或网站缺乏基本的安全措施,但这种情况在2019年1月发生了变化,因为以太坊经典受到了 51% 攻击。

51% 攻击规则

大多数加密货币对于 51% 攻击都有一定的固有敏感性,这是因为大多数加密货币都是在区块链上发币的,而这些区块链基本上都使用了工作量证明作为交易验证的协议。在此过程(也被称为挖矿)中,节点需要花费大量算力来证明自己足够可信,以便有新的交易信息可以被添加到数据库中。对于那些以某种方式控制大部分(比如 51%) 网络挖矿算例的矿工而言,他们可以发送虚假付款交易来欺骗其他用户,然后创建一个从未发生过付款交易的替代版本区块链,而这个新版本区块链其实就被成为“分叉(fork)“。有趣的是,控制大部分挖矿能力的攻击者可以让分叉的新区块链成为”权威版本“,并再次使用相同的加密货币。

不过,如果区块链规模较大,尝试 51% 攻击的代价就会非常昂贵。根据 Crypto51 的数据显示,如果总用足够的挖矿算力来攻击比特币的话,目前每小时成本就超过了 26 万美元。但是,假如尝试攻击其他加密货币的话,似乎成本就没有那么高了。更重要的是,一旦攻击开始,就会引发币价下跌,从而让攻击成本变得更低,最终导致矿工关闭矿机,网络保护因此变得更少——陷入到恶性循环之中。

从 2018 年中旬开始,攻击者就尝试对一些市值较小的加密货币进行 51% 攻击,包括 Verge、Monacoin、以及 Bitcoin Gold,造成的损失高达 2000 多万美元。之后,黑客又在 2018 年秋季通过攻击 Vertcoin 加密货币窃取了大约 10 万美元的资金,而以太坊经典则是黑客第一次对市值排名前二十的加密货币实施 51% 攻击。

David Vorick 是区块链文件存储平台 Sia 公司联合创始人,他预测之后的 51% 攻击频率和影响程度肯定会继续增长,而加密货币交易所将会是“双重花费“的最直接受害者。David Vorick 认为,51% 攻击数量之所以以会越来越多、攻击影响也会越来越大,主要是因为算力市场发展速度太快,攻击者可以租用挖矿算例实施攻击。他说道:

”由于今后 51% 攻击的频率和影响会继续增长,交易所在选择上架哪些加密货币的时候需要更加谨慎。“

新 Bug 盯上了区块链

除了 51% 攻击之外,区块链安全缺陷也需要引起重视,实际上,研究人员已经开始探索“智能合约漏洞“了。

智能合约是在区块链网络上运行的计算机程序,可以根据规定的规则和条件实现加密货币自动化转移。智能合约有许多潜在用途,比如促进执行现实中的法律合同和复杂的金融交易,或是建立一种投票机制(投票机制有很多应用场景,比如风险投资基金的所有投资者可以通过投票来决定如何分配资金)。

2016年,一个名为“DAO(去中心化自制组织)“的基金使用以太坊区块链系统被建立起来了。但很快,攻击者便利用 DAO 智能合约里的漏洞窃走了价值 6000 多万美元的加密货币,该漏洞能够让黑客不断使用那些没有在系统上注册的账户请求资金,而这些资金即便被提取了也可以再次请求获取。据称,这是一个递归调用 splitDAO 函数漏洞也就是说 splitDAO 函数被第一次合法调用后会非法的再次调用自己,然后不断重复这 个自己非法调用自己的过程。这样的递归调用可以使得攻击者的 DAO 资产在被清零之 前,数十次的从 TheDAO 的资产池里重复分离出来理应被清零的攻击者的 DAO 资产。 不仅如此,正常情况 下攻击者的 DAO 资产被分离后,TheDAO 资产池会销毁这部分 DAO 资产。但是攻击 者在递归调用结束前把自己的 DAO 资产转移到了其他账户,这样就可以避免这部分 DAO 资产被销毁。

在传统软件里,如果出现错误可以使用补丁进行修复,但在区块链智能合约上却无法这么做。

Petar Tsankov是 ETH Zurich 研究院,也是智能合约安全初创公司 ChainSecurity 联合创始人,他说道:

“由于区块链上的交易时无法撤销的,因此部署智能合约有点像发射火箭,发射出去之后只能成功不能失败。“

当然,还是有一些方法修复智能合约漏洞的。

虽然智能合约无法“打补丁”,但却可以通过部署其他智能合约来与之交互,从而达到“合约升级”的效果。开发人员还可以在网络内构建中心化“kill switch“,一旦检测到黑客攻击之后就能立即停止所有活动,虽然这种方式对于资金已经被盗窃的用户来说为时已晚。

唯一有效的资金检索方式就是重写历史纪录,也就是回到攻击发生之前区块链上的点,再创建新的区块链分支,再让网络上的每个人同意使用新的区块链——这其实是以太坊开发人员正在做的事情。实际上,如今大多数社区用户(但不是全部)已经转移到了新的以太坊区块链上,也就是我们现在称之的以太坊,但这个以太坊并不是原始以太坊区块链,只有很少一部分人依然坚持使用原始以太坊区块链,而这个区块链现在被称为以太坊经典(Ethereum Classic)。

2019年1月,Petar Tsankov 和他的 ChainSecurity 团队再一次挽救了以太坊,避免他们再次出现类似 DAO 灾难性的攻击事件。就在以太坊决定进行君士坦丁堡软件升级的前一天,ChainSecurity 公司告知以太坊核心开发人员区块链上仍然存在一些智能合约,这些智能合约存在漏洞很容易受到此前 DAO 的类似攻击,也会产生意想不到的后果。最终,以太坊核心开发人员决定再次推迟本次升级。

根据区块链安全公司 AnChain.ai 联合创始人兼首席执行官 Victor Fang 透露,目前有数百个以太坊智能合约存在这种所谓的“可重写/可重入 Bug(Reentrancy Bug)” 漏洞,上万个智能合约还可能包含其他一些漏洞。对于共有链来说,只要存在智能合约漏洞,黑客就会发现它们,因为看到区块链源代码是很容易的事情。曾在网络安全公司 FireEye 工作过的 Victor Fang 说道:“区块链上的漏洞,与传统网络上的安全漏洞完全不同。“

存在 Bug 的智能合约——特别是执行数百万美元、甚至数千万美元的智能合约,已经吸引了那些攻击银行和政府的全球顶级黑客。去年八月,AnChain.ai 公司发现五个以太坊地址受到了一次非常复杂的攻击,黑客利用一个博彩游戏中的智能合约漏洞窃取了 400 万美元。

我们能打败区块链黑客吗?

实际上,已经有一些初创公司开始着手解决区块链黑客威胁问题了,他们使用人工智能来监控交易、并检测可疑活动,同时还能扫描智能合约代码查找已知漏洞(known vulnerabilities)。

还有一些公司(比如上文提到发现以太坊区块链智能合约漏洞的 ChainSecurity)正在开发基于计算机科学技术“形式验证(formal verification)”的审计服务,旨在从数学角度证明智能合约代码能够真正地完成其创建者的意图。Petar Tsankov 透露,这些审计工具大多是在一年前左右才开始出现,也让智能合约创建者筛选掉了许多漏洞,但这个过程比较耗时,而且成本昂贵。

Philip Daian 是康奈尔大学加密货币与合约项目研究员,他建议可以设立一个区块链“Bug 奖励”举措,这样可以鼓励人们报告漏洞、并获取加密货币奖励。

然而,区块链毕竟是一个复杂的经济系统,其安全性还取决于人类一些不可预测的行为。代码之间交互的复杂结果、区块链经济学、以及人类的贪婪,这一切都让区块链变得像是一个灰色区域。总而言之,尽管区块链技术一直“吹嘘”拥有强大的安全性,但在某些条件下,区块链可能会变得非常脆弱。

本文翻译自 https://www.technologyreview.com/s/612974/once-hailed-as-unhackable-blockchains-are-now-getting-hacked/原文链接如若转载请注明出处。

ODAILY提醒,请广大读者树立正确的货币观念和投资理念,理性看待区块链,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。

推荐阅读
星球精选