What Is Provably Fair? Does It Really Work In CS:GO Gambling?

October 15, 2019
- BY My Dang
provably fair random number generation

What is Provably Fair?

Provably Fair is a common term in CS:GO gambling. Simply put, Provably Fair refers to the fairness that is provable. Almost all CS:GO gambling sites have their built-in tools that players can use to check whether the game results are truly fair. However, provably fair does not mean provably random, which is only possible when the outcome generation process is not affected by the game operators or anyone else. Provably fair systems currently employed in most CS:GO gambling websites, nonetheless, more or less involve the hands of game operators. 

Provably Fair is the future of gambling, and any CS:GO gambling site that is not provably fair will eventually fall behind. This article will analyze currently used Provably Fair systems in CS:GO gambling, how they work, and their drawbacks as well as introduce a better viable solution. 

Common methods to prove the game fairness in CS:GO gambling

1. Hash function

How it works:

The operator system generates a chain of, for example, 10 million hashes by repeatedly feeding the output of the previous hash as the input of the next one. The input to the first hash is the server secret. The final hash value (i.e. H10,000,000) will be published. The hashes are used in the reverse order to determine the game result for each game. 

At the end of the game, the actual value will be revealed and players can check the hash of this value, which is expected to be the same as the hash value published before. 

How to verify:

Hash function makes it quite easy for anyone to verify the integrity of the hash chain. The actual value of the hash used in each game is made public right after the game ends. Players will use a verification tool, available in most CS:GO gambling sites, and input the actual value to check whether its hash value is the same as the hash value provided before the game. 


Provably fair using Hash function


The biggest advantages of the hash function are its verifiable integrity and its simplicity. This approach guarantees that game operators can not change the outcome of the game while the function’s simplicity helps create a friendly game interface for players.

However, a major drawback of this provably fair method is due to the fact that the hash values of the entire chain are generated before the games start; in other words, the results for all future games are already determined before actual betting.

The question here is why generating game results in advance could be a potential risk?

The game operators could run into trouble with this method because of the likelihood of information leakage, for instance, the results of some games in the chain. Using chains of hashes can even worsen this issue. Let’s say, in case one value in the sequence is compromised (H100 for example), all the subsequent values (from H101 onwards) are compromised. As a result, the game operators will suffer from tremendous money loss.

On the other hand, in multi-player games such as jackpot in which players will play against one another and the winner will get all the deposits from others, there is a high chance that the server could collude with one of the players to reap the money from others.

Some CS:GO gambling sites using Hash function:

Gamdom, CSGOate, wtfskins

2. Server seed and client seed:

How it works:

The game result is generated using the hash values from 2 separate inputs:

  • Server seed: The hash value provided by the game operators and generated every 48 hours or during the next user login if 48 hours have passed.
  • Client seed: The value generated upon user login and adjustable by players.
Formula: Game result = Hash(server seed, client seed)

Before the game starts, the game operators will show the hash value of the server seed to the players. Each player will then choose a random client seed and submit it to the server. The round number is created, starting from 0 or 1 depending on each site. After each round players take part in, this round number will increase by 1. 

How to verify:

After the game ends, the actual value of the server seed is revealed and players can refer back to the previous formula to verify the game outcome. The result is fair if the hash value of the revealed server seed matches with the hash value shown from the beginning of the game. 


Provably fair using Server seed and Client seed


This provably fair method is commonly used in 2-player games such as Roulette, Crash, and Dice thanks to its simplicity. However, it is not advisable to employ this process in multi-player games such as Jackpot because of its scalability problem. Specifically, collecting the client seed from one player is apparently not a problem, but just imagine having to gather all client seeds from many different players participating in the game, which would complicate the whole generation process.

Some CS:GO gambling sites using client seed and server seed:

CSGOEmpire, Stake, Primedice

How GINAR’s Random Number Generator steps in to improve the situation

Random Number Generation

According to Wikipedia, Random Number Generation (RNG) is the science of “generating a sequence of numbers or symbols that cannot be reasonably predicted better than by a random chance.” In gambling, RNG plays a vital role in ensuring the fairness and unpredictability of game results. Similarly, players of CS:GO gambling sites have always demanded a verification system that allows them to verify the game outcomes. However, considering the drawbacks and possible risks of currently used Provably Fair systems, it’s time we searched for a more secure and transparent method of generating game outcomes – GINAR’s Random Number Generation. 

