Liar's Proof
Prove your hand fulfills conditions without reveal
Created on 4th December 2025
•
Liar's Proof
Prove your hand fulfills conditions without reveal
The problem Liar's Proof solves
Privacy in On-Chain Gaming
Traditional on-chain games face a fundamental privacy problem: all game state is publicly visible on the blockchain. This eliminates strategic gameplay, makes games predictable, and prevents classic game mechanics like hidden cards, secret moves, or private information.
Liars Proof solves this by enabling privacy-preserving on-chain games where players can:
- Keep their cards completely hidden from opponents
- Make verifiable claims about hidden information
- Prove statements without revealing underlying data
- Play strategically without information leakage
Zero-Knowledge Proofs for Gaming
The Challenge
How do you verify that a player has a specific card (e.g., "a Heart card with value ≥ 10") without revealing:
- Which exact card they have
- Their entire hand
- Any other private information
Our Solution
Using Zero-Knowledge Proofs, players can:
- Commit to their hand privately (cryptographic hash)
- Claim they fulfill conditions (e.g., "I have a Heart ≥ 10")
- Prove their claim with a ZK proof that verifies:
- The claim is true
- The proof matches their committed hand
- Without revealing the actual cards
Problems Solved:
- ✅ No Cheating: Cryptographic proofs prevent players from lying about their cards
- ✅ No Information Leakage: Opponents learn nothing beyond what you claim
- ✅ Verifiable Fairness: All game logic is on-chain and auditable
- ✅ Trustless: No need for trusted intermediaries or servers
Making On-Chain Games Practical
Before Liars Proof:
- ❌ All game state visible → No strategy possible
- ❌ No hidden information → Can't implement classic game mechanics
With Liars Proof:
- ✅ Private game state → Strategic gameplay possible
- ✅ Verifiable claims → Fair and secure with ZK
- ✅ Hidden information → Classic game mechanics work on-chain
Challenges I ran into
Network Instability & Transaction Failures
The Problem
Working with ZStarknet (a testnet) presented significant challenges:
- Frequent transaction rejections: Transactions would fail unpredictably
The Solution
We implemented robust retry logic and transaction verification:
Key improvements:
- ✅ Automatic retry with up to 20 attempts
- ✅ Transaction verification
- ✅ Better error handling and user feedback
Wallet Integration Challenges
The Problem
Integrating wallets (Ready/Braavos/Controller) with ZStarknet was difficult:
- Network configuration: Users had to manually configure custom RPC endpoints
- Poor UX: Required technical knowledge to set up correctly
The Solution
We built a Guest Wallet that eliminates the need for manual wallet setup:
Features:
- ✅ Auto-generated wallets: Create a Ready wallet with one click
- ✅ Automatic funding: Wallet is funded from an owner account (0.1 Ztf)
- ✅ Auto-deployment: Account contract deployed automatically on first use
- ✅ Persistent storage: Wallet saved in localStorage for returning players
- ✅ Seamless experience: Users can start playing immediately
Impact:
- Zero setup time: Users can play in seconds, not minutes
- Better conversion: No technical barriers to entry
- Fallback option: Even experienced users prefer guest mode for quick testing
Tracks Applied (1)
Cross-Chain Privacy Solutions
Starknet
