Validator Node Logic
Running a validator node needs economic commitment. Nodes in such a high performing system are expected to be rather powerful and connected with high bandwidth, low latency connections. This means, the nodes need to be hosted in a datacenter and enough economic incentive must be provided so that bad behavior can be slashed in a way that it has an impact on the nodes operator.
Also, the protocol itself should take care of punishing participants running nodes on weak machines or slow network connections, so that the problem of system requirements solves itself automatically.
The first iteration of the Morpher-Data-Chain will have a variant of the current post-merge PoS consensus algorithm with parts from the Clique consensus algorithm.
PoS vs PoA Clique
The current PoS algorithm defines 12 second slots and 32 slot epochs. There is one randomly chosen block proposer and a committee of validators.
With PoA clique, there are a number of signers. It has a round-based signer selection, where the in-turn signer is the one who gets to mine the next block and falls back to out-of-turn signers with a slight delay.
Clique does not define any economic penalties upon misbehaving nodes, because signers are generally trusted and voted in as signers.
PoS defines clearer rules around punishing dishonesty as well as inactivity.
Clique consensus is not built for any kind of rewards. PoS is built around the idea that staking will generate a certain yield.
Round based PoS
We propose a version of PoS which takes
- the round based signer selection mostly from clique,
- economic punishment for dishonest nodes from PoS
- proposes no block mining rewards whatsoever, but pays out transaction costs directly
This gives a maximum of <block-gas-limit> gas per block to the validator. As transactions are paid directly in USD denominated, the gas cost must be chosen in a way so that, with average blockchain utilization, the economics of running a validator node must be a net-positive one.
Example: Running a node incurs raw costs of $1500 per month. That means, with
- 10 validators on the network and a
- 1s block mining time (2.6M blocks per month)
- 8M block gas limit, (4M 50% utilization on average)
In other words, transaction costs are
per gas. If a transaction costs 300,000 gas, the transaction would cost $0.000432 and marginally increases with the amount of validators joining the network.
If, instead, a fair staking reward should be given (based on 50% network utilization), e.g. 10% APR and the staking amount is $100,000, 10 stakers (each getting $10k), it needs to generate $100,000 total rewards out of 12 times 2.6M blocks with 4M gas per block, that is
In other words, a 300,000 gas transaction would cost $0.0024039 and it would generate enough annual percentage rate to attract stakers.
Transaction Pool Sorter
The transaction pool in any current implementation of any blockchain node is a gas price auction. This gives very little predictability in terms of usage.
We propose a different In the first iteration the transaction pool will be FIFO. This is currently subject to experimentation and will be discussed in our monthly implementor calls.