Cryptographic cryptid protocols: How to play cryptid with cheaters
Abstract
Cryptid is a board game in which the goal is to be the first
player to locate the cryptid, a legendary creature, on a map. Each player
knows a secret clue as to which cell on the map contains the cryptid.
Players take it in turns to ask each other if the cryptid could be on a
given cell according to their clue, until one of them guesses the cryptid
cell. This game is great fun, but completely loses its interest if one of the
players cheats by answering the questions incorrectly. For example, if a
player answers negatively on the cryptid cell, the game continues for a
long time until all the cells have been tested, and ends without a winner.
We provide cryptographic protocols to prevent cheating in Cryptid. The
main idea is to use encryption to commit the players’ clues, enabling them
to show that they are answering correctly in accordance with their clue
using zero-knowledge proofs. We give a security model which captures
soundness (a player cannot cheat) and confidentiality (the protocol does
not leak more information than the players’ answers about their clues),
and prove the security of our protocols in this model. We also analyze
the practical efficiency of our protocols, based on an implementation of
the main algorithms in Rust. Finally, we extend our protocols to ensure
that the game designer has correctly constructed the cryptid games, i.e.,
that the clues are well formed and converge on at least one cell.
Origin | Files produced by the author(s) |
---|