Background and Motivation
zkShuffle is our implementation of the Mental Poker scheme, a framework for playing card/board game without physical cards and without a trusted third party. For example, if you build a mental poker framework for a deck of 52 cards, you can almost write any poker games such as Texas Hold'em using only solidity.
For a comprehensive overview, Nicolas Mohnblatt from Geometry Research has a very nice series of articles (part-1, part-2).
However, Geometry Research's implementation uses Starknet curve, and is quite expensive even if we simply replace the Starknet curve using BN254. In this work, we propose a new mental poker design focusing on reducing gas cost on Ethereum so that everyone can play Texas Hold'em and Hearth Stone on Ethereum!
zkShuffle Scheme Overview
At a high level, zkShuffle can distribute and shuffle a deck of cards privately to each individual player. And a player can reveal a single card (or a subset of cards) on her hand when she plays her hand.