仅仅一行代码就让蔡文胜的BEC损失60亿 美图区块链遭攻击已下架

作者:bcfans 2018-04-24 12:11:56

4月22日,OKEx发布公告,暂停BEC(美蜜币)的交易和提现,何时重新交易未知。公告中称,今天13点左右,BEC开始出现异常交易。8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

业界传闻,此次OKEx下架BEC,是因为该代币合约存在重大漏洞,攻击者可以利用该漏洞批量转账,无限制生成代币。8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

BEC与蔡文胜的美图有着千丝万缕的关系,此前曾传说是美图的区块链项目。8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

但美图对外进行否认称:“BeautyChain(美链)是由第三方独立机构开发的区块链产品。美图旗下海外应用产品BeautyPlus与其在海外有推广合作。美图没有发布任何代币或者token。”8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

但蔡文胜是okex的早期投资人,而美蜜币目前又仅上线了okex一个交易平台,这不得不让人怀疑蔡和美蜜之间的关系。8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

美蜜币2月23日上线okex平台,目前上线刚刚两个月,就出现如此重大漏洞,被平台暂停交易,这是否意味着美图的区块链之梦遭遇重大打击?8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

公告中未说明本次攻击将如何处理8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

就一个简单的batchTransfer批量转账函数溢出漏洞,导致BEC的市值接近归零。8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

至于其他建立在ETH智能合约基础上开发的2000多个项目的代币,里面有没有类似的bug,小编相信也会有的。8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

美图董事长蔡文胜曾在三点钟群,高调的说出了这句话:8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

“现在进入你还是先行者,最后观望者进场才是韭菜。”8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

随即被大众疯传。在他发表完言论没多久,2018年2月,美链(BEC)上交易所会暴涨4000%,后又暴跌。尽管他多次否认,但是聪明的网友早已扒出,他与BEC有着千丝万缕的关系。8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

今天有人在电报群里说,BEC(美蜜)的代码里面有bug,已经有人利用该bug获得了 57,896,044,618,658,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000.792003956564819968个 BEC8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

小编咋看到这个消息,吓了一跳,BEC(美蜜)整个盘的代币总额才70亿,现在黑客一下之转走了5后面58个零的币,这下BEC直接清盘了吧?8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

难道这是币圈流行的漫天假消息?8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

不过小编发现,徐明星的OKex随即紧急发布了一个公告。8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

如果说这个公告和这笔接近60亿获利的黑客攻击没有关联,我是不相信的。8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

不过黑客到底是如何实现的呢?好奇的小编就来带大家一起观摩学习下,黑客是如何实现的!8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

我们发现,原来那个黑客的那笔操作记录是 0xad89ff16fd1ebe3a0a7cf4ed282302c06626c1af33221ebe0d3a470aba4a660f8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

黑客所采取的攻击方法是BEC智能合约8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

