
secondary title
01 What is a random number?
We often hear the term "random number" in the process of participating in sweepstakes or sampling. Random numbers play a very basic and important role in cryptography, and are often used to generate keys and security parameters. In daily life, random numbers are also an important means to ensure fairness, and are widely used in sampling, lottery, lottery and other scenarios. Random numbers are also widely used in the blockchain. In addition to traditional security scenarios such as key generation, they also play an important role in popular scenarios such as consensus mechanisms and zero-knowledge proofs, protecting the security of the blockchain.
First, let's talk about what random numbers are. A random number is not a specific number, but a sequence or a set of numbers generated by a random number generator. The elements that can appear in this sequence come from a certain set. The elements selected each time are unpredictable, but the probability of element appearance is constant (generally equal probability). For example, if you throw a six-sided dice, the result is unpredictable, but the probability of each side is equal, and the result of each throw can be used as a random number generation method.
True random numbers generally come from random behavior in the physical world and require noise collection. In computer science, deterministic algorithms are generally used to simulate the generation of random numbers, also known as pseudo-random numbers. The detection of pseudo-random numbers is very important. Comprehensive and complete detection can avoid the risks caused by algorithm defects or artificial backdoors. Currently commonly used random number detection standards include NIST SP 800-20 and GB/T 32915-2016.
What needs to be added is that in the reference implementation provided by the NIST standard, a backdoor has been suspected to have been implanted.
secondary title
02 Random numbers and blockchain applications
In a blockchain, it is more difficult to generate random numbers due to the difficulty of obtaining random noise from the physical world.
At present, the general idea is to use several different strategies in combination: one is to generate through multi-party collaboration; the other is to introduce randomness through random oracle machines such as hash functions; Threshold protocols or economic constraints increase the success rate of random number generation.
Among them, secure multi-party computing technology is an important basic technology for generating high-quality random numbers on the chain.
The introduction of the threshold protocol, through secret sharing or threshold signature, can avoid the failure of the random number generation scheme because a participant does not complete the execution process, has a certain degree of fault tolerance, and improves the success rate of random number generation. The introduction of economic constraints can prevent participants from affecting the random number results by refusing to disclose, and punish malicious participants.
PlatON is based on secure multi-party computing technology, which allows multiple parties to undeniably collaborate to generate random numbers, and better provide solutions for on-chain random numbers.