Timeline for When can BLOCKHASH be safely used for a random number? When would it be unsafe?
Current License: CC BY-SA 3.0
13 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Oct 29, 2021 at 18:19 | comment | added | Otto | I'm also curious how PoS plays into this, with the potential of penalizing a miner. @TjadenHess so block timestamp is assigned by the miner so it's easy to manipulate? What about block.difficulty, is this given to the miner? Also, isn't manipulating the timestamp not allowed in blockchain and could be found out and the miner could be penalized? | |
Apr 10, 2019 at 13:20 | comment | added | Tjaden Hess |
The last chronologically, I mean. You can think of abi.encodePacked(...) as a single input to your RNG. The security is then determined by the number of bits that an attacker is able to influence in this value. In this case it will be quite a few bits, so this scheme is very insecure
|
|
Apr 10, 2019 at 7:34 | comment | added | Yogesh - EtherAuthority.io | @TjadenHess, so if I do uint(keccak256(abi.encodePacked(now, block.coinbase, seed ))) % 99; so only last parameter, "seed" only used to generate random number? Thanks :) | |
Aug 26, 2018 at 5:52 | comment | added | matthias_buehlmann | How does this answer change in the light of moving ethereum from PoW to PoS? | |
May 12, 2016 at 9:55 | comment | added | fair glu | Does not proof of stake drastically reduces the cost of the throwing away a block for a miner/staker? (basically to the cost of the fees + marginal fraction of compound interest for staking later) | |
Mar 16, 2016 at 19:45 | comment | added | Jeff Coleman | This is just the same rule applied repeatedly. If each mined block offers a "chance" or a "step", and the miner values that "chance" or "step" at more than 5 BTC, then the BLOCKHASH operation cannot be used for the application (or any other application where >5 ETH chances or steps could be part of a successful manipulation strategy). If it takes an average or total of 1,000,000 blocks to obtain a 10,000,000 reward, then there is at least 10 ETH of value resting on each block. | |
Mar 15, 2016 at 8:35 | comment | added | Matias | Comment to Jeff's answer. Every valid block that miner throws away, costs him 5 eth. If he has to throw away 1 000 000 valid blocks, it costs him 5 000 000 eth. If prize is 1 000 000, it makes no sense to throw away 5 000 000. If prize is 10 000 000, then it makes. | |
Jan 24, 2016 at 9:57 | history | edited | Jeff Coleman | CC BY-SA 3.0 |
added 4 characters in body
|
Jan 23, 2016 at 0:13 | history | edited | eth♦ | CC BY-SA 3.0 |
clarify conclusion
|
Jan 23, 2016 at 0:04 | comment | added | Tjaden Hess | It is important to note that some people try to use a combination of randomness sources. ONLY THE LAST ONE MATTERS. Whatever piece of randomness, be it blockhash or timestamp, is added in last can break all of the randomness of the system. | |
Jan 22, 2016 at 23:18 | history | edited | Jeff Coleman | CC BY-SA 3.0 |
completing the answer
|
Jan 22, 2016 at 23:18 | vote | accept | eth♦ | ||
Jan 22, 2016 at 23:03 | history | answered | Jeff Coleman | CC BY-SA 3.0 |