【solitidy编程】-生成随机数算法

jincheng828 · · 1804 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

通过区块因素

引用

fomo3d的空投机制就是这中算法。
以太坊代码:生成一个5位的随机数

uint256 winningNum = uint256(keccak256(abi.encodePacked(
                    (block.timestamp).add
                    (block.difficulty).add
                    ((uint256(keccak256(abi.encodePacked(block.coinbase)))) / (now)).add
                    (block.gaslimit).add
                    ((uint256(keccak256(abi.encodePacked(msg.sender)))) / (now)).add
                    (block.number)
                ))) % 100000;

转乘数字格式:

abi.encodePacked(
    block.timestamp +                                   // 区块的时间戳
    block.difficulty +                                  // 区块难度
    keccak256(abi.encodePacked(block.coinbase)) / now + // 矿工的地址hash 除去 区块的时间戳
    block.gaslimit +                                    // 区块的gas上线
    keccak256(abi.encodePacked(msg.sender)) / now +     // 开奖人的地址的hash值 除以 区块的时间戳
    block.number                                        // 区块的数量
    ) % 100000                                          

随机数生成是由区块的时间戳区块难度矿工的地址hash区块的gas上线开奖人地址区块的数量等因随机数共同决定。

通过签名算法

Dice2Win


有疑问加站长微信联系(非本文作者)

本文来自:Segmentfault

感谢作者:jincheng828

查看原文:【solitidy编程】-生成随机数算法

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1804 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传