Advantages of Random Beacon (Threshold signature) over block hash

Problems with using the block hash

Block hash (called ID() in our code base) can be biased by a consensus node. It is possible for consensus nodes to loop over possible blocks and choose one with a block ID with the random outputs they prefer. The protocol has a safer entropy source which is the random beacon, that is unpredictable and unbiasable (based on BLS threshold signatures). The plan is to wire its output to Cadence to export a safe randomness.

Details:

The underlying insight is: Any data object that a single node constructs and where the node has any influence how the byte representation looks as a bad source of entropy. The message creator can always construct multiple variants and only release favourable ones.

Flow is one of the very few networks that has a unpredictable and relatively unbiasable source of entropy, aka our Random Beacon.

summary of problems using hash as entropy source:

Threshold signature (aka random beacon) as entropy source

Section 4.3.4 in our paper [link] describes the random beacon, which is conceptually very different than the block hash:

  1. As the following figure illustrates, the source of randomness generated by the random beacon is not part of the block, it is a threshold signature over the block

    https://user-images.githubusercontent.com/26322303/227646833-15eda027-2e11-4ca7-b41e-edf4ab38a00f.png

    So if Eve is constructing block A, she has to publish it first. Meaning at the time of block construction, the source of randomness is unknown (first difference to block hash).