The Harmony project aims to solve security and scalability issues found in other blockchains with the power of sharding (creation of multiple groups of validators and allowing them to process transaction concurrently). The developing team claims in their Whitepaper that this blockchain is fully scalable, offers secure and consistent sharding, utilizes an efficient and fast consensus algorithm with an adaptive threshold.
The Harmony blockchain utilizes a Fast Byzantine Fault Tolerance (FBFT) consensus protocol as an improvement on Practical Byzantine Fault Tolerance (PBFT). In a PBFT consensus mechanism, a leading node is elected to broadcast a proposal of transactions to be added in the next block to all other nodes (called validators). The validating nodes broadcast their votes on the proposal to everyone on the network to ensure fair consensus. Harmony’s FBFT is an improvement on the latter as it is linearly scalable. Instead of validating nodes receiving multiple votes from each other, all validating nodes votes are broadcasted to the leader in a multi-signature fashion to avoid corruption. The leading node, in turn, broadcasts the final outcome to all validator nodes. This method reduces friction in the blockchain and consequently achieves lower block times and higher throughput. The network also leverages the power of the “RaptorQ” fountain code to speed up the broadcasting process.
Sharding is a concept that was introduced to blockchains a few years ago in an attempt to increase scalability. There are many theoretical methods of sharding proposed in the space. The most recognized one is used by Zilliqa, transactions are assigned to different shards to process. However, all transactions on the blockchain must be kept in the records of all nodes.
The Harmony blockchain utilizes a Proof-of-Stake (PoS) based “state sharding” where each shard keeps a record of one section of the blockchain transactions. In this model, corruption from a node is probable over time. For that reason, Harmony uses a randomness algorithm that reshuffles nodes in the shards at a fixed time interval (called epoch) inspired by Omniledger. Randomness-based sharding is “unpredictable, unbiaseable, verifiable and scalable” according to the developing team.
The Distributed Randomness Generation (DRG) function is assigned to the “beacon” chain which is also a shard but carries out the mentioned function as well as the acceptance of stakes.
In order to become a validator on the network, one must stake a certain amount of tokens called “ONE” for the Harmony blockchain. The voting shares assigned to each participant depend on the number of tokens staked. The “token-voting shares” conversion rate is determined by an algorithm. Every voting share allows a participant to cast one vote on the network. At the start of a new epoch, the voting shares of new validators are randomly assigned to shards. Consensus is achieved in a shard, based on what the majority of the votes agreed on at the end of the voting process.
Image C/O Harmony