COMP Distribution Speeds

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

In order to add some data to compare real borrowing to the suggested changes from @rleshner and @Sirokko, we tried to construct lower bounds on the amount of recursive leverage used. Recursive leverage is somewhat tricky to define, so we instead used a lower bound as a proxy. Before looking at the data, we will first define what recursive borrowing is (and how it is used to maximize COMP rewards) and then describe we computed a proxy.

Recursive Borrowing Queries

A recursive borrower (aiming to maximize COMP yield) will recursively construct an array of collateral quantities (C[0], C[1], ...,), borrow quantities (B[0], B[1], ...,), and transfers between fresh addresses (a[0], a[1], ...) as follows:

Base Case:

C[0] = depositCollateral(address a[0], block height h[0], transaction t[0])
B[0] = borrow(address a[0], block height j[0], transaction s[0])
Transfer(qty=B[0], from=a[0], to=a[1])

Recursive Step (for i in 1, 2, ...):

C[i] = depositCollateral(address a[i], block height h[i], transaction t[i])
B[i] = borrow(address a[1], block height j[1], transaction s[i])
Transfer(qty=B[i], from=a[1], to=a[2])

subject to

∀ i:
    h[i] <= j[i]
    t[i] <= s[i]

Theoretically, in a zero gas fee and infinite recursion world, the maximum leverage that one can get by iterating this infinitely many times is 1/(1-cf) where cf is the collateral factor. One can see this by writing out the geometric series for total quantity Q[i] = C[i]+ B[i] and summing it. For instance, if the collateral factor is 0.75, then this provides at most 4x leverage.

In real life, there are a number of reasons this cannot be iterated infinitely (finite wealth, finite address space, gas fees). But the rate of convergence to the optimal amount is exponentially fast in i (as a geometric series), so this is a reasonable approximation. Creating queries to track all such transfers is a heavy lift, so instead of computing the COMP issued for all recursive steps, we computed wrote a query to compute the recursive borrowed issued for a single step of this iteration. This is a lower bound on the true amount (e.g. Q[0] <= Q[0] + Q[1] + ... since all quantities are non-negative) and provides some insights into the ‘farmer’ users versus the regular user. For brevity, we will refer to this quantity as the 1-step recursive borrowed quantity.

Data

You can explore the data more closely in this notebook and the plot below the signature line. Note that we exclude USDT since it has a collateral factor of zero. We plot both absolute values (in USD) and relative values (e.g. % of a market that is 1-step recursive). It appears that at least 80% of the outstanding DAI borrow amount corresponds to recursive borrows. Moreover, ZRX also has a high percentage of borrow that is recursive borrow, even though the total borrow is low. It’s interesting that BAT had a high percentage of the recursive borrow when the yield farming started, which matches our intuition. We also included the data 7 days before and after 20% COMP reduction proposal executed, and the recursive borrow amount did temporarily drop, but it went back up again due to overall DeFi market growth.

Changes to the existing COMP distributions

Both @rleshner and @Sirokko have reasonable proposals (sans the fact that @Sirokko’s proposal, without modification, will rely on a rather large code change unless with stick with 50/50 distribution). The data we collected does suggest a few further changes that might be reasonable:

  1. Reduce ZRX rewards to zero: Given the high fraction of ZRX 1-step recursive borrowing, it might make sense to reduce ZRX rewards to zero in a future experiment (e.g. once a baseline supply rate / TVL is established)
  2. DAI rewards can be reduced further: One future test should involve seeing if a further reduction of Dai rewards reduces 1-step recursive borrowing.
  3. COMP rewards could be higher: @rleshner’s proposed COMP rewards are a lot higher than @Sirokko’s proposed numbers. One benefit of COMP rewards for COMP lenders is that they effectively provide a staking reward — holders of COMP lock-up their COMP in the pool and receive inflation rewards. This also incentivizes long-term COMP holding, to some extent, as yield can be realized on COMP added to the pool. Growing the COMP pool via COMP rewards seems like a simple (but incomplete) mechanism for rewarding real users vs. farmers who instantly sell.

Barring further feedback from the community, we’re going to propose the suggested changes on Friday, January 8, 2021.

Acknowledgments

