Poker’s decentralized protocol (solution to poker’s Byzantine general problem)

I’m not fully confident that this needs a new solution, however many players have an issue understanding how decentralized poker works. Here we are going to simply the explanation a bit while using a few assumptions to look at a certain solution to one aspect of the overall understanding of decentralized poker. It may be a big hurdle crossed or may not be, but it solves something I previously could not understand how to solve.

D.poker’s biggest issue players immediately identify in regards to blockchain technology is speed. Bitcoin’s blockchain (and most or all other altcoin blockchains) do not function nearly fast enough to directly play poker on them. If they were fast enough decentralized poker would arise as a result. One partial yet immediate solution to this is to use a decentralized escrow service to hold the players money, while players play with ‘chips’ at their table. We must understand that in light of this, poker has been rendered back to its internet format of text based turn play. So one of our assumptions is that we have a decentralized (and therefore trust-able) escrow service, which is something we do in fact have access to today. This solves one certain aspect yet creates or leaves open another one. We can now somewhat play poker over a messaging service that is easily quick enough to facilitate play. This is another assumption (that we have a “secure” messaging service, which we have and I will “secure” it later in this writing) yet leaves open what I call poker’s Byzantine general problem.

The PBGP is simply that players can still lie or argue about what moves they choose or intended to choose amongst their table, for example if hero decides to call but the table colludes and says “No, you folded”. It might also be the same issue if villain tells hero they call, but the table later says “No, he folded”. The same issues arise from certain perfectly timed disconnection issues, as in villain says “You didn’t choose your move” or “You disconnected”. In short, poker NEEDS a blockchain.

I think we can integrate both the sms system with the blockchain system to solve a large majority of legitimate concerns players have about how D.poker might work. As a side note we should understand that with an escrow, such a blockchain really only NEEDS to exist for the period of time until the escrow pays out the correct players. This won’t be useful in this paper but might be important for the creation and implementation of the type of blockchain needed . The blockchain then is another assumption, and the creation and sustaining of it is something I would address with in another writing.

So players enter into an escrow agreement, in that they agree to pay the winner based on the escrows analysis that the game was played properly in logical sequence as per the rules and flow of poker by comparing the given ‘winners’ with the blockchain hisotry. Players hand in their public/private keys (generated per agreements, meaning they can change them for different games etc.) to the escrows and are given an “entry token” to the table.

The simplest way to understand the following explanation is to understand that poker has only a hero and a villain (or villains). We simply need to protect the hero from a team of colludes, and that the maximum team for this problem would be the entire rest of the table. If we want to be altruistic we can simply afterwards name the villain the hero and vice versa and run the same solution from the “new” hero’s perspective.

Keeping in mind, poker is simply text based turn play, hero hashes his action with his private key onto the blockchain while simultaneously sending it and their line (might not need the line in human readable form but I say it for ease of the reader) to the table via sms chat group. When villain ‘hears’ of hero’s action via sms they make their decision in the form of “since you did x, I will do y”. If villain’s decision is not proper in response to what hero wrote on the blockchain then hero can take the dispute to the escrow, which can then read the truth on the blockchain. When villain makes a decision based on hero’s agreed up action, villain must hash the last agreed upon decision with their own private key write it to the blockchain and send the hash and their line via sms.

This way if their is any cheating in the form of PBGP, at the end of the game (or any point in it), the escrow service can check the integrity of the entire game by reading it off the blockchain. If the blockchain doesn’t coincide with the actual game (ie the game play winner is not necessarily the blockchain winner) then the player that ‘lied’ does not receive any winnings, they lose their integrity ratings (another writings), and either the payouts for the mtt/sng move to the next players in line, or the rest of the cash game players involved in the hand split the “cheater’s” money.

Its seems to the writer that although it might at this time be a clunky solution bringing together a blockchain, an escrow, and an sms service, the procedure for all of this solves one of the biggest issues developers face for the game-blockchain speed. What is interesting is that the sms service does not necessarily need to be decentralized, since their cannot be a great profit from hacking it in the form of swaying outcomes or changing decisions in hands. The best that could be hoped would be to shut down decentralized poker for the period of time it takes players to find a new service. In this we might understand many of the ‘attacks’ on the decentralized game are not the same issue or worry that a network like bitcoin might have, since their is not actually money on the table. You cannot steal from the players at the table, but rather you can only disrupt the game, and the only entities that stand to ‘gain’ from this are today’s currently ‘trusted’ centralized sites.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s