Provably Fair

Fairness in Battles: How Blockchain Ensures a Transparent and Unbiased Game Outcome

In the world of online gaming, fairness is a top priority for both players and developers. At our platform, we leverage the power of the EOS blockchain to ensure that the outcome of every battle is not only random but also entirely beyond our control. By utilizing a fully decentralized, transparent, and verifiable system, we guarantee that players can trust the integrity of each game. Let’s dive into how our algorithm works, the components that make it fair, and how it ensures a level playing field for everyone involved.

 

How the EOS Blockchain Powers Fairness

At the core of our fairness mechanism is the EOS blockchain. The EOS blockchain is a decentralized, open-source platform that provides a highly secure and immutable ledger. Each battle outcome is determined using a combination of blockchain data and random number generation, ensuring that no single party (including us as developers) can manipulate the results. This ensures fairness at its core: it’s not in our hands to influence the outcome of battles.

Here’s how it works:

  1. EOS Block Number: Each block in the EOS blockchain has a unique number. These blocks appear approximately every 500 milliseconds and follow a predictable sequence. Since each new block’s number is always one greater than the last, it’s possible to predict the EOS Block Number and rely on it for randomization.
     
  2. EOS Block ID: When a block is mined, its unique identifier (Block ID) is generated. This hash, calculated by the blockchain, serves as a crucial component in generating the outcome of each battle.
     
  3. Server Seed and Client Seed: These are two essential components that drive the randomness of battle results.

    • The Server Seed is a random string of characters that is unique to each battle.
    • The Client Seed combines the EOS Block ID, round index, and seat index, further adding unpredictability.
    •  

Ensuring Transparency and Immutability

Our system’s transparency is rooted in how we generate randomness. By utilizing cryptographic hashing functions (like SHA256 and SHA512), we ensure that the results are both verifiable and secure. Even after the battle is over, players can trace the randomness back to the exact block mined on the EOS blockchain, providing full accountability and transparency.

 

The Timeline of a Battle’s Outcome

Here’s an overview of the battle process and how we use the EOS blockchain to ensure a fair outcome:

 

  1. Battle Creation: When a new battle is created, the server generates a unique server seed. This seed remains consistent throughout the battle.
    EOS Block ID Generation: After all players or bots join the battle, the system checks the most recently mined EOS Block Number. It uses this number to predict the next block and waits for the EOS Block ID to be generated.
    Seed Generation: Once the EOS Block ID is available, the system combines it with the server seed, round index, and seat index to generate the client seed. At this point, the game begins, and each round is spun in sequence.

     

Handling Draw Spins Fairly

Sometimes, battles may result in a draw, where two or more players or groups have the same total value of dropped items. To determine the winner in a draw situation, the platform performs an additional spin using a Draw Seed. This ensures that even in the case of a tie, the process remains fair and unbiased.

Let’s walk through an example:

This extra layer of randomness adds an additional level of fairness and ensures that even when the outcome is a draw, no one player or group is unfairly advantaged.

 

The Algorithm: A Behind-the-Scenes Look

The magic of fairness lies in the algorithm that drives the random number generation. Our algorithm combines server seeds, client seeds, and draw seeds to produce the random number (or ticket number) that determines the outcome of each battle. Here’s an example of how this works in action:

 

const eosBlockId = "5e62aa1e3792036cf6bcc5f59f1c9f6a18d0438410077db13b531b4604dfad6c";

const serverSeed = "0bcfbdd1bdb8b5a3cc36f29dedc03fdf705a18b3610e46f094fe3337475de0ea";

const roundIndex = 1;

const sitIndex = 1;

 

const clientSeed = `${eosBlockId}:${roundIndex}:${sitIndex}`;

const drawSeed = `${serverSeed}:${eosBlockId}:solo`;

 

random(serverSeed, clientSeed).then((x) => console.log("Open result", x));

random(drawSeed).then((x) => console.log("Draw spin result", x));

 

Breaking Down the Algorithm:

  1. SHA512 Hashing: The server seed and client seed are combined and hashed using the SHA512 algorithm. This process ensures that the final result is a product of a cryptographically secure operation.
    Ticket Number Generation: The hashed result is then converted into a ticket number using the formula:

  2. Ticket = Hash % MaxTicketCount + 1 This generates a random number in the valid range for each battle outcome.
  3.  

Verifying the Results

The final piece of the puzzle is the ability to verify the outcome of any battle. Players can check the block number and block ID through resources like Bloks.io to ensure that the outcome of their game was determined fairly based on the EOS blockchain data.

 

Conclusion: A Truly Fair System

By integrating blockchain technology with cryptographic principles, we provide a fair, transparent, and tamper-proof environment for all battles. Our system ensures that no external party, including the platform itself, can influence the results of any game. The randomness is verifiable, the process is transparent, and the players have full trust in the outcomes of each battle.

At the end of the day, fairness is about giving everyone an equal chance—and that’s exactly what our platform does.