Oracles

根據獎勵改變隨機數的來源?

  • February 20, 2019

這是根據獎勵生成隨機數的可接受方式嗎?假設獎勵高到足以誘使礦工操縱區塊,那麼合約將使用 oraclize。

if (reward < x)
{randNumber = (uint(keccak256(abi.encodePacked(block.difficulty))) % 100;}
else {useOraclize();}

不,礦工會block.difficulty實時知道每個區塊的目前電流,而無需支付任何費用。這意味著無論何時reward < x,人們都可以 100% 確定地知道您的“隨機”數字的值是多少。

所以你的隨機數根本不是隨機的。

引用自:https://ethereum.stackexchange.com/questions/67339