EOS上如何安全生成随机数

EOS上的各种菠菜游戏频频被黑客攻陷,多数原因都是随机数算法被破解。实际上,由于区块链上没有稳定的熵源,很难产生真正意义上的随机数,但是可以最大限度地提高破解的难度。在不引入于预言机(oracle)等外部熵源的情况下,目前有两种可用的安全随机数生成算法,本文将逐一进行分析。

1.FarmEOS算法

FarmOS是目前比较火的游戏平台,已经上线了骰子、轮盘、扫雷和21点这四个游戏,后续还将推出更多游戏。根据白皮书上的描述,FarmOS的随机数生成算法采用了未来的区块信息,再结合多项未来不可控变量因素,从而保证安全性和公平性:
在这里插入图片描述
今年10月16日,FarmOS公开了它的随机数算法(实际上也是该项目开源的唯一代码):https://github.com/farmeos/farmeos。需要注意的是,实际上该算法还是有漏洞的,需要去除掉红框框出来的因子(EOSBet项目采用了相同的算法,黑客正是利用这个漏洞成功获利)。
在这里插入图片描述
我们先来分析一下随机数种子中的几个因子:

(1) tapos_block_prefix() :该交易refer的区块高度的低32位

(2) tapos_block_num():该交易refer它之前的哪个区块,是一个0~2^16之间的数字

(3) name:用户账户名

(4) game_id:一个每次自增1的值

(5) current_time():

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值