Cloudflare has introduced a distributed random number generator

Cloudflare introduced service League of Entropy, for the operation of which a consortium of several organizations has been formed, interested in providing high-quality random numbers. Unlike existing centralized systems, League of Entropy does not rely on a single source and uses entropy from obtained from several independent generators controlled by different project participants. Thanks to the distributed nature of the project, the compromise or tampering of one or two sources will not lead to the compromise of the final random number.

It should be noted that the generated random numbers belong to the category of publicly available sequences, which cannot be used for generating encryption keys and in areas where random numbers must remain confidential. The service aims to provide random numbers that cannot be predicted in advance, but once generated, these numbers become publicly available, including for verifying the authenticity of past random values.

Public random numbers are generated every 60 seconds. Each number is linked to its sequence number (round), which can be used to retrieve any previously generated value from any participating server at any time. Such random numbers can be used in distributed systems, cryptocurrencies, and blockchains, where different nodes need access to a single random number generator (for example, when creating proof of work), as well as in conducting various lotteries and for generating random samples in the process of election audits.

To interact with the service and to deploy your own nodes introduced toolkit Drand, written in Go and provided under the MIT license. Drand runs as a background process that connects to participating external generators in the distributed network and collectively forms a consolidated random value. The consolidated value is generated using methods of threshold cryptography and pairing-based cryptographyThe generation of a summary random value can be performed on the user's system without involving centralized aggregators.

Drand can also be used to deliver locally generated private random numbers to clients. An ECIES encryption scheme is used to transmit the random number, in which the client generates a private and public key. The public key is sent to the Drand server. The random number is encrypted using this public key and can only be viewed by the client who holds the private key. The 'drand' utility can be used to interact with the servers (for example, 'drand get public group.toml', where group.toml is a list of nodes to poll) or the Web API (for example, 'curl https://drand.cloudflare.com/api/public' or call from JavaScript using the library DrandJS). The request metadata is sent in TOML format, and the response is provided in JSON.

Currently, five companies and organizations have joined the League of Entropy initiative, providing access to their entropy generators. The participants in the project are located in different countries and use various methods of obtaining entropy:

  • Cloudflare, LavaRand, random values are built based on unpredictable fluid flows in lava lamps, the images of which serve as input entropy for the CSPRNG (Cryptographically Secure PseudoRandom Number Generator);
  • EPFL (École Polytechnique Fédérale de Lausanne), URand,
    uses the built-in local generator /dev/urandom, which utilizes sources of entropy such as keyboard input, mouse movement, traffic streams, etc.
  • Chilean University, UChile, uses a network of seismic sensors as a source of entropy, as well as data from the radio spectrum, Twitter activity, changes in the Ethereum blockchain, and a homemade RNG hardware generator;
  • Kudelski Security, ChaChaRand, provides a CRNG (Cryptographic Random Number Generator) based on the use of the ChaCha20 cipher;
  • Protocol Labs, InterplanetaryRand, extracts random data from noise catchers and combines it with Linux PRNG and the built-in CPU pseudo-random number generator.

Currently, independent participants have launched 8 public API endpoints, through which you can find out both the current aggregate random number (for example, "curl https://drand.cloudflare.com/api/public"), and determine the value at a specific moment in the past ("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

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster