Greetings to all Dfinance supporters!
We are happy to inform you that the latest Dfinance testnet release introduced staking and delegation to the network. This is a very significant step forward for the network consensus and we are very excited about this release.
A quick explanation for the uninitiated with what consensus and staking are: all blockchains rely on a consensus protocol that helps to secure the network and allows the validation of transactions in that blockchain. The consensus mechanism runs on the blockchain nodes (devices that hold a synchronized copy of the blockchain and, in most cases, also process transactions). The consensus mechanism makes sure that nodes are synchronized with each other and it also defines the rules of how nodes decide which transactions are legitimate and are added to the blockchain. There are a number of such consensus mechanisms, such as Proof of Work (the consensus used in the Bitcoin network), Proof of Stake (PoS), Delegated Proof of Stake (DPoS), and more.
Dfinance is based on Tendermint, a Proof of Stake (PoS) consensus algorithm developed by the Cosmos team. In PoS networks, coin holders secure the blockchain by staking or by delegating. Tendermint also features BFT (Byzantine fault tolerance) which is the ability to tolerate network nodes that are failing in arbitrary ways, including malicious nodes.
Delegation is sort of a software contract engagement between a coin owner and a validator. The coin owner agrees to stake his coins under the name, reputation, and performance of said validator, in return for eligibility to earn rewards. The validator on the other hand usually takes a small cut from the earned rewards in order to pay for the node resources (costs, time, monitoring, etc). The same coins can only be delegated once, so if you have 100 coins you cannot delegate 100 coins to validator A and 100 coins to validator B (but you can do 50-50).
Okay, so what’s staking?
Staking is an integral part of the PoS consensus. In order to secure the network (and in order to gain additional coins from inflation and/or network fees), coin holders put their coins at risk (stake) either by running a node or by delegating to a trusted node. Either way, the coins are locked and remain under the control of the protocol. If the node is under-performing or if it performs malicious actions, the coins associated with this node are partially (or fully) destroyed, or locked for a long period of time.
What are the Dfinance penalties for misbehaving validators?
The current Dfinance testnet penalizes validators for missing blocks with a 1% stake slash and the validator will be “jailed” - meaning that the validator no longer participates in the consensus process until it manually requests to be released. The jailing mechanism is in place in order to prevent continuous punishment of unintentional misbehaviour - for example if the 3rd party cloud computing provider encounters some issue which leads to the validator losing internet access thus becoming unavailable. Double signing on the other hand is considered a very malicious action which is punishable by 5% stake slashing.
To prevent financial loss and in order to be eligible for rewards, validator nodes and those that delegate to validator nodes are incentivized to run high-performance nodes, refrain from conducting malicious activities and safeguard against other malicious nodes. This way, “good” validators are rewarded by the network through inflation (the higher the stake, the higher the reward) and “bad” validators are punished.
So, can anyone run a node and verify transactions?
Yes and no. Anyone can run a validator, but that is not enough. A certain amount of voting power (the total accumulated self stake + delegated coins) is required in order for a validator to be eligible to verify transactions and earn rewards. Usually, only the top X voting power validators get to produce rewards. We say X because the number of active validators depends on the network - for example, Dfinance currently has a maximum of 31 active validators.
Others may also take part in the process of validating new transactions and earn rewards by delegating their assets to one or more of the active validators. If you lack assets to become an active validator, make sure to carefully choose a reliable node to delegate your coins to.
We hope that this brief introduction will help you get the general idea of the staking process in Dfinance. Soon, we will publish a full step-by-step guide that will explain how to become a validator, delegate your assets, and get rewards. Please subscribe to our newsletter and follow us on our social channels! Stay tuned!