EOS、波场随机数安全问题频发dapp成黑客提款机( 五 )

  • Eosbet第二次随机数攻击:在修改了上一次的问题后 , 开发者再引入了一个新的参数:用户余额作为随机数因子 。 然而攻击者利用这一点 , 模拟完全一样的DApp代码 , 然后不停修改余额去尝试开奖逻辑 , 直到碰撞出开奖结果 , 进而又遭到攻击 。

  • 还有其它很多EOS上的游戏遭受了类似手段的攻击 , 造成大量的损失 。

    下面 , 我们就来着重讲讲如何实现在随机数上的优化 。

    首先 , 用户使用钱包账户中的BTY购买票(Ticket) , 10000BTY对应一票 。 钱包同时生成一个randNum , 哈希过后再结合钱包挖矿地址的私钥 , 票对应的index(一次可以买多张票)等元素再做两次哈希 , 得到一个公开哈希参数(pubHash):

    pubHash =

    hash(hash(privateKey:index:hash(randNum)))

    然后 , 新购买的票中包含这个pubHash以及randNum并存入区块链 , 这张票有12小时的成熟期 , 过了12小时才可以参与挖矿 。

    推荐阅读