This implementation of Liar's Dice uses a Mental Poker protocol to guarantee that all clients are playing by the rules. This enables the clients to police each other: you can be sure your opponent is playing fairly, even if you don't trust them or the server. The server simply manages the connection between players.
Theoretically, the game could be played without a server at all, provided the clients had some other way of communicating. However, I was unable to find a suitable open P2P chat client, so I was forced to write a server as well. I was able to delegate matchmaking to the server, and this significantly relaxed the requirements of the commitment schema without sacrificing the verifiable fairness of the game.