Aave Improvement Proposals (AIPs) describe standards for the Aave Protocol, including core protocol specifications, client APIs, and contract standards.

AIP 35: Adjust interest rate to account for APY over-approximation

Author: Ahmed Naguib Aly Status: Proposed - Discussions- RawCreated: July 26, 2021

Simple Summary

  • Update interest rate on AMPL market to account for over-approximation in compounded interest computation.
  • Make use of the exponential curve due to the over-approximation to set higher max APY.

Motivation

In AAVEs MathUtils an over-approximation in the application of the interest rate for computing compounded interest was discovered.

In calculateCompoundedInterest method

Periodic rate (per second) is computed as:

uint256 ratePerSecond = rate / SECONDSPERYEAR;

in comparison to the exact computation.

|281x35

derived from:

|269x48

The deviation in the applied interest rate causes a small over-approximation for APYs <10%, but grows exponentially as can be seen below.

Expected APY Effective APY Expected daily rate Effective daily rate
4.00% 4.08% 0.01% 0.01%
5.00% 5.13% 0.01% 0.01%
10.00% 10.52% 0.03% 0.03%
50.00% 64.87% 0.11% 0.14%
100.00% 171.83% 0.19% 0.27%
200.00% 638.91% 0.31% 0.55%
1000.00% 2202543.09% 0.68% 2.78%
10000.00% 2.69E+43% 1.30% 31.52%

This difference is especially noticeable in the AMPL market, where the configured interest rate can go up to 10,002% at max utilization.

The AAVE Genesis team has been made aware and they will publish more guidance on the discrepancy.

Specification

As mentioned in AIP-26, a nonlinear - logistic or exponential - interest curve is more suited for AMPL’s market and potentially other assets on AAVE’s platform.

The over-approximation mentioned above results in an exponential curve which allows for defining a more suitable interest curve for AMPL. We propose the following parameters, which produces the curve below.

  • Optimal utilization = 80%
  • Base rate = 1%
  • Slope1 = 2%
  • Slope2 = 750%

|624x384

APY table above 80% Utilization:
Utilization APY
80.00% 3.05%
81.00% 49.93%
82.00% 118.15%
83.00% 217.40%
84.00% 361.82%
85.00% 571.94%
86.00% 877.67%
87.00% 1322.50%
88.00% 1969.72%
89.00% 2911.43%
90.00% 4281.60%
91.00% 6275.19%
92.00% 9175.85%
93.00% 13396.29%
94.00% 19536.98%
95.00% 28471.63%
96.00% 41471.48%
97.00% 60386.14%
98.00% 87906.81%
99.00% 127949.14%
100.00% 186210.38%
The part of the curve under 80% Utilization:

|624x325

Rationale

  1. Accounting for the over-approximation of the existing Slope2=10,000% interest curve requires reducing the slope2 parameter.
  2. Taking advantage of the exponential curve allows for: a. Setting a higher optimal utilization rate. b. Setting a higher maximum APY to reduce the potential for utilization being at 100% for extended periods without creating a too steep of an interest rate increase right above the optimal utilization rate.

Implementation

A deployment of the existing implementation of the Interest Strategy will be used, with the following parameters:

optimalUtilizationRate: new BigNumber(0.8).multipliedBy(oneRay).toFixed(),
baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
variableRateSlope1: new BigNumber(0.02).multipliedBy(oneRay).toFixed(),
variableRateSlope2: new BigNumber(7.5).multipliedBy(oneRay).toFixed(),

https://etherscan.io/address/0x84d1FaD9559b8AC1Fda17d073B8542c8Fb6986dd#readContract

Copyright

Copyright and related rights waived via CC0.

Aave Improvement Proposals (AIPs) describe standards for the Aave Protocol, including core protocol specifications, client APIs, and contract standards.

Learn about the process here.