We are happy to release a new version of our Pollen testnet v0.5.5. After introducing Mana in our testnet a couple of weeks ago, we are thrilled to start using it with two of the Coordicide modules: consensus (FPC) and autopeering. As you probably can imagine, this is a very important step for us and for the upcoming “Nectar” stage of the Coordinator-free, fully decentralized version of IOTA. With your help, we can tune some of the parameters to find a desirable trade-off between performance and security of the network.
The full list of changes include:
- Integrate Mana with FPC
- Integrate Mana with the Autopeering
- Add several FPC optimizations
- Add dRNG diagnostic API
- Simplify memory usage of dashboard and align to Grafana
- Add a chart for stored, solidifier, scheduler and booker MPS
- Update to latest hive.go
As for the previous release, this version bump resets the network as well as the Tangle, and all the balances and tokenized assets.
Mana in FPC
The Fast Probabilistic Consensus (FPC) protocol is used as part of the consensus mechanism in the Coordicide solution, and you can find a more detailed description in the FPC blogpost. So far this consensus module has equally treated the opinions of every node, however this offers no protection against Sybil attacks, where adversaries run hundreds or even thousands of nodes, to disrupt the consensus. With the integration of Mana instead, nodes will form their quorum by selecting nodes to be queried proportionally to their Mana.
This integration is a first significant step to test our mana system as a sybil protection and reputation system in a testnet environment. We expect some interesting results coming out of this implementation since we also introduced several experimental improvements to the protocol that were brought forward by both internal as well as peer-reviewed research.
Mana in Autopeering
In order for the network to work efficiently and for the nodes to be kept up-to-date about the ledger state, nodes exchange information, such as messages and transactions, with each other. Each node establishes a communication channel with a small subset of nodes (i.e., neighbors) via a process called peering. Such a process must be resilient against Eclipse attacks: if all of a node’s neighbors are controlled by an attacker, then the attacker has complete control over the node’s view of the Tangle. For more information about the autopeering module you can refer to our blog posts: Autopeering Part 1 and Part 2.
To prevent/limit sybil-based attacks, the autopeering makes use of Mana: arbitrary nodes with no mana can be created, but there is a limit as to how many nodes can be created with a certain amount of Mana. Specifically it becomes prohibitively difficult for an attacker to produce a lot of high Mana nodes.
At its core, the autopeering module uses a screening process called Mana rank, that selects a subset from all the known nodes based on their Mana similarity. That means, nodes with similar Mana will be more likely to become neighbors.
By introducing Mana to the Autopeering module we will be able to leverage on the Pollen testnet to investigate what parameters are secure and stable for the network graph, and what the effects are to the network. If we consider the consensus Mana distribution in the current Pollen network, we can expect some interesting topologies dependent on how the Mana rank parameters are selected, and this can educate and feed back to our research efforts. For example, the figure below shows the change in network topology when decreasing the R-parameter, which determines how separated in the network space high-Mana nodes are from low-Mana nodes.
In the coming weeks, the team will focus on integrating Mana with the rest of the modules: Congestion control, Finality (approval weight), Reorg and dRNG. As the last milestones before Nectar, we will introduce Snapshots and Timestamp voting. Once these are finished, Nectar will be ready to launch to the public.
We would like to thank our entire community for their help and support. As always, we welcome your comments and questions either here on Medium or in the #tanglemath channel on our Discord. You can also join in the #goshimmer-discussion on Discord.