長年にわたり、公開乱数(しばしば common coins と呼ばれます)の生成は、暗号研究コミュニティの関心を集めてきました。さまざまな合意アルゴリズム、Tor のような匿名ネットワーク、ブロックチェーンシステムなど、多くの分散システムは、こうした公開乱数へのアクセスを前提としています。しかし、分散的でスケーラブル、かつ堅牢な方法で公開乱数を生成することは、大きな未解決課題のままでした。現在、この種の乱数を生成するサービスはデプロイされていません。選択肢は、NIST ↗ が運用する中央集権的なプロトタイプのみの randomness beacon だけです。
この状況を踏まえ、Ewa Syta ↗ は、Yale University で Michael J. Fischer ↗ と Bryan Ford ↗ の指導のもと、博士課程中に Scalable Bias-Resistant Distributed Randomness ↗ のプロジェクトを始めました。Bryan が 2015 年に EPFL へ移ったあと、EPFL の DEDIS チームの新しいメンバー(Nicolas Gailly ↗、Linus Gasser ↗、Philipp Jovanovic ↗、Ismail Khoffi ↗、Eleftherios Kokoris Kogias ↗)がプロジェクトに加わり、共に 2017 IEEE Symposium on Security and Privacy ↗ で研究論文を発表しました。
論文では、古典的な楕円曲線暗号の代わりにキーペアリングを使い、公開乱数を生成する方法を検討しました。提案プロトコルの設計を簡素化し、乱数の生成と検証の性能を上げるためです。
2017 年初頭、EPFL ↗ の DEDIS ↗ チームは、公開乱数を含む複数の研究テーマで DFINITY ↗ と協力を始めました。DFINITY のアーキテクチャは、DEDIS の論文で述べられた構成と似た、ペアリングベースの randomness beacon を中核にしています。加えて、DFINITY はすでに C++ で最適化したペアリングライブラリを実装していました。この実装を DEDIS の暗号ライブラリ Kyber ↗ に統合したあと、ペアリングを使った効率的な分散乱数生成プロトコルを実装するための主要な暗号コンポーネントが揃いました。
2017 年 9 月、DEDIS の博士課程の学生 Nicolas が、Philipp の協力を得て drand の実装を始めました。アプリケーションに依存せず、安全かつ効率的に公開乱数を提供する分散サービスを、初めてデプロイするためです。まもなく Cloudflare が BN256 ペアリング曲線の最適化された Golang 実装を公開し、開発とデプロイを簡単にするため、Kyber と drand の両方に統合されました。
drand が成熟するにつれ、NIST、Cloudflare、Kudelski Security、University of Chile、Protocol Labs など、より多くの組織が関心を持ち、これらの組織にまたがる drand ↗ ネットワークの構築に共同で取り組み始めました。Web アプリケーションでの公開乱数の利用を支えるため、DEDIS の修士課程の学生 Mathilde Raynal ↗ は、drand サーバーとやり取りする JavaScript の概念実証フロントエンド drandjs ↗ の開発を始めました。
2020 年春、Protocol Labs のチームが、drand を実験段階から本番利用可能なネットワークへ移す取り組みを主導しました。この取り組みには、プロトコルの大幅なアップグレード、分散ネットワークのガバナンスモデルの確立、ノード運用者の運用セキュリティの強化が含まれます。詳細は drand blog ↗ を参照してください。