[AP1] - zk IP Games 🏅

The main user behaviour we want to prove is that of users creating things that other people can use in a verifiable way, without those people ever seeing the creation. We're building a game to prove this (see long desc).

Challenges

Build on RISC Zero or Integrate RISC Zero into your project

Pool 15,000 USDC

We use RiscZero to generate proofs of the auto battler output, and also use it for a small demo to generate proof of a physics simulator

Project details

The end goal of our project is enable the creation of economically significant IP in a global, trust-less, permission-less manner. Since ZK tech is still nascent, we are developing a low-stakes application, ie a game.

The main user behaviour we want to prove is that of users creating things that other people can use in a verifiable way, without those people ever seeing the creation. It's the opposite of a patent. With a patent, everyone can see it, but no one can use it (enforced by law in the country). With our app, everyone can use the creation, but no one can see it.

The game we're making has 2 basic types of players: car creators and car managers.

  • The car creators have an array of parts they can use to make a car. Each part also has a cost, and so their car is associated with a cost. The configuration of their car is private to them.

  • They play their car in public tracks, eg an uphill one, a straight one, a zig-zag one, and everyone can see the hash of their car and the distance it got in X time

  • The goal of a car creator is to make the best car (goes the farthest for the cheapest cost)

  • Car managers are a different kind of player who play in circuits/races

    • Every week there is a new circuit that is randomly generated

    • The car managers need to pick 3 cars they want to buy and use in these races

    • They also specify at which point in the circuit they want to swap cars

    • Cars stay private to the car creators, but car managers can strategically pick a set by looking at their results in the public tracks

      • They can only use cars that were made before the circuit was released

    • During the actual circuit, a simulation is run of the cars on the circuit

      • Based on how far the manager gets with their cars, they are rewarded

    • This is "career" mode where you have to spend coins to play and win/lose

    • There is also a "R&D" track released that is different from the career track, and where managers can freely test different cars without any cost

    • The set of cars a car manager uses is their IP and is kept private even after the circuit race is done

To keep user creations private, they are stored locally and only sent to the server for the proof generation. The race itself runs in a ZK VM, ie RiscZero's ZK VM. This runs inside of a TEE for now. You could replace this with an MPC network, or use FHE, although these are much more researchy and not easy to productionize.