RFC attempt for Feature Request: Safety module Improvement

Greetings, this will be my first Topic on the forum, first of all I am really happy to be here and hoping to help improve aave anyway I can.

I have been having reading the open topics for quite some time expecting that I’d find something similar to what I had in mind but I think there unfortunately I haven’t been able to spot one, so here is my attempt to put my idea out as a form of feature request,

PS: if there is anyone who can write it up better than I can please do so, as you will see I am really bad at putting things together:) + Sorry for the looong read.

I’ve read through the aavenomics more than once and I am really impressed. I can confidently say that it is one of the most detailed, complex and elegant tokenomics I’ve read so far and I am really happy to be one of the early supporters! However as I read it I can see that there are some areas where we can improve.

idea dump:
Each staker is an individual/group/organization with different risk appetites. Some would like more risk some are more conservative… When it comes to crypto, we all have our preferences on which coins, we support which we don’t. Unfortunately looking at the current mechanism I really feel uncomfortable about staking on aave.
Reason?: there are some coins that I’d happily take the risk some I wouldn’t
eg: (highly opinionated) I believe at some point USDT will go down, REP doesn’t really deserves the value it has, I am totally skeptic about BAT and the moves they have been doing lately… BUSD I wouldn’t touch anything binance does, GUSD I like the twins but still too corporate, too centralized and there has been some issues in the past… I can basically say something about each of the coins we have listed and the ones I mentioned above I do not feel comfortable at “insuring” in case of a shortfall because I am 90% sure there will be an extinction level event on one of those…

Proposal?: add 1 more step to staking where user can select which of those token they’d like to insure.
story: As a user I’d like to be able to select the coins that I am providing safety to.

follow up idea: Distribute the rewards on each coin depending on their risk factors (you guys can definitely do better job with formalization since I am coming up with it as I go)
let’s start with a formula:

const risk_factor = { 'A+' = 0.1, 'A-' = 0.15, 'B-' = 0.25 ... };

const reward_factor = asset => 
      risk_factor[asset.avg_counterparty_risk] * asset.total_staked + 
      risk_factor[asset.avg_market_risk] * asset.total_staked;

put it in context:

// Lets assume there are only 2 assets ETH and WBTC
const { eth, wbtc } = assets;

// 100 people like me felt comfortable staking total of 1M$ to ETH
eth.total_staked = 1.000.000;      // from 100 stakers
eth.avg_counterparty_risk = 'A+';  // see docs
eth.avg_market_risk = 'A-';        // see docs

// 1m * 0.1 + 1m * 0.15 => 250k
eth.reward_factor = reward_factor(eth) ;

// 75 people felt comfortable staking total of 600k$ to WBTC
wbtc.total_staked = 500.000;       // from 75 stakers
wbtc.avg_counterparty_risk = 'B-'; // see docs
wbtc.avg_market_risk = 'B-';       // see docs

// 500k* 0.25 + 500k * 0.25 => 250k
wbtc.reward_factor = reward_factor(wbtc);

// 500.000
const total_factor = eth.reward_factor + wbtc.reward_factor;

const percentage = asset => 100 * asset.reward_factor / total_factor;

eth.reward_percentage = percentage(eth);   // 50%
wbtc.reward_percentage = percentage(wbtc); // 50%

Hope I made it kinda understandable there?
From the scenario above 50% of the total rewards will be devided between 75 btc stakers and 50% will be divided between 100 eth. stakers

Basically having this kind of a system we introduce an additional complexity to the system, but we are also expanding the possible ways people take risk and make investments. eg: for some it might make sense to cover a protocol that has high risk and low coverage, that way you take a lot of risk but also boost the reward significantly. Use other platforms to hedge the risk you have?

another possible benefit: both wbtc and eth stakers will have their 30% slashed in such event.
30% of 1M = 300k
30% of 500k = 150k

meaning ETH will have more coverage than WBTC which will increase the ETH health factor on the platform? Which can be used for further calculating things;

as an example we can also do taught experiments for the case when ‘total_covered >= total_deposited’ for each asset?

  • if there is enough cover for an asset, the asset can be used as collateral. (I can think of ideas with higher complexity there)
  • An exchange like Gemini want their GUSD listed and also be used as collateral? they know their protocol better than anyone and count on it? they can basically provide the initial stake on GUSD to bootstrap the trust by showing their faith on their asset? That provides additional income to Gemini while keeping the exposure only to their asset. Also there is a dynamic like: their total income from aave decreases as they build trust in aave. keep staking or not?

Basically in my simple mind following will happen but probably people can think of more:

  • Users will have more choice when it comes to how they can secure the protocol
  • Users will get rewarded more for taking more risk and vice versa. But in general AAVE will benefit from the added complexity (more use cases)
  • Adding tokens will be much easier since the factor for calculating success is not “if it is listed” but “how much the community trusts the asset”.
  • Centralized parties are incentivised to keep users happy as long as they want to be a part of the aave ecosystem.
  • There is also a pressure buy and stake to AAVE if you want to increase the overall usage of your asset (basically put your money where your mouth is!)
  • Game theory on steroids?

task for engineering team: How to implement this without bloating up the gas required per interaction ? :smiley:

8 Likes

This is a very interesting idea @cagince. At Delphi, we’ve been working on a proposal very much along these lines which we’ll be posting up for discussion very soon :) Stay tuned!

3 Likes

@cagince I agree with your concern over certain assets. If Aave stakers are essentially all backstopping an asset like USDT which has tremendous potential risk, it really calls into question the rationale of taking an up to 30% loss on it. USDT is still under an NYAG investigation and is a potential target for the Chinese Govt. Look at what has happened to Bitmex recently.

I’m not particularly familiar enough with Aave yet to know how much volume USDT does on Aave and how integral it is to the system. But it is a potential ticking time bomb and I wonder why stakers would essentially all want to be on the hook for that kind of risk.

2 Likes

Definitely an interesting discussion, thanks @cagince!

Overall I think you make a very strong point. However, we do need to keep in mind that the tokenholders are the ones in charge of setting adequate risk parameters, and should take idiosyncratic risks into consideration.

The question is, as you stated, what if you want to provide insurance for one asset, but not another? Perhaps we can learn something from the folks over at Nexus Mutual. Worth investigating.

2 Likes

Hey @cagince, we’ve now posted up our full proposal which I think incorporates many of the concepts you touch on here: Proposal: New Aave Token Architecture. Would love to get your thoughts!

3 Likes