Elektrine lite

← Feed

@sunfish@hachyderm.io

Post #2085728

2025-11-11 15:18 UTC

The thing that makes it tempting to add a random-number generator as a Wasm component builtin is that random numbers are inherently not virtualizable, for some common meanings of "virtualizable".

Replies (2)

  • @sunfish@hachyderm.io 2025-11-11 15:22

    Random numbers should be hard to predict, and they carry no inherent meaning. Once you have a source of high-quality random numbers and a good PRNG making them fast, there isn't really anything else that can be added on top. And if we allow things to be added on top, that increases the risk that information about the bytes could leak before they reach their intended destination.

    Open ##2553655

  • @bjorn3@hachyderm.io 2025-11-11 18:15

    @sunfish@hachyderm.io You might want to do deterministic replay for record-replay debugging. Or you might want to record the random numbers used to derive a TLS encryption key to make wireshark work. Or you might want to get a bunch of random numbers once and then run the same computation using those random numbers on multiple systems to check they match. All of these can be done by virtualizing the random-number generator, but require wasm runtime integration if random numbers were part of the component model. Edit: and to add none of these match the secure vs on-secure rng distinction. for all of them you do actually want to virtualize the secure rng too.

    Open ##2553677