In my past few posts, I’ve talked about some of the core technologies behind Nym, the privacy project I work on.
How are we planning to apply these technologies? What’s our plan for 2020?
Broadly speaking, it looks like this:
- alpha - mixnet + centralised directory
- beta - mixnet + decentralized directory + mixmining
- full testnet - incentivised decentralized mixnet + credentials + service providers
- hardening - game of mixology and hardening of the system
- mainnet - the fully running system.
The mixnet alpha is what we’re running now. It launched at the end of 2019, at the Chaos Communications Congress. It provides rudimentary traffic-mixing capabilities. It is currently tied together by a centralised server (https://directory.nymtech.net), which isn’t super desirable but allowed us to bootstrap the system into existence.
The next big step is a beta, due out in the next few weeks. This will eliminate the centralised directory server in favour of our decentralised validators (which communicate using the wonderful Tendermint consensus protocol). Building the decentralised directory service will also force us to start building some essential elements of the mixmining system (see below). This work is already under way and progressing well.
Once that’s running, we will rebuild the Coconut credentials system in Rust and have a full testnet. We already have a Go version of Coconut but we want to get everything in building from a single, common codebase to make things easier on ourselves. We’re shooting to get that running, and have the full incentives system completed, sometime in the summer.
At that point we will have completed most of the main system build, but there will still be a lot of hardening to do on the code, docs, and incentives. We will need to start testing out the full system, and see if there are any viable economic attacks, code vulnerabilities, or rough edges we can smooth out.
Cosmos did something similar which they dubbed “game of stakes”. We consider ours to be a “game of mixes”, where we test out the dynamics of the system and ensure that it’ll reach some final equilibrium, or whether it spins out of control and needs some adjustments.
The hardening time period will also give privacy application developers the chance to build their apps against a set of stable, well-documented APIs.
We’ll pull the trigger on mainnet when we are confident that it’s the responsible thing to do, whether that’s at the end of 2020 or into early 2021.
If you’re interested in what we’re working on right now / next week / next month, you can see the active roadmap including a breakdown of tasks in the Nym Github project.
Over the next couple of weeks, I’ll blog a bit more about the technical history of Nym, with a post on our Rust mixnet and how it evolved from earlier efforts by different members of the Nym team.
Once I’ve explained a bit about where we’ve been and the choices we’ve made so far, I’ll introduce mixmining, a way of rewarding useful work to protect user privacy. I’ll answer a hard question: how can we measure useful privacy work when our system is designed to counter even very sophisticated surveillance?
To all of the people who have downloaded and run our code so far: thank you, it means a lot to us to be working on a project that we believe in, and to see our belief reflected in a community that’s forming around growing around us.