(https://etherscan.io/address/0xc5d105e63711398af9bbff092d4b6769c82f793d)中8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

batchTransfer批量转账函数存在的漏洞8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

小编再来科普一下:batchTransfer批量转账函数有什么漏洞8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

批量转账,言下之意也就是说给可以按事先指定的几个钱包地址,发送相同数量8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

我们假设一个批量转账的交易场景8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

首先,小编和你达成了一次批量转账交易,你要向小葱我批量发放BEC的代币。8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

那么小编肯定得先告诉你,我作为代币接收者(receivers),会向你提供代币接收地址。8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

然后,小编得再告诉你,你得向我提供的每个接收地址,发多少指定的代币金额?(value:金额)8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

一般情况下,你要发送的代币总金额(amount) =发放的人数*发送的金额8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

当然,这里肯定有个先觉条件,你的钱包余额肯定要多过你要发送的代币总金额,否则你就不够钱向小编我进行撒币了!8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

从逻辑上看,上述的批量转账流程肯定没有任何问题的,除非你的数学是体育老师教的!我想给别人发送代币,那么我本身的余额一定要大于发送的总金额的!8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

但是,但是!8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

这段代码却犯了一个很傻的错!8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

代码解释8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

这个方法会传入两个参数8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

_receivers(代币接收者8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

_value(转账金额)8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

_receivers的值是个列表,我们发现这个列表里面有两个钱包地址8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

0x0e823ffe018727585eaf5bc769fa80472f76c3d78rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

0xb4d30cac5124b46c2df0cf3e3e1be05f421190338rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

而_value (转账金额)的值是 8000000000000000000000000000000000000000000000000000000000000000吓尿小葱了,黑客要搞这么大笔的转账金额是为了什么?8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

我们回头再查看代码(如下图)8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

我们一行一行的来解释8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

uint cnt = _receivers.length;8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

是获取 _receivers里面有几个地址,我们从上面可以看到参数里面只有两个地址,所以 cnt=2,也就是给两个地址发送代币8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

uint256 amount = uint256(cnt) * _value;8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

黑客攻击者,就是充分利用了这个uint256,他传入很大的_value (转账金额):80000000000000000000000000000000000000000000000000000000000000008rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

这样他就使 cnt * value后超过 unit256的最大值,最后使其溢出导致 amount变为 0。8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

一行代码 require(cnt 》 0 && cnt 《= 20); require语句是表示该语句一定要是正确的,也就是 cnt必须大于0且小于等于208rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

我们的cnt等于2,通过!8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

require(_value 》 0 && balances[msg.sender] 》= amount);8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

这句要求 value大于0,我们的value是大于0的且,当前用户拥有的代币余额大于等于 amount,因为amount等于0,所以就算你一个代币没有,也是满足的!8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

balances[msg.sender] = balances[msg.sender].sub(amount);8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

这句是当前用户的余额 - amount8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

当前amount是0,所以当前用户代币的余额没有变动8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

所以 _receivers中,黑客地址的余额则加了57,896,044,618,658,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000.792003956564819968个 BEC,市值接近60亿!8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

就一个简单的batchTransfer批量转账函数溢出漏洞,导致BEC的市值接近归零8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

至于其他建立在ETH智能合约基础上开发的2000多个项目的代币,里面有没有类似的bug,小编相信也会有的。8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

不过话说回来,这次的Bug,不知道和最近风头正猛的EOS有没有关系?毕竟柚子可是朝着姨太开火的。8rTBCfans | 区块链爱好者_区块链技术_区块链开发_区块链是什么

公众号关注 bcfanscom 或搜索“区块链粉丝”,参与大咖直播和糖果空投活动

BCfans公众号

  • 比特币现金硬分叉,是技术革新还是权利之争?
    比特币现金硬分叉,是技术革新还是权利之争? 09-02 16:52

    在比特币诞生的短短不到十年的历史中,整个社区中爆发了多次的争论,不仅仅是核心开发者和矿工之间的矛盾,还包括开发者与开发...

  • LGGroup乐金钱包软件开发
    LGGroup乐金钱包软件开发 08-31 12:19

    LGGroup支付钱包系统软件开发欧生 137-6067-4940 (LGGroup支付钱包APP软件开发、LGGroup支付钱包APP系统开发、LGGroup支付钱包系统源码开发、LGGroup支...

  • 区块链跨链钱包开发,多币种钱包app开发
    区块链跨链钱包开发,多币种钱包app开发 08-31 12:19

    区块链跨链钱包开发,多币种钱包app开发  区块链钱包是最近非常火爆的一个方向,像新出的Plustoken、HOO等这些钱包app功能都是非常强大的,...

  • 基于华为云区块链服务快速部署和搭建链上应用
    基于华为云区块链服务快速部署和搭建链上应用 08-31 12:19

    华为云区块链服务的整体架构华为云区块链服务BCS是面向企业及开发者的高性能、高可用和高安全的区块链技术平台服务,可以帮助企业和开...

  • V神谈分片技术、等离子技术以及第二层解决方案
    V神谈分片技术、等离子技术以及第二层解决方案 08-31 12:19

    ​ V神,以太坊的创始人,今日在关于开发应该集中在第一层还是第二层这个问题上发表了自己的看法。他说两者之间的权衡这种将是这个......

  • 区块链交易平台开发 公开透明不可篡改
    区块链交易平台开发 公开透明不可篡改 08-30 21:32

    区块链给企业商家带来了不一样的惊喜,同时以区块链技术为基础诞生了许多的衍生系统.赢在移动区块链交易平台就是在这个基础上...

  • 区块链挖矿系统APP定制
    区块链挖矿系统APP定制 08-30 20:54

    区块链挖矿系统研发【咨询开发薇电180-2240-1717高坤】区块链挖矿系统软件定制 最近区块链行业非常热闹,币圈人,都是营销的集...

  • 区块链商城交易系统平台开发
    区块链商城交易系统平台开发 08-30 20:33

    区块链商城交易系统开发,区块链商城交易系统软件,区块链商城交易系统定制,区块链商城交易系统:138-2848-7919可微区块链给...

  • 以太坊开发者资源工具集合
    以太坊开发者资源工具集合 08-30 16:07

    image 1 开发语言、框架与工具 语言 Solidity - 官方推荐以太坊智能合约开发语言,也是目前最为主流的智能合约语言。 Bamboo - 是一种将智...

  • POWH3D区块链开发
    POWH3D区块链开发 08-30 15:15

    POWH3D区块链开发【185→94O6→0l81微电 曾生】​a,从日活的角度说,以太坊上现在dapp是啥?不是idex,也不是分叉以德,更不是以太猫,是一个...

  • 币圈资讯(8月30日)
    币圈资讯(8月30日) 08-30 14:00

    币圈区块链联盟99%币圈的人都关注了 2018.8.30 周四 区块链资讯 1.广州开发区金融局近日联合广州开发区经济和信息化局下发通知,...

  • LGGroup钱包系统开发
    LGGroup钱包系统开发 08-30 12:35

    LGGroup支付钱包系统软件开发欧生 137-6067-4940 (LGGroup支付钱包APP软件开发、LGGroup支付钱包APP系统开发、LGGroup支付钱包系统源码开发、LGGroup支...