CRYPTOGRAPHICALLY BASED SYSTEM AND METHOD FOR PROVABLY FAIR TOKEN BASED GAMES
Exemplary embodiments of the present disclosure are directed towards a client server based system for online token based games. The system comprises a plurality of game client computing devices configured to play an online token based game, and a game based server system comprising central game server configured to connect the players and a protocol manager to provide a plurality of protocols for providing a token based game in a collusion resistant, verifiable and provably fair manner over a network.
The present application is a continuation of PCT Application No. PCT/IB2017/054276, which was filed Jul. 14, 2017, and which claims priority from Indian Application No. 201631024077, filed Jul. 14, 2016. Each of these applications is incorporated by reference in their entirety.
TECHNICAL FIELDThe present disclosure generally relates to the field of online gaming systems. More particularly, the present disclosure relates to a multiplayer gaming system.
BACKGROUNDIn the existing token based games of chance and skill such as Rummy, Poker, Dominoes and the like, the random distribution of game tokens, such as the random distribution of playing cards has been known for many centuries. Prior to the introduction of digital computer games, the most common method of randomly distributing game tokens comprised physically shuffling the tokens prior to the distribution of those tokens. Typically, when people host and play these games using digital computers connected on a network, the game tokens are shuffled and distributed by a central host known as the server. The server may use random numbers generated from software known as a Random Number Generator (RNG) to do this. This creates trust issues for the players since they cannot be sure whether the random token shuffling and distribution process has not been intentionally skewed to favour one player or another. Another problem is that of privacy of secret tokens such as hole cards in Poker. Players cannot be sure that their cards are not known to their opponents as the server does the dealing and may leak this information. Yet another problem is that of collusion. Not only are collusions harder to find on a network, but also colluding parties can share information with greater ease.
In light of the discussion, there exists a need for a client-server based system and a method for playing token based games with collusion resistance, verifiability and provable fairness over a network.
SUMMARY OF THE INVENTIONThe following presents a simplified summary of the disclosure in order to provide a basic understanding to the reader. This summary is not an extensive overview of the disclosure and it does not identify key/critical elements of the invention or delineate the scope of the invention. Its sole purpose is to present some concepts disclosed herein in a simplified form as a prelude to the more detailed description that is presented later.
According to an exemplary aspect, a client-server based system for playing online token based games in a collusion resistant, verifiable and provably fair manner is presented. The client-server based system comprises a plurality of client computing devices (hereinafter also referred to as client terminals) configured with client software to enable players to access, join and play an online card game, and a game based server system, comprising a central game server and a protocol manager, configured to connect the players and provide a variety of sub-protocols for carrying out a variety of critical steps in token based games like shuffling of the tokens, dealing of private tokens like hole cards, and subsequent revelation on showdown or the like, in a verifiable and provably fair manner over a network.
According to an exemplary aspect, the present disclosure specifies the method, protocol and apparatus which allows an aforementioned game based server system to host a token based game over a network, for example internet, and conduct it in a manner in which any stakeholder, be it the server or any individual player, can produce sufficient proof for fairness and integrity in conduct of each of the aforementioned critical steps and the overall game. More specifically, for a player, the present disclosure gives provisions to self-enforce and self-verify integrity and fairness in the game and offers high degree of collusion resistance. At a very high level, this is done by involving all relevant players in all the critical steps. The output of each of the critical steps depends directly upon all the inputs given by the players. As a result, no colluding party can predetermine or predict these results, and each player can enforce integrity and fairness in his own capacity. This results in the guarantee that even if the server and every other player colludes against a player, then also that player can be confident that the tokens are shuffled in a random and non-predetermined manner, no one else knows the private tokens dealt to them, no colluding party can change any tokens dealt during the game and/or public tokens are drawn at random and no colluding party can predict or predetermine them, etc.
Protocols for a variety of token based games in a verifiable and provably fair manner can be created by combining the aforementioned sub-protocols with minor modifications. Examples of such token based games may include Poker (including at least Texas Hold'em Poker, Stud Poker, Omaha Poker, Draw Poker, and Razz Poker, Dominoes, Durak, Uno, Baccarat, Blackjack and the like without limiting the scope of the disclosure. As an example of this, the complete protocol for carrying out games of Texas Hold'em Poker and 5 Card Draw Poker by employing the sub-protocols are presented later. The methods of hosting and conducting these two games in a provably fair manner comprise steps of: the game based server system hosting a game and specifying its public key, players connecting to the game using their client terminals, client terminals sharing their public key, game based server system assigning roles to the players with digital signature, client terminals signing the previous information and sending back to the server, game based server system instructing the players to submit their cryptographic commitments for carrying out the critical steps with verifiability, the client terminals submitting the commitments, server broadcasting the commitments to all the client terminals, client terminals revealing their permutation token and other participants verifying the corresponding commitments, server and clients terminals determining the final shuffled deck, players determining their hole cards and replacing them if required (as in 5 Card Draw Poker), conducting of betting rounds, revealing of community cards if required (as in Texas Hold'em Poker), revealing of the hole cards by client terminals during showdown, and computing of the winner by the server and the players.
Other objects and advantages of the present invention will become apparent to those skilled in the art upon reading the following detailed description of the preferred embodiments, in conjunction with the accompanying drawings, wherein like reference numerals have been used to designate like elements, and wherein:
It is to be understood that the present disclosure is not limited in its application to the details of construction and the arrangement of components set forth in the following description or illustrated in the drawings. The present disclosure is capable of other embodiments and of being practiced or of being carried out in many ways. Also, it is to be understood that the phraseology and terminology used herein is for description and should not be regarded as limiting.
The use of “including”, “comprising” or “having” and variations thereof herein is meant to encompass the items listed thereafter and equivalents thereof as well as additional items. The terms “a” and “an” herein do not denote a limitation of quantity, but rather denote the presence of at least one of the referenced item. Further, the use of terms “first”, “second”, and “third”, and the like, herein do not denote any order, quantity, or importance, but rather are used to distinguish one element from another.
According to a non-limiting exemplary embodiment of the present disclosure, a client-server based system and method for conducting a token based game with collusion resistance, provable and verifiable fairness over a digital network is disclosed. This is done by describing sub-protocols for carrying out typical game operations like shuffling the set of tokens, revelation of public tokens, dealing of private tokens or any combination thereof in a verifiable and provably fair manner in the context of a computer network game including but not limited to poker game. These sub-protocols and their modifications thereof can be used for creating complete protocols for verifiable and provably fair versions of various existing token based games like, Poker, Rummy, Solitaire, Uno, Durak, Dominoes and the like, or a variety of other token based games to be invented in the future, without limiting the scope of the disclosure. It is to be understood that a variety of new verifiable and provably fair token based games can be created using the sub-protocols and methods described herein. For demonstration, the protocols for verifiable and provably fair conduct of two popular variants of Poker, namely Texas Hold'em and Draw Poker are described later.
In one aspect, communications between the central game server and players may be carried out on a separate communications channel. It is to be understood that an embodiment can be carried out in a decentralized manner without the need of a server, by using a decentralized blockchain ledger like in Bitcoin, or by using smart contracts as in Ethereum. Similarly, the time stamping functionality provided by online blogging services may also be provided by a fast decentralized blockchain in future. Also, the role of the game based server system could be carried out by a smart contract residing on a blockchain. In one aspect, the blockchain could provide the just-mentioned communications channel. It is also to be understood that this invention can also be used for creating verifiable and provably fair online versions of casino games like Keno, Bingo, table games played against the house like Blackjack, Roulette or any combination thereof, which may be played like a single player online game.
The client-server based system 100 comprises a plurality of client computing devices (hereinafter also referred to as client terminals) like 104a-104n configured with client software to play an online token based game, and a game based server system 102 which comprises a central game server (described below in
Client computing devices 104a-104n can be any processor-driven device, such as a personal computer, laptop computer, handheld computer, and the like, that is utilized by a player to access, join, or play an online game, and for posting of messages on a player owned online blog (hereinafter referred to as player blog). In addition to having a processor, the client computing devices 104a-104n may further include a memory, input/output (“I/O”) interface(s), and a network interface, and the like, without limiting the scope of the disclosure. Further the client computing devices 104a-104n may include an operating system which is, but not limited to, Microsoft Windows®, Apple OSX™, UNIX, or a mainframe operating system without limiting the scope of the disclosure. The client computing devices may also include primitives for carrying out a game in a verifiable and provably fair manner, such as a digital signature scheme using public key cryptography, a cryptographic hash and a commitment scheme as discussed later.
The client computing devices 104a-104n may integrate an internet browser or other software, including a dedicated program or mobile software, for interacting with the game based server system 102. A player may utilize one of the client computing devices 104a-104n to interact with the game based server system 102 using client software or via website to access or play one or more example token based games, as described herein. The multiple client computing devices 104a-104n may also be utilized to retrieve or otherwise receive data, messages, or responses from the game based server system 102. It is to be understood that in what follows, all the actions carried out by the players are carried out using their respective client terminals 104a-104n.
The protocol manager 204 comprises primitives for carrying out a game in a verifiable and provably fair manner. The primitives may be a digital signature scheme using public key cryptography, a cryptographic hash and a commitment scheme. The digital signature allows a party to digitally sign a message, so that the receiving parties can be sure about the origin of the message, and at the same time enforces non-refutability on the signing party. It works by a pair of digital keys such as public key and private key. The private key is kept secret by the signing party and used for signing the messages. The public key is broadcast to the receiving parties which may verify about the origin of a signed message upon receiving.
A cryptographic hash is a function which takes an input of any size and outputs a non-revertible fixed length string. That is, given an output it is not feasible to find a corresponding input which would lead to the output under the application of the cryptographic hash, for example, SHA-256.
The commitment scheme may allow a party to make a commitment to a certain value and reveal it with verifiability at a later point in time. This primitive is used for making sure that the issuer of the commitment does not change the committed value at the time of revelation. A simple commitment scheme may involve publishing the cryptographic hash of the value committed. To verify, one only needs to compute the cryptographic hash of the revealed value and check it against the hash value published earlier by the issuer of the commitment. If the space from which the value is coming is very small, for example outcome of a coin toss, then the value can be padded with random bits to avoid the value to be discovered from its cryptographic hash by brute force search on the space of inputs.
Further the central game server 202 is configured to assign roles (such as big blind, small blind, etc.) to the players, collect collaterals to discourage malicious disruption of the game or repeated violation of the protocol, defining rules for calculating the value of a player hand at showdown and defining an ordering of the players based on their seating arrangement, etc. before starting the game. As shown later, the ordering would be employed during shuffling of the card deck. Also, the role assignment will be digitally signed by both the players, using their respective client computing devices 104a-104n (
Once there are sufficient players 104a-104n seated for the game as the first case of 418, the game based server system 102 defines an initial configuration of the deck of cards, called initial deck configuration, at 422 else there is a wait at the second case of 418, at 420. Initial deck configuration could be an array storing a permutation of representation of denominations of tokens used in the game. For example initial deck configuration for a standard deck of 52 cards could be the array [‘As’, ‘2s’, ‘3s’, . . . , ‘Ks’, ‘Ad’, . . . , ‘Kd’, ‘Ah’, . . . , ‘Kh’, ‘Ac’, . . . , ‘Kc’] where for example ‘As’ stands for the Ace of spades, “2s” stands for the two of spades, “Ad” stands for the Ace of diamonds, “Kh” stands for the King of hearts, and so on. Further a compilation of the list of players 104a-104n, and their public keys, and defining an ordering (R) of the players 104a-104n at 424 takes place followed by collecting collaterals and assigning them roles like dealer, small blind, big blind etc. at 426 in accordance with their seating arrangement on the game table. Game based server system 102 then compiles all the above information as game initialization information at 428 and signs it and sends the signature to all the players 104a-104n, and also posts it on the server blog at 430. The players 104a-104n sign the above signature and send it back to the game based server system 102 at 432, which in turn compiles all the signatures from all the players 104a-104n as game initialization contract (hereinafter also referred to as GIC) at 434 and broadcasts this information to all the client terminals 104a-104n at 436. As a result, all the parties (players 104a-104n and the game based server system 102) have a proof of the initial setup of the game and all the players 104a-104n have a proof of participating in the game.
Referring to
Note that transmission of messages done during the sub-protocols and protocols described in the text are public in nature in the sense that discovery of those messages by anyone does not compromise the integrity of the game. So, every message sent out by an entity (players 104a-104n or game based server system 102) is also immediately posted on their respective blog (a player blog or server blog as the case may be) for establishing a backup line of communication and for time stamping. Similarly, whenever an entity does not receive an expected communication (due to some problem in the network or otherwise); it checks the blog of the sender to retrieve the communication. The specific cases of communication are described in detail next.
Referring to flow diagram 500c in
Referring to flow diagram 500d in
As mentioned earlier, an online token based game requires a set of critical game operations to be performed. For example, a game of Texas Hold'em Poker requires support for shuffling deck, dealing face down(hole) cards, dealing face up(community) cards, provision for registering player actions like betting, calling, raising, folding etc., and showdown. A game of Draw Poker on the other hand also requires support for allowing players to replace their hole cards. In the following, verifiable and provably fair sub-protocols for carrying out each of these critical game operations are described. It is to be understood, that sub-protocols for carrying out critical steps in other token based games, newly invented games in future or table games can similarly be created.
Instance 1 (Considering an instance of sub-protocol for shuffling a virtual deck of cards): The purpose of this sub-protocol is to produce a shuffled deck of cards, called the master deck, starting from an initial deck configuration defined by IDC. The sub-protocol shuffles the deck in a manner which cannot be predetermined or predicted by any colluding party. The including steps are: given the card deck of size D (usually 52) in IDC, all the client terminals 104a-104n independently produce a random permutation of the first D natural numbers. Client terminals 104a-104n create a cryptographic commitment to their permutation. Client terminals 104a-104n send their commitments to the game based server system 102. When commitment for the permutation is received from all the players, then the game based server system 102 broadcasts it to all the players 104a-104n. The players 104a-104n then send (reveal) their respective permutations to the game based server system 102. The game based server system 102 checks the validity of all the revelations. The game based server system 102 applies all the permutations to the IDC one by one according to the aforementioned ordering R to obtain master deck. The game based server system 102 broadcasts the master deck along with all the revelations of the permutations done by players 104a-104n to all the client terminals 104a-104n. All the players 104a-104n similarly and independently compute the master deck from IDC applying the permutations submitted by players 104a-104n in the order defined by R, and check whether it is identical to the master deck game based server system 102 had sent. Further, each of the players independently replicate the master deck as their player deck for drawing their hole cards, and the game based server system 102 replicates the master deck as the community deck for drawing community cards. The details of this method are provided next. It is to be understood that it is possible to similarly create several other ways of shuffling a set of tokens.
Instance 2 (Considering an instance of sub-protocol for a player to select H hole cards from a player deck with D cards, with provision for showdown): The sub-protocol for doing this in a verifiable and provably fair manner, as described next, only reveals the players hole cards only when he reaches the showdown, thereby, preventing the revelation of the strategy of the player in case he chose to fold during the game. The including steps are: To pick H hole cards, each of the players 104a-104n make a cryptographic commitment to H unique natural numbers each less than or equal to D, while or before making their commitment for the shuffle permutation (as in Instance 1), and sends it to the game based server system 102. Once master deck MD is determined (as in Instance 1), each player 104a-104n independently creates a replica player deck PD from MD. Each player 104a-104n determines their hole cards as the cards in the respective positions in PD as specified by the H unique numbers previously committed by them. For showdown, a player 104a-104n who has not folded simply reveals the list of H unique numbers committed to the game based server system 102.
The game based server system 102 checks the validity of the commitment, and determines the player's 104a-104n hole cards using MD and broadcasts this whole information to the rest of the players 104a-104n. The rest of the players 104a-104n also independently check the validity of the revelation of the commitment and the computed hole cards for verification. The details of this method are provided next. It is to be understood that it is possible to similarly create several other ways of dealing tokens privately to players.
Some games like stud poker require dealing of a face-up door card along with the 2 face-down hole cards. It is easy to see that the door card can dealt to a player immediately revealing the commitment corresponding to the door card, instead of waiting till show down. It is also to be noted that since each player independently draws hole cards from their own player decks replicated from the master deck, the present disclosure potentially allows a game based server system 102 to host a verifiable and provably fair online token based game with unlimited number of players competing with each other. Also, players drawing hole cards from their own replicated player deck also eliminates any chance of a colluding party gaining any statistical information about the hole cards of an honest (non-colluding) player. For example, in a regular game of Texas Hold'em Poker, a colluding party of 4 players would know that any other player would not be having any of the hole cards held by them. This advantage is significant in a game like Omaha Poker, where 4 players would be dealt a total of 16 hole cards.
Instance 3 (Considering an instance of sub-protocol for a player to select H hole cards from a player deck with D cards, in a game with P players with provision for replacement of cards and subsequent showdown): Some games like Draw Poker need a player to be dealt 5 cards. The players then choose the set of cards he wishes to keep and rest of the cards are replaced with new cards. The sub-protocol for doing this in a verifiable and provably fair manner, as described next, ensures that no player or any colluding party can predict or predetermine any players' hole cards or replacement cards, and only reveals the player's hole cards when he reaches the showdown, thereby, preventing the revelation of the strategy of the player in case he chose to fold during the game. The including steps are: Every player 104a-104n makes a commitment to H unique natural numbers each less than or equal to D (usually 52), while or before making their commitment for the shuffle permutation (as in instance 1). Every player 104a-104n also makes commitment to P−1 lists of H random numbers each, one for each of the other players. Mapping of a list to a player is done using the aforementioned ordering R. Once the master deck MD is determined using the deck shuffling sub-protocol (as in instance 1), each player 104a-104n independently creates a replica player deck PD from MD. Every player 104a-104n determines their hole cards as the cards in the respective positions in their PD as specified by the H unique numbers previously committed, and separates them, leaving their PD with D-H cards. Over the course of the game, each player 104a-104n may then specifies the positions of the hole cards which they want to get replaced, and sends this information to the game based server system 102 which waits for all the players 104a-104n to submit their card replacement requirements and then broadcasts that information to all the players. Each of the players 104a-104n then reveals their commitments for the P−1 lists. Every player 104a-104n determines and enlists the lists created for self by other players 104a-104n. Each player 104a-104n who has specified to replace any cards computes the position of the first replacement card using the sum(S) of the first elements of the lists created for him along with the first element in H, as the card at S % (D−H)+1th position in their player deck, leaving player deck with D−H−1 cards. Other (second, third, fourth etc.) replacement cards are similarly drawn one by one, if there is a need, using the respective (second, third, fourth etc.) elements in the lists, leading to final set of hole cards. For showdown, every non-folded player 104a-104n simply reveals the list of H unique numbers which he had initially committed to the game based server system 102, and the game based server system 102 then broadcasts this information to all the players 104a-104n. Since the corresponding P−1 lists from each the players are already revealed, it is possible for the game based server system 102 and each of the players 104a-104n to compute and verify the final hole cards after replacements for players 104a-104n who have not folded. The details of this method are provided next. It is to be understood that it is possible to similarly create several other ways of dealing tokens privately to players while allowing provision for replacement.
There is a wait till showdown by game based server system 102 and then it requests all players 104a-104n who have not folded to reveal their hole card commitments at 930. There is a further wait till showdown by players 104a-104n and if not folded, they reveal the commitment for hole cards at 932. The validity of the revelation is checked at 934. Further the receipt of revelations from all non-folded players 104a-104n is enquired at 936 if not then there is a wait at 938 and if yes, then computation of final hole cards after replacement for each of the players 104a-104n who have not folded takes place at 940. Further at 942, a broadcast of computed hole cards and revelations done by all the players 104a-104n is done by the game based server system 102. All the revelations are verified at 944 by all the players 104a-104n, and finally hole cards are computed for the players 104a-104n who have not folded and verification against the hole cards computed by game based server system 102 is done at 946.
Some token based games require players to privately pickup tokens from a collection of tokens during the game after the distribution of private tokens. For example, in Rummy, players may pick cards from the deck after the distribution of hole cards, and in Dominoes, players pick up a domino from the boneyard (collection of dominoes). As also mentioned before, it is to be understood that a sub-protocol for privately picking up tokens from player deck or its equivalent for an online token based game can be created in a manner similar to the above sub-protocol. One way could be a player needing to pick up a private token committing to a value and then asking for random inputs (under commitment) from rest of the players, and upon revelation combining the inputs and committed value to determine the token position in the player deck or its equivalent in the game. It can be seen that drawing of face-up tokens as in stud poker can similarly be done by immediately revealing the committed value.
Card games like Texas Hold'em Poker or Omaha Poker require provisions for drawing community (public) cards. These cards are drawn face up and sometimes in consecutive rounds. For example in Texas Hold'em and Omaha Poker, there are three rounds of opening community cards called flop, turn and river, in which 3, 1 and 1 are cards opened respectively. In the present embodiment, these cards are drawn from the aforementioned community deck created by the server as a replica of the master deck computed during the deck shuffling sub-protocol (as in instance 1). The sub-protocol for doing a community card opening round involving opening of C cards in a verifiable and provably fair manner is described next.
Instance 4 (Considering an instance of sub-protocol for drawing C community cards in a game with P players using a community deck CD with M cards remaining in a verifiable and provably fair manner): The purpose of this sub-protocol is to draw community cards from CD in a manner in which outcomes cannot be predicted or predetermined by any colluding party. The including steps are: Each player 104a-104n creates a list of C random natural numbers each less than or equal to M. Each player 104a-104n sends a signed commitment of those C random natural numbers to the game based server system 102. When the game based server system 102 has received signed commitments from all the players 104a-104n, server broadcasts them to all the players 104a-104n. All the players 104a-104n reveal their list of C natural numbers to game based server system 102, which broadcasts this information to all the players. For determination of the first community card, S is computed as the sum of all the values at the first position in the lists, and the community card is determined as the card at (S % M)+1th position in CD. The newly determined community card is removed from the CD, leaving it with M−1 cards. All community cards to be opened in the current round are determined one by one in a similar manner. The game based server system 102 broadcasts the computed community cards and revelations done by all the players 104a-104n to all the client terminals 104a-104n. All the players 104a-104n similarly independently compute and verify the community cards computed by game based server system 102 using the revelations.
It is to be noted that a colluding party, if it includes the game based server system 102, can know the outcome of a critical step like opening of a community card as soon as all the players, other than the players in collusion, reveal their commitments pertinent to that critical step. So, if this result is not favourable for the collusion then a player in the collusion may decide to not reveal his commitment and disrupt the game, and force the game based server system 102 and rest of the players to redo the critical step from scratch. It is possible to discourage and possibly prevent this from happening by imposing a penalty on any player who disrupts the game at such exploitable stages of the game and make the above exploit cause loss for the collusion on the whole and at the same time safeguard the interests of all the honest players. One way to do this would be to make the penalty for a player disconnecting (dropping out) during a commitment revealing stage to be the server forfeiting a portion of the defaulting player's collateral to reimburse the rest of the players on the table in order to protect the interests of other players, each of which may suspect the defaulting player to be in a collusion with the game based server system 102 and all the players except himself, and that the defaulter disconnected (dropped out) to prevent the revelation of a certain outcome which was not favourable for the collusion.
The principle of distributing collaterals can also be used for ensuring timely and consistent behaviour by all the participating players. For example, a portion of the collateral of a player may even be distributed when he disrupts the game by repeatedly doing an incorrect revelation of commitment. This process enables the game to be carried out without delays and also protects the interest of the existing players who are continuing with the game.
Instance 5 (Considering an instance of sub-protocol for verifiable and provably fair betting round): Several card games like Poker and the like have alternating rounds of betting usually after the determination of community or hole cards. For example, Hold'em Poker has 4 rounds of betting and 5 cards, while Draw Poker has 2 rounds of betting. Typical actions during a betting round are bet, raise, call, check, fold and likewise. The purpose of this sub-protocol is to conduct a round of betting in a verifiable and provably fair manner. The including steps are: The game based server system 102 asks the first player 104a-104n to act to submit his action. The player 104a-104n who needs to act, commits to their action (Bet, Call, Raise, Check, Fold etc.) by deciding upon a valid action given the rules and current context of the game. The player's respective client terminal 104a-104n submits the action to the game based server system 102. The game based server system 102 validates the received action and checks its validity in the current context of the game. If message is not found to be valid then it asks the player to resend a valid action along with the reason why the originally submitted action could not be accepted, otherwise the game based server system 102 broadcasts the action to all the players 104a-104n. The game based server system 102 asks the next active player 104a-104n (someone who has neither folded nor gone “all in” yet) to submit their action. The next active player 104a-104n on the table now acts in a similar manner, and this continues till the betting round is over according to the rules of the game.
Details for creating protocols for carrying out two popular card games, Texas Hold'em Poker and 5-Card Draw Poker, in a verifiable and provably fair manner using the sub-protocols defined above are presented next.
To conduct this game in a verifiable and provably fair manner, the game based server system 102 may setup the game, accept player 104a-104n connections and initialize the game at 1202, and further setting up the game initialization contract (GIC) at 1204, in a manner described earlier. Submission of cryptographic commitments to be used in the game is done by players 104a-104n at 1206. Each of the players 104a-104n independently creates separate cryptographic commitments for
-
- a. A permutation of first 52 natural numbers to shuffle the deck of cards (as in Instance 1).
- b. A list of two unique natural numbers less than or equal to 52 for drawing 2 hole cards without replacement (as in Instance 2).
- c. A list of 3 random natural numbers less than or equal to 52 for drawing 3 community cards as flop (as in Instance 4).
- d. One random natural number less than or equal to 49 (only 49 cards remain in community deck after drawing flop) for drawing 1 community card as turn (as in Instance 4).
- e. One random natural number less than or equal to 48 (only 48 cards remain in community deck after drawing flop) for drawing 1 community card as river (as in Instance 4).
Upon receiving commitments from all the players 104a-104n, the game based server system 102 signs and broadcasts these commitments to all the players 104a-104n at 1208. Players 104a-104n reveal their commitments for the shuffle permutation to the game based server system 102 and deck shuffling sub-protocol (as in Instance 1) is carried out using commitments from all the players 104a-104n at 1210 to produce master deck MD. MD is replicated by the game based server system 102 as the community deck at 1212, and by all the players 104a-104n individually as player decks to determine their hole cards (as in Instance 2) at 1214.
One round of betting using betting round sub-protocol (as in Instance 5) takes place at 1216. Further, revealing of 3 flop cards using the community card revealing sub-protocol (as in Instance 4) takes place at 1218, followed by one round of betting using the betting round sub-protocol (as in Instance 5) takes place at 1220. Further, revealing of 1 turn card using the community card revealing sub-protocol (as in Instance 4) takes 1222, followed by one round of betting using the betting round sub-protocol (as in Instance 5) at 1224. Further, revealing of 1 river card using the community card revealing sub-protocol (as in Instance 4) takes place at 1226, followed by one round of betting using the betting round sub-protocol (as in Instance 5) at 1228. At 1230, hole cards for players 104a-104n who have not folded are determined (as in Instance 2) during showdown. In a game of Texas Hold'em Poker, split pots may be created when one player 104a-104n is short stacked and unable to call a bet completely, the winner of a pot is decided as the player 104a-104n having the best hand amongst the players 104a-104n claiming the pot. The game based server system 102 and the players 104a-104n compute and verify the winners of each of the pots created during the game according to game rules finally at 1232.
It is interesting to note that the use of multiple replicated decks (individual player decks and community deck) can lead to repetition of the same denomination of a token value. For example, a player can get a “King of Hearts” in his hole cards which are drawn from his player deck and also in the flop which is drawn from community deck. As mentioned before, the rules for determining the best hand are defined by the central game server while setting up the game. One simple way for doing this could be to allow any token denomination to appear only once while creating the best hand. It should be noted that rules of other token based games may similarly be easily modified, if required, and specified during the start of the game in GSI to handle the scenarios of repeating denominations.
To conduct this game in a verifiable and provably fair manner, the game based server system 102 may setup the game, accept player 104a-104n connections and initialize the game at 1302, and further setting up the game initialization contract (GIC) at 1304, in a manner described earlier. Submission of cryptographic commitments to be used in the game is done at 1306. Each of the players 104a-104n creates commitments for:
-
- a. A permutation of first 52 natural numbers to shuffle the deck of cards (as in Instance 1).
- b. A list of 5 unique natural numbers less than or equal to 52 for drawing 5 hole cards with replacement (as in Instance 3).
- c. P−1 lists of 5 natural numbers less than or equal to 52 for each of the other players for determining the replacement cards (as in Instance 3).
Upon receiving commitments from all the players 104a-104n, the game based server system 102 signs and broadcasts these commitments to all the players 104a-104n at 1308. Players 104a-104n reveal their commitments for the permutation to the game based server system 102 and deck shuffling sub-protocol (as in Instance 1) is carried out using commitments from all the players 104a-104n at 1310. The resulting master deck MD is replicated by all the players 104a-104n individually as player decks to determine their hole cards (as in Instance 3) at 1312. One round of betting is carried out (as in Instance 5) at 1314. Further unwanted hole cards are replaced by all the players 104a-104n using sub-protocols for selecting hole cards with replacement (as in Instance 3) at 1316. Further another round of betting (as in Instance 5) is carried out at 1318. At 1320, hole cards for players 104a-104n who have not folded are determined (as in Instance 3) during showdown. Finally, the game based server system 102 and the players 104a-104n compute the winners of each of the pots created during the game according to game rules at 1322.
It is to be noted that it is possible to build verifiable and provably fair protocols for various other variants of Poker games, a variety of other card games, table games and even new games.
As noted earlier, collusion is another problem faced by online players. Usual methods of preventing and detecting collusion may involve studying the IP of the players and studying the playing behaviours of a player or a group of players. In this regard, a method to prevent and minimize the likelihood of collusion by doing a random placement of players across game tables with identical game settings is described next. It is to be understood that this process takes place before starting the game.
Referring
Although the present disclosure has been described in terms of certain preferred embodiments and illustrations thereof, other embodiments and modifications to preferred embodiments is possible that are within the principles and spirit of the invention. The above descriptions and figures are therefore to be regarded as illustrative and not restrictive.
Thus the scope of the present disclosure is defined by the appended claims and includes both combinations and sub combinations of the various features described herein above as well as variations and modifications thereof, which would occur to persons skilled in the art upon reading the foregoing description.
Claims
1. An online cryptographically-based system to implement and manage, in a provably fair manner, a token based game employing a set of N tokens in an initial ordering, the system comprising:
- a central game server compiling game setup information (GSI) to set up the game; and
- a protocol manager capable of carrying out one or more cryptographic primitives selected from the group consisting of a digital signature scheme using public key cryptography, a cryptographic hash, and a commitment scheme, the protocol manager assisting the central game server with initiation and verification of cryptographic communications with those primitives;
- wherein:
- the central game server broadcasts the GSI, to each of a plurality of M players, each at a respective one of a plurality of M client terminals, that will be involved in playing the game; and
- responsive to a connection to the game from each of the plurality of M client terminals, the central game server implements a plurality of sub-protocols, along with the M client terminals, including: a. shuffling the set of N tokens, beginning with an initial set configuration, by receiving, under a first cryptographic commitment scheme, from each player, at a respective one of the plurality of M client terminals, an ordering of the set of N tokens and successively applying, according to a predetermined ordering of players, the orderings from at least two of the players to the initial set configuration, so as to produce a shuffled set of N tokens as a shuffled master set; b. distribution of M new sets of tokens, as player sets, to the respective M client terminals, after production of the shuffled master set, each of the M new sets of tokens having the same ordering of tokens as shuffled master set so that each player is playing with the same shuffled master set; and c. assigning of H player tokens individually to each of the M players where H<N, by receiving prior to completion of sub-protocol a., under a second cryptographic commitment scheme, from each player, a selection of P tokens out of the N tokens in the respective player sets.
2. A system as claimed in claim 1, wherein:
- the central game server extends the sub-protocol b. to provide, to the M client terminals, a copy of the shuffled master set as a community set of N tokens, for drawing of community tokens, and implements a further sub-protocol d. wherein: a predetermined number C of tokens from the community set, with L tokens remaining, are identified to all M players as community tokens, starting with receiving, under a third cryptographic commitment scheme, and subsequently combining, from each of the M players an identification of C tokens in the community set, with L tokens remaining, where C<L and L<N.
3. A system as claimed in claim 2, wherein, in sub-protocol a., the ordering of the set of N tokens comprises application of a random permutation of the first N natural numbers to the initial set configuration.
4. A system as claimed in claim 2, wherein, in sub-protocol c., the selection of H tokens out of the N tokens in the respective player sets comprises H unique natural numbers each less than or equal to N, each corresponding to a token in a respective position in the player set.
5. A system as claimed in claim 2, wherein, in sub-protocol d., the identification of the predetermined number of C tokens in the community set, with L tokens remaining, comprises a list of C random natural numbers each less than or equal to L, each corresponding to a token in a respective position in the community set.
6. A system as claimed in claim 5, wherein the tokens correspond to a standard deck of playing cards, and during protocol b., copies of the shuffled master set are created as a community card deck, to draw community cards, and M respective player decks for each of the M players.
7. A system as claimed in claim 6, wherein sub-protocol c. has a provision for replacement of player cards.
8. A system as claimed in claim 7, wherein the game is selected from the group consisting of Texas Hold'em, Draw Poker, Stud Poker, Omaha Poker and Razz Poker, wherein two or more of the M players may hold the same card from the standard deck of playing cards.
9. A system as claimed in claim 8, wherein, in sub-protocol d., the community cards are identified by:
- i. receiving, under a cryptographic scheme, from each player a set C of numbers, each number in the set C corresponding to a position in the set of N remaining cards in the community card deck, wherein C<L;
- ii. for a first position in the set C of numbers, adding numbers at that first position as received respectively from at least two of the players to obtain a sum S;
- iii. identifying a card in position (S modulo L)+1 as a first one of the cards to be shown to the players; and
- iv. repeating iii. and iv. for each other position in the set C of numbers, accounting for revealing prior cards by reducing the modulo by 1, until all C cards have been identified and shown to the players.
10. A system as claimed in claim 9, wherein the central game server further implements the following sub-protocol, after each iteration of sub-protocol c. or sub-protocol d.:
- e. allowing each of the players to take an action to either continue to participate or to cease to participate in the game, by: i. showing an identified card to the players; ii. receiving, from each player, an action corresponding to either continued participation, or discontinued participation in the game.
11. A system as claimed in claim 10, wherein in sub-protocol e.ii, the action received is one of the group consisting of bet, call, raise, check, and fold, or replacement of one or more player cards.
12. The system as claimed in claim 2, wherein the token based game does not have a limit on how many players may participate.
13. A system as claimed in claim 2, wherein the central game server broadcasts to all of the M client terminals, any communication it receives from any of the players, to allow players to verify the fairness of the conduct of the game.
14. A system as claimed in claim 2, wherein the central game server is implemented as a smart contract on a blockchain.
15. A system as claimed in claim 8, wherein the central game server collects collaterals to discourage players from dropping out of the game.
16. A system as claimed in claim 2, wherein the central game server further comprises a server blog, and wherein, responsive to a requirement that all players post communications, the server blog posts those communications, so as to facilitate higher communication reliability.
17. A system as claimed in claim 2, wherein the central game server hosts a plurality of game tables, and assigns players randomly to different game tables based on a cryptographic input shared, under a commitment scheme, so as to reduce a possibility of collusion.
18. A system as claimed in claim 2, wherein the digital signature scheme facilitates verification of game events.
19. A system as claimed in claim 18, wherein the central game server requires appending of all messages with a cryptographic hash of all the communication during the game, to prevent replay attacks.
Type: Application
Filed: Jan 14, 2019
Publication Date: May 16, 2019
Applicant: TRYPTOGRAPHY, INC. (Fort Myers, FL)
Inventor: Srijan KUMAR (Ranchi)
Application Number: 16/247,231