区块链大学老友项目评级区块链研习社

智能合约漏洞频现,区块链安全之路在何方

2018-11-12  本文已影响12人  yemoumou

最近关于数字货币的安全漏洞问题频繁出现,老友记得之前有篇文章专门讲51%攻击的,现在区块链安全已经越来越重要了,但是我们我知道,代码是人写出来的,只要是人写出来的代码就一定存在漏洞。每个主要代码都需要进行大量调试,这是开发过程中不可避免的一部分。但是,当该代码控制价值数千万元的数字资产时,确保它没有严重漏洞是非常重要的。目前大部分的数字货币都是基于以太坊erc20开发的,很多数字货币已经表明,创建完美的代码实际上是不可能的。

目前比特币诞生到现在已经10年了,底层代码被保留的部分不超过20%了。比特币在中本聪消失后能良性的运转这么多年,我们不得不说这个伟大的社会实验已经取得了阶段性的成功。比特币的功能很简单就是转账,它对标的老友认为是黄金,对法币的影响并不大。在我们看来,只有越简单的东西出问题的概率最小,比特币的代码逻辑非常简单,也曾经因为代码漏洞受到攻击,比如2010年在74638块中创造了1800亿比特币的溢出漏洞,虽然没有任何人获得或丢失比特币,这个漏洞也很快就被修复了。

在看看以太坊,它提供了一套图灵完备的智能合约系统,任何人都能基于以太坊去开发自己的Dapp,逻辑就复杂了许多,相对于存在的漏洞相较比特币系统就多的多了。诸如DAO以及最近的Bancor之类的事件,其1250万美元的损失归因于智能合约中的漏洞,现在这些漏洞很有可能会导致数十亿美元的损失。的确,越来越多的案例表明,基于以太坊智能合约开发出来的代币都存在漏洞。当然,我们不能因为智能合约存在漏洞就否定以太坊的价值,很多时候出现漏洞的并不是以太坊本身,而是基于其开发的Dapp的代码编程是存在漏洞的。但是,我们不得不承认,逻辑越复杂的,漏洞越多。因为逻辑越复杂,我们在编写代码的时候考虑的东西就多了。人无完人,只要是人就会有犯错误的时候,代码是人编写出来的,没有完美的人,也没有完美的代码。

虽然存在上述问题,在区块链安全领域已经受到了重视,360公司已经开始涉足区块链安全的研发,基于区块链开发的码农也是研究有没有更好的方法能够减少漏洞。在阿姆斯特丹的区块链博览会上,有人建议使用C+言语来开发,因为它可以访问“反编译器,优秀的编辑器,Visual Studio中的一个有凝聚力的测试和调试部署套件等众多工具” 。这意味着你可以将任何合同从字节码反编译成真正的C+,他们将C+与Solidity进行了对比,Solidity处于“一个微妙的发展阶段,你实际上无法很好地反编译许多合同。事实上,您只能审计以太坊上1%的合同是一个问题,因为基本上,反编译器不起作用。(该段落引用阿姆斯特丹的区块链博览会上的内容)

虽然C+言语看起来很好,目前也有开发人员在以太坊用C+言语进行开发,但尚未达到应用状态。如果智能合约要成为日常应用的一部分,消除漏洞至关重要,虽然我们不能完全的消除漏洞,但是也要努力为之。的确,基于以太坊智能合约的漏洞导致数字货币的损失还会一直存在,只要代码是人来编写的,代码就不可能是完美的,有的现在已经爆出来了,有的只是还没有被发现,老友认为,要避免因为漏洞产生的损失还需要用活人对付活人的方式,仅仅依靠代码是不现实的。

上一篇下一篇

猜你喜欢

热点阅读