METHOD PROVIDING FOR A VERIFIABLE GAME-OF-CHANCE PLAYED EVEN OVER A COMPUTER NETWORK
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims priority from Provisional
FIELD OF THE INVENTION
The present invention pertains to the field of auditing multi-player games of chance, especially a game played over a computer network. More particularly, the present invention concerns how to ensure that when participants in a game of chance each provide a number for use in the game of chance, noι participant can cheat, without the other participants knowing, by adjusting the number the participant provides based on the numbers provided by the other participants .
BACKGROUND OF THE INVENTION
Today it is possible to participate in a game of chance over a computer network, such as the Internet. In so doing, unless precautions are taken, a participant cannot be certain that the outcome has not been improperly affected by another participant. Often a game of chance relies for its progression on an indicator of a next step. Many such games can be imagined in which each participant plays a role in affecting the value of such an indicator. For example, each participant could input to a computer a number known only to the participant, i.e. a secret number, and the computer could calculate a value to be used as the indicator of the next step in the game, where its value is based on a combination of the secret numbers it receives from each participant.
What is needed is a way to verify that no participant has cheated in such a game of chance, i.e. that no participant providing a secret number to be used in determining an indicator of a next step in the game, has adjusted the secret- number, even if the game is played over a computer network. Obviously, a
method that provides this- would also be of use in games of chance not played over a network.
SUMMARY OF THE INVENTION
Accordingly, the present invention has as an objective providing a method, to be used as part of a game of chance, which may be played by players communicating over a computer network, that verifies that an indicator of a next step in a game of chance is unbiased in that it was not improperly affected by any of the participants in response to learning about selections other participants make that contribute to the indicator.
The above object is achieved in the present invention by a method for generating an indicator of a next event in a game of chance played by a plurality of players, the method comprising the steps of: selecting a hash function, i.e. a function that is hard to invert, in that it is difficult to determine what input produced a given output; determining a means of associating with each player any message received from the player; acquiring a hash output from at least one of the players, the hash output resulting from hashing a secret mathematical object picked by the at least one of the players; acquiring a secret mathematical object from each of the at least one of the players that chooses to continue participating in the game; and determining whether the secret mathematical object acquired from each continuing player hashes to the hash output provided by the continuing player. In another aspect of the present invention, the method further comprises the steps of selecting a combination function and then combining the secret mathematical objects from each of the continuing players according to the combination function, for providing the indicator of the next event in the game of chance. In still another aspect of the present invention, the method further comprises the steps of: determining a distribution function, having as input the indicator of the next event in the game, and having multiple output values, each output value assigned before the indicator of the next event is determined to correspond to a particular player, each output value providing a number of credits the corresponding participant is to receive; and
using the indicator of .the next event, after it is determined from the combination function, as input to the distribution function, for providing credits associated with each player still in the game after the indicator of the next event in the game is determined.
The present invention is especially useful in playing a game of chance over a computer network, but is also useful in any situation where some participants can calculate the output of a hash function.
BRIEF DESCRIPTION OF THE DRAWINGS
The above and other objects, features and advantages of the invention will become apparent from a consideration of the subsequent detailed description presented in connection with accompanying drawings, in which: Fig. 1 is a flow chart of the method of the present invention.
BEST MODE OF THE INVENTION
The present invention enables various participants,, who may be communicating over a computer network such as the Internet, to participate in a game of chance, which may result in the exchange of credits between the players, and to do so in a way that verifies that no participant is cheating. Credits may represent currency, coupons, game points, frequent flyer miles, phone minutes, or any other units of real or perceived value. In the preferred embodiment, the present invention is played over the Internet, and participants access web pages of one of the participants, called here a focus player, using any commercially available Internet browser. The other participants are ordinary players . As one step in many games of chance, at least one number or other mathematical object must be determined that will propel the game to a next step. The present invention is concerned with such games of chance, and in the best mode, a number is used to propel such a game to a next step. This number, called here a pseudo- random number, should be unbiased. An indicator could be for
example a mathematical object such as a number corresponding to the roll of a die, or corresponding to the value of a card dealt from a deck of cards. In playing the game, it is possible that many such pseudo-random numbers will be needed, and the present invention can be used repeatedly to provide each needed pseudorandom number .
Referring now to Fig. 1, the steps of the present invention in the best mode are indicated; a pseudo-random number, i.e. an indicator, is determined following the steps beginning with a step 10, where the focus player posts a so-called hash function to be used by each player in the process of developing the pseudo-random number. A hash function is a mathematical function that maps an input to an output in a way that practically prohibits determining the input from the output. In other words, a hash function is an extremely hard-to-invert mathematical function. Examples of a hash function that can be used include SHA1, MD4, and MD5, as well as various forms of public-key encryption.
In addition to posting the hash function, the focus player also posts a description of the kind of object to be hashed. In one, simpler embodiment, the object to be hashed is an integer; in a more complex embodiment the object to be hashed would be a sequence of integers, but other kinds of mathematical objects, such as operators, are also possible. The output of the hash function is some object having a value that corresponds to the value of the input to the hash function.
In a next step 11, the focus player signals the start of the game and specifies how much time the participants have to provide a hash output. In a next step 12, each player hashes a secret object the player has decided on, and provides the hash output corresponding to the secret object to the focus player, but without the secret object. In turn, the player receives an identification number from the focus player. Thus, using identification no. 1 for the focus player, the first participant after the focus player can have identification no. 2, and so on. In a next step 13, after the preset time has elapsed for would-be participants to provide a hash output, the focus player
posts all hash outputs. Then all participants can view the hash outputs, but none of the participants knows the secret object used by any of the other participants to produce a hash output.
In a next step 14, or prior to this step, the focus player and each player agree on a combination function to be used to produce the pseudo-random number for the player. In the preferred embodiment, the focus player uses the same combination function for all players, and communicates what the function is by posting the function on its web page. The combination function can be any mathematical function that maps the secret hash inputs of all of the final participants including the focus player, to some combination result, the unbiased indicator of a next event in the game .
Not only is the combination function the same function for all players in the preferred embodiment, but it is a function that will produce an output in a predetermined range, regardless of the secret numbers that are combined. Therefore, regardless of the number of participants that end up in the game, some dropping out because of not providing a secret object in time, others because of being kicked out for having apparently cheated, the combination function will produce an unbiased number in a desired range. For example, the combination function might be as follows:
C(X1,Xa,...,XfcJ — Σ ** mod ffή
1=1 where κl r κ2 r - - - r -k are the secret numbers selected by players 1, 2, .-., k and where n is some integer that bounds the predetermined range in which the combination values are to fall. Thus, no matter how many secret numbers are to be combined, the same combination function can be used, and the results will always fall in a known predetermined range. In a next step 15, the focus player signals that each player must provide the secret object the player hashed. The focus player will also indicate how much time the players will be given to respond.
In next step 16, after the time for responding has elapsed, in the preferred embodiment, the focus player posts the secret object received from each player along with whether, for any participant, the originally provided hash output disagrees with the hash of the subsequently revealed secret hash input. For example, the focus player can post the difference between the hash of the secret object and the original hash output provided by each player. The difference in each case should be zero. If the difference is not zero for a player, then all of the participants know immediately that the player has apparently provided a secret object different from what the player used to create the hash output originally provided to the focus player. In the preferred embodiment, that player would be kicked out of the game.
It is not essential to the present invention that the focus player compute the hash of the secret object finally provided by each player, or post the difference between the original hash output and the hash of the later-provided secret object for each player. As long as each player knows the secret object provided by every other player, the players can verify the game on their own. All that is necessary to the present invention, in order to provide a means of verifying a game of chance, is that the focus player communicate to all players the secret object ultimately provided by each player.
In. a next step 17, the focus player computes for each player the value of the combination function agreed to, and posts the computed value along with the player's identification number. Now each player has received a pseudo-random number according to the present invention, the pseudo-random number serving in a game of chance as an unbiased indicator, such as the roll of a die, or the selection of a card from a deck of cards.
The method of the present invention can be simplified. Once the focus player receives hash outputs from all players except one, and then posts all the received hash outputs along with its own if it is a full participant, the one player that has not provided a hash output need only provide a secret object. For example, in a two-player game between a focus player and one ordinary player, the single ordinary player never has to provide a
hash output. As soon as the focus player communicates a hash output, the other player can provide a secret object. Then the focus player can reveal his or her secret object and demonstrate that the secret object corresponds to the earlier revealed hash output.
One particular use of the unbiased indicator is to select a tamper-proof outcome distribution. Using r for the combination result, a Ar-valued outcome distribution can be generated from a pre-determined distribution function, called here a T function; each of the k values corresponds to the credits won by a different player. Thus r is used to arrive at an unbiased outcome for a game of chance according to: Tj ( r) = vχ t for i = 1 , . . . , k, which provides that player i wins j credits.
For example, suppose in a two-person game, that player no . 2 is offered a 25% chance of winning 3 credits, and a 75% chance of losing 1 credit. To keep the game simple, assume that one player wins credits whenever the other loses credits. Then a T function that will yield the promised chances is T(0) = (-3, +3) and T( l ) = T(2) = T(3) = (+1,-1). Thus, the combination function used always produces a number in the range from 0 to 3. If the combination function yielding r is mod 4 of the sum of the secret numbers of the focus player and player no. 1, then T{ r) will yield the desired probability distribution on the outcome of the game.
It is to be understood that the above-described arrangements are only illustrative of the application of the principles of the present invention. Numerous modifications and alternative arrangements may be devised by those skilled in the art without departing from the spirit and scope of the present invention, and the appended claims are intended to cover such modifications and arrangements.