What we're learning from extending Downstream with composable gameplay and secrets [Part 3]
Or: composable games are really cool and really hard
(If you haven’t read Parts 1 and 2, go read those first!)
But baking secrets into a world is also uniquely challenging
At Tonk our mission is aligned with the virtues of decentralisation. However, in the existing prototype of Tonk Attack, we chose to discover the auxiliary implications of hidden information as fast as possible. This is despite the fact that we are spending our Gitcoin grant carrying out practical cryptographic testing to decentralise Tonk Attack. TL;DR - it’s achievable, but it’s hard, and requires that we wield more adventurous cryptography than ZK alone.
For this reason, we “cheated” in our implementation of hidden information by relying on centralisation, as a temporary measure that helps us iterate on game design and efficiently discover the shape of the cryptographic problem for eventual decentralisation.
After a few conversations, we realised this itself was an enlightening showcase of the extent to which autonomous worlds may be extended by centralised subcomponents, without necessarily violating the autonomy of the world itself. This is analogous to how centralised exchanges interface with Ethereum. Indeed, there are some affordances of centralisation, such as mutability, that give composable game state an air of mortality, which can, on occasion, enrich our lived experience of worlds.
Going further, this experiment gifted us with powerful lessons as to the composition of a privacy-enabled version of Hexwood. We stumbled into a key insight while implementing Tonk Attack - that, to bring hidden information in-game, only a sliver of state needs to exist outside of Playmint’s appchain. This means (at least for Tonk Attack) it’s possible to create both a centralised and decentralised implementation, without disrupting Downstream’s existing data model. It also means that we can be really resource-efficient when relying on environments optimised for private state such as ZKVMs, and decentralised private computation schemes more generally (such as Aztec).
In our decentralised model, state moves between public and private environments relatively slowly. From this experiment, we now understand in detail how private and public state can work in parallel and only require periodic or post-gameplay synchronisations. Doing so would require Playmint to expose an API for proof verification and WASM in the plugin environment, but beyond that relies on nothing more.
Furthermore, in this particular context, when we say “decentralised”, we really “credibly persistent”. Our decentralised approach leverages, in part, a central MACI-inspired operator. MACI was originally proposed by Vitalik Buterin to solve the issue of bribing in voting applications. You can see here an elegant articulation of how this approach achieves reduced trust assumptions and the the ability for new operators to emerge, despite being “centralised” on paper.
Here we give a brief overview of the approach with enough detail to sensibly fill in all the missing pieces.
Setup
The game setup follows the approach mentioned in our blog post on deniability and Mental Mafia. We need to assign the roles of either Brainwashed Unit or Sentient Unit without trusting a central party and with only the player discovering their assigned role. Here we’ll give a simplified form of that approach. For a more detailed description you may read the original Geometry post.
[Note - we’ve found Substack to be infinitely better than Notion at sharing content like this but it has some terrible formatting for LaTeX, so you’ll find the mathsy part of this post here]
What now and what next?
We’re excited to share more about Tonk Attack at Devconnect at the Autonomous Worlds Assembly. It’s going to be an exceptionally busy time in Istanbul, but come find us or the Playmint team, and perhaps we can take 15 minutes to do a playtest with you in person!
🙂 Thanks to grjte for their joint work with us on zkMafia and Nicolas Mohnblatt for assisting us on the application of Mental Poker to social deduction games - and of course, thanks to the whole Playmint team!