The present invention relates to gaming systems. More particularly, the present invention relates to utilizing the outcome of a specified event to determine the winner of a game of chance.
The gaming industry continues to grow in popularity with a wide variety of new games that offer different experiences to players. Games of chance create unique challenges for game designers and operators. Because games of chance depend in part on a random outcome to determine winners, there is a potential for fraud on the part of the game operator either in generating the random outcome or in using the outcome to determine a winner. If the validity of a selected winner is questionable, it can result in a diminished pool of players for future games or legal challenge of the current results.
Consequently, transparency has become a useful feature in the methods used to select game-winners. Game operators can refute challenges to a winner's validity by demonstrating that the outcome was solely a result of the parameters under which the game operated. However, a balance must be struck. In a game of chance, achieving transparency at the expense of randomness would be self-defeating. Therefore, a method is desired for selecting a winner that is both random and transparent.
In accordance with the present invention, the disadvantages and problems associated with operating a game of chance have been substantially reduced or eliminated. In particular, the invention provides a method and system for operating a game the results of which are both random and verifiable.
In accordance with one embodiment of the present invention, a method for determining a winner of a game of chance includes identifying an event prior to occurrence of the event, wherein the outcome of the event is non-deterministic and publicly-verifiable; determining a seed for a random number generator using the outcome of the event; generating one or more random numbers from the seed; and selecting at least one winner of the game using the random numbers.
In accordance with another embodiment of the present invention, a system for selecting the winner of a game includes a seed generator operable to generate a seed based on the outcome of an event, the event selected prior to occurrence of the event and the outcome of the event being publicly verifiable; a parameter list created prior to occurrence of the event; a player list created prior to occurrence of the event, the player list comprising a plurality of records, each record representing a player of the game; a random number generator operable to receive the seed and generate at least one random number; an evaluator operable to select a winner form the player list based on the parameter list and the random number.
Important technical advantages of certain embodiments of the present invention include the ability to generate a game-winner using the outcome of a non-deterministic event with the generation process being amenable to replication. This is desirable for purposes of validating the chosen winner.
Other important technical advantages of certain embodiments of the present invention include determining one or more winners where the winners are determined based on a non-deterministic outcome and one or more parameters, the parameters being defined prior to the game.
Additional technical advantages of the present invention will be readily apparent to one skilled in the art from the following figures, description, and claims. Moreover, while specific advantages have been enumerated above, various embodiments may include all, some, or none of the enumerated advantages.
For a more complete understanding of the present invention and its advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
Networks 108 and 110 represent any hardware and/or software configured to communicate information in the form of packets, cells, frames, segments, or other portions of data. Networks 108 and 110 may include routers, hubs, switches, gateways, or any other suitable components in any suitable form or arrangement. Although network 108 and 110 may be physically and logically distinct, network 108 may refer to the same hardware and/or software as network 110. Networks 108 and 100 may comprise any combination of public or private communications equipment such as elements of a public switched telephone network (PSTN), a global computer network such as the Internet, a local area network (LAN), a wide area network (WAN), or other appropriate communications equipment
Game server 102 is a general purpose computer, dedicated processor, or any other electronic device operable to communicate with client device 104 and process electronic information received from client device 104. Game operator 150 operates game server 102. Alternatively, game sponsor 160 may operate game server 102.
Client device 104 is a computer, browser, gaming device or any other electronic device capable of communicating electronic information to game server 102. Game sponsor 160 operates client device 104. Although
Authentication server 106 is a general purpose computer, dedicated processor, or any other electronic device operable to communicate with game server 102 and process electronic information received from game server 102. In a particular embodiment, trusted third party 170 operates authentication server 106.
Numerous entities may control or operate the elements of gaming system 100 and the entities may use a variety of different configurations to distribute the elements amongst them. In a particular embodiment, a game operator 150, a game sponsor 160, and a trusted third party 170 operate or control game server 102, client device 104, and authentication server 106 respectively.
In a particular embodiment, game sponsor 160 is a person, group of people, or entity responsible for disbursing prizes to winners of games conducted on gaming system 100. Game operator 150 is a person, group of people, or entity responsible for generating results for games conducted on gaming system 100. Trusted third party 170 is a person, group of people, or entity with no stake in the outcome of the game. Examples of trusted third party 170 include traditional public notaries, online digital notaries, or any other disinterested party capable of accurately recording a receipt time for information communicated to the party by game server 102. If game operator 150 holds no stake in the outcome of the game, game operator 150 may serve as trusted third party 170 and operate authentication server 106.
In gaming system 100, a game begins with game operator 150 and game sponsor 160 establishing parameters for the game including, but not limited to, the non-deterministic event that will provide the seed, the number of winners to be selected, and the prizes to be awarded. Parameters can include any information or data that will affect the selection of winners.
Game sponsor 160 generates a parameter file 114 containing these parameters. Game sponsor 160 also collects and records in a player file 116 information identifying all players playing the game. This may be done electronically, for example, through online-based Internet games. Alternatively, player file 116 can be populated manually, e.g. by typing in information from mailed-in entries.
Client device 104 communicates parameter file 114 and player file 116 to game server 102. Game server 102 generates parameter hash 118 and player hash 120 from parameter file 114 and player file 116 respectively. Game server 102 communicates parameter hash 118 and player hash 120 to authentication server 106.
Game server 102 creates parameter hash 118 and player hash 120 by applying a hashing function to parameter file 114 and player file 116. A hashing function can be any process by which the input value is transformed into a shorter, fixed-length output “hash” that uniquely represents the input value. For example, parameter hash 118, generated from parameter file 114 using a particular hashing function, will be unique. For the particular hashing function used, no file other than parameter file 114 will generate the same hash as parameter hash 118. Thus, a hashing function can be used to verify that the contents of a file have not changed by showing that an earlier-generated hash of the file is identical to a hash of the file in its current state.
Authentication server 106 stores parameter hash 118 and player hash 120 in authentication database 122. Authentication server 106 generates an authentication certificate 126 and communicates authentication certificate 126 to game server 102 via network 110. Authentication certificate 126 includes the time that authentication server 106 received parameter hash 118 and player hash 120. If the results of the game are challenged, game operator 150 can use authentication certificate 126 to prove that parameter hash 118 and player hash 120 were created before the non-deterministic event occurred.
Game server 102 accepts numeric outcomes 111, 112, and 113 and generates winner file 128 based on numeric outcomes 111, 112, and 113, parameter file 114 and player file 116. Game server 102 communicates winner file 128 to client device 104 via network 108.
Seed generator 202 takes as inputs numeric outcomes 111, 112 and 113.
Each of numeric outcomes 111, 112, and 113 is a number or series of numbers representing the outcome of a non-deterministic event. The event is selected prior to occurrence of the event and its result must be capable of public verification after occurrence of the event. Examples of such publicly-verifiable, numeric outcomes include, but are not limited to, the winning numbers of a specified state lottery, stock market prices at a specified time, the winning time of the Kentucky Derby, the officially-recorded high or low temperature for a specified city on a specified day, the total points scored in the Super Bowl, or any other non-deterministic event whose outcome can be expressed numerically and is publicly-verifiable after occurrence of the event. Publicly-verifiable outcomes include any that will be recorded in newspapers, public record, or any other permanent or archived source.
Seed generator 202 processes numeric outcomes 111, 112, and 113 and outputs seed 208. In
Seed generator 202 communicates seed 208 to random number generator 204. Random number generator 204 also accepts parameter file 114 as an input. Parameter file 114 communicates to random number generator 204 game parameters such as the number of winners to be selected, the random number algorithm to be used, and the range of acceptable numeric outputs. Any or all of these parameters may be programmed into random number generator 204 prior to the game. Regardless of how random number generator 204 receives the game parameters, game server 102 fixes the game parameters prior to occurrence of the publicly verifiable event.
Random number generator 204 generates a random number 210 by inputting seed 208 into the specified random number algorithm. If multiple numbers are to be selected, the random number may be fed back into random number generator 204 to generate additional random numbers as indicated by feedback 209. In other embodiments, random number generator 204 may generate additional random numbers in a variety of ways and random number generator 204 may or may not include feedback 209. For example, random number generator 204 may use additional seeds to generate additional random numbers or may utilize a separate routine for generating additional random numbers. In
Random number generator 204 communicates random numbers 210, 212, and 214 to evaluator 206. Evaluator 206 also accepts parameter file 114 and player file 116. Based on game parameters provided by parameter file 114, evaluator 206 uses random numbers 210, 212, and 214 to select three winners. Evaluator 206 maps numbers 210, 212, and 214 to entries in player file 116 to generate a winner file 128 indicating the selected winners and the prize level associated with each prize winner. Evaluator may use a variety of methods to map the numbers to player file 116. For example, evaluator 106 may read a number associated with each record of player file 116 and select the records associated with random numbers 210, 212, and 214. Alternatively, evaluator 106 may treat random numbers 210, 212, and 214 as index values to the winning records of player file 116. For example, if random number generator 204 generates random number 210 equal to “75”, evaluator may select the “75th” record in player file 116. In various embodiments, evaluator 106 may use any suitable method of mapping random numbers 210, 212, and 214 on to player file 116 to selected winners. Once winner file 116 has been generated, evaluator 206 communicates winner file to client device 104.
Regardless of how player file 116 is generated, each record 350, 352, 354 of player file 116 contains sufficient information for client device 104 to associate a specific player with a corresponding record 350, based on additional information maintained by client device 104. The records of player file 116 may include only a player number or other identifying information that is later mapped onto a list of players by client device 102.
As illustrated by
Authentication server 106 generates authentication certificate 126 which is digitally signed and indicates the time that game server 102 received parameter hash 118 and player hash 120. The time indicated on authentication certificate 126 may be any combination of time or date information. Authentication server 106 stores parameter hash 118 and player hash 120 in authentication database 122. Authentication server 106 then communicates authentication certificate 126 to game server 102.
Game server 102 stores authentication certificate 126 in memory 130 in case authentication of game results is needed. Memory 130 can comprise any collection and arrangement of volatile or non-volatile, local or remote devices suitable for storing data, for example, random access memory (RAM) devices, read only memory (ROM) devices, magnetic storage devices, optical storage devices, or any other suitable data storage devices.
Additionally, game server 102 may provide challenger 190 a copy of the hash function associated with the challenged game or may inform challenger 190 of a publicly-available hash function that was used to generate the original parameter hash 118 and player hash 120. Challenger 190 then generates contested parameter hash 141 and contested player hash 143 from contested parameter file 140 and contested player file 142, respectively.
Challenger 190 requests a copy of the parameter hash and player hash stored by authentication server 106 when the game was conducted, authenticated parameter hash 144 and authenticated player hash 146. Authentication server 106 retrieves authenticated parameter hash 144 and authenticated player hash 146 from authentication database 122 and communicates authenticated parameter hash 144 and authenticated player hash 146 to challenger 190.
Challenger 190 compares contested parameter hash 141 to authenticated parameter hash 144 and contested player hash 143 to authenticated player hash 146. If contested parameter hash 141 and contested player hash 143 are identical to authenticated parameter hash 144 and authenticated player hash 146 respectively and the time on contested authentication certificate 145 is before the time of the designated seed event in contested parameter file 140, then challenger knows that contested parameter file 140 and contested player hash 142 have been unchanged since being sent to authentication server 106. More importantly, challenger 190 knows that neither game sponsor 160 nor game operator 150 altered contested parameter file 140 or contested player file 142 after the seed event occurred to obtain fraudulent results.
Alternatively, the comparison may be done by trusted third party 170. In a particular embodiment, challenger 190 generates contested parameter hash 141 and contested parameter hash 143. Challenger 190 indicates to trusted third party 170 the game challenger 190 is challenging and communicates contested parameter hash 141 and contested parameter hash 143 to trusted third party 170. Trusted third party 170 compares contested parameter hash 141 and contested parameter hash 143 with the authenticated parameter hash 144 and authenticated parameter hash 146, respectively, that are associated with the designated game in authentication database 122. Trusted third party 170 will then indicate to challenger 190 whether contested parameter hash 141 and contested parameter hash 143 are identical to authenticated parameter hash 144 and authenticated parameter hash 146, respectively.
Following authentication of contested parameter file 140 and contested parameter file 142, challenger 190 generates a list of winners, authenticated winner file 149. To do this, challenger 190 uses the outcome of the seed event, random number generator 204, and other parameters included in contested parameter file 140 to select a winner from contested player file 142. If authenticated winner file 149 generated by challenger 190 matches contested winner file 147, then the results of the contested game have been verified.
Game server 102 converts parameter file 114 and player file 116 into parameter hash 118 and player hash 120 respectively at step 360. At step 370, game server 102 communicates parameter hash 118 and player hash 120 to authentication server 106 to be stored in authentication database 122. At step 380, game server 102 receives from authentication server 106 an authentication certificate 126 indicating the time that authentication server 106 received parameter hash 118 and player hash 120. Game server 102 stores authentication certificate 126.
At step 390, the seed event occurs and game server 102 receives numeric outcomes 111, 112, and 113. Seed generator 202 processes numeric outcomes 111, 112, and 113 to generate seed 208 and communicates seed 208 to random number generator 204 at step 400. Random number generator 204 generates first random number 210 at step 410. Using parameter file 114, random number generator 204 determines whether additional random numbers are needed at step 420. If so, random number generator 204 iteratively generates additional random numbers, e.g. second random number 212 and third random number 214, by using generated first random number 210 and successive generated numbers as inputs at step 430.
After all needed random numbers are generated, evaluator 206 uses random numbers 210, 212, and 214 to select winners from the player file 116 based on the contents of the parameter file 114 in step 440. Evaluator 206 selects the indicated number of winners for each of the desired prize levels. Evaluator 206 stores the results in a winner file at step 450. Game server 102 communicates the winner file 128 to client device 104 in step 460.
Challenger 190 verifies at step 530 whether the receipt time indicated in authentication certificate 126 precede occurrence of the seed event identified in parameter file 114. If not, results are not valid at step 540. If authentication preceded the seed event, challenger 190 converts parameter file 114 and player file 116 into parameter hash 118 and player hash 120 respectively at step 550.
At step 560, challenger 190 obtains authenticated parameter hash 144 and authenticated player hash 146 from authentication server 106. At step 570, challenger 190 compares contested parameter hash 141 with authenticated parameter hash 144 and contested player hash 143 with authenticated player hash 146 to determine whether contested parameter hash 141 and contested player hash 143 are identical to the authenticated parameter hash 144 and authenticated player hash 146, respectively. If not, parameter file 114 or player file 116 has been altered and the game results are not valid as shown at step 580.
If contested parameter hash 141 and contested player hash 143 are identical to authenticated parameter hash 144 and authenticated player hash 146, respectively, challenger 190 obtains numeric outcomes 111, 112, and 113 of the seed events at step 590. Challenger 190 uses the formatting procedure indicated in contested parameter file 140 to create seed 208 from numeric outcomes 111, 112, and 113 at step 600. Challenger 190 generates random numbers 210, 212, and 214 using the specified random number generator 204 at step 610. Challenger 190 maps random numbers 210, 212, and 214 onto contested player file 116 to generate authenticated winner file 149 at step 620. At step 630, challenger 190 compares the authenticated winner file 149 to the contested winner file 145 to verify the original results were authentic. Authentication results are shown at step 640 and 650.
Although the present invention has been described with several embodiments, a myriad of changes, variations, alterations, transformations, and modifications may be suggested to one skilled in the art, and it is intended that the present invention encompass such changes, variations, alterations, transformations, and modifications as fall within the scope of the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
4157829 | Goldman et al. | Jun 1979 | A |
4527798 | Siekierski et al. | Jul 1985 | A |
4582324 | Koza et al. | Apr 1986 | A |
4832341 | Muller et al. | May 1989 | A |
5042809 | Richardson | Aug 1991 | A |
5112050 | Koza et al. | May 1992 | A |
5282620 | Keesee | Feb 1994 | A |
5286023 | Wood | Feb 1994 | A |
5297206 | Orton | Mar 1994 | A |
5330185 | Wells | Jul 1994 | A |
5380007 | Travis et al. | Jan 1995 | A |
5398932 | Eberhardt et al. | Mar 1995 | A |
5456465 | Durham | Oct 1995 | A |
5505449 | Eberhardt et al. | Apr 1996 | A |
5507489 | Reibel et al. | Apr 1996 | A |
5524035 | Casal et al. | Jun 1996 | A |
5551692 | Pettit et al. | Sep 1996 | A |
5569082 | Kaye | Oct 1996 | A |
5674128 | Holch et al. | Oct 1997 | A |
5709603 | Kaye | Jan 1998 | A |
5797794 | Angell | Aug 1998 | A |
5800269 | Holch et al. | Sep 1998 | A |
5855369 | Lieberman | Jan 1999 | A |
5879234 | Mengual | Mar 1999 | A |
5938200 | Markowicz et al. | Aug 1999 | A |
6030288 | Davis et al. | Feb 2000 | A |
6033308 | Orford et al. | Mar 2000 | A |
6044135 | Katz | Mar 2000 | A |
6080062 | Olson | Jun 2000 | A |
6089982 | Holch et al. | Jul 2000 | A |
6099408 | Schneier et al. | Aug 2000 | A |
6146272 | Walker et al. | Nov 2000 | A |
6152822 | Herbert | Nov 2000 | A |
6165072 | Davis et al. | Dec 2000 | A |
6168521 | Luciano et al. | Jan 2001 | B1 |
6183361 | Cummings et al. | Feb 2001 | B1 |
6254480 | Zach | Jul 2001 | B1 |
6264557 | Schneier et al. | Jul 2001 | B1 |
6277026 | Archer | Aug 2001 | B1 |
6280328 | Holch et al. | Aug 2001 | B1 |
6296569 | Congello, Jr. | Oct 2001 | B1 |
6322446 | Yacenda | Nov 2001 | B1 |
6325716 | Walker et al. | Dec 2001 | B1 |
6331143 | Yoseloff | Dec 2001 | B1 |
20010003098 | Moody | Jun 2001 | A1 |
20010003100 | Yacenda | Jun 2001 | A1 |
20010036853 | Thomas | Nov 2001 | A1 |
20010046891 | Acres | Nov 2001 | A1 |
20020002076 | Schneier et al. | Jan 2002 | A1 |
20020006821 | Park | Jan 2002 | A1 |
20020010015 | Acres | Jan 2002 | A1 |
20020098883 | Packes et al. | Jul 2002 | A1 |
20030047557 | Chen | Mar 2003 | A1 |
20030060262 | Yeend | Mar 2003 | A1 |
20030074557 | Vatanen | Apr 2003 | A1 |