Below you see a FSM representing one game of Texas Hold’em Poker ( see miro board: https://miro.com/app/board/uXjVOaTcQLI=/ )

In the Table, you see a better description of what’s going on.

StateDescriptionTransitions
StartPlayers P[i] agreementAll P[i] check-in → shared secret, defined order, broadcast.
ShuffleP[i]s shuffleAll P[i] shuffle and broadcast.
DealP[i]s know cardsAll P[i]s Ack that know the cards
Bet0Initial Bet with SB, BB1 Player Left → Payout2+ Pi left → Next
FlopShow 3 community cardAll Ack’s (as in Deal)
Bet1Betting round 1 or 2+ P[i] (as in Bet0)
TurnShow 4th community cardAll Ack’s (as in Deal)
Bet2Betting round1 or 2+ P[i] (as in Bet0)
RiverShow last community cardAll Ack’s (as in Deal)
Bet3Betting round1 or 2+ P[i] (as in Bet0)
ShowdownShow private cardsAll Ack’s (as in Deal)
PayoutResults written to LedgerAll P[i]s check-out → result is on-sidechain.

Reusing the results from 2017-899_Kaleidoscope, we add the following

  • The game is played on a channel
  • The players know each other before check-in
  • At check-in the players initialize the data needed for the game, and become active by notifying the others on the channel
  • At checkout the players terminate the session, become inactive, and settle up the outstanding amounts
  • After check-out is possible to initialize a dispute-resolution mechanism
  • The shuffle is done all together by all players in the game
  • After each action, an active player broadcasts a message to the others
  • After receiving a status update all the active players broadcast Acknowledgement to the others.

Betting Round

Below you see the available actions:

  • FOLD: Pi marked inactive and broadcast (FOLD,i) [Pi also need to broadcast decryption of all community cards, but not necessarily decryption of own private cards]
  • CALL: if Pi has enough money send (CALL,i) and update the state, otherwise run the Compensation Procedure
  • (RAISE, r): if Pi has enough money send (RAISE, i, r) and update the state, otherwise run the Compensation Procedure
  • ALL-IN: if conditions apply, send (ALL-IN, i), otherwise run Compensation Procedure
  • CHECK: If it’s the Hand’s first betting round or anyone has bet in the round, run the compensation procedure. Otherwise broadcast (CHECK, i) .

Similar Posts