Applications Of Decentralized Random Number Generation (dRNG)
In previous articles, we have introduced how a decentralized random number generation works. As we stated that public randomness is essential in many applications, especially in decentralized applications thanks to the rise of blockchain technology. In this article, we examine some of the use-cases that dRNGs can be used for and why they offer better solutions than traditional RNGs.
Application of dRNG in Lotteries
Lotteries, through the immense change of the society, stay one of the most popular games in the world. In some areas, it is estimated that half of the population play lotteries. Lotteries exist in many formats, from traditional lotteries with clear incentives to group lotteries, in which one (or many) will be picked to finish some given tasks. Most of the lottery games have traditionally used public randomness source such as ball machines to prove that the winning numbers are drawn at random. The process of choosing the winning numbers may appear to be random but it is believed that there are people who can manipulate the result of a lottery game. The ball machines were designed by the organizers (or their partners) and it is still not known if any backdoor has been attached to the machines. Therefore, there are chances that this randomness source has been tampered with.
The biggest problems are trust and fairness. First of all, players have to place trust in the game organizers, who are usually humans and the fact that humans make mistakes (whether intentionally or not) is unavoidable. Most of the lottery games cannot offer full transparency regarding the formation and distribution of the winning tickets. Many times, we wonder whether winning numbers are not biased? Why we bought a lot of tickets but never won a single one? We cannot tell whether it is because of bad luck or someone was actually cheating. All that we can do is to trust the organizers acting honestly. Is there another way that we overcome these problems? Yes, I introduce to you decentralized random number generation (dRNG). Take a look at the following solutions to a small-scale lottery and a large-scale lottery:
- Small Groups
Consider a group of three friends- let’s call them Alice, Bob and Eve- that organize a small lottery among themselves. To prevent cheating they decide to use a random number generated by a random number generator to pick the winner. If they use an RNG from a third party, they have to trust this party that the outcomes are not manipulated. In this case, one of the three can bribe the RNG provider to benefit themselves. Hence, the outcome might be unfair. By nature, we tend to trust an output that we have inputted to. What about using a multi-party random number generator that allows Alice, Bob and Eve to join hands to generate a common output? In this RNG, each of them first commits to a specific input before revealing it. This simple commit-reveal scheme generates random numbers by combining inputs from all of the three. Therefore, they do not have to trust any third party and the result is verifiable after the revealing phase has finished. So they are all satisfied with the result. Next, we consider the case of a large-scale lottery.
- Large Groups
With a group of a large number of players, such as weekly lotteries, we cannot expect every player to contribute to generating a common output. Hence, it needs an RNG that can generate random numbers in a fair, verifiable way. Using a well-designed dRNG (some of the properties of dRNG have been mentioned here) is, in fact, a good solution. There are some advantages of using this kind of random number generation, namely:
- Players who want to have some influence on the results can participate in the random number generation process.
- The process of drawing winning numbers is transparent and necessary information can be accessible by anyone.
- The outcome is fair and no manipulation has been made.
- The winning numbers can be audited.
- The credibility of the organizer is also increased.
Application of dRNG in Random Audits
According to Wikipedia: “An audit is a systematic and independent examination of books, accounts, statutory records, documents and vouchers of an organization to ascertain how far the financial statements, as well as non-financial disclosures, present a true and fair view of the concern.” Simply put, this is a follow-up system to testify statements made by an organization about its financial activities.
If people want to get lucky in lotteries, they definitely don’t want to be “luckily” chosen at all in organization audits. Although audits are supposed to be random, in that case, every organization has the same possibility of being selected. However, in reality, audits are not random. A lot of complaints have been made about unfair targeting. Many of the times, the auditor cannot properly prove that the audits targets were chosen at random since the process of choosing random numbers is not publicly released.
Under this situation, it is essential to use public randomness so that everyone will agree on the result of who will be audited. dRNGs can completely eradicate the possibility of auditors favoring some organizations while harming others. Any attempts to manipulate the result will be detected. Generating random numbers in a fair, tamper-resistant and verifiable way helps make the process of choosing audits targets transparent, and therefore, increases the accountability of the auditing systems.
Application of dRNG in Smart Contract
Blockchain is a state replicator in which different devices and computers share the same data. Solidity is a fairly new programming language for developing Smart Contract on the Ethereum Blockchain. However, it does not provide any method to generate random numbers as the code should be deterministic as it will run on multiple nodes. The introduction of randomness on blockchains, therefore, is quite different from other systems. Using traditional RNGs is not a solution since they generate different random numbers when the code is run of different nodes, this contradicts the nature of blockchains. Besides, most of traditional RNGs are centralized, encountering the problem of trust (which blockchains were purposely designed to avoid). Therefore, the challenging problem now is: how to design an algorithm that generates random numbers once and multiple nodes agree on. Blockchain researchers and developers have been seeking solutions to this problem and many suggestions have been proposed. A review on some of these can be seen here. As using a single source of randomness is not a proper solution, why not trying to use multiple ones? And indeed, properly the best-known approach until now, is to use some kind of decentralized (perhaps distributed) random number generation. A dRNG generates random numbers from many sources (whoever wants to have some kind of influence on the outcome can contribute to the generation) and there are mechanisms to reach consensus between many parties on a single value. Therefore, it meets the requirements that the Smart Contract needs. See this article to have a clear view of which properties a dRNG, in general, or a multi-party RNG possesses.
Application of dRNG in Casino Games
Casino Games are known as the games of chance. Winning or losing, is just a matter of luck. Just like the case of lotteries, the outcome of a game is usually determined in a random way. Therefore, one of the vital components of gambling is a random number generator. In fact, the purpose of using an RNG is to ensure that the game is fair. However, not all RNGs can make that possible. Using a bad, insecure RNG results in cheating and fraud can happen. As a matter of fact, cheating issues relating to both players and operators continue to persist from traditional casinos online gambling sites. From 2013 to 2017, reports of cheating fraud from iGaming (anything related to odds, games of chance, and games which have a gambling element to them) operators have increased by more than a factor of 10 in just a four year period from an estimated 8,000 to 110,000. As online gaming becomes more prevalent, people looking to cheat the game can often hide behind the mask of anonymity. Often, the operators do not want to reveal the inner workings of their games. Such an example would be the RNG seed that is employed by the business that is generated by the RNG hardware acquired by the business. As such, there is no fool-proof way for players to decide or verify if the games that they are playing, are rigged. In this case, players have to trust that the operators are honest. Thus, to remove trust between players and operators, the random number generating process has to be transparent and the generated has to be verifiable. A well-designed dRNG offers transparency, verifiability, tamper-resistance, no trusted-party, therefore, helps make the game more rigid. Moreover, it also provides a method for players and operators to commonly generate random numbers. As a result, everyone has a kind of impact on the generated number and does not worry about other manipulating the numbers.
GINAR applies Blockchain technology to random number generation, which guarantees to provide true, fair and transparent random numbers at an impressive speed and volume for businesses wanting to leverage unpredictable, tamper-resistant and verifiable digits; especially for lottery and online gambling operators.
GINAR’s mission is to become the leader in providing Decentralized Random Numbers and change the online gambling industry by eliminating potential fraud and dishonest practices. In turn, it will make the industry into more of a win-win proposition for both players and operators — as well as regulating authorities — by allowing complete transparency.
Chat with us: