Next: , Previous: , Up: Top   [Contents][Index]

3 Examples

The following examples explain most of the steps that are necessary to create a secure and verifiable card game with LibTMCG. We consider an application with five permanent players (denoted by P_0, P_1, P_2, P_3, and P_4) and a regular deck of 52 different cards. For convenience only the more efficient card encoding scheme of Barnett and Smart [BS03] is described. Additionally, we complete our exposition with code fragments which show the application of the fast shuffle verification protocol due to Groth [Gr05, Gr10] with an interactive or even non-interactive instantiation of the zero-knowledge proofs. On modern computers this approach achieves good real world performance and simultaneously keeps the cheating probability negligible.

Throughout the remaining pages we assume that all players are pairwise connected by authenticated communication channels. These channels are organized in input resp. output streams, where input_stream[i] resp. output_stream[i] denote the corresponding std::istream resp. std::ostream instance for the communication with player P_i.13



We assume that the players are ordered in a natural way such that we can use an uniform nomenclature.