4 ms·
If this sort of thing interests you, checkout Dfinity's random beacons - They use threshold cryptography (think of it as a type of "multisig") to solve the comm
by jashmenn 9y ago
If this sort of thing interests you, checkout Dfinity's random beacons - They use threshold cryptography (think of it as a type of "multisig") to solve the commit-reveal problem (where the last party to reveal their commitment can abandon, so they have an advantage).
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 https://www.youtube.com/watch?v=xf1dql4Zoqw
- printf_kek0 9y ago> deterministic source of randomness There is a manifest contradiction here created by this choice of words.
- oh_sigh 9y agoIIRC 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.
- AlexCoventry 9y agoA 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.
- tfha 9y agoThere'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.
- warkdarrior 9y agoDid you mean Verifiable Random Functions (VRFs)?
- tfha 9y agoI did, thanks
- Donzo 9y agoIs this class implemented in Solidity?
- Bromskloss 9y ago> 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?
- Drakim 9y agoNormally 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.