Home

Awesome

Snarky Sudoku

Zero-knowledge Sudoku using zk-SNARKs

Circuit

The circom circuit takes two signals as input, a puzzle grid that is a public signal, and a private signal containing your solution grid. It verifies your solution matches the public unsolved grid, and meets all the constraints necessary for a valid sudoku solution. It can be broken down into the following steps roughly:

Interesting circuit notes:

Frontend client

Simple Next.js app using the compiled wasm circuit for generating and verifying proofs.

It consists of two pages:

Developer setup

Use node v14 for compilation of the circuit. You can use yarn circom:dev and yarn circom:prod in the root of the repo to do so. To start the frontend client locally, use yarn dev in the /client folder.

This project was made as part of ETH Summer.