Tvrtka Cloudflare usluga , za osiguranje čijeg rada je formiran konzorcij vodećih organizacija zainteresiranih za pružanje kvalitetnih slučajnih brojeva. Za razliku od postojećih centraliziranih sustava, League of Entropy se ne oslanja na jedan izvor i koristi entropiju za generiranje slučajne sekvencije, iz nekoliko međusobno nepovezanih generatora koje kontroliraju različiti sudionici projekta. Zahvaljujući distribuiranoj prirodi projekta, kompromitacija ili falsificiranje jednog ili dva izvora neće dovesti do kompromitacije konačnog slučajnog broja.
Važno je napomenuti da generirani slučajni brojevi pripadaju kategoriji javno dostupnih sekvencija koje se ne mogu koristiti za generiranje šifriranih ključeva i u područjima gdje bi slučajni brojevi trebali ostati tajni. Usluga je usmjerena na pružanje slučajnih brojeva koji se ne mogu unaprijed predvidjeti, a nakon generiranja ti brojevi postaju javno dostupni, uključujući provjeru autentičnosti prošlih slučajnih vrijednosti.
Javni slučajni brojevi generiraju se svakih 60 sekundi. Svaki broj povezan je sa svojim rednim brojem (round), prema kojem se u bilo kojem trenutku i s bilo kojeg sudjelujućeg servera može dobiti nekad generirana vrijednost. Takvi slučajni brojevi mogu se primjenjivati u distribuiranim sustavima, kriptovalutama i blockchainima, gdje različiti čvorovi moraju imati pristup jedinstvenom generatoru slučajnih brojeva (npr. pri formiranju dokaza izvršenog posla), kao i prilikom održavanja različitih lutrija i za formiranje slučajnih uzoraka tijekom audita izbora.
Za rad s uslugom i za postavljanje vlastitih čvorova alat , napisan u programskom jeziku Go i dostupan pod MIT licencom. Drand se izvršava kao pozadinski proces koji se povezuje s vanjskim generatorima koji sudjeluju u distribuiranoj mreži i kolektivno formira agregiranu slučajnu vrijednost. Agregirana vrijednost generira se korištenjem metoda i . Generacija agregirane slučajne vrijednosti može se izvesti na korisničkom sustavu bez uključivanja centraliziranih agregatora.
Drand također može služiti za isporuku lokalno generiranih privatnih slučajnih brojeva klijentima. Za prijenos slučajnog broja koristi se ECIES shema šifriranja, u okviru koje klijent generira privatni i javni ključ. Javni ključ se šalje na server s Drandom. Slučajni broj se šifrira korištenjem ovog javnog ključa i može biti pregledan samo od strane klijenta koji posjeduje privatni ključ. Za pristup serverima može se koristiti alatka "drand" (na primjer, "drand get public group.toml", gdje group.toml sadrži popis čvorova za ispitivanje) ili Web API (na primjer, može se koristiti "curl https://drand.cloudflare.com/api/public" ili se obraćati iz JavaScript-a pomoću biblioteke ). Metapodaci zahtjeva šalju se u TOML formatu, a odgovor se daje u JSON-u.
Trenutno se inicijativi League of Entropy pridružilo pet tvrtki i organizacija koje su omogućile pristup svojim generatorima entropije. Sudionici uključeni u projekt nalaze se u različitim zemljama i koriste različite metode za dobivanje entropije:
- Cloudflare, , slučajne vrijednosti temeljene na nepredvidivim tokovima tekućine u , čije slike služe kao ulazna entropija za CSPRNG (kriptografski siguran pseudorandom generator brojeva);
- EPFL (Švicarski federativni politehnički institut u Lozani), URand,
koristi standardni lokalni generator /dev/urandom, koji kao izvore entropije koristi unos s tipkovnice, pokret miša, prometne tokove itd. - Čileansko sveučilište, , koristi mrežu seizmičkih senzora kao izvor entropije, kao i podatke iz radijskog spektra, aktivnosti na Twitteru, promjena u blockchainu Ethereum i domaći hardverski RNG generator;
- Kudelski Security, ChaChaRand, pruža CRNG (kriptografski generator slučajnih brojeva) temeljen na upotrebi šifri ChaCha20;
- Protocol Labs, InterplanetaryRand, slučajni podaci se izvode iz priključaka za šumove i kombiniraju s Linux PRNG i ugrađenim generatorom pseudolosnih brojeva u CPU-u.
Trenutno je pokrenuto 8 javnih API pristupnih točaka od strane nezavisnih sudionika, preko kojih se može saznati kako trenutačni sažeti slučajni broj (na primjer, "curl https://drand.cloudflare.com/api/public"), tako i odrediti vrijednost u određenom trenutku u prošlosti ("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
Izvor: opennet.ru
