How It Works
Components

How It Works

In a nutshell DRM Mina uses a authorization system that challenges the users to prove that they have the right to play the game by changing a Mina state that only the a previously registered device can change. This is done by using zk-proofs of Mina.

DRM Mina contains 2 main contracts:

  1. GameToken - This contract allow creators to publish their games, customize them and controls the sales of games.

  2. DRM - This contract keep device information (their hash of course just for verify proofs) of users that have bought game, and their device's last session informations.

And some other zkPrograms:

  1. DeviceSession - This program is used to create a one time session for a device to play a game. Takes device informations as private inputs and sessionIds as public inputs. Creates a proof for changing the last session of the device to the new session determined by the game itself.

  2. DeviceIdentifier - This program is used to create a proof for a device to be registered. Takes device informations as private input, runs some checks and creates a proof for the device to be registered to the DRM contract.

  3. BundledDeviceSession - This program is used to create a proof that settles at most 4 device sessions at once. Takes 1 device session proof and recursively creates a proof that can be settled to the DRM contract.