A version of Conway's Game of Life using zkGraph to prove off-chain computation through a zkOracle network
Conway's game of life is a cellular automaton known for its beautiful and unpredictable behavior. This is a two-player version of that game, in which players can submit their initial configurations of cells to the board. The computation is run off-chain using Hyper Oracle's zkGraph, which allows developers to write logic in ordinary AssemblyScript code that then gets compiled to a circuit via zkWasm, and send the proof to a zkOracle network. The zkOracle network then publishes a proof that the computation was done correctly; in this case, the proof attests to the fact that the game state was updated correctly, and the correct winner was chosen.
This project is made using HyperOracle's zkGraph. zkGraphs offer a way for developers to write verifiable code, using zkWasm to compile AssemblyScript code to a circuit. Since updating the state of the game board requires a good amount of computation which involves counting neighbors (easy to do in regular code, but hard to do in a circuit), it seemed like the perfect project to showcase the potential of zkGraph.