
zkArcade
zkArcade is a platform that allows users to play zk (zero knowledge) games and mint an NFT as proof that they have won.
Demo
About
The problem it solves ## The Problem zkArcade Solves ### Lowering Costs Online games are costly, with developers spending millions on centralized servers for storage and security. **Zero-Knowledge Proofs (ZKPs)** reduce costs by enabling encryption and verification **without exposing private data**. This **lowers expenses, reduces server load, and improves security**. ### Better Privacy & Security P2P gaming eliminates centralized servers but introduces cheating risks. Without a trusted validator, players can **manipulate game data** for unfair advantages. zkArcade **uses ZKPs to verify in-game actions securely**, making P2P gaming **fair, safe, and resistant to exploits**, crucial for **e-sports and high-stakes competitions**. ### Scaling to More Players Many multiplayer games struggle with scalability due to high server load. P2P games also face performance limits. zkArcade **uses ZKPs to verify moves instead of transferring raw data**, reducing lag and **supporting more concurrent players**. ### Fairer & Smarter Gameplay - **FPS Games** – Matchmaking based on skill **without exposing private stats**, preventing system manipulation. - **Gambling & Casino** – **Verifiable randomness** ensures fair play without revealing game mechanics. - **Puzzle & Strategy Games** – Players can **prove achievements without exposing strategies**, keeping leaderboards fair. ### Why It Matters zkArcade **enhances privacy, cuts costs, prevents cheating, and improves multiplayer experiences**. By solving gaming’s biggest challenges, zkArcade is setting **a new standard for Web3 gaming**.
How it's made
Challenges we ran into The groth16 pallet used in zkVerify supports only upto to 16 public inputs. Most games have way more input and so it was challenging trying to submit complicated proofs with more than 16 inputs. I generated verifier contracts which were used to verify the complex proofs which required more than 16 inputs