Nym Incentivized Testnet and Reputation System

Nov 26, 2020 · 6 min read

Earlier this week we released the Nym incentivized testnet v0.9.1 (please read the full release notes here) with a new network monitor to measure mix nodes performance that feeds into a reputation score.

In this post we will describe what makes up a node performance and subsequently its reputation, as well as the vision going forward.

To recap, until now the incentives for running a mix node, or mix mining rewards, were being distributed to node operators equally and purely based on having a node be online, regardless of how many packets they mixed. From this release however, rewards are distributed proportional to the reputation score that a mix node gains during an epoch (currently weekly for those using a Liquid address or monthly for everyone else). Factors such as uptime, number of mixed packets, and also dropped packets all contribute to the reputation of a node.

Image for post
Image for post

What is reputation, why do we need it?

Well, in Nym’s decentralized network the point of the reputation score is to have a mechanism that allows;

  1. better performing nodes to be distinguished and picked up by the network for the next round
  2. when delegation (staking) kicks into gear, participants can vouch for a node’s reputation by delegating tokens to them and obtaining a portion of their rewards. Nym is not a “proof of stake” network, we use the term ‘stake’ as a proxy for reputation tokens that can be transferred to other nodes.

Let’s dig deeper into details and explain the above points;

The Nym network is designed as a client-server architecture. Where clients or users send and receive anonymous data packets and mix nodes are responsible for mixing user packets and provide privacy for them. Node operators in this architecture are incentivized to run on a set of well-maintained decentralized servers to reliably provide high quality of service (QoS) to hundreds of thousands of users at any time in return for rewards.

At the time of writing this post there are 1362 mix nodes in Nym network. While this is a great achievement and kudos to our community for making Nym the fastest growing privacy network and the largest mixnet out there, we should not forget that the quantity of nodes, although essential to a decentralized network, is not the only criteria that makes a good anonymity network. We need not just quantity, but high quality nodes.

For the Nym mixnet to provide privacy for the users, the size of the network (number of nodes) should be proportional to the amount of traffic that goes into it. For comparison sake, let’s say the Nym mixnet is a public transport system, where instead of packets there are passengers and instead of nodes there are buses. With too many buses in circulation and too few passengers, there will be too much waste in the network. On the other hand with too many passengers and too few buses there will be delays and dissatisfactions.

Now in this network if you also want to be private, then all the passengers should disguise the same way, just like Nym Sphinx packets, and there will always be a sweet spot between the number of identical looking passengers in the network and the buses they fill such that they can not easily be traced and de-anonymised. With too many buses, each passenger will take a separate bus (and so won’t “mix” with other passengers), and can be de-anonymized even if all the passengers wear the same disguise.

The reputation score and rewards are the mechanism to regulate the number of nodes so the sweet spot in the network is achieved. When traffic is low the extra nodes with lower reputation are put on standby and when traffic is high rewards are there to encourage more nodes to join the network. This mechanism design allows the Nym network to dynamically meet the demand for privacy.

In future releases, reputation will be calculated by a more complex verifiable proof of mixing algorithm where rewards are paid out in a new kind of proof of work where the work done by a node is a useful computation to provision privacy (“mixing”) to the users. Right now, the network simply sends through measurement packets regularly and measures if they are mixed or dropped — Nym is a proof of work network, where the work is mixing, not mining.

So while Nym is a proof of work system and not a proof of stake system, there are some features from systems newer than Bitcoin that we plan to experiment with. In the future, token holders can “vote” for other mix nodes with their tokens to signal that the token holder believes the node will have a good reputation , where the amount of “staked” tokens serves as a way to quantify the reputation. This allows participants whose node goes offline or are not able to run a node by themselves to endorse others and so participate in Nym.

Have in mind that Nym has no trusted parties, anyone can become a validator, gateway or mix node as long as they provide capacity to the network with adequate QoS. Since there has been an overwhelming number of mix nodes, we plan to experiment on seeing if participants should “stake” tokens to become part of the Nym network, but are rewarded proportionally to their work and not their stake. Stake is only used to ensure that they are incentivized to provide a high QoS; nodes that provide a poor service are not rewarded. Over time, mix nodes will be rewarded proportional to the amount of bandwidth capacity that they provision to users.

A tokenized reputation with an initial “stake” also prevents sybil attacks where adversaries cheaply introduce a large number of corrupt nodes to abuse the network. At the end of each round malicious nodes’ stakes are slashed and they are removed from the network.

It’s important Nym remains open and fair just like Bitcoin, so we are working on a mechanism to allow nodes that have no reputation to join, after a period of testing, and gain reputation, as we want the network to be fair and fairly reward nodes that do mixing. Lastly we are also working on similar mechanisms for validators and gateways, although the majority of computational power in a mixnet should be focussed on mixing!

One thing that node operators should keep in mind is that the reward mechanism in the mainnet will be designed such that it rewards a node with higher capacity and better QoS more than multiple nodes with mediocre or low QoS. Reputation score and therefore the rewards for the former will be much higher and it will have better chances of being kept in the network for the next rounds.

The above was a very high level explanation of Nym incentives and reputation mechanism. Technical details on how mix nodes performance and reputation is measured via proof of mixing will be accessible in Nym whitepaper. For now measurement packets sent by the network that are successfully passed by a node to the next one will increase the node’s reputation score by 3 and if they are dropped reduces it by 2. That is so nodes which currently do not support IPv6 traffic would not lose reputation, but gain it at a slower rate than nodes which are capable of forwarding both IPv4 and IPv6. In the next major release we expect all nodes to support both formats. For now a node needs 100 reputation score gained via measurement packets before it can start mixing and should always always have the latest version of Nym installed.

As we approach maninnet and as mix nodes in the network adapt to better and better QoS, the measurements will get more complicated taking into account more factors.


Building the next generation of privacy infrastructure

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store