Harmony
Last updated
Last updated
Protocol time | Human readable time | |
---|---|---|
Delegators can redelegate to another validator without waiting for the entire unbonding period. Delegators can submit an unstaking transaction, wait for the epoch to end and then submit a delegating transaction with a new validator.
Transaction fees. All transaction fees on the protocol are burned.
The protocol has a sharded blockchain architecture. It has one main chain (shard 0) and 3 other chains that work together. The main chain’s epoch is used to sync the staking state across all the chains. Validators are randomly assigned to each shard to participate in consensus.
Validator election.
A single validator can have multiple consensus votes by adding multiple BLS keys to its address.
Validators compete to take up the top 900 slots, where each slot represents a single BLS key.
A validator submits a bid for these slots by adding or reducing the number of BLS keys associated to its address. The validator’s stake is evenly split amongst the submitted BLS keys. For example, if validator Bob has 100 ONE stake and submits 4 BLS keys, they are submitting a bid of 25 ONE for each slot in the upcoming validator election.
Effective stake and voting power.
After the BLS keys for the top 900 slots are elected, the protocol calculates the median stake from the bid of these top 900 slots. 85% of the median stake and 115% of the median stake form the bottom and upper thresholds of the elected BLS keys. Any BLS key with a stake higher than the upper threshold will have an effective stake of 115% of the median. Any BLS key with a stake lower than the bottom threshold will have an effective stake of 85% of the median. BLS keys with a bid between these thresholds will have their bids become their effective stake.
Voting power of a BLS key is calculated based on the calculated effective stake. This voting power is used to conduct consensus votes and form consensus on blocks.
See the following example. Let’s assume that all validators here have been elected. The median value of the bids is 35. The bottom threshold is 29.75 and the upper threshold is 40.25.
Rewards come from newly issued tokens.
Fixed issuance per block. The protocol issues 7 ONE per block across all 4 shards, so in total 28 ONE is issued every 2 seconds.
Factors that impact realized rewards.
Validator performance. A validator only earns rewards on the blocks where they submit consensus votes.
Commissions.
Penalty. If a validator has failed to sign 2/3 of blocks in a given epoch, the validator will be considered offline and will be kicked out of the validator set at the end of the epoch. The validator will not be included in the upcoming validator election and will need to manually signal to the network to become eligible to participate in future validator elections.
Slashing. If a validator signs two blocks at the same height, the validator will get slashed and indefinitely kicked out of the active validator set. The validator and its delegators stake will be deducted by at least 2% and up to their total stake share. For example, let’s assume validator Alice and its delegators has 100 ONE stake and the entire network has 1,000 ONE effective stake. In the event Alice gets slashed, Alice and its delegators will have their stake deducted by 10% (100 / 1,000). Half of the deducted tokens will be burned and the other half will be distributed to the reporter.
The protocol has a maximum of 900 slots each epoch. However, a single validator can take up multiple slots.
Harmony documentation: https://docs.harmony.one/home/
Harmony explorer: https://staking.harmony.one/validators/mainnet
Validator | Bid | Effective stake | Voting power |
---|---|---|---|
Minimum stake amount
✅
100 ONE
Partial stake changes
❌
Partial reward withdrawal
❌
Compounding
❌
Penalty
✅
Offline
Slashing
✅
Equivocation - At least 2% of stake
A
10 ONE
29.75 ONE
17.00%
B
30 ONE
30 ONE
17.14%
C
35 ONE
35 ONE
20.00%
D
40 ONE
40 ONE
22.86%
E
60 ONE
40.25 ONE
23.00%
Total validator cap
✅
900 slots
Validator requirements
✅
10,000 ONE
Protocol time 1
Block
2 seconds
Protocol time 2
Epoch (= 32,768 blocks)
18.2 hours
First reward delay
1 epoch
18.2 hours
Reward frequency
Every epoch
18.2 hours
Unbonding period
7 epochs
5.3 days