@htkao created the notebook cited above
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEEJAuhmVduSEVN8uPKIPJySxksQ8FAl/2W0MACgkQKIPJySxk
sQ+M7w/+KJ7coO9P7lcAlGaWPcNbGcbrr7JBZ6eQwbDWqxltQzvmnEzmM+z7kkM3
+zo9df0693DjE6VY0MZXQ8PCEPxE7aJIU/aS7u99F50VwMncFp1KIpmP2+xfiVVg
zNRliuu0Tz3xK0rp5HWF9q/b5xkrUyHjrs2yWRt4BYDw2VHy9y3dWrftxzV1aa69
5UdBTw4gNMnJeoX94lHme+AXZVW5MfpJNL2QkeHDDjxaR7mNIqpzr8ubkILwSXE6
iubSQRQ5axHlTKJ+vTkL9aNgFIVsiHBzbb0v/ybaSvwtcM5qrm5TNe/V90eDkFR3
P/bnfecwHfbnJZ73I8top7c3oQB5biFBnIjKSz2Lrk0L06E0C8dxBJcNSJxwIWHF
cPe3Cqw0pKr1Vnl6JH74JSNuMKqo6SR3N4+oHreAuTFS0f5WlfYFqL3QNVTmDFTZ
HLU/4Kx7y5AkLCH/Uk0/VYsaRZ3jH4uRU+SwgfxpK6C8CVGC6rsxZKIfa0zsWqFR
GnRDfoYvjWTdvddY0Kuw/KaYOzPQXi69lSUytdgq2iPDYd58owh/Xk8vo83cZnOo
icJA99ZBUFMdvJs6b25YsfIStZqOg94yV3ZwnkCikKVCHl2fclqTbvaKVlEihLSG
70+l2sk27hwrimEq1wjp1W7Vq93hW5VXWR8U2iEE1TfeNcNiQok=
=CD61
-----END PGP SIGNATURE-----

2 Likes

Comp allocation manipulation and adjustments through governance, which is controlled by less than 30 user accounts, as opposed to a systematic adjustment based on supply/demand/utilization seems like a clear reversal of a decentralized financial institution. Comp is resorting to big business tactics and will continue to loose membership growth and decline in wide spread adoption.

3 Likes

Thanks for such a detailed writing, @tarun, it’s appreciated. Let me elaborate a bit on some core principal i believe Compound distribution should follow. Since it was originally stated, the main goal of COMP distribution was to distribute it to users. And while i do like automation in distribution, it happened to be easily manipulated. It allowed to concentate distribution in certain markets, excluding part of the users from distribution pretty much completely. As a side effect, some other users had to follow and utilise leverage in attempt to compete, even if leverage wasn’t even their plan to begin with.

While manual setting through governance might be called by some as inferior method than automation, it’s not nesessary true. As long as rules are clearly defined at shore, and followed after ship sailed it’s not that much different. Thus, i strongly believe, that there should be a bare minimum of daily distribution every market should recieve, regardless of utilisation. I propose that minimum to be 10% of daily distribution spread evenly to every market. (that i believe was what initial automation lacked. If there would be a minimum which coulnd’t be drained out, while other major portion would still redistribute depending on fees, things would shape differently). Yet, it’s not late to introduce that, and i think now is a good opportunity.

This would be my only argument against zeroing ZRX rewards. I see your point, though, and i think it’s good one. It’s good reasoning to do so. Yet, if we agree that there should be a minimum for every market, than that minimum shouldn’t go away, even for a good reason. If there would be a choice, i’d vote No, but i understand reasoning to vote Yes. (full disclosure i don’t have any ZRX in Compound and having or not having COMP rewards for ZRX market would not impact me in any way)

Regarding rewards for COMP market. In my proposal number is much lower than in Robert’s because i haven’t allocated anything above minimum that every market recieve. I’m not in opposition to that though, not at all. If we believe that there should be special initiative for COMP market, it can easily go on top. In a similar way how ETH and WBTC markets got their additional 10% on top.

And now it comes to more important. I suggested 75/25 distribution as i believe that proportion would fit better to Collateral markets like WBTC and ETH, but since uneven split is impossible to implement currently without bigger changes to protocol here i see 2 main options:

Leave distribution as it is and follow with 50/50 split. In that case to achieve additional COMP initiative, suggested by Robert, we just cut slightly into stable coin distributions to get that. I also cut a bit more in USDC and DAI to provide bigger initiative to USDT market. I don’t personally think we should increase USDT rewards higher than they are today, as i still see USDT as a minor market, but if needed, we could indeed cut deeper in USDC and DAI to arrive to same number as Robert suggest. But should we? In that example i left it pretty much unchanged from current number. I’d rather incentevise WBTC and ETH more than incentivise USDT at additional expense of DAI and USDC markets.

ETH       0.0016        0.01955           50%            50%
WBTC      0.0011        0.01955           50%            50%
BAT       0.0000        0.00195           50%            50%
ZRX       0.0013        0.00195           50%            50%
UNI       0.0006        0.00195           50%            50%
USDC      0.0675        0.06005           50%            50%
USDT      0.0057        0.00595           50%            50%
DAI       0.0977        0.06005           50%            50%
COMP      0.0004        0.00500           50%            50%

As an alternative, we can also decrease WBTC and ETH distribution from 10% per market to 5% per market, dumping that saved 10% daily emission back into DAI, USDC markets. Since we already taking away from ETH and WBTC i see no critical difference in cutting some from USDC and DAI and providing that to USDT, to bring it to number, suggested by Robert. Overall result will look much more conservative indeed, as distribution still remain havily concentrated in the stable coins markets.

ETH       0.0016        0.01075           50%            50%
WBTC      0.0011        0.01075           50%            50%
BAT       0.0000        0.00195           50%            50%
ZRX       0.0013        0.00195           50%            50%
UNI       0.0006        0.00195           50%            50%
USDC      0.0675        0.06700           50%            50%
USDT      0.0057        0.00965           50%            50%
DAI       0.0977        0.06700           50%            50%
COMP      0.0004        0.00500           50%            50%

