风险提示:理性看待区块链,提高风险意识!
常见的智能合约漏洞你了解多少?
首页 > 币界资讯 > 区块链知识 2019-01-22 21:30:01

10月13-14日,由DoraHacks主办的区块链安全Hackathon在北京举办,多个区块链安全公司的嘉宾围绕智能合约的安全问题带来了主题分享。

什么是智能合约?

智能合约概念于1995年Nick Szabo提出,是一种旨在以信息化方式传播、验证或执行合同的计算机协议。它允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。链安科技CTO郭文生表示:“智能合约是区块链的核心技术之一,是多方参与场景中的共识规则,更是智能合约是价值传递的中枢。之所以区块链出现以后安全问题变得前所未有的重要,是因为智能合约实现的是一种价值传递,区块链上的每一个数字都是价值,每个漏洞导致的数字变化,其背后就是巨额的价值损失。”

根据猎豹科技高级研究员隋欣整理的数据,2011年至2018年安全事件统计显示:可以看到,虽然智能合约安全事件占比并不是最高的,只有6.67%,但是其造成的损失是巨大的,竟然已经达到12.4亿美元。

区块链安全事件

其中,最典型的几起智能合约重大安全事件包括:2016年6月The DAO安全漏洞,导致5000万美元的损失  2017年7月Parity多签名钱包两次安全漏洞,分别导致3000万美元、1.52亿美元的损失。  2018年4月BEC代币被盗事件,由于一行代码的安全漏洞引发其9亿美元市值几乎归零。

在Hackathon上,猎豹科技高级研究员隋欣对智能合约漏洞类型做了如下总结:

智能合约漏洞

链安科技CTO郭文生也对以太坊智能合约开发中常见的漏洞进行了梳理:

智能合约常见漏洞

案例一:Owner权限问题

在对以太坊链上智能合约进行安全审计后,可以发现很多合约具有Owner权限被盗或过大等问题。

链安科技CTO郭文生表示:“Owner是Solidity语言中对智能合约开发者的称呼,也就是项目方。如果合约发布后,Owner还具有非常大的超级权限,这违背了区块链共识共建的精神。”

Owner权限过大会产生什么问题呢?

郭文生表示,对以太坊ERC20智能合约安全事件进行分析后发现,超级权限被盗可能存在如下安全隐患:1. 随时冻结代币转账; 2. 任意铸造发行新的代币 3. 销毁任意账户内的代币

他进一步解释:“Owner权限如此之大,说明众多所谓的去中心化的产品,实际上隐藏一个潜在威胁,控制权掌握在开发者手上。这里存在两重风险,一是如此强大的Owner权限被黑客盗取,黑客可以对其代币为所欲为,操纵整个代币的价值,对整个加密货币生态造成影响,后果不堪设想。二是项目方本身,也不能完全保证他不会作恶。因此,在智能合约上线之后,应当限制Owner权限,采取社区自治、合约自治的方式,这才符合区块链的精神。”

案例二:整型溢出

在上述智能合约漏洞类型中,整型溢出漏洞被几位安全领域的专家着重强调。

简单来讲,我们知道在计算机中,有符号整数会在最高位用0表示正数,用1表示负数,而无符号整数则没有这种限制。而之所以出现整型溢出,是因为将数据放入了比它本身小的存储空间中。

例如,一个uint8,只能存储在范围[0,255]的数字,试图存储256到一个uint8变量,则结果将变成0(100000000)

如果没有检查用户输入又执行计算,导致数字超出存储它们的数据类型允许的范围,Solidity中的变量就可以被用来组织攻击。

整型溢出漏洞看起来只是一个低级的错误,但有可能造成巨大的经济损失,在区块链智能合约中,也许会被黑客利用,致使代币严重超发价值归零。而之所以产生诸如此类的问题,就是开发者在编写合约时不严谨所致,或者没有使用SafeMath去做相关功能,或者没有进行完备的溢出测试,这些溢出问题应该可以放在虚拟机层检测和预防。

如何解决智能合约的安全问题?

既然发现了这些问题,就要想办法去避免,郭文生给出了几点建议:

首先,对于开发者,要尽量参考有价值的模版,尽量使用安全库。因为在审计过程中可以看到,很多合约的错误是重复雷同的,这就是因为采用了伪劣的核心模版。

其次,开发完成后,要进行全方位的功能和编译测试,功能上要保证满足客户需求,测试方面一是重视编译错误和警告,尤其是那些未知错误的提示;二是要具备完备的人工设计测试案例;三是进行静态分析工具测试;四是进行动态分析工具测试,进而发现执行过程中的隐藏问题。

最后,不可能完全依赖开发人员,需要第三方审计公司来帮助完善代码安全性。这些公司内部会有精度更高、更完备的测试工具,在形式化验证之后,还会进行人工漏洞复现和人工复审。

上一篇: Bitfinex披露冷钱包否认破产,只是周期性取款延迟?
下一篇: 区块链已经落地的项目有哪些?
推荐专栏
web3首席知识博主
一位相信价值投资的币圈KOL。稳定盈利的缠论野生交易员 #BTC行情分析师 #价值投资 #链上数据分析
爱Web 3,爱生活,爱科技,爱炒币的老韭菜
热门币种
更多
币种
价格
24H涨跌幅
BTC比特币
¥264,358.04
37,039.98 USDT
-0.08%
ETH以太坊
¥14,381.54
2,015.04 USDT
-0.33%
USDT泰达币
¥7.20
1.01 USDT
+0.03%
BNB币安币
¥1,622.26
227.30 USDT
-0.04%
XRP瑞波币
¥4.34
0.60860 USDT
+1.11%
USDC
¥7.14
1.00 USDT
+0.04%
SOLSolana
¥397.24
55.66 USDT
+0.89%
OKBOK币
¥398.18
55.79 USDT
-1.98%
ADA艾达币
¥2.68
0.37490 USDT
-1.52%
DOGE狗狗币
¥0.55410
0.07765 USDT
-1.04%
热搜币种
更多
币种
价格
24H涨跌幅
Terra Classic
¥0.00
9.433E-5 USDT
-17.92%
Gala
¥0.18
0.025395 USDT
-4.47%
dYdX
¥22.45
3.1738 USDT
-1.74%
比特股
¥0.05
0.006817 USDT
+3.93%
PancakeSwap
¥15.45
2.1845 USDT
-3.6%
Conflux
¥1.07
0.1514 USDT
-3.57%
Filecoin
¥31.38
4.4363 USDT
-1.25%
FTX Token
¥30.21
4.2702 USDT
+16.02%
Shiba Inu
¥0.00
8.12E-6 USDT
-2.52%
Yield Guild Games
¥2.54
0.3591 USDT
-0.91%
比特币
¥262,018.97
37039.98 USDT
-0.08%
比原链
¥0.07
0.010012 USDT
-5.35%
最新快讯
更多
Nansen2已公开测试
2023-11-28 18:53:38
dYdX基金会:主网启动以来超过1645万DYDX被质押
2023-11-28 18:52:07
西班牙公民须在2024年3月底前申报在外国加密交易所持有的资产
2023-11-28 18:44:58
ArkInvest上周至今购买约200万美元Robinhood股票
2023-11-28 18:38:25
FSB:可能需要加强跨境合作和信息共享以阻止加密货币在金融体系的风险
2023-11-28 18:31:36
Lambda推出的多链模块化永久存储服务LWS正式部署至Conflux网络
2023-11-28 18:23:06
Lambda推出的多链模块化永久存储服务LWS正式部署Conflux网络
2023-11-28 18:23:06
下载币界网APP