AtoX技术讲堂之智能合约漏洞解析  minerfun.com

2019-02-25 16:21:22 区块链Axc00011

智能合约(Smart Contract) 这个术语是在1994 年由Nick Szabo 提出的,后来经过几次在不同环境下的重新定义。区块链智能合约最早由以太坊提出并实现。

以太坊的作者Vitalik Buterin 意识到,在区块链系统中,交易逻辑是可以和底层系统机制分离的。底层系统负责交易块的创建和验证,记账者的共识达成等基础功能,而交易本身到底做什么事情是可以通过二次编程的方式来定义的。因此他设计了一种交易代码执行的虚拟环境EVM,使用者可以开发自定义的交易逻辑,发布到链上,当交易进行时,链上所有的节点都执行相同的代码,从而同步改变链上数据的状态。

 

他为这种代码使用了“智能合约”这个名字,这是我们目前通常所说的智能合约的内涵。

智能合约漏洞,左右为难!

智能合约技术目前还处于非常早期的一个阶段,各类项目所使用的合约,很大可能存在着漏洞,此前,我们或多或少会听说过一些整数溢出的合约漏洞,但这并不是智能合约唯一存在的漏洞类型。

智能合约本质是一段运行在区块链网络中的代码,它完成用户所赋予的业务逻辑。以以太坊体系的代币为例,其业务逻辑是代币发币和交易。以太坊在设计之初,将智能合约设计成了一旦部署就不能修改的模式。这种设计有可能是为了提高智能合约的可信性。但是我们知道,只要是由人编写的程序,就一定会出现错误和缺陷。

对于厂商来说,由于智能合约不可修改的特性,要对上线后发现的漏洞进行有效修复,只能选择重新部署新的合约,这将付出巨大的代价,因此有的厂商可能会选择不响应,不处理。

 

而对于安全研究者来说,也面临尴尬的境地,左右为难。在厂商修补漏洞前公开漏洞细节对于厂商不利,有悖漏洞披露的一般原则,但如果厂商迟迟不修补漏洞,公众对于漏洞的存在不知情,风险会随着时间的增长迅速膨胀,漏洞一旦爆发可能会造成更大的危害,波及更大的人群,可能会造成很多人的投资瞬间化为乌有。

如何应对智能合约漏洞?

据了解,虽然传统互联网和区块链的安全问题都是信息系统的代码问题导致的,但是目前很多区块链智能合约安全问题都是一些初级漏洞。

相对的传统信息系统经历了长期的发展和考验,很多常见安全漏洞都会被开发者和系统建设维护者有意识的规避,在某种程度上,这也说明区块链还是处于新生阶段。

 

如何尽可能地消除漏洞,降低风险呢?

Atox安全团队负责人建议,在智能合约上线之前,对其进行全面深入的代码安全审计。

智能合约审计其实就是仔细研究代码的过程,即把合约部署到以太坊(假设此项目是运行在以太坊上的)主网络中,并对其进行错误、漏洞和风险等方面的审查,然后讨论如何改进。因为一旦发布,这些代码将无法再被修改。值得注意的是审计并不是验证代码安全的法律文件,仅仅表示你的代码已被专家校订过,基本上是安全的。没有人能100%确保代码不会在未来发生错误或产生漏洞。

在智能合约的安全方面,Atox的底层智能合约更是由美国、日本、韩国、瑞士、俄罗斯五国技术专家共同研究并审核,代码经过层层安全审计,最大限度保障用户安全。

 

AtoXSwap钱包下载地址:http://www.atoxchain.io/share/share.html

欢迎大家下载体验。

更多详情请联系群秘

 

欢迎加入电报社群

中文社群:https://t.me/AXC_China

英文社群:https://t.me/AXC_English

 

 

阅读原文
标签:strong 合约 智能 漏洞 代码 安全