The Internet Computer offers unpredictable and tamper-proof secure randomness. But how do one prove that the randomness used in a computation actually comes from the system?
Introducing Randomness Oracle to address this problem!
pseudo randomness may be used instead of the system randomness. Anyone who figures out the seed could guess what is next.
use system secure randomness to seed a computation, but does some more tricks to bias the outcome of the computation. If the canister does not reveal its code, there is no way to know whether it is being honest about using the system randomness.
So the solution here is allow a canister to claim its source of randomness comes from the oracle. The public can easily verify this claim. The canister can also make its formula (on how the outcome is derived from this randomness) public without revealing all its source code. This is enough to convince the public that there was indeed no foul play.
There are still a couple minor issues such as when the randomness was requested (a canister can save up a couple seeds from the past and pick the favorable one), and whether the oracle is the only source of randomness being used (a canister can consult more than one oracles and pick a favorable one). But the overall thesis here is sound and defendable.