I-the proposal
Replace the current reward formula:
with:
The latest formula simply means that we limit the possibility for a pool to receive delegated stake proportionally to their pledge.
II- Rational
The current formula has many critical problems
1-Small pool are disadvantaged over large ones. Proportionally to what they
have we give more to the rich and less to the poors, that is needlessly
unfair. (Matthew effect). ( [1] )
2- We create a very dangerous monopoly, and a cartel of k pools, that when
established will be extremely hard to replace for a newcomer that would need
to invest way more than any of the k pool ever did in the past. And we are
preventing pools to start small and grow progressively. ( [2] , [3] )
3-With this formula the protocol is not properly secured against Sybill attacks:
aĀ°) we encourage everyone to delegate randomly to pools that they
donāt know at all but with higher RoS, and not delegate to a pool
that is operated by someone or an organisation they know directly
or indirectly, which increases chances of Sybill attacks.
bĀ°) we can only guess that the chosen value of a0 will steer pool
operators to have sufficient pledge to avoid Sybill attacks but
we cannot be sure of anything, because thatās only incentives
and not enforcement.
cĀ°) With expected RoS varying from one pool to another, in the long
run bots will appear to automatically delegate for people to make
as much money as possible, it will completely void the whole
point of having people delegate to secure the network in the first
place. Also if a particular bot becomes popular and wildly used
across the network, it will empower its developer for an attack,
since he gets to influence heavily on how to get delegators.
(Reference for delegation bot [4] )
4- The formula makes the system needlessly very complicated to understand for everyone,
and very unpredictable.
The proposed formula does not have any of these problems or any other known problem.
Currently there is no know practical disadvantage of the proposed formula. Some suggested that it would not be technically feasible to use it, but without any convincing evidence from my point of view. I suggest that it is very feasible to do it probably by changing just few lines of code, and we may do a testnet to verify it.