关于昨天蔡文胜的 BEC 智能合约出现漏洞,又一个要归零的币 = = - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dappreview
V2EX    区块链

关于昨天蔡文胜的 BEC 智能合约出现漏洞,又一个要归零的币 = =

  •  2
     
  •   dappreview 2018-04-23 08:23:26 +08:00 7359 次点击
    这是一个创建于 2735 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为该智能合约批量转帐函数中一行代码的疏忽,导致溢出了。。。
    所以出现以下奇观。
    一笔高达 57,896,044,618,658,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000 的代币转账

    该笔交易围观地址:

    https://etherscan.io/tx/0xad89ff16fd1ebe3a0a7cf4ed282302c06626c1af33221ebe0d3a470aba4a660f

    看了一下智能合约代码
    出现问题的函数在 255 行这个 batchTransfer

    function batchTransfer(address[] _receivers, uint256 _value) public whenNotPaused returns (bool) { uint cnt = _receivers.length; uint256 amount = uint256(cnt) * _value; require(cnt > 0 && cnt <= 20); require(_value > 0 && balances[msg.sender] >= amount); balances[msg.sender] = balances[msg.sender].sub(amount); for (uint i = 0; i < cnt; i++) { balances[_receivers[i]] = balances[_receivers[i]].add(_value); Transfer(msg.sender, _receivers[i], _value); } return true; } 

    合约围观地址
    https://etherscan.io/address/0xc5d105e63711398af9bbff092d4b6769c82f793d#code

    注意到这一行

    uint256 amount = uint256(cnt) * _value; 

    没有对 amount 做溢出的检测。。 传入的_value 值在第一张图中 8000000000000000000000000000000000000000000000000000000000000000

    转账地址为 2 个,所以 cnt =2
    于是乎 amount 就溢出了。。

    不是 Copy 一个智能合约改一改就叫区块链了

    第 1 条附言    2018-04-23 13:16:45 +08:00
    小广告
    对 DApp 和智能合约开发感兴趣的小伙伴,欢迎关注微信公众号:DAppReview
    专注于技术类分享和深度干货,非资讯类公众号
    不喜勿关
    16 条回复    2018-04-26 19:22:18 +08:00
    muziki
        1
    muziki  
       2018-04-23 08:27:48 +08:00 via iPhone
    讲道理 涉及数值操作下意识就是溢出之类的安全检查吧……
    dappreview
        2
    dappreview  
    OP
       2018-04-23 08:30:52 +08:00
    @muziki 在 5 分钟就能发币赚钱的生意里面,什么测试啦、code review 啦、代码安全审计啦 都是浮云
    jellybool
        3
    jellybool  
       2018-04-23 08:32:36 +08:00 via iPhone
    灵车
    ob
        4
    ob  
       2018-04-23 09:08:16 +08:00 via Android
    这就归零了。。
    maichael
        5
    maichael  
       2018-04-23 09:13:16 +08:00
    抄都抄出问题,怕不是自己留的后门。
    ariesjia
        6
    ariesjia  
       2018-04-23 09:38:32 +08:00
    好好地用 safeMath 好好地, 都应该用上 lint 所有的运算符都不允许使用 必须 safeMath
    DearMark
        7
    DearMark  
       2018-04-23 09:49:47 +08:00
    说归零,就归零,牛币。
    deadEgg
        8
    deadEgg  
       2018-04-23 10:07:37 +08:00
    人可以投票回滚,和原来以太坊一样

    清零是什么说法?
    skadi
        9
    skadi  
       2018-04-23 10:08:10 +08:00
    2^255 笑死.
    OrangeM21
        10
    OrangeM21  
       2018-04-23 10:40:38 +08:00
    你给的传入的数值是 16 进账的,真正传的数值是 10 进制。hahaha.
    drakeet
        11
    drakeet  
       2018-04-23 10:50:10 +08:00   1
    龟苓膏
    Hconk
        12
    Hconk  
       2018-04-23 12:11:50 +08:00 via Android
    @deadEgg 这种 token 出漏洞是不可能让以太坊回滚区块的,除非是以太坊自身的漏洞才有可能投票回滚。
    清零是币价归零。
    deadEgg
        13
    deadEgg  
       2018-04-23 15:49:19 +08:00
    @Hconk 哦 我理解错了,那看起来得清零了
    gftfl
        14
    gftfl  
       2018-04-23 20:22:47 +08:00
    以前 265 的那个蔡老板吗?
    davidqw
        15
    davidqw  
       2018-04-24 03:40:27 +08:00
    人家币种牛逼,还可以停服的
    haidaotao
        16
    haidaotao  
       2018-04-26 19:22:18 +08:00
    这韭菜割得连根都没剩下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     879 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 22:28 PVG 06:28 LAX 15:28 JFK 18:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86