Open ssadler opened 4 years ago
a DTO using NIST can provide new entropy every minute. using each one as a seed to a deterministic random algo would provide an arbitrary number of entropy values
a DTO using NIST can provide new entropy every minute. using each one as a seed to a deterministic random algo would provide an arbitrary number of entropy values
You could get extra random values, yes, but you couldn't increase the frequency of unknown values (entropy). I should probably edit the title.
Many applications will require ~random numbers~ entropy. Entropy is distinct from a random number provided by deterministic RNG because parties know that it exists but don't know what it is, yet. This issue is to discuss how best to provide it.
quotes from @alrighttt
Note: there's actually an ethereum contract which provides random entropy and allows anyone to submit a transaction to add to the entropy
Dealer entropy
Preimage entropy
Another idea: 2 parties, Alice and Bob, both provide a hash where the preimage contains a random seed. After the hashes are confirmed on chain, alice and bob both reveal the preimages, and the random entropy is the hash of both of their preimages. So far, no collisions have been found in sha256, but to make it a little harder there could be a common prefix requirement. This seems very simple so maybe there's some issue with it? It's basically the same as dealer but both parties provide their hash in a single transaction together.
@alrighttt also mentioned:
This seems like it could be useful for some applications, since the NIST interface appears to provide an indexable and signed sequence of random numbers, so that parties could agree on the random number of some future index and then the verification of that random number can be checked on-chain without additional I/O by using the NIST provided pubkey.
There is also https://www.cloudflare.com/leagueofentropy/ and maybe other projects.
A good result would probably be to provide several options with pros and cons of each, and provide an interface to them in a module like
pycc.entropy
or similar.