What it is
Pawnshake is a small protocol for chess games with a clock (bullet, blitz, rapid, classical). Every move and every command (resign, offer a draw, take back, abort, flag) is a record the player signs with a device key and sends directly to the opponent. The records of both players form one chain. Anyone holding that chain can replay and check the whole game from the signatures alone.
Why bother
One hop per move
A move goes player to player. A server, when there is one, is told beside the move, never in front of it.
Cheating leaves evidence
Sending two different moves for one turn means two signatures for one number. That pair is a fork, and the signer loses.
Games without internet
Play over Bluetooth or a LAN. Upload later: the chain proves every move, and the server saves it like any game.
Three ways to play
The game's genesis fixes how much of a referee (the arbiter) takes part. The records are the same in all three.
Offline
Both devices keep the clock from signed timestamps and check each other live. Someone hops off: canceled, still saved.
peer clocks 1arbiter checkpointsHybrid
Peer clocks, plus server checkpoints whenever a phone is online, never waited on. Leaving loses only on proof.
peer clocksevidence 2arbiter fullOnline
The server timestamps every record through anchors and keeps the official clock. Lag is forgiven from a bounded quota.
anchored clocks