背景
長年にわたり、公共のランダムネス(common coinsと呼ばれることが多い)が暗号学研究コミュニティの関心を集めてきました。さまざまな合意メカニズム、Torのような匿名ネットワーク、またはブロックチェーンシステムを含む多くの分散システムは、このような公共のランダムネスへのアクセスを前提としています。しかし、分散型でスケーラブルかつ堅牢な方法で公共のランダムネスを生成することは、依然として大きな未解決の課題でした。現在、この種のランダムネスを生成するためのサービスは展開されていません。唯一の選択肢は、NIST ↗が運営する中央集権的なプロトタイプのみのランダムネスビーコンです。
これを受けて、Ewa Syta ↗は、Michael J. Fischer ↗およびBryan Ford ↗の指導の下、イェール大学での博士課程の研究中にスケーラブルなバイアス耐性分散ランダムネス ↗に関するプロジェクトを開始しました。2015年にBryanが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論文で説明されている構造に類似したペアリングベースのランダムネスビーコンを中心に構築されています。さらに、DFINITYはすでにC++で最適化されたペアリングライブラリを実装しています。この実装をDEDISの暗号ライブラリKyber ↗に統合した後、すべての主要な暗号コンポーネントがペアリングを使用した効率的な分散ランダムネス生成プロトコルを実装する準備が整いました。
2017年9月、DEDISの博士課程の学生であるNicolasは、Philippの助けを借りてdrandのコーディングを開始し、アプリケーションに依存しない、安全で効率的な方法で公共のランダムネスを提供する分散サービスを初めて展開しました。その後すぐに、CloudflareはBN256ペアリング曲線の最適化されたGolang実装をリリースし、これは現在Kyberとdrandの両方に統合され、開発と展開を簡素化しています。
drandが成熟するにつれて、NIST、Cloudflare、Kudelski Security、チリ大学、Protocol Labsを含む多くの組織が関心を持ち、これらの組織を横断するdrand ↗ネットワークの設立に共同で取り組むことを決定しました。Webアプリケーションでの公共のランダムネスの使用をサポートするために、DEDISの修士課程の学生であるMathilde Raynal ↗は、drandサーバーと対話するためのJavaScriptの概念実証フロントエンドdrandjs ↗の開発を開始しました。
2020年春、Protocol Labsのチームは、drandを実験的なものから生産準備が整ったネットワークに移行するための努力を主導しました。これらの努力には、重要なプロトコルのアップグレード、分散ネットワークのガバナンスモデルの確立、ノードオペレーターの運用セキュリティの向上が含まれます。詳細については、drandブログ ↗をチェックしてください。