GINAR provides Random Number Generation based on Blockchain

GINAR is a Blockchain-based RNG that guarantees to provide fair and transparent random numbers at an impressive speed and volume for businesses wanting to leverage unpredictable, tamper-resistant, and verifiable digits. Features that set GINAR apart from other RNG Services include:

  • Unpredictability
  • Verifiability
  • Tamper-resistance
  • High security
  • High performance
  • Low cost
  • Seamless integration

Read more: What Make GINAR’s Random Numbers Different

How GINAR’s RNG works in CS:GO gambling 

Verifiable Random Function:

The main building block in GINAR’s solution to RNG in CS:GO Gambling is Verifiable Random Function (VRF).

VRF is a pseudo-random function which, given an input x, produces a random number y along with a proof for y. Using ℼ, everyone can verify whether or not y was correctly generated from x. Unlike the normal hash functions, where everyone is able to compute the hash value of any given input; in a VRF, only the one with the private key sk can compute the hash, but anyone with the public key pk can verify its correctness. A VRF also has to satisfy the following properties:

  • Uniqueness: Given an input x, there exists a unique y such that the verification returns true.
  • Provability: If (y, ℼ) is generated from x, then the verification returns true.
  • Pseudo-randomness: The output y is indistinguishable from a uniform distribution.

How GINAR’s RNG works:

GINAR is composed of a large number of generator nodes (called GINARATORs), which are responsible for generating random numbers. The whole process of generating a provably fair random number needs: 

  1. An input (ticketID) from the Requester (Server operator);  
  2. A threshold T to determine which GINARATORs are eligible to contribute their random numbers. 

The game result generation process is as follows:

  1. The server operator sends the ticketID (the game’s ID) to GINAR.
  2. Each GINARATOR i determines its eligibility by: 
    • Runs the VRF on the ticketID as the input and obtains a random value yi and proof ℼi;
    • Then compares yi with T. A GINARATOR is eligible to join the generation process if its yi < T.
  3. The final outcome will be the sum of all yi from all eligible GINARATORs.

Visit GINAR Simulator Page and play around to get a rough idea of how it works to generate random numbers.

How to verify:

In GINAR’s Verification Tool, players can use the proof ℼ to verify whether the game outcome y was truly generated from the game’s ID. All ℼ and ticketID (on which the generation of y and ℼ are based) are written to the blockchain so everyone can rest assured that these values can’t be changed. 


GINAR’s Random Number Generation

Advantages over traditional Provably Fair systems:

  • Server operator is not involved

The first difference you can easily spot out is the degree of involvement from the server operator. While the whole generation process takes place right in the operator’s server in traditional provably fair methods, GINAR’s RNG process is conducted in GINAR’s server – a third-party server, giving the operators no ability to interfere with the game outcome.

  • GINAR is not either!

However, the generation process carried out in GINAR’s server does not mean GINAR is able to adjust the result. To do so, GINAR would need to know the ticketID which, however, is controlled by the server operator. Thus, GINAR can’t know the final number beforehand or force the outcome to be a value in its favor.

  • Can’t be hacked

GINAR’s RNG is a multi-party RNG, which requires the participation of many GINARATORs to calculate the final outcome. As a result, to hack into the process and tamper with the game result, one must be able to know all y values generated from all eligible GINARATORs. In other words, the hackers would need to have all the necessary secret keys to unlock all corresponding eligible y values. Mission impossible!


The more people join CS:GO skin gambling, the greater the demand for a provably fair and random outcome generation process. Spotted weaknesses in current provably fair systems might cause the server operator to run into great trouble of having game results compromised and losing players’ loyalty. Thus, it’s time to move to the next level of Provably Fair with Random Number Generation provided by GINAR to ensure a verifiable random generation process. GINAR offers flexible pricing schemes for businesses of all sizes, but you can try it and test it for free before deciding whether it works for your site. 


GINAR applies Blockchain technology to random number generation, which guarantees to provide secure, 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 gaming operators. As a Software as a Service (SaaS) provider of Random Number Generator, GINAR provides the capability to integrate into other systems by HTTPs service which is simply adaptable to any platforms (Windows/Mac/iOS/Android, etc.).For more information, please visit www.GINAR.io.

Feature Posts