GINAR – Decentralized Random Number Generator Service
Traditionally, random number generators (RNGs) are classified into two types: true random number generators (TRNGs) and pseudo-random number generators (PRNGs). TRNGs use non-deterministic physical processes such as the use of dice, coin-flipping or the use of physical sources such as thermal noise, radio noise and so on. Because the physical nature of this process cannot be predicted, these RNGs are irreproducible and statistically unbiased. PRNGs use deterministic digital process by a digital algorithm. These RNGs are based on algorithms implemented on finite-state machines to produce pseudo-random determinism sequences from initial values called seeds in mathematical processes.
However, all this changed in 2009 with blockchain technology. RNGs now can be divided into two groups: centralized RNGs and decentralized RNGs. All traditional RNGs fall into the first group. To have a better understanding of the difference between these two groups and how decentralization solves the problems that centralization is facing, let’s first understand what centralization and decentralization is.
Centralization vs Decentralization
The difference between centralization and decentralization is a hot topic these days. Some people favor centralization while others think that decentralization is better. A lot of effort has been put into defining centralization and decentralization, but most of them fail in some aspects. According to Wikipedia:
- Centralization is the process by which the activities of an organization, particularly those regarding planning and decision-making, become concentrated within a particular geographical location group. This moves the important decision-making and planning powers within the center of the organization.
- Decentralization is the process by which the activities of an organization, particularly those regarding planning and decision-making, are distributed or delegated away from a central, authoritative location or group.
As we can see that the definitions here mostly focus on the decision-making aspect of an organization.
A discussion on StackExchange, on the other hand, focused on the technical point of view regarding computer networks.
- A centralized system is a system in which one node does everything.
- A distributed system is a model in which components located on networked computers communicate and coordinate their actions by passing messages. Nodes distribute work to sub-nodes.
- A decentralized system is a system in which nodes are only connected to peers and there is no central point of control.
With these definitions, a decentralized system is also a distributed system. However, a distributed system is not necessarily a decentralized system. A lot of applications and services are distributed, e.g. Dropbox, Google Drive, but most of them are centralized in terms of authority since the company running them can shut down the whole system. In contrast, the Ethereum platform is decentralized if we consider the above-mentioned definitions. Developers are allowed to build decentralized applications and there is no restriction to be a member of the system as opposed to distributed platforms which are operated by some organizations.
Three axes of decentralization
When people talk about service decentralization, the most adopted (by the blockchain community) definitions were described in this article by Vitalik Buterin. In the article, Vitalik assessed centralization and decentralization with 3 perspectives including architecture, politics, and logic. Specifically,
- Architectural (de)centralization relates to the construction of the system. How many components are combined to build up the system? Does the system have a single point of failure?
- Political (de)centralization addresses the decision-making process of the system, how power is split across the system. How many individuals or organizations can take ultimate control over the system?
- Logical (de)centralization is about the data structure of the system. Does it look like a well-structured design or does it look like a mess? Can the system be able to function normally if the design is split into halves?
To understand this, consider the following analysis on the English language.
Its architecture is decentralized. If we consider it as a protocol, each English speaker is a node and the network is this whole world, then there are plenty of nodes constituting the network.
How about political decentralization? Is there any organization that can decide how to speak English correctly or changes the whole structure of the language? Of course, there are some books teaching us about English grammar, speaking, but they are just principles, not rules and we do not have to follow them. To this point, the English language is quite politically decentralized.
Finally, English is very very logically decentralized. There are many kinds of English from different countries around this planet and different people coming from different countries will speak quite differently from one another.
Most existing blockchains only achieve decentralization up to a certain level. Looking at Bitcoin and Ethereum, they are architecturally decentralized (there are many nodes on the networks and there is no single point of failure) and politically decentralized (no one individual or organization controls them). However, they are logically centralized since each operates as a single computer and there is only one commonly agreed state between parties on the network. Therefore, when people talk about decentralization of blockchains, what they really mean is decentralization in the architectural and political perspectives.
So, rather than asking: “Is the system decentralized?”, a more important question to ask is: “Does the level of decentralization suit the goals of the system?”.
There are several reasons for being decentralized:
- Fault Tolerance: This is the most desired reason for decentralization. There is no single point of failure since there are many copies of data across the network and the risk of the whole system failing is much lower than a centralized system.
- Attack resistance: Attack resistance is essentially a matter of cost. A decentralized system is often not financially beneficial to attack. Since there is no “most important” node, to take down the system, one has to take down all nodes spread all over the network which is costly.
- Collusion resistance: collusion is “the coordination that we do not like”. There are times in real life where having perfect coordination between everyone would be ideal, however, one sub-group being able to coordinate while the others cannot is dangerous. Decentralization makes collusion less likely to happen since it requires a majority to agree to change the original outcome or agreed upon data.
Centralized RNGs vs Decentralized RNGs
To tell whether an RNG is centralized or decentralized, we might ask the following questions:
- How many parties are involved in generating a random number? Does the number come from a single/a few controlled sources or is it the combination of many different sources?
- Who has control over how the RNG operates? Is there any single individual who can influence the final outcome of the RNG?
- If there are many parties are involved in the generation process, do they behave differently from one another? Is there any organization that sets rules for the whole community?
RANDOM.ORG is a random number service that generates randomness via atmospheric noise. There are a few devices that gain the atmosphere information and from this information, the random number is produced. There is no other party other than RANDOM.ORG participates in the generation process, RANDOM.ORG itself is the only organization that controls how these devices work. Hence, it is obvious that this is architecturally centralized, politically centralized and logically centralized. In short, one can conclude that RANDOM.ORG is totally centralized.
RanDAO, on the other hand, is a multi-participatory RNG running on Ethereum blockchain. Anyone with an Ethereum address is able to take part in the generation process. The protocol requires the contribution from participants on the blockchain and the final outcome will be a combination of all numbers contributed. The basic process of generating a random number can be divided into three phases following the Commit-Reveal scheme.
- Commit: Anyone who wants to participate in the random number generation submits a commitment associated with the secret number s that he wants to contribute.
- Reveal: After the Commit phase is finished, i.e. everyone has submitted their commitment, participants need to reveal the secret number s.
- Calculate: When everyone has revealed their number, the final random number will be calculated from a function f(s1,s2,…,sn) of all collected secret numbers.
Since there are many parties involved in the generation process, each resides in different places on the network, RanDAO is decentralized in its architecture. Next, as the commitment is submitted before the secret number is revealed, participants cannot change the secret number they contribute to get their desired number. Moreover, the function s ensures that if one controls upto n-1 values of s, he still cannot manipulate the final outcome. Therefore, RanDAO is considered to be politically decentralized. It is hard to argue if RanDAO is logically decentralized or not. However, up to this point, RanDAO has achieved the goal of a random number generator (consider the decentralization aspect).
GINAR decentralized random number generator
We analyze the GINAR RNG Service following the definitions given by Vitalik to clarify the level of decentralization that GINAR has achieved.
- GINAR runs on a blockchain composed of many nodes. GINAR is a multi-participator RNG. In GINAR, each random number produced is dependent on the contribution from some of the nodes on the blockchain. This makes the GINAR’s architecture decentralized. As a result, GINAR does not have a single point of failure.
- Who controls the network? Who can lead the network to generate a specific number? With GINAR, the contributors are the ones in control of the number they contribute and no one else. Only majority collusion by the contributors can affect the final outcome, hence GINAR has achieved political decentralization.
- Finally, GINAR is logically decentralized. Each contributor is free to choose which number to contribute. What this means is that the randomness source is not necessarily the same for each contributor. Although there will be some principles to choose which number to contribute, e.g the contributed number has to pass some statistical tests, this does not force the contributors to fetch numbers from some pre-chosen sets.
Decentralization is one of the terms that is frequently used in the blockchain-related topic. It is often considered as a blockchain and is often even viewed as the reason for the advent. A lot of effort has been made only for the purpose of attempting to achieve decentralization. However, there is still not a common definition of this term. Many arguments have been given to clarify the difference between a centralized system, a distributed system and a decentralized system. While some agree on this definition, some agree other definitions. However, the important question now is not: “Is a system decentralized?” but “Which level of decentralization do we want the system to achieve?”.
In this article, we have given some definitions of decentralization as well as provided some examples to best understand the definitions. We have also made clear the level of decentralization of our GINAR RNG following the definition given by Vitalik.
GINAR 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.