Společnost Cloudflare servis , ke které byl vytvořen konsorcium několika organizací, které mají zájem poskytovat kvalitní náhodná čísla. Na rozdíl od existujících centralizovaných systémů Liga Entropie nespoléhá na jeden zdroj a k generování náhodné sekvence používá entropii, z několika navzájem nesouvisejících generátorů, řízených různými účastníky projektu. Díky distribuované povaze projektu nebude kompromitace nebo podvod jednoho či dvou ze zdrojů znamenat kompromitaci konečného náhodného čísla.
Je třeba poznamenat, že generovaná náhodná čísla patří do kategorie veřejně dostupných sekvencí, které nelze použít k generaci šifrovacích klíčů a v oblastech, kde by mělo být náhodné číslo tajné. Služba je zaměřena na poskytování náhodných čísel, která nelze předem předvídat, ale po jejich vygenerování se tato čísla stávají veřejně dostupnými, včetně možnosti ověření pravosti dříve generovaných náhodných hodnot.
Veřejná náhodná čísla se generují každých 60 sekund. Každé číslo je spojeno se svým číslem sekvence (round), podle kterého lze kdykoliv a z jakéhokoliv serveru účastníka získat někdy vygenerovanou hodnotu. Taková náhodná čísla mohou být použita v distribuovaných systémech, kryptoměnách a blockchainech, kde různé uzly musí mít přístup k jedinému generátoru náhodných čísel (například při vytváření důkazu o vykonané práci), stejně jako při pořádání různých loterií a pro formování náhodných výběrů v procesu auditu voleb.
Pro práci se službou a pro nasazení vlastních uzlů nástroje , napsaný v programovém jazyce Go a dodávaný pod licencí MIT. Drand je spuštěn jako proces na pozadí, který se spojí s externími generátory zapojenými do distribuované sítě a kolektivně vytváří souhrnnou náhodnou hodnotu. Souhrnná hodnota je generována za použití metod a . Generování souhrnné náhodné hodnoty může být provedeno na systému uživatele bez zapojení centralizovaných agregátorů.
Drand může být také použit k dodávání lokálně generovaných privátních náhodných čísel klientům. K přenosu náhodného čísla se využívá šifrovací schéma ECIES, v rámci kterého klient generuje soukromý a veřejný klíč. Veřejný klíč je zaslán na server s Drand. Náhodné číslo je zašifrováno pomocí tohoto veřejného klíče a může být zobrazeno pouze klientem, který vlastní soukromý klíč. K přístupu na server lze použít utilitu „drand“ (například „drand get public group.toml“, kde group.toml je seznam uzlů k dotazování) nebo Web API (například lze použít „curl https://drand.cloudflare.com/api/public“ nebo se obracet pomocí JavaScript knihovny. ). Metadata požadavku jsou odesílána ve formátu TOML a odpověď je vydána v JSON.
V současné době se k iniciativě League of Entropy připojilo pět společností a organizací, které poskytly přístup ke svým generátorům entropie. Účastníci projektu jsou v různých zemích a používají různé metody získávání entropie:
- Cloudflare, , náhodné hodnoty na základě nepředvídatelných toků kapaliny v , jejichž obrázky jsou podávány jako vstupní entropie pro CSPRNG (Cryptographically Secure PseudoRandom Number Generator);
- EPFL (Federální polytechnická škola v Lausanne), URand,
používá standardní lokální generátor /dev/urandom, který jako zdroje entropie využívá klávesnicový vstup, pohyb myši, proudy dopravy atd. - Chilská univerzita, , jako zdroj entropie využívá síť seismických senzorů, jakož i údaje z rádiového vysílání, aktivity na Twitteru, změn blockchainu Ethereum a domácí hardware RNG;
- Kudelski Security, ChaChaRand, poskytuje CRNG (Cryptographic Random Number Generator) založený na použití šifry ChaCha20;
- Protocol Labs, InterplanetaryRand, náhodná data jsou extrahována z šumových zachycovačů a kombinována s Linux PRNG a vestavěným generátorem pseudonáhodných čísel v CPU.
V současné době bylo nezávislými účastníky spuštěno 8 veřejných přístupových bodů k API, přes které lze zjistit jak aktuální agregované náhodné číslo (například „curl https://drand.cloudflare.com/api/public“), tak určit hodnotu k určitému okamžiku v minulosti („curl https://drand.cloudflare.com/api/public?round=1234“):
- https://drand.cloudflare.com:443
- https://random.uchile.cl:8080
- https://drand.cothority.net:7003
- https://drand.kudelskisecurity.com:443
- https://drand.lbarman.ch:443
- https://drand.nikkolasg.xyz:8888
- https://drand.protocol.ai:8080
- https://drand.zerobyte.io:8888
Zdroj: opennet.ru
