ephemerand is an experimental approach to generating a globally-consistent randomness beacon.
Once every day, the US military takes various measurements of the satellites in the GPS constellation. These measurements include:
- Satellite ephemeris (information about orbit)
- Inclination
- Eccentricity
- Argument of perigee
- Clock skew
- Ionospheric noise
The ephemerand
program collects this information from a GPS receiver, hashes them with BLAKE-2b, and then outputs the result.
Any device with a ublox chipset should work. I've tested this and this.
Unpredictable (?)
- 31 active satellites
- 10 parameters per satellite
- Being able to predict far in advance would be major applied physics break-through
- Is this true? Needs more research
Unbiasable (?)
- The US military in theory can influence, however:
- It would be easy to detect (everyone's GPS readings would be wrong)
- Economic impact would be massive
- Potentially could mix in data from Europe/Russia/China/India satellites
Running
Plug in your GPS device, then run:
sudo ./ephemerand run --verbose
If you see version information from your device then it connected OK:
# Connection OK. SW: 1.00 (59842) HW: 00070000
If you wait for a bit you'll see it pick up satellites (make sure the sky is in view):
# Sat #32 (1/31) [2044.147456 -> 24166000920924000054fd00b80da1006e9413009f3b96006a77f500b400e700]
# Sat #31 (2/31) [2044.147456 -> 9a4b5f00a20b24000046fd00350ca1004dbe3f0061b9ff009a905600fcff0600]
# Sat #30 (3/31) [2044.147456 -> af1e5e0032ff24000034fd007e0ca100dd604000c7e4840014796700c8fff700]
# Sat #29 (4/31) [2044.147456 -> 62065d00121c24000065fd001c0ca100b37c9600f2e33a00709efa00c0ff2100]
After all 31 satellites are picked up you'll get today's random number:
rand 0936e456684b04edd449bad5c8aba51e28a5adc98d4f20e560af668644f23665 2044.147456 1552323456
The first parameter after rand
is the random value. The next is the GPS week and GPS time of week that the almanac is applicable for, separated by .
. The next is the GPS week/time converted to a unix timestamp.ration
What's next for ephemerand
Need to evaluate the quality of the randomness, improve the time the daily random value rotates, expose the GPS clock to nodes, and more.
Log in or sign up for Devpost to join the conversation.