A commenter on my last post mentioned that although the explanation of CypherPoker’s cryptography was accessible it was altogether too long; a five-year-old’s attention span probably won’t get them through the material.
That’s fine, I replied, because understanding the underlying math is not necessary to understand how CypherPoker works. Here are a series of sketches I produced a while ago that will hopefully prove this point:
Bob and Alice are going to play a game of Texas Hold’em poker. Bob will be the initial dealer.
Bob has a deck of 52 cards, 52 identical lock boxes, 52 identical locks, and a key that opens the locks.
Bob places one card from the deck into each box…
…applies one lock to each box…and shuffles them.
Next Bob sends the locked and shuffled boxes to Alice.
Alice also has 52 identical locks and a key to open them. She applies these locks to the boxes.
Alice also shuffles the boxes so that now neither she nor Bob know which cards are in which box.
Bob now selects 2 boxes containing his private/hole cards and asks Alice to remove her locks from his selections.
Alice removes her locks and gives her singly-locked boxes to Bob.
Bob removes his locks from the 2 boxes and takes out the cards inside. Alice doesn’t know what private/hole cards Bob now has.
Now Alice selects 2 locked boxes containing her private/hole cards and asks Bob to remove his locks from her selections.
Bob removes his locks and gives the singly-locked boxes to Alice.
Alice removes her locks from the 2 boxes and takes out the cards inside. Bob doesn’t know what private/hole cards Alice now has.
Now that Bob and Alice have their private/hole cards they proceed to bet until they’re ready to see the flop cards.
Bob now selects 2 locked boxes containing the flop cards, removes his locks, and gives the boxes to Alice who also removes her locks. The cards in the unlocked boxes are the public/community flop cards.
After another round of betting the next public/community card is selected. Alice may also choose the locked boxes containing these cards (public/community) and she does so now. After removing her lock she gives the box back to Bob who removes his lock to reveal the card.
After one final round of betting a final locked box is selected containing the river card. Both Bob and Alice remove their locks to reveal the card, compare hands, and declare a winner.
You’ll note that additional services such as those provided by Ethereum are not included here since they are not part of the core CypherPoker code but rather are used by the game to hold wagers and to verify the game. The Ethereum integration topic would make for a great follow-up post but what I’ve described so far describes the bulk of CypherPoker game play. And no math 🙂