Any blockchain operates by achieving consensus on which transactions to add to the chain, and in what order. Different blockchains have different mechanisms for achieving that consensus, but key to all of them is the idea that the consensus mechanism should have a diverse array of participants — if a broad group agrees, then the consensus is probably pretty robust. These participating entities are called nodes.
In the ndau blockchain, not every node is part of the consensus — only some of them are validator nodes. Nodes compete for the right to become validator nodes.
Let’s look at some of the models used by other blockchains:
- Proof of Work (PoW) is a mechanism where nodes are not differentiated — all nodes compete in what is effectively a race to pick a winning lottery ticket. Every few minutes, someone wins, and the faster you are at picking tickets, the more likely you are to be the winner. Winners are heavily rewarded. This process uses massive amounts of energy; the waste and cost inherent in the process makes the system secure because it makes it very expensive to attack it. PoW combines consensus and security and node rewards into one system.
- Proof of Stake (PoS) is a system where operating a node requires stake, which is effectively a bond that the node operator posts in order to guarantee that they will run the node in a way that benefits the network as a whole. If the node operator is found to be cheating or unreliable with respect to uptime, voting, and otherwise failing to run the node responsibly, some or all of the stake may be forfeited. In a PoS system, the stake is used to impose a potentially high cost on nodes for bad behavior, but the actual cost for well-behaved node operators is the cost of capital — they must commit the stake and it cannot be used for other things. PoS systems usually use the stake as a way of selecting node operators.
- Delegated Proof of Stake (DPoS) is a variant of PoS systems where the users of the system can contribute capital in some way that can add to the stake of a node operator. This allows a broader range of participation in selecting node operators. A user can offer capital without being required to run a full node.
ndau’s consensus mechanism is a variant of DPoS. It works like this:
- Staking an ndau account commits the balance of the account and specifies a stake target, which is an account address. This is a way of expressing a belief that the owner of the target account is going to operate a node well.
- Someone who wants to be a node operator creates an ndau account and stakes the value in that account to the node registration stake rules account. This locks up that account balance and is known as self-stake. There is a minimum self-stake required in order to operate a node.
- Anyone else who wants to support the operations of that node can stake an account and specify the stake target to be the node operator’s account. This is known as co-staking.
- Once a node has met the minimum requirements, it can become an active node.
- Nodes are ranked according to a variety of factors using a published metric. This metric includes stake, but it also includes many other factors. Examples might include, but are not limited to:
- Amount of self-stake and co-stake (to promote broad support of nodes)
- Age of the node and duration of commitment (to promote long-term support of the ndau system)
- Various measures of node distribution (to promote decentralization)
- Various measures of uptime performance (to promote nodes being run well)
Some active nodes are selected to become validator nodes based on their resiliency score. In addition, all active nodes (whether or not they are validator nodes) are occasionally rewarded for their participation in the network. These rewards are taken from transaction fees and a portion of EAI reserved for network operations.
The key result is that more highly ranked nodes are more likely to be selected as validator nodes and are more likely to be rewarded for their participation in the network.
The rewards and ranking rules will change over time to promote the best behavior from node operators, and to make sure that running nodes in a way that’s good for the ndau network is profitable — and that running nodes badly is not.