通过区块因素
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