I was looking at ramdom.org which generates random numbers using atmospheric noise picked up by radio receivers. However, it is still a centralized service, and there is no way to know if some results are tampered by the owner. (random.org has third-party audit, but that audit can be compromised as well.)
Then I am thinking if there is a way to generate public random numbers in a decentralized manner. Specifically, there will be a protocol/process for the random number generation, and anyone who follows the protocol should be able to get the same random number at a certain point of time.
A rough idea is that the "randomness" should come from some natural/physical process, and it should be observable by anyone or a large group of people. And an algorithm can be defined to translate the analog data to digital numbers.
I am wondering if this is practical, and if there are already available solutions. We can relax some other common requirements of the random generator, i.e., it is fine to be very inefficient (like one number per day).
Some searches I did:
- random.org and other hardware based random generator, they are all owned by single entity and other people cannot verify the results. (People can verify the numbers statistically, but there is no way to tell if a certain number is compromised.)
- https://medium.com/coinmonks/a-crash-course-on-proof-of-stake-part-iii-67aa720ea08f There are many decentralized random number generator for Blockchain, but they all require the communications and involvements of blockchain parties.
- https://drand.love/ drand is very close to what I want, just the generation process is still "owned" by The League of Entropy, and technically it is still comprisable.