<aside> 🙂 Eternal Privacy Playgrounds

1 - Why your game needs hidden information

2 - An ontology of hidden information mechanics

3 - An ontology of trustless privacy techniques

4 - Knitting our ontologies together

</aside>

Now that we’ve covered the problem and solution vectors, we can start to build bridges between the crytographic toolbox and concrete hidden information mechanics.

Overall, there are two main approaches to implementing secrets on a blockchain:

  1. If somebody knows the secret (such as a player concealing the contents of their inventory), we can use commit-reveal or ZK.
  2. If nobody knows the secret - if it’s baked into the shared world -we need to generate, hide, store and reveal those secrets using more exotic cryptography and tools. MPC, HE and TEEs allow us to achieve novel results such as programmable fog of war, mystery item fountains and NPCs with hidden psychologies. These amount to a world’s “mystery digital physics”, to which no single party has privileged access.

In recent years, the former has received more attention than the latter, and consequently enjoys a clearer design space. For the latter, we will gesture at some possible answers and research directions, despite the enormous ambiguity of our problem. As we shall see, many implementations require a combination of both.

Overview

Player stats

This is the simplest case, in which Alice’s stats (such as wealth) are concealed. In this case, Alice’s total wealth is stored locally, offchain. To gain entry to the in-world yacht club, Alice submits a proof to doorman Bob that her wealth falls above a particular threshold.

<aside> 🙂 To make the ZK proving system more programmable and generalisable, we could even implement simple ZKVMs, run clientside by Alice, to generate proofs on demand. In the past, we’ve called these specialised ZKVMs “battle servers” because of their ability to facilitate twitchy gameplay and hidden information.

</aside>

Social arrangements (alliances etc.)

Much like private swaps between players, we have a rich toolbox of techniques inherited from DeFi, to implement secret social agreements between players. Whether it’s MACI for private voting, Semaphore for private group membership or just simple commit-reveal and ZK schemes to prove secrets, the scope for hidden group coordination mechanics is relatively well-understood.

Fog of war

Now onto the juicy stuff. Fog of war is the canonical example of implementing secrets baked into the shared world.

Untitled

Dark Forest made significant progress in this regard. In Dark Forest, the map is procedurally generated by players exploring the map. Players identify hashes for each coordinate on a 2D plane, and if the hash has particular properties, the “discovered” / generated terrain also takes on particular properties, according to some probability distribution. For example, if the hash falls within a particular range, we might discover (generate) a particularly rare planet.