I am developing a network where potentially many many nodes (billions, in principle?) should be able to agree on a random number. I would really prefer to avoid $O(N^2)$ procedures where everyone contributes with some randomness and then everything is shuffled together. So I am looking for a random beacon.
I would also prefer to avoid random beacons generated from $O(N^2)$ sources, like Bitcoin. So I wonder: is there a random beacon that is:
- Unpredictable
- Universally verifiable
- Impossible to pilot (i.e., no organization, no matter how powerful, could alter its values or predict them)
I don't really care about its bitrate (if it produces just a few random bits per hour, so be it).
Here are some solutions I thought about (but they don't seem very feasible):
- Solar flares: their occurrence is random, and they interfere with VLF communications. But their time is not so narrowly defined, and their occurrence is really rare, in then order of once a week. Also this requires everyone to have an antenna. And maybe an attacker might interfere itself with VLF transmitters.
- Lightnings: they strike much more often, but their signal can be detected (also with VLF antennas) only maybe a few thousands kilometers from the lightning. So it wouldn't be global.
- Earthquakes: detectable everywhere, but again, not such a precise time definition, and requires a very sophisticated instrumentation.
- Random beacon satellite: we could send a cubesat in orbit to generate random numbers and broadcast them down to Earth. I could add proximity sensors or accelerometers so that any approach results in terminated communications to prevent tampering. This would also be great because I would only need a receiver station and then the numbers could be broadcasted via the Internet. But maybe a motivated enough organization could find a way to... I don't know, tamper with it so as alter its behavior? Even in space?
- Same as above, but with an hidden verifier that knows the satellite seed and is able to check that the numbers are correct, and is always silent and undetectable. But then, how do I hide it? Without a human that can be tortured or whatever and disclose its position? Also this wouldn't protect the satellite from having its seed copied. And how would I go about maintenance for the hidden verifier?
- One that might also work: VLF receivers tuned on encrypted shore-to-submarine transmissions of multiple nuclear powers. Transmissions can be received basically anywhere in the world, but being encrypted I guess they can be used as a more than decent source of randomness? Obviously a nuclear power could send gibberish to its submarines to make its beacon non-random, but if I use multiple sources then multiple nuclear powers should agree to at the same time jam their own communications with their nuclear submarines... while also letting every other nuclear power know about it, since they should coordinate! Quite unlikely. Might this work? But (sigh) it requires everyone to have a VLF antenna.
Here is where I stop. Any more sensible solution?