当前位置:首页 > 知识 >

比特币与区块链安全:程序员的视角与代码审计

区块链安全事件与代码审计

据统计,2018年全球区块链领域共发生近百起安全事件,造成的损失超过20亿美元,相较于2017年增长了538%。区块链技术面临着来自数据层、网络层、共识层、激励层、合约层以及应用层的安全风险,而安全攻击方式层出不穷,难以防范。尤其是安全攻击往往发生在应用层,其中智能合约就是区块链安全的重要薄弱环节。

安全事件

MtGox事件

MtGox曾是全球最大的比特币交易平台,其处理的比特币交易占全球总量的70%。然而,2014年,MtGox遭遇了最严重的黑客攻击,导致交易暂停。其原因是该平台的安全软件存在漏洞。两周后,网站突然关闭,随后MtGox申请破产。

据估计,MtGox公司损失约4.8亿美元的比特币投资,其中包括来自客户的75万单位比特币及公司自有的10万单位比特币,总共约占全球比特币总发行量的7%。此次事件导致投资者信心受挫,比特币价格直接暴跌36%。

TheDAO事件

TheDAO是由区块链公司Slock.it发起的一个众筹项目,它依靠智能合约在区块链上运行,没有法律实体,可以理解为一个去中心化的公司。

2016年6月17日,黑客利用智能合约脚本漏洞,通过ICO(首次代币发行)项目盗取了360万以太币,超过了该项目所筹集的以太币总数的三分之一。此事件影响下,以太币价格第二天暴跌约30%。

TheDAO事件的影响之大,甚至引起了美国证券交易委员会(SEC)的关注。尽管他们没有调查谁窃取了这些代币,但这对于之后的代币众筹项目产生了很大影响,项目方也更加关注法律风险。

51%攻击

2018年5月,比特币黄金(BTG)开发团队公告显示攻击者掌控了BTG网络中大比例的算力,从而发动了“51%双花攻击”,并窃取了超过388,200个BTG,价值高达1,860万美元。

“51%攻击”的原理是基于数字货币的分布式记账机制。以比特币为例,比特币网络是一个去中心化的分布式账本,每一笔账务都需要“全民投票”来确认。当攻击者掌握超过网络算力的50%时,就可以操纵和篡改比特币网络。成功进行“51%攻击”后,攻击者可以修改自己的交易记录,进行双重支付(即双花行为)。

代码审计

在区块链的安全事件中,大多数都是因为源代码存在漏洞而给黑客可乘之机。虽然智能合约本身受到区块链的保护,其代码也可以最大程度上开源和供人阅读。然而,代码的公开性使得黑客更容易发现其中的缺陷,并进一步利用这些缺陷来改变智能合约的执行结果,从而为区块链项目造成巨大的经济隐患。因此,高度可靠的智能合约代码开源性至关重要,而这种可靠性要求代码的百分之百正确。

然而,对于程序员来说,写一份完全没有漏洞的代码是极其困难的,即使采取了所有可能的预防措施,复杂软件中仍然很容易出现无法预料到的漏洞。因此,代码审计的重要性不言而喻。

代码审计是指检查源代码中的安全缺陷,检查程序源代码是否存在安全隐患或编码不规范的地方。通过使用自动化工具或人工审查的方式,逐行检查和分析程序源代码,发现由这些代码缺陷引发的安全漏洞,并提供修复代码的措施和建议。

代码审计对于区块链的发展具有重要意义。一方面,代码审计可以节约安全投入,降低修复成本。研究表明,应用发布后再修复代码的成本大约是在设计和编码阶段的30倍。因此,从源头上控制安全隐患,主动防御,可以最大程度地节约成本。另一方面,代码审计可以降低系统的安全风险。及时修复代码层面的缺陷,大大提高整个系统的安全性,避免巨额经济损失。

结语

越来越多的区块链安全事件正在推动代码审计工作的发展。目前,智能化代码审计是最重要的方式,即利用计算机进行稳健性检验。但国内精通该技术标准的公司并不多,代码审计亟需进一步普及和发展。

猜你喜欢

关注我们

微信二维码

微信