← Cloudflare Randomness Beacon / randomness-beacon / about
Kontext
V průběhu let se generování veřejné náhodnosti (často označované jako společné mince) přitáhl zájem výzkumné komunity v oblasti kryptografie. Mnoho distribuovaných systémů, včetně různých konsenzuálních mechanismů, anonymizačních sítí jako Tor nebo blockchainových systémů, předpokládá přístup k takové veřejné náhodnosti. Zůstávalo však hlavním nevyřešeným problémem generovat veřejnou náhodnost distribuovaným, škálovatelným a robustním způsobem. V současnosti není nasazena žádná služba, která by tento typ náhodnosti produkovala. Jedinou možností je centralizovaný, pouze prototypový maják náhodnosti provozovaný NIST ↗.
S vědomím toho, Ewa Syta ↗ zahájil projekt na Škálovatelná distribuovaná náhodnost odolná vůči zkreslení ↗ během svého doktorského studia pod vedením Michael J. Fischer ↗ a Bryan Ford ↗ na Yaleově univerzitě. Poté, co se Bryan v roce 2015 přesunul na EPFL, noví členové týmu DEDIS na EPFL (Nicolas Gailly ↗, Linus Gasser ↗, Philipp Jovanovic ↗, Ismail Khoffi ↗, Eleftherios Kokoris Kogias ↗) se připojil k projektu a společně publikovali výzkumný článek na 2017 IEEE Symposium on Security and Privacy ↗.
Článek zkoumal použití klíčových párování místo klasické kryptografie eliptických křivek pro generování veřejné náhodnosti, aby se zjednodušil návrh protokolu a zlepšil výkon při generování a ověřování náhodnosti.
Na začátku roku 2017 DEDIS ↗ tým na EPFL ↗ začal spolupracovat s DFINITY ↗ na různá výzkumná témata, včetně veřejné náhodnosti. Architektura DFINITY je postavena na majáku náhodnosti založeném na párování, který má podobnosti s konstrukcemi popsanými v dokumentu DEDIS. DFINITY navíc již implementovala optimalizovanou knihovnu pro párování v jazyce C++. Po integraci této implementace do kryptografické knihovny DEDIS Kyber ↗, byly všechny hlavní kryptografické komponenty připraveny k implementaci efektivního, distribuovaného protokolu pro generování náhodnosti pomocí párování.
V září 2017 začal Nicolas, doktorand na DEDIS, s pomocí Philippa programovat drand, aby poprvé nasadili distribuovanou službu poskytující veřejnou náhodnost způsobem nezávislým na aplikaci, bezpečně a efektivně. Krátce nato Cloudflare vydal optimalizovanou implementaci párovací křivky BN256 v jazyce Golang, která je nyní integrována jak do Kyber, tak do drand, aby zjednodušila vývoj a nasazení.
Jak drand dozrával, rostoucí počet organizací (včetně NIST, Cloudflare, Kudelski Security, University of Chile a Protocol Labs) o něj začal projevovat zájem a rozhodl se společně pracovat na vytvoření drand ↗ síť, která tyto organizace propojuje. Na podporu využití veřejné náhodnosti ve webových aplikacích Mathilde Raynal ↗, magisterský student na DEDIS, začal vyvíjet frontend jako proof of concept v JavaScriptu s názvem drandjs ↗, pro komunikaci se servery drand.
Na jaře 2020 vedl tým Protocol Labs úsilí o přechod drand z experimentální na produkčně připravenou síť. Tyto snahy zahrnovaly významné upgrady protokolu, zavedení modelu správy pro distribuovanou síť a zvýšení provozní bezpečnosti operátorů uzlů. Podívejte se na blog drand ↗ pro další podrobnosti.