The drand team has been busy during the past year working on delivering an exciting new feature: Timelock Encryption. Timelock encryption enables you to encrypt a message that cannot be decrypted by anyone until a specified time in the future.
You might have heard about it from us already, since we were proud to present not just one, but three new open-source projects in August 2022, bringing a new very exciting feature called “timelock encryption” to our drand testnet!
Well, wait no more: we have now finally reached “General Availability” and our audited Timelock Encryption scheme is now compatible with the drand mainnet, thanks to our newly launched fastnet
network which we’ll discuss quickly in this post as well.
Thanks to the team's work, you can now use these features in many ways:
tlock-js
to perform timelock encryption easily in your browser, locally.tlock
, a Go library doing Timelock encryption by relying on drand’s beacon signatures, along with tle
- a CLI tool allowing you to use timelock encryption just like you would use gpg
or age
.tlock-js
, a TS library doing the same for your browser apps.fastnet
network: https://api.drand.sh/dbd506d6ef76e5f386f41c651dcb808c5bcbd75471cc4eafa3f4df7ad4e4c493/public/latest<aside>
⚠️ NOTE: fastnet
has been deprecated in favor of quicknet
since the original publication of this blog post.
</aside>
These were already presented at DEF CON when we launched them on our testnet. Check the talk if you want more details about possible applications and the history behind Timelock Encryption.
More recently, we released a pre-print paper explaining the details of our timelock scheme and we have a talk scheduled at Real World Crypto tomorrow, on March 29th, 2023 where we’ll explain more in depth how we transformed the League of Entropy and drand into the first practical Timelock Encryption service globally available with a 100% uptime history over the past 3 years!
But for today let’s first see what this “Timelock Encryption” we’re talking about is.
P.S.: If this has piqued your interest and you’d rather watch a video about how this works, you can also find more technical explanations about what is coming next in this Research Seminar that we gave in September!
In order to understand how the system works, we need to first recall a few things about how drand functions…
First things first, let’s recall that drand
, which stands for “distributed randomness” (and thus pronounced “dee-rand”), is our very own open-source software meant to create distributed randomness networks. These networks emit random “beacons” at a given frequency in a way that you never need to trust any single party in the network, and can verify that you actually have random values as long as you trust there is never a threshold number of malicious parties in the network, thus the security of the threshold BLS signature scheme holds.
To accomplish this drand relies on the threshold BLS signature scheme and its security proof that tells us BLS signatures are indistinguishable from random ones (in the group of all possible signatures). At each epoch, the members of a drand network work together to create an aggregated BLS signature on the message m = H(round)}. An important point here for what comes next is that the message is predictable according to the target round at a time T (in other words, there is a mapping between time and round numbers, since the network operates at a fixed frequency), when we’re using drand in the so-called unchained mode that we presented in a post last year.
You can learn more about drand and how it works under the hood in our documentation: Cryptography Page