I have a website that gives users different outcomes depending on a virtual dice roll. I want them to trust that my random numbers are honest, so instead of me determining it in my own code (which to my skeptical users is a black box I can manipulate), I want to come up with some other mechanism.
One idea is to point to some credible website (e.g. governmental) that has a publicly observable random number that changes over time. Then I could say, "We will base your outcome on a number between 0 and 9, which will be the number at [url] in 10 seconds."
Any suggestions?
I'd go with this site myself. It has a public anonymous URL for several kinds of numbers, and realtime pages to observe them:
It also includes references to the scientific explanation of the source of randomness, and practical demonstrations of it, even one specifically for dice.
From your code you can just retrieve the number URL mentioned above.
A completely alternative approach: when the deadline falls, retrieve the homepage of an outside controlled, high-traffic interactive site, such as the questions page of Stack Overflow. Store the page, take its MD5 or SHA1 hash, and derive your roll from that.
You can then:
Any attempt to tamper with this system, such as Jeff reiterating an old page on purpose because he knows the MD5 hash it produces, is easily debunked by the real time nature of the site - it would be visible for everyone to see the questions aren't recent to the time of snapshot.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With