一行代码蒸发64亿,智能合约不安全?

4月22日中午,有黑客利用以太坊 ERC-20智能合约中BatchOverFlow漏洞攻击BEC(美链的代币“美蜜”)智能合约,成功向两个地址转出了天量级别的 BEC代币,导致市场上海量BEC被抛售。此事使得当日BEC的价值几乎归零。64亿人民币瞬间蒸发。

4月25日,仅仅三天后,另一个智能合约SmartMesh(SMT)曝出漏洞,交易所表示,因SMT出现异常交易,各交易平台暂停SMT的充提和交易。

现实世界里,财物失窃尚能够通过立案侦查追回损失。但是在互联网的世界里,尽管数字货币“钱途”无量,一旦被黑却血本无归。

智能合约,是指以数字形式定义的承诺,合约参与方可以在上面执行这些承诺的协议。简单来说,就是利用区块链的技术,大家共同约定,当一定条件被满足的情况下,可以被自动执行的合约。目前区块链最常用的智能合约平台是以太坊,谁都可以根据以太坊的ERC20标准分发代币(Token)。

image

美链BEC于2018年2月在虚拟数字币交易平台OKEx上线,曾被业内认为是美图发行的数字货币,但美图否认了这点,只承认有合作。但因有此渊源,上线后,价格一度暴涨40倍。出现异常的4月22日,BEC当天最高价为2.27元,最低价0.137元,价格最高浮动率达94%。

浙江台州的蒋先生进入币市5年,接触数字货币十余种。此次BEC合约漏洞被攻击,也是蒋先生第一次遭遇这类事情。4月22日中午,蒋先生以每个币0.32美元的价格入手了2000个BEC币(价值约4000人民币),没想到时隔不到一个小时,币价跌近0元。

据《IT时报》记者了解,这是基于ERC20标准的代币首次出现智能合约漏洞,而造成如此大损失的原因仅仅是程序编写者自身不严谨,调用函数时一行非常简单的代码写错所致。

从事区块链安全防护的众享比特市场总监陈鸿刚告诉记者,在智能合约中,设计者一般会在代码中插入一笔转账函数,这个函数应当保证转出的账目小于等于钱包中原有账目。但是此次BEC出现的漏洞,使转账者在设计一笔特大转账数额时,函数计算结果为0,这就导致黑客可以向自己的钱包中转入任意巨额的数字货币。

image

据悉,其实很多虚拟货币交易在过程中都出现过安全问题,事后的解决方案大多是回滚,也就是将交易数据回溯到攻击之前的状态。这样的补救措施只能使用户账户中拥有同样数量的新币,但因为攻击导致BEC币价大跌,事实上,用户并没能真正挽回损失。

此事发生后不久,PeckShield团队利用自动化系统扫遍了以太坊上诸多智能合约并对它们进行分析。结果发现,有超过12个ERC-20智能合约都存在BatchOverFlow安全隐患。

之所以如此多的智能合约出现同类漏洞,其背后是混乱的数字代币发行现状。

一位从事区块链技术的创业者告诉《IT时报》记者,一个程序员只要花5分钟,从网上抄一些智能合约代码,稍做修改,就可以发行一个代币。如果再写个白皮书,找几个知名顾问站台,就可以在数字货币交易所里发行几千万甚至上亿的项目。

那么问题来了~:
1、你有参与过买卖数字代币吗?对数字代币的未来怎么看?

2、ERC-20智能合约出现这样的漏洞,对其他数字代币会有什么样的影响?

3、发行数字代币的技术成本如此之低,是否是导致数字货币乱象的根本原因?

4、除了数字币以外,智能合约漏洞的出现会不会影响到其他区块链项目的发展?为什么?

猜你喜欢

转载自www.cnblogs.com/HJFGHF/p/8991835.html