Games need decentralized randomness to be fair
Quantum mechanics tells us that what appears to be a highly predictable and orderly universe is actually built on a world of unpredictable and random probability. The quantum world may seem strange, but it can be understood and even used for technologies such as semiconductors, LEDs, and quantum cryptography. The same can be said about randomness in the metaverse. What appears to be a system built on random values produced by random number generators (RNGs) is, in fact, based on programs that have an intuitive mechanism behind them – for better or for worse.
The main role of random numbers
Random numbers play an important role in many applications, including games, security systems, decentralized autonomous organization (DAO) management, and non-vulnerable token (NFT) generation. If your game can't reach randomly generated numbers, your startup will be repetitive and out of date. If your security system relies on easy-to-guess authentication codes, it won't provide much security. If any system that seeks diversity does not find it, it will not be very effective.
Although these systems do not appear to be random, they rely on the provision of randomly generated values to perform important tasks. Without random access, well-planned systems cannot function. However, the random numbers these systems rely on are not always as random as they seem.
Many RNGs are, in fact, pseudo-RNGs (PRNGs). Instead of producing random results, you are presenting the results of a fixed equation. The output value is obtained by processing the starting value, often called the “seed”, in this formula. The result is used as a new seed, and the process starts again. While the outcome is not random, it may indeed seem random to an outside observer.
This is effective for many applications. True randomness is not needed in every application. In a video game of random encounters, for example, there may be only a limited number of actions the game can take at any given time. A PRNG that provides values outside the specified range will not be of much use. When the problems are low, the technical requirements are often matched. However, the quality of PRNG can vary greatly. This can be an issue for high-stakes apps, lots of people relying on them, or different use cases.
Some PRNGs rely on simple equations that can repeat themselves after a short period of time. This frequency breeds predictability. Others may be influenced by external factors. This leads to corruption. Additionally, many PRNGs do not provide a way to determine whether the supplied number is the intended value. This lack of verification opens another door to malpractice, leading to accusations by users that applications based on these numbers are being treated with false results.
While it may seem silly to be able to verify that an RNG is a random number, it's no laughing matter. The ethics of many blockchain systems are based on transparency and trustlessness. The inability to prove that a given number is truly randomly generated strikes at the heart of these ideas. When the numbers do work, such as providing winners in games or strengthening security, the inability to ensure that the numbers are intact can seriously damage public confidence.
Additionally, not every PRNG is suitable for every possible application. Some are designed for specific Web3 functions. These are not universally applicable.
A true random search
However, these systems also have failures. They are usually very centralized, which again can lead to disruption of anyone who has access to the machine. True randomness is often more valuable than quality PRNG services. Finally, the centralization these tools rely on means there is system-wide downtime if something goes wrong.
The importance of decentralization and reliability
Using an RNG that doesn't meet the decentralization, authentication, or security needs of your application can be disastrous. As the Axie Infinity failure due to a security breach shows, a technical failure can have huge consequences for even the best apps with the strongest user bases. Given how important RNGs are to the applications they use, the best one should be used for the task at hand.
A perfect RNG would be unpredictable, tamper resistant, verifiable, decentralized and continuously available. If you are choosing RNG ask:
Does it provide enough randomness? Can the results be verified? Is it protected from harm? Is it decentralized to avoid single point failures?
As blockchain developers continue to expand their vision, push the boundaries of their applications, and provide opportunities for the public to engage with the technology, it is imperative that they provide the best possible support for their applications.
Felix Xu Crypto geek, early adopter and NFT collector. Felix graduated from NYU Stern and founded two crypto projects, ARPA and Bella Protocol, among the world's top 500 by market capitalization. Felix previously worked at Fosun Investments, Sackler Family Office and Vertical Research in New York and Beijing. Felix enjoys sailing, kitesurfing and has been featured in the Wall Street Journal and New York Times for his NFT collection.
This article is not intended for general information purposes and should not be construed as legal or investment advice. The views, ideas and opinions expressed herein are solely those of the author and do not necessarily represent the views and opinions of Cointelegraph.