Owner: @Marcin Pawlowski @Frederico Teixeira
Reviewers: 🟨@Frederico Teixeira 🟨@Mehmet 🟨@Alexander Mozeika 🟨@Youngjoon Lee 🟨@Álvaro Castro-Castilla 🟨@Daniel Kashepava
Introduction
The objective of the Economical Incentivization Tier design is to define a mechanism that motivates nodes to execute the logic of the Blend protocol. We target nodes that are “lazy” - that is, nodes that do not have enough economic “motivation” to follow the protocol. Therefore, they refrain from making any actions that are not directly beneficial to them. To address this problem, we introduce a mechanism that measures the activity of each node and the overall performance of the network. Based on these two parameters, we calculate the reward for each node.
Throughout this document, we refer to two types of nodes: edge and core nodes. Both types of nodes are Nomos validator nodes, which means that they participate in the consensus. A core node is a node that has declared its desire to participate as a Blend node for the current epoch via a process described in the Service Declaration Protocol Specification (SDP). An edge node is a node that is not a core node. By default, “node” in this document refers to a core node, and an edge node is explicitly referred to as such*.*
Overview
A lazy node is a node that is not motivated to follow the protocol due to a lack of incentives. In simple terms, a lazy node will not work until it gets paid. Therefore, we need to motivate the following set of protocol actions:
- Message generation: a node must be motivated to generate messages according to the protocol, where generation means that a new message is created which is not the outcome of the processing. It is especially important for cover messages. Data messages already incentivize the node which is generating them, since they include a block proposal and it rewards the sender of the message directly through the consensus-defined rewarding mechanism.
- Message relaying: a node must be motivated to relay every received message, where relaying means that a node forwards all messages that it received to its neighbors in order to deliver messages to their next destinations (blend nodes).
- Message processing: a node must be motivated to process every received message, where processing means that a node has processed (decapsulated and delayed) the message.
- Message broadcasting: a node must be motivated to broadcast any data message it processed, where broadcasting means that a node sends the processed message to the Nomos network broadcasting channel.
We address the above motivations in a following manner:
- Message (cover) generation is motivated by the node’s individual need for privacy.
- The node must generate and emit cover messages to keep itself private. Otherwise, it will lose the protection given by the protocol.
- Message processing is motivated by calculating a reward as a node’s activity function.
- The node collects message-unique information (blending tokens); the number of tokens defines the value of a reward, which is proportional to the contribution of the whole network.
- The node must collect a threshold of tokens to be eligible for a reward. This protects honest nodes from losing rewards due to inactive (or adversarial) nodes not processing messages.
- Message relaying is motivated by monitoring the connection quality with the node by its neighbors.
- The node must relay messages according to a network-defined limit. Otherwise, the neighbors will close the connection with the node. This will lead to a network-level isolation of that node, and if the node is isolated, it will not receive any messages to process, so it will earn no rewards.
- The node must relay processed messages. Otherwise, the node that generated the message will learn that and will stop addressing messages to the relaying node.
- Message broadcasting is motivated by adding up to a base reward.
- The node must broadcast the message (block proposal). The sum of fees included in the message are added to the pool of rewards. Otherwise, the fees are not added to the pool.
<aside>
💡
There is a subtle distinction between the broadcasting and relaying motivation logic.
- The broadcasting action is motivated by the fact that each broadcasted block is contributing to the reward pool $\mathbf F$.
- The relaying action is motivated by a fear of losing a reward. Which impacts the node’s activity $\mathcal A$.
- The reward is calculated as a multiplication of both $\mathcal R=\mathcal A⋅\mathbf F$.
Therefore, the nuance between such a distinction is with the “direction” of the motivation. For broadcasting, it is positive (earning), and for relaying, it is negative (losing).
</aside>
- Messaging abuse is limited by a message quota construction.
- The quota limits message generation, and that helps maintain network health and enable fair reward calculation.
- This is achieved by limiting the number of unique encryption keys which can be used for message generation. That is, processing a single message consumes a number of keys, which effectively limits the number of messages that can be processed by the network.
Action |
Mechanism |
Motivator |
Generation |
Privacy |
Negative — fear of losing privacy |
Relaying |
Network Isolation |
Negative — fear of losing reward |
Processing |
Tokens Collection |
Positive — promise of a reward |
Broadcasting |
Block Fees |
Positive — increasing value of a reward |
Protocol