HIP-16: Enforce a 6.4% max key per shard limit for each validator

Hey Tom,

Thank you for your input, you make great points that we should consider.

From reading some of your comments, I just want to make sure you fully understand how Max Keys Per Shard affects things, so I will explain here to hopefully help everyone understand it better.

This proposal will help with decentralization in several ways:

-First it will stop one or more large validators with many keys on one shard from going offline and causing consensus to stop. Currently this is a problem that can occur. This proposal forces large validators to spin up new nodes(servers) and split their keys between those servers on different shards, this will slightly help decentralize by not having so many keys signing on one server.

-Second it will make it more difficult for validators to work together to act maliciously towards the network. As noted in one example above if we are going by our current 900 external keys, as a rough estimate 4.8% keys per shard which is around 10 keys cap per shard, takes 8 validators to jeopardize the network.
Currently the network is vulnerable to a malicious attack from potentially one or a couple large validators. (though we all agree it is unlikely, we have to change that fact)

-Third it may help with decentralization as noted in the topic, by allowing Harmony to release the last of their keys to public validators. (Though this might not happen just from this one proposal passing)

What limiting the BLS keys per shard really does in this proposal is causes a large validator with more than around 10 or 15 keys(depending on which % passes) to split their keys over to new nodes(servers) on different shards. There are 4 shards currently 0, 1, 2, 3. Each validator can have (for example) at 4.8% of the keys for each shard which is 10 keys per shard, that is 40 keys total split between 4 shards.

Each server will run on each different shard with those 10 keys, so they will need to run 4 servers total now to get 40 keys instead of potentially one server on one shard with 40+ keys.

This change depending on the percent chosen may not limit the total amount that can be delegated to a validator and it does not cause them to have to start a new validator from scratch and start out unelected.

Lets say at 900 external keys we are able to pass 4.8% and get 40 keys total. with an estimate of 40 keys x 5 Million ONE staked per key. The validator can have 200 Million Harmony total on their validator. At 6.4% a validator can have a total of 280 Million ONE.

When they drop the last 100 keys and we get to 1000 external keys the numbers get higher. At 4.8% it will be 240 Million per validator and 6.4% will be 320 Million per validator.

The level of decentralization of which you speak, will not be achieved by limiting BLS keys per shard unless they drop the % per shard down far below 4.8%.

The way to achieve getting 1000 validators online and fully decentralize is by getting delegates to somehow spread their stake across many validators so that there are no validators with such disproportionate amounts of ONE delegated to their servers.

How we achieve that is a different topic of discussion.

For example in a previous post I posed a mathematical question asking how in the long run we could sustain 1000 validators profitably, with no caps at all on how much a validator can have delegated to them. This is just one of the many things that I said:

1 Like