Please, keep in mind, though, that while this distribution arrived to very similar numbers as initially suggested by @rleshner, it’s arrived from the other side. Important part here is having fixed part of distribution. Number for every market here consist actually from 2 parts. It’s a Sum of Fixed part + Incentive part. Fixed part here is 10% of total daily emission (which could be increased in future if governance decides), which is evenly distributed to every market, which is 0.00195 per market. Incentive part varies, ETH and WBTC markets recieve 5% of daily emission each as incentive. COMP market recieve additional 1.7% of emission, USDT get about 4.4% of emission, USDC and DAI got about 37% of daily emission each as incentive.

Now it’s kind of easier to see, that might be over 70% of all daily emission going exclusevly to stable coins isn’t such a great idea of distribution. Maybe it’s worth a try to go with first option, where WBTC and ETH recieve 10% each. I believe both ways are viable in the end. Even while we might see some movements in ETH and WBTC borrow side in attempt for market to capture that extra possible profits from COMP initially introduced to the borrow side.

Though given how small is borrow side of ETH and WBTC in comparison to Supply side, and considering, that while rewards increase noticebly from what they are today, they are still a quite small portion of daily distribution in the end, i’d probably suggest to give a “go” to first variant.

That, i believe, summs what i have to say on topic, governance is very welcome to take it into consideration when forming a proposal.

I think it’s important that these rates be set dynamically rather than every other day by governance post. It’s important to have a dedicated team attack this issue from an economic and financial perspective, like how will this affect borrowing on other markets?

According to this study, compound is the first mover in rates and people will move their money if dissatisfied.

Academic research needs to be cited, evaluated and it can’t be done just by analyzing recuring borrows from comp folding. The RFR shouldn’t be seen as the level where you can borrow for free, rather taken from the bitcoin futures bonding curve. I love the fact this was proposed on a Friday afternoon with 2 days to vote, but an economic study this size needs to be of a higher and more DYNAMIC calliber. This is too big of a decision to have governance do on fridays, where decisions are set it strobe until anouther governance proposal comes through. I wish this could be postponed until a more effective and decentralized economic model is passed through the community, where contributors are comp users and everyday people, not bagholders who can quickly pass a governance prop on a Friday afternoon.

2 Likes

Also I think the vesting model should be pinpointed a little better before this passes

1 Like

A little late for this round, but here’s another allocation idea to consider: calculating COMP rewards for a given asset as max( reward rate from lending, reward rate from borrowing). Essentially, users can get rewarded for either lending or borrowing of each asset, but not both. This makes recursive leverage on the same asset unprofitable, which is reasonable because there’s no real economic value to it. It doesn’t necessarily stop recursive leverage altogether because you could still borrow and re-deposit different assets between different accounts. But doing that involves significant price risk, which makes it much more costly/risky vs. the current recursively leveraged Dai position.

@rleshner @sirokko Won’t this change in COMP distribution lead to more borrowing for all collateral markets (like ETH, WBTC, UNI, etc…) due to recursive farming?

i.e. the DAI recursive farmers will probably shift to ETH (and some to WBTC) and probably to other collateral markets too so they can maximize their returns. So this will end up inflating all the borrow rates for collateral assets (similar to how it is already inflated today for DAI, USDC).

It doesn’t seem like a great thing if the borrow rates become artificially high for a lending protocol. Net Borrow rates will probably still remain somewhat competitive due to COMP rewards, but that doesn’t seem great for regular users who are actually using the lending protocol for what it is meant to be used instead of just farming COMP.

1 Like

Good thought. I’m definitely not an expert on yield farming, but I think farmers might sometimes use different addresses for borrowing vs lending and pass along the funds between the addresses, perhaps with some obfuscation transfer step so funds can’t easily be linked. That way they can collect on both sides.

That’s true, but is addressed. In particular, recursive leverage on the same assets would not be profitable b/c you wouldn’t be able to get the COMP rewards from both the deposit and borrow (since they’d have to happen in the same account). But recursive leverage across different assets (i.e., depositing one asset as collateral, but borrowing a different asset against it) could still earn COMP on both sides if you’re moving them between different accounts. This latter recursive leverage comes with a lot more risk though (e.g., the Dai price event in November) whereas recursive leverage in the same asset has very little risk. Overall, would seem to be an improvement toward lowering incentives for recursive leverage.

1 Like

Nice job on this rule update. :+1: excellent approach

1 Like

Have you decided on this quantity?

ETH 0.0016 0.01955 50% 50%
WBTC 0.0011 0.01955 50% 50%
BAT 0.0000 0.00195 50% 50%
ZRX 0.0013 0.00195 50% 50%
UNI 0.0006 0.00195 50% 50%
USDC 0.0675 0.06005 50% 50%
USDT 0.0057 0.00595 50% 50%
DAI 0.0977 0.06005 50% 50%
COMP 0.0004 0.00500 50% 50%

1 Like

These changes were implemented in Proposal 035, and enacted. Closing this thread, so new discussions can focus on experiments & changes from this base-case.

1 Like