In the first blog post of the series “A week in the life of an IOTA Research Intern,” I told you how I got involved with the IOTA Foundation and described my first week working with the IOTA team. In this second edition, I will give a quick update on what I have been doing day-to-day, and then talk a little bit about my chosen topic: the design of a Decentralised Random Number Generator (dRNG).
A lot has happened since I wrote the last edition of this blog post series. I have continued to attend scheduled weekly meetings with other researchers and we shared a lot of new ideas. Key team members for each research stream meet in person each month, and I was able to dial in and listen to the relevant discussions at the most recent meetup. At this meetup, engineers who normally would not have been directly involved with dRNG development were able to share ideas and insights which have inspired new directions of inquiry for our research team.
However, the majority of my time, in the last week, has been spent working independently, reading literature and forming a picture of the state of the art in dRNGs. I began reading papers outlining the high-level protocols and worked my way down to the cryptographic primitives required for each approach. I’m not a cryptographer so the learning curve has been steep, but it has been great to have access to the many experts in the organization to provide me with guidance.
Let me explain to you about the technical concept: the reason random numbers are often needed in distributed protocols is quite intuitive — if there is an unpredictable, random element to how the protocol executes, it’s more difficult for an attacker to influence it. In this way, the dRNG can be used to improve the security of modules such as the voting mechanism in the post-Coordicide Tangle. Randomized consensus algorithms have been around since the ’80s, mainly taking the form of coin tossing protocols. Since then, similar ideas involving shared random numbers have been employed in many distributed systems e.g. trustworthy shared random numbers are essential for leader election in many Proof-of-Stake blockchains and other distributed ledgers that require voting and randomized committee selection.
In the coming weeks, I will be putting together a technical specification for the IOTA dRNG and a document detailing my recommendations for how this can be implemented. I believe that the dRNG will be an essential layer of the post-Coordicide IOTA network -I may be slightly biased because I have had my head buried in dRNG papers for the past few weeks. I am delighted to have been given a chance to contribute to its development and I look forward to sharing the next episodes of my life as an intern at the IOTA Foundation.
Please, join us on Discord if you wish to engage directly with me and the team.
Follow us on Twitter to get all the latest news about the IOTA Foundation.