How we increased the decentralization of HBBFT with a dPoS based node election mechanics
HBBFT is an amazingly performant asynchronous leaderless consensus model, but on its own it doesn’t guarantee decentralization. Read on to find out how DMD4 leverages the delegated Proof-of-Stake model to create one of the most decentralized blockchains out there.
What makes HBBFT so fast & efficient — and why it wasn’t enough for DMDv4
HBBFT, or Honey Badger Byzantine Fault Tolerant consensus algorithm, is very different from PoW and PoS, in that it’s cooperative, not competitive. In PoW networks like Bitcoin and Ethereum 1.0, miners obviously compete for the right to add a block, and that means a huge waste of resources — plus a long wait until the necessary number of confirmations are received.
In PoS blockchains, there is no wasteful mining, but whoever has the largest stake will also have the highest chance of adding a new block, so the ‘fattest’ nodes (usually staking pools) earn statistically more rewards — and grow even faster. In those systems that feature voting, this also means more influence over the system. For example, recent research found that in Cosmos, Kava, and Tezos the top 10 validators have more than 40% voting power — a very disturbing result.
HBBFT (created in 2016) solves the resource-wasting and speed issues. Its consensus is leaderless (every node can propose transactions) and asynchronous (there’s no set block time), and block finality is instant. However, HBBFT in itself doesn’t ensure decentralization: there is a maximum of 20–30 static validator nodes, and in theory, you could even run it with just one node.
dPoS + HBBFT: a power combo for 100% decentralization
When we began work on DMDv4, we quickly understood that HBBFT was the way to go to maximize transaction throughput and reliability (rather than the PoS + Masternodes model used in DMDv3). However, we needed a way to ensure that no single node or group would gain control over the network. The answer was POSDAO — a decentralized autonomous organization framework. It was developed by the same team that wrote a code library based on the original HBBFT research paper. We made a few further tweaks to increase decentralization even further, and here’s the result:
— Random selection of validators. At the start of every 12-hour epoch, the system randomly selects up to 25 validators from the pool. The chances to get selected depend on how many coins are staked on them. Thus, the most trusted nodes will have a statistical advantage.
— Rewards are shared between a validator and their delegates. In DMDv4, you need to stake at least 10,000 DMD to become a candidate. Other users can stake their DMD coins on you, and if you are chosen as a validator for the next block, your stakers will receive up to 70% of the resulting reward. This is a strong incentive for all users to participate in the delegation.
— No more than 50,000 DMD per candidate. This staking limit comprises both the candidate’s own stake and all the coins staked on them by other users. This solves the issue of disproportionately large nodes hogging all the rewards, the way it happens in Tezos or Cosmos. In DMDv4, nobody can buy their way in and push out the smaller validators, and even those with 10,000 coins have a good chance of getting selected.
— Large candidate pools. The original POSDAO implementation allows only 19 candidates and validators, which is too few, in our opinion. In DMDv4, there can be a maximum of 438 candidates, since the total number of DMD coins is 4.38 million and the minimum stake to be a candidate is 10,000 DMD (4,380,000/10,000=438). We expect the average number to be around 75. In each epoch, the system will pick up to 25 validators.
— Equal reward distribution. Each validator should receive an equal share of the block reward, no matter how many coins each of them has staked. Thus, a node with 10,000 DMD will earn as much as someone with 50,000 if they are both selected as validators in the same epoch. Actually, a smaller candidate can even end up with a larger personal reward if their own share in their stake (vs their delegates’ share) is relatively high.
— Every user has an influence over decentralization. The 50,000 DMD limit rule also takes care of an important psychological bias effect: users tend to stake on the largest nodes, believing that they should be the ‘best’ somehow. But in DMDv4, you can’t stake on a node that already has 50,000 coins, so the users are forced to pick smaller candidates. Users can even consciously stake coins on smaller candidates to increase the level of equality within the system. Plus, it’s in every DMD holder’s interest to pick a stable and trustworthy candidate, because the staker’s reward depends on it.
In fact, DMDv4 offers the first mainnet-ready integration of the HBBFT library with dPOS and an Open Ethereum node client — quite an achievement!
Hopefully, this short introduction will give you a rough idea of how DMDv4 works and why it’s really one of the most decentralized blockchain projects in the industry. To learn more, read our White Paper — or join our official Telegram community and ask us any questions.