vendredi 4 août 2023

How to generate a periodic, unpredictable, verifiable random number?

I would like a random number for a program with the following qualities:

  1. Periodic: The random number needs to be random for a certain window of time. Preferably hourly but could be more. Once the period is over, the next random number can be generated and previously generated values can be regenerated based on seed values which are publicly available.

  2. Unpredictable: The next random number cannot be easily determined. The publicly available seed must not be public yet.

  3. Verifiable: The seed for the random number should come from some publicly available source. Perhaps a scientific research organization or government body is publishing a daily or hourly number(s). For example, a group of temperatures that are recorded. Or for example, it could be as simple as a website that publishes hourly or daily random numbers.

  4. Seed should be at least a 64 bit integer. If it's too small then the random number could be guessed from a small set.

  5. Industrial-strength or exacting randomness is not required. Not interested in extreme, high-precision randomness.

I see https://avkg.com/ generates large, daily random numbers and this is actually very close and if nothing else looks better I will probably use it. Especially since it archives past results and so that satisfies the verifiable requirement. The problem is the site does not have a clean and documented API and it's not hourly. HTML scraping for this information is not ideal.

Another idea I had was to use a hash of a specific group of people's latest Tweets (X). Doing something like this would allow for verification. The problem is I don't know if they will tweet daily or hourly. Also, Elon has now made Twitter (X) non-public so you need to sign in to gather this information.

Another idea is to just create a my own version of AVKG.

Of course, a date will not work since that does not satisfy the above unpredictable requirement.

Any ideas?

Thank you so much.




Aucun commentaire:

Enregistrer un commentaire