Created on 22nd June 2025
•
AntiCheat software is modern spyware that's shipped along most competitive online games. anticheat is meant to detect cheating attempts and ban the players by collecting user telemetry and sending it to a 3rd party server.
Well, by this definition there's no difference between spyware and anticheat engines.
Effectively, all it does is extract signatures out of your memory and scan them against a known blacklist of signatures that are related to hacks.
We can do better than that! and we have the tools to do so.
Introducing, ZK-AntiCheat the first of a kind privacy preserving anticheat engine.
Basically, it generates a merkle tree out of the memory and compares it against the whitlisted required values in zero knowledge circuit running on a mpc.Afterwards the mpc publishes a proof on the aztec chain for verification of fair gameplay.
Finally, upon each new proof we generate a recursive proof along with previous state to aggregate all the proof into one, which implies we can verify the entire duration of the gameplay by verifying a single proof which is perfect for this use case.
This product is quite helpful in the case of speed-running highscores in order to validate that the players are legitimate and aren't cheating their way through it or using a custom implementation.
Dealing with large amounts of data in the noirlang programming language is a tedious task. I addressed this issue by splitting the merkle tree into chunks and verifying each of them individually and recursively generating a proof against that. for dealing with it.
Another issue is that the proofs takes a long time to be generated so in order to optimize it, I introduced a state machine mechanism where we effectively prune the branches that don't change and just publish a proof of inclusion for that. Then we compare the changed blocks against each other.
Tracks Applied (4)
Aztec
Arbitrum
Xion
Technologies used