Timeline for Minereum Lucky Draw claims 100% Safe randomness on a smart contract without oracles, is it really possible?
Current License: CC BY-SA 4.0
17 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Sep 25, 2020 at 15:04 | comment | added | Ismael♦ | There are secure ways to generate random numbers without relying on blockhash, like randao for example. It is a research area with a lot of interest and published papers. | |
Sep 25, 2020 at 8:08 | comment | added | Resten | Oracles on the other hand are much easier to manipulate, 1. Access the centralized server 2. Manipulate the response... | |
Sep 25, 2020 at 8:05 | comment | added | Resten | Yes the timestamp can be manipulated however blocks with invalid time are rejected by the ethereum network, so look for an eventual attack to occur this would have to happen: 1. Miner buys a ticket 2. Miner NEEDS to mine the second block after (uncertain) 3. Miner needs generate a blockhash based on a nearby timestamp of max + 30 seconds or something like that, so his chances AFTER all this work are for ex. 30/10000, not big deal! AND if a miner can do it all miners can compete for this, changes nothing to be honest I still support this is the most secure way to generate RNs on ethereum | |
Sep 22, 2020 at 16:07 | comment | added | Ismael♦ | The block hash is calculated hashing the block header which contains fields that are manipulable by miner, like timestamp and nonce. Please read solidity documentation Both the timestamp and the block hash can be influenced by miners to some degree. | |
Sep 22, 2020 at 12:53 | comment | added | Resten | Can you provide some sort of sources for what you are claiming? My understanding is that miners can not manipulate the blockhash at all, how can they do that? | |
Sep 22, 2020 at 12:45 | comment | added | Ismael♦ | Comments are not the place for extended discussion. First miners do not need to manipulate the whole blockhash to break your implementation, just enough to change the mod operator (%) output. | |
Sep 22, 2020 at 9:16 | comment | added | Resten | How can miners manipulate the blockhash? Can you give me an example, when I'm talking about manipulation, I'm talking about them actually deciding the blockhash to the value they want, in that way they could brute force the blockhash until they get the blockhash to win the prize, however I am not aware that miners can actually dictate the blockhash value, can you point out sources on that if that's really the case? | |
Sep 20, 2020 at 22:46 | comment | added | Ismael♦ | You say a lot of thing but don't provide any proof. It is not new, it is not 100% safe, and miners can manipulate blockchash. | |
Sep 20, 2020 at 21:23 | comment | added | Resten | Miners can drop any block, that's not what is at play here I think. As miners cannot manipulate the blockhash I believe this is a good way to generate RNGs, possibly the best way to generate 100% onchain RNGs without oracles that exists out there. I would classify oracles more risky than this way, oracles are centralized. | |
Sep 20, 2020 at 20:41 | comment | added | Ismael♦ | The miners generate blocks so they can check if you will win, and discard that block so you will not win. Probability is low but it is not zero, a miner may decide to attack depending on the total reward. Another attack is take advantage of short forks, they are pretty common. Send a bet wait three blocks if they don't win publish a block with higher pow. | |
Sep 20, 2020 at 20:40 | comment | added | Resten | @Ismael, the magic here is that the RNG is always generated based on block 2 and you can only use it after block 3. No matter in what block you use the tickets after block 3 to trigger the RNG it will always generate them based on Block 2. Block 2 is always unpredictable on the moment you are purchasing the tickets, thus 100% safe RNG onchain without oracles, they are correct. | |
Sep 20, 2020 at 20:24 | comment | added | Resten | @Ismael, And if I am wrong and you are right, go head and hack it... the current pool is almost 4.5 eth hehe | |
Sep 20, 2020 at 20:22 | comment | added | Resten | The miner cannot manipulate the result, zero chance, it is impossible with this method. Look, think about it: 1. You buy a ticket (you transfer your eth, the eth is already gone from you), this is the block 1 of the RNG journey. 2. You can only use your ticket AFTER 3 blocks - 3. After 3 blocks when you use your tickets it will generate the random numbers based on the blockhash of BLOCK 2. BLOCK 2 is AFTER your block 1, in order for the miner to be able to manipulate the RNG the blockhash would have to be from Block 1 OR before, but in this case it is AFTER. Zero chance for manipulation. | |
Sep 20, 2020 at 19:45 | comment | added | Ismael♦ | A miner can still manipulate the result. For example by delaying so you can't redeem before the 256 blocks, or they will force you to pay more in gas. Since they generate a block they can determine before the block is solved whether they will win or not and search for another block in they not. | |
Sep 20, 2020 at 19:29 | history | edited | Resten | CC BY-SA 4.0 |
added 103 characters in body
|
Sep 20, 2020 at 19:21 | history | edited | Resten | CC BY-SA 4.0 |
added 103 characters in body
|
Sep 20, 2020 at 19:13 | history | answered | Resten | CC BY-SA 4.0 |