TVL - An easily manipulated metric and a horrible choice for granting Governance voting power
TL;DR: I’ve artificially inflated TVL on Tinyman’s testnet by 20M USD with an investment of 10k USD and 3.6 ALGO. The inflation value is arbitrary. Assuming the calculation of TVL is the same for testnet and mainnet (on which I haven’t found any documentation, but didn’t find any indication of them being different), this could be easily reproduced on mainnet. Since DefiLlama fetches Tinyman’s TVL directly from Tinyman, one could have easily overtaken the Governance if M1 of G3 were to pass.
Note: this is not a bug of Tinyman but of the TVL metric itself.
Details of the manipulation:
The procedure is simple and anyone can do it. It is not limited to Tinyman but any DEX.
I have created two assets T1 and T2, each with 10^19 tokens. This cost me 0.2 ALGO.
Then I created 3 pools: T1-USDC, T2-USDC and T1-T2. A total cost of 3 ALGO + 0.3 ALGO for opting-in to each LP token.
I have priced both of T1 and T2 at 0.0001 USDC (for a FDMC of 10^15 USDC for each one), and added an equivalent of 10k USDC liquidity to pools T1-USDC and T2-USDC.
To the pool T1-T2 I have added 10^11 of each token, “locking” an equivalent of 20M USDC. This number could easily be much, much larger.
For all of this, I only needed 10k USDC and have a stake of 3.6 ALGO.
Note: I had to invest an equivalent of 10k USDC liquidity in each of the pools T1-USDC and T2-USDC because otherwise Tinyman considers the liquidity of the assets too low to take into account the liquidity of T1-T2 pool.
Discussion:
First, I would like to address in advance some counter measures against this “bug” people might come up with.
“Ideas”:
-
Increase the 10k USDC liquidity limit of an asset to count towards TVL.
Ok, but to what amount? 100k, 1M, 10M USDC? If this were done, a lot (more) of ASAs would fall out towards counting of TVL, minimizing the advocated shift of Governance power into the retail hands and further raising the barrier of entry for new projects.
Who would decide this amount? Currently, it seems to be the DEX.
Even if the limit were set high, e.g. to 1M, it is still a low barrier for a whale to come and overtake the Governance. -
Include only “verified” ASAs towards counting of TVL.
Verified by whom? The Foundation? This would lead to centralization.
Should there be a Governance vote to approve each asset? I think majority of Governors would not want to take the responsibility of advocating for any project since it might still turn out to be a scam/rug pull.
Even if we were to agree on the “verified” ASAs to include, e.g. Tether could simply issue 1B of USDT on Algorand, create a simple staking contract where only they could participate, and get the majority in Governance. -
Include only assets with sufficient activity towards counting of TVL.
Since transactions on Algorand are dirt cheap, one could easily generate multiple accounts to seemingly generate large amounts of activity, generate LPs on multiple DEXs, etc.
Since one owns all liquidity, one would not lose (much) on fees. There is also no danger of someone else getting on any arbitrage opportunities that could result during such an activity because you can simply create the asset with freeze enabled by default. -
Include only assets that are traded also on big exchanges.
Again, a lot of ASAs would fall out towards counting of TVL, minimizing the advocated shift of Governance power into the retail hands and creating a barrier of entry for new projects.
This way, we would also indirectly give exchanges a centralized point of affecting Algorand Governance through which tokens they allow to trade.
Even if we agree on this, a large entity like Tether could still manipulate the system as explained above.
The point is, the TVL metric is a bad one and easily manipulated, thus it would be dangerous to grant Governance voting power based on it. It is widely used in crypto just because it is easy to calculate. One of its underlying issues is that value is in essence highly subjective and difficult to agree upon (who can say that the tokens I created I do not really value at 1B USDC).
However, all users of Algorand inherently agree on value of one thing - Algorand. That is why it is necessary to base Governance voting power purely based on one’s ALGO stake alone. As in my example of inflating the TVL, it would be possible to get the majority in Algorand Governance with just a minimal ALGO stake. Grating Governance voting power to non-ALGO assets also essentially minimizes the value of Algorand.
Please, show me that I am wrong about the possibility of manipulation of TVL, and that the Foundation has thought of this but just did not elaborate on it in detail in the proposed Governance measure nor during the recent Community All Hands event when addressing e.g. this question. Why I am skeptical of this is the statement that there does not seem to be a risk of DeFi overtaking the Governance, and the following one about how such an issue would be addressed if it were to occur - that any modification would have to be approved by the current Governance structure (which could have already be overtaken by then, never wanting to give up the power).