Re:Predicting Random Numbers in Ethereum Smart Contracts
by tfha on Friday February 02, 2018 @11:19PM
(#16296147)
There's a general class of crypto for solving this problem called a VRF. Algorand also has a very clever way to solve the randomness problem, including a method to foil an attacker that is even able to get lucky repeatedly.
Re:Predicting Random Numbers in Ethereum Smart Contracts
by warkdarrior on Saturday February 03, 2018 @12:29AM
(#16296341)
Did you mean Verifiable Random Functions (VRFs)?
Re:Predicting Random Numbers in Ethereum Smart Contracts
by tfha on Saturday February 03, 2018 @12:59AM
(#16296416)
I did, thanks
Re:Predicting Random Numbers in Ethereum Smart Contracts
by Donzo on Saturday February 03, 2018 @08:50AM
(#16297608)
Is this class implemented in Solidity?
Re:Predicting Random Numbers in Ethereum Smart Contracts
by printf_kek0 on Friday February 02, 2018 @10:38PM
(#16296015)
> deterministic source of randomness
There is a manifest contradiction here created by this choice of words.
Re:Predicting Random Numbers in Ethereum Smart Contracts
by oh_sigh on Friday February 02, 2018 @10:53PM
(#16296062)
IIRC It is entirely deterministic, if all parties are in cahoots with each other and sharing their secrets. But, if they are not, then it is effectively a non-deterministic random.
Re:Predicting Random Numbers in Ethereum Smart Contracts
by AlexCoventry on Saturday February 03, 2018 @06:50PM
(#16300383)
A coin flip is deterministic if you know its initial conditions and environment with sufficient precision. Deterministic cryptographic primitives can similarly be viewed as random, from the perspective of an observer who doesn't know the relevant secrets.
Re:Predicting Random Numbers in Ethereum Smart Contracts
by Bromskloss on Saturday February 03, 2018 @06:35AM
(#16297215)
> solve the commit-reveal problem (where the last party to reveal their commitment can abandon, so they have an advantage).
Don't you commit to the contract before any revelations are made?
Re:Predicting Random Numbers in Ethereum Smart Contracts
by Drakim on Saturday February 03, 2018 @07:38AM
(#16297376)
Normally you have one user of the contract who invokes it, and somebody else mines/computes the results.
I think the trick here is that the user of the contract is also mining/computing the smartcontract at the same time, and thus knows the contract's results before it's published to the network.
If they are unhappy with how the contract unfolds (because of the random component), they just pretend as if it all never happened, neither the contract usage or the contract mining/computing never took place.
They build on it to create a provable, deterministic source of randomness which can't be exploited in this same way.
Here's a video that goes into more detail: https://www.youtube.com/watch?v=xf1dql4Zoqw