Tierion has joined the League of Entropy, along with other industry leaders such as Cloudflare and Protocol Labs, to run drand, a distributed randomness beacon. On July 9th, 2020 Chainpoint became the first live system to utilize drand, when the NIST Randomness Beacon was replaced with drand in Chainpoint proofs.

What is Drand?

Drand is a distributed network that generates a random number every thirty seconds. From the drand web site:

Servers running drand can be linked with each other to produce collective, publicly verifiable, unbiased, unpredictable random values at fixed intervals using bilinear pairings and threshold cryptography.

How Does Chainpoint Use Randomness Beacons?

In May 2017, Tierion announced our collaboration with the National Institute of Standards and Technology (NIST) to use the NIST Randomness Beacon to prove a timestamp proof was created between two points in time. Once per minute, the NIST Randomness Beacon publishes a random value. This value is injected into each Chainpoint Proof. Since NIST’s random values can’t be known before they are published, we can assert that each Chainpoint proof was created after the timestamp of the NIST value. This was the first time publicly verifiable data was used to measure when a blockchain timestamp proof was created.

Why Switch From NIST to Drand?

Over time, development on the NIST Randomness Beacon slowed down and NIST experienced intermittent reliability issues. We began searching for a replacement and decided drand was the best option. Since July 9th, 2020 each Chainpoint Proof has a drand value instead of a NIST Randomness Beacon Value. Switching to drand provides two major benefits:

  1. Drand is run by multiple operators whereas the NIST Randomness Beacon is run by a single operator. This should make drand more reliable.

  2. Drand publishes a random value every thirty seconds whereas the NIST Randomness Beacon publishes a random value every minute. Drand offers double the time accuracy of the NIST Randomness Beacon.

What is Different for Developers?

Most developers don’t need to do anything differently when verifying Chainpoint proofs. Those that previously verified the NIST Randomness Beacon time will instead need to verify the drand time by the following steps:

  1. Look up the drand value and block height in the Chainpoint proof

  2. Use a drand server to confirm the drand value for the given block height

  3. Calculate the time of the drand value using the genesis time of May 25, 2020 10:19 pm (UTC) + (drand block height * 30 seconds)

About Chainpoint

Chainpoint lets software developers link data to the Bitcoin blockchain and create a timestamp proof, which can be used to prove the data is linked to a point on the *chain *— hence the name *Chainpoint. *Stay up to date with progress by following Chainpoint on Twitter. Developers can learn more about Chainpoint by visiting the Chainpoint GitHub.