The problem with centralization is much bigger than most people seem to understand.
I want to go over a few key points that I mentioned in Discord and in voice chats, and hopefully make it more clear to everyone reading this pre-proposal. After that, I’ll go over the rest of the discussion here and try to address some of the topics that were discussed, in the order they were written. So brace yourselves, it’s gonna be one hell of a wall of text incoming.
Problem numero uno - Delegators herd mentality in going with "big number"
This is a huge issue imo and has been risen a few times over the course of the last few weeks, but none seem to understand the impact it has on the network.
I got a few examples coming.
First example, P2P:
- Stake Owned: 35M
- Delegated Stake: 528M
- Allocates Stake: 564M
- Percentage of allocated stake vs entire network’s stake: 23%
_
- Total number of Delegators in the network: 5268
- P2P’s number of delegators: 1987
- This represents 37% of ALL the people that delegated in the network.
Further issues:
- They’re not active in the community
- Never participated in Forum discussions or in Discord discussions
- The only time they were active in the Discord was when they got called out they nuked their rewards
- Their devOp in Discord has only ~50 messages all of them being questions of how the protocol works
- They didn’t upgrade their infrastructure software for almost a full month, leading to some of their rewards being wiped out.
- They tried to sweep it under the rug with a very flawed and inaccurate RCA
- I tried to challenge their claims, never got any response back
- To mitigate the above, they set their cuts at 0% for two weeks, causing the number of delegators they had to grow from 1400 to almost 2000
If we’re going to have people that have no clue what they’re doing and don’t care about neither the community nor the protocol, leading the network, then I’m afraid to think what’s going to happen in the future, when thousands of applications, developers and companies will depend on their services.
Second example, our own nodes at StakeSquid:
We currently have a total number of 5 indexer nodes running on Mainnet.
We didn’t publicly advertise them as being ours, we barely mentioned their existence in chats, and never bragged about how much rewards they generated, yadda yadda.
The problem is that, inspite the fact we didn’t mention them much, the two in the list, sorted by Indexer Rewards and marked in yellow, have 98 and 89 delegators respectively. You might ask why is that a problem?
Let me compare it to the Indexer Node address that I personally have listed and advertised everywhere in the community:
Now you might ask what’s the difference between them?
Lower OWNED STAKE. That’s all
The effective cut % is literally identical, at ~10% for all 5 of our nodes.
Conclusion, delegators have the herd mentality of going into “big number” and don’t care about too much else.
Problem numero dos - Insane operational costs will drive the market to the big indexers.
premise
Right now, we only have one subgraph on-chain, and makes everything cheap compared to what’s coming next. The 3% network inflation is distributed first proportional to subgraph signal, and then to allocated stake on individual subgraphs. The hosted service has ~8000+ subgraphs right now.
This means that if you want to have the full number of rewards coming your way (like we have now with only one subgraph) you will HAVE TO allocate towards ALL the subgraphs that have been signalled.
/premise
What does that imply? The allocation costs scale up linearly with every subgraph that has signal on it.
This, in and of itself has other major implications and I’ll go through them all.
First of all, let’s talk about today’s costs of allocations.
- Each allocation costs
~$100
to open, and another ~$100
to close.
- The default number of allocations on each subgraph, is
2
.
- That means for each subgraph, you’ll have to pay
~$400
for a full 28 day cycle (assuming you leave the allocations open for their max allo lifetime).
- THIS IS ONLY FOR ONE SINGLE SUBGRAPH!!!
Each subgraph that is migrated on-chain will most likely have some GRT signalled on it.
In order to grab the whole network inflation, you will have to allocate to ALL of them
- Example:
- Currently there’s only one Subgraph, so the signal doesn’t matter.
- Suddenly, 99 more subgraph are migrated and signal is rebalanced
- The 3% inflation is split proportional to the subgraph signal
- Network has 100 total signal, with 100 subgraphs and 1 signal each (all proportional, for this example)
- This means that the indexers will have to allocate to ALL of the subgraphs that are on-chain if they want to keep their pre-existing baseline APY that they had before the migration happened
What does this mean? It means they’ll have to pay $40,000
USD in gas costs per month only to be able to keep their APY as it was pre-migration. Now, looking at the total number of subgraphs that the Hosted Service has, it’s easy to see that 100 number of migrated subgraphs being hit in the next few months.
Let's now run some numbers, shall we?
The network currently has 2.4b GRT allocated, with another 2b GRT sitting in LockToken Contracts, ready to be staked/delegated throughout the next few months, by various individuals.
For the sake of simplicity, let’s assume the network will stabilize at around ~50% of the total supply staked.
This will bring the network baseline APY to 6%, the math for this is simple, 4th grade math, inversely proportional values:
Again, in order to achieve that 6% APY you need to allocate to ALL the subgraphs that have signal.
Keeping in mind that $400
per subgraph operational cost (~40K USD total for 100 subgraphs x 2 parallelAllocations) that I mentioned above, here are a few calculations based on the protocol numbers, for different scenarios.
These calculations are based on the premise that the said indexer takes FULL advantage of the subgraph signal and allocates proportional to their signal, thus gathering the full 6% baseline network APY
(ie. If there are 100 subgraphs with proportional signal, and he only allocates to 25, he will only have 25% of the 6% baseline APY, meaning 1.5% APY)
The goal of this simulation is to determine the breakeven point for an indexer for different number of subgraphs present on-chain and having signal.
============================================================
SCENARIO 1
Indexer only has the 100,000 GRT minimum Stake and NO delegation
In this scenario, allocating to ONE subgraph cuts his revenue by half
At TWO subgraphs present on-chain, he is below his breakeven point (if you include the infrastructure costs)
If more than two subgraphs have on-chain signal, this indexer goes bust the moment they’re added.
============================================================
SCENARIO 2
Indexer has 100K own stake, and full delegation capacity of 1.6M, and his effective cut% is ~10%
This indexer can only allocate towards 5 subgraphs before he goes below his breakeven point.
Any more than that and he goes out of business.
=============================================================
SCENARIO 3
Indexer has 5M own stake and NO delegation
If there are 100 subgraphs on-chain, this indexer can fully allocate towards ALL of them, and eventually turning about $4.5k in profit, excluding the infrastructure costs.
=============================================================
SCENARIO 4
Big whale indexer profit compared to other indexers
These are P2P’s numbers. At the network parameters mentioned above, they can turn over 600K USD in profit every month even if they allocate towards 200 subgraphs, lol.
=============================================================
Now why is this worrying?
When we get to 100 subgraphs on-chain, it’s simply game over for anyone that doesn’t have at least 5M GRT own stake.
Why? First, due to breakeven costs being GIGANTIC.
Second, due to inability of maintaining the same APY a whale-indexer does, without going bankrupt.
Remember, if you can’t allocate to ALL the subgraphs that have signal, you’re diluting your baseline APY.
Thus, all the small indexers will go out of business as soon as a significant number of subgraphs are added on-chain, and will prefer to delegate towards whale-indexers instead, further driving the centralization of the network, to the point where it turns into the “Hosted Service 2.0”, just not under E&N custody, but under 10 mega-whales custody.
Is that the end goal for the protocol? I honestly hope it isn’t.
For comparison, this simulation is for all the nodes we run at StakeSquid:
5 nodes – Total 13M GRT own stake, 184M delegated stake, ~10% effective cut
Despite the fact that we only have ~2 times less allocated stake than P2P, the operational costs cripple our final turnover by a significant margin. Hence why the OP suggested lowering the delegation capacity and hard capping the delegation. It makes the protocol sybil resistant, as it’s not sustainable to run more than one node.
(Final note: ALL the calculations above are based on the current $1.8 GRT/USD price and an approximate cost of allocation. These numbers will vary, but the above is kind of the best case scenario, to be completely honest)
Problem numero tres - The delegator market is seeking high APY
We’ve seen the dynamics of the delegator market since the network launched, and pretty much everyone want to have as high of an APY as possible.
This problem is in direct relation to the second problem mentioned above.
If an indexer can’t allocate to all the subgraphs that have signal, the said indexer will only be generating a small part of the baseline APY.
His delegators will leave for the mega-whales that can easily sustain allocating to everything, further accelerating the centralization of the network.
Problem numero quatro - Query fees and query traffic distribution
The gateways are distributing traffic based on multiple factors, one of them being the economic security of an indexer.
This economic security comes from the indexer’s own stake, not allocated stake.
Right now, the top 5 indexers own 58.5% of the entire network stake.
Why does this matter? Well, it means that the majority of the traffic will be theirs, if it was to be based only on one single decision basis by the gateway. In reality, it probably won’t be this high though. But this is assuming the network stays at this rate of indexers, and no other mega-whales are joining, which I highly doubt it won’t happen.
Second problem are the query fees.
The team estimates a $0.00001 cost per query.
At 12b queries per month (the current hosted service numbers) that will be equivalent to ~120,000 USD monthly, paid in query fees. At the current GRT/USD prices, that is a little over 66k GRT. Spread between 170 indexers. With the mega-whales having the economic security advantage over the rest of the network.
For query fees to be equal to the inflationary rewards, ~800k GRT per day, we would need 145 billion queries per month. This probably won’t happen any time soon, unless Solana or some other insanely fast blockchain is added to the protocol Mainnet.
(note: numbers above are based on the current price of $1.8 GRT/USD)
Possible solutions for the above mentioned problems
- Move the protocol economics to L2, pronto
- This eliminates the gas price concerns and allows the network to function without small indexers getting BTFO the moment more subgraphs are migrated
- All of the OP mentions
Closing note: I know that you can capitalize on subgraphs that don’t have enough stake-on-signal in order to close the gap between rewards, but that’s not going to last for too long, just how an indexer that offers his own rewards to delegators won’t last either.