The QRL Foundation joins forces with the League of Entropy
18th December 2020
Understanding the importance of randomness and entropy
Randomness is defined as the lack of pattern or predictability1. It is used in everything from light entertainment such as the act of shuffling in card games to more serious cryptographic systems2. Entropy (in cryptography) is fundamentally the measurement of randomness3 where more is better. Card dealers increase the entropy of a deck with proper shuffling technique often with multiple rounds.
Simple enough right? Unfortunately it’s possible for things to appear random which actually aren’t. Poor shuffling technique can lead to very probabilistic results that might seem random at first glance, for example. Magicians take this a step further and use purely deterministic shuffling, leaving spectators in awe.
While entertaining in a magic performance, having things not be truly random can be catastrophic for cryptographic systems. Lack of availability, unpredictability, unbiasability, and verifiability continues to be a major source of exploits4 to this day. This problem is notoriously complex and is the subject of a lot of research5 along with innovative and interesting solutions, such as CloudFlare’s LavaRand.
Unfortunately, while CloudFlare’s LavaRand and other similar projects creates sufficiently high entropy, the setup costs are high, and the nature of them being centralized makes it vulnerable to manipulation from insiders. Similar to how magicians can use deterministic shuffling to manipulate card decks without anyone (else) realizing it, it’s possible to manipulate the source, and therefore gain an advantage in cryptographic systems. This type of attack isn’t just hypothetical but has already happened such as in the IOWA lottery fraud mystery.
Work on a system to create a public randomness beacon with these attributes goes back to over a decade ago in the DEDIS lab at EPFL and resulted in a project called drand (for distributed randomness)6. Drand is able to generate verifiable, unpredictable and unbiased random numbers as a service in a very simple and efficient manner and to deliver it in a reliable way to the client. This later gave birth to…
Joining The League of Entropy
To celebrate Crypto Week 2019, CloudFlare started the League of Entropy consisting of a consortium of global organizations and individual members providing randomness beacons on drands mainnet network for a high availability, unpredictable, unbiased, and verifiable randomness - the golden standard.
Other heroic members of randomness includes Cloudflare, École polytechnique fédérale de Lausanne (EPFL), University of Chile, Kudelski Security, Protocol Labs, ChainSafe, cLabs, C4DT, Emerald Onion, Ethereum Foundation, IC3, PTisp, Tierion, and UCL.
How QRL Generates Entropy
Each node first generates a long-term public/private key pair. Then all of the public keys are written to a group file together with some further metadata required to operate the beacon. After this group file has been distributed, the nodes perform a distributed key generation (DKG) protocol to create the collective public key and one private key share per server. The participants NEVER see/use the actual (distributed) private key explicitly but instead utilize their respective private key shares for the generation of public randomness.
After the setup, the nodes switch to the randomness generation mode. Any of the nodes can initiate a randomness generation round by broadcasting a message which all the other participants sign using a t-of-n threshold version of the Boneh-Lynn-Shacham (BLS) signature scheme and their respective private key shares. Once any node (or third-party observer) has gathered t partial signatures, it can reconstruct the full BLS signature (using Lagrange interpolation). The signature is then hashed using SHA-256 to ensure that there is no bias in the byte representation of the final output. This hash corresponds to the collective random value and can be verified against the collective public key.
Want to learn more?
Want to dig into our audited, MIT open-source, enterprise-grade codebase? Check out our github at: https://github.com/theQRL/QRL/
- “Proceeding, made, or occurring without definite aim, reason, or pattern” - dictionary.com
- “The quality or state of being or seeming random (as in lacking or seeming to lack a definite plan, purpose, or pattern)” - merriam-webster
- Cryptographic Randomness Testing of Block Ciphers and Hash Functions.
- Randomness recommendations for security
- On the (im) possibility of cryptography with imperfect randomness
- When Good Randomness Goes Bad: Virtual Machine Reset Vulnerabilities and Hedging Deployed Cryptography.
18th December 2020