We have spoken about our decentralized RNG since launching, and now we are just about ready to release to the public! Pending a few final decisions, we aim to release the final version in the coming weeks. But first, we want to take this opportunity to explain how it all works.
Before diving into the details, we will explain how card deck shuffling works in Online Poker. The correct term for the tech behind it being a Random Number Generator or RNG.
What is a Random Number Generator (RNG)
A Random Number Generator (RNG) is either a hardware device or piece of software that is used to generate random values. Before we dive into how this works, it is important to understand that there are two distinct types of “random” in the realm of RNGs.
True Random vs. Pseudorandom
A true random number is one that is derived without the use of equations or algorithms. RNGs that generate true random numbers include encryption services like password generators, where complete lack of predictability is required.
On the other hand, a pseudorandom number is one that is calculated with an algorithm and what is referred to as a “seed”. In many cases the seed is an action from a user that acts as a variable in the equation, triggering an end result. Ta-da: random number.
While the true random number generator is a more secure option, the truth is that a pseudorandom number generator is impossible to hack without the algorithm being known. Moreover, the pseudorandom numbers can be verified as fair and random.
That is if the user is allowed to access that information.
The Problem with Standard Poker Shuffling Systems
In online poker, a deck of cards is shuffled by an RNG that acts as a dealer. Each card is assigned a value, and with every new hand, an algorithm processes the cards to spit out a select few values in a pseudorandom order.
These are the hole cards of all players, followed by the community cards.
The main issues players have with this method is that it is a very closed system. At a casino, you can watch the dealer shuffle the cards, and even in the cases where you’re dealt a variation of the same hand twice, you don’t panic because you know that the shuffle was fair.
Introducing CoinPoker’s Decentralized Poker Shuffler
Thanks to recent advances in decentralization technology, there is a way to disclose information about the RNG without compromising security.
CoinPoker’s decentralized RNG makes this possible by sharing player impact on hands using the same cryptographic hash function used on the Ethereum network (KECCAK-256). With the help of cryptology expert and CoinPoker advisor Mike Segal, our team is just about ready to release this revolutionary bit of tech to the community.
CoinPoker’s new random number generation protocol is designed to enable end users to automatically verify the fairness of the platform’s shuffling algorithm. Under this protocol, each user’s computer becomes an active participant in the shuffling process, contributing to the randomness and then verifying computationally that their contribution was used by the server.” – Mike Segal, CoinPoker Advisor & Cryptography Expert
This RNG module is not only open source but is designed in a way that makes it impossible to reverse engineer any information by force. The RNG behind CoinPoker, therefore, remains uncrackable, while still allowing players to verify the randomness of the cards revealed during a hand.
Note that the full explanation may be a little rough to decipher depending on your base understanding of cryptographic hash functions. For those of you who find it too tough to swallow, we put together a more user-friendly and oversimplified explanation below.
The Simple Explanation: How a Decentralized Poker Shuffling System Works
Think of CoinPoker’s card shuffler as a magic 8-Ball, only that you shake it and an entire deck is shuffled to give you a random output.
Instead of leaving all the shaking to the operator (in this case CoinPoker), our decentralized shuffler uses input from all players to generate that shake factor. Mathematically speaking, this shake factor is called an aggregate seed, but for the sake of simplicity, we will just refer to it as shake factor.
But creating a collective shake factor from all players and CoinPoker demands a bit of work. Each player needs to share just how much they are going to shake without giving away the exact figure. The whole point of this is to give encrypted input that can be verified later on, without divulging all the details while the hand is in play.
Here’s what happens next:
Participating begins by all players using a one-way cryptographic function with a secret “shake factor” to send away to all the other players and CoinPoker. The real value is kept secret, and only the outcome of the function is sent to other players who can (once the hand is over) use it to verify that they contributed to the collective shake value.
While the hand is in play, all players send the real shake value to CoinPoker, leaving the other players with the outcome of the cryptographic function to double check once the hand Is played. CoinPoker uses all these values to create the final shake value and shuffle the final deck; in other words, to shake the 8-Ball with the help of everyone involved.
The end result is something that all players have participated in, contrary to traditional card shufflers that leave all the shaking to the operator.
Got Decentralized Shuffling Questions?
With every unique and revolutionary technology comes a lot of confusion. That is why our development team is inviting you to comment with your questions below, which we plan on answering next week in a complete tech edition of our usual Q&A sessions.