Aave v3.1 upgrade
Aave v3.1 upgrade
Author
BGD labs
Creator
0xf71fc92e2949ccF6A5Fd369a0b402ba80Bc61E02
Simple Summary
Proposal for the activation of Aave v3.1 as an upgrade on top of all active Aave v3 instances.
The codebase can be found on https://github.com/aave-dao/aave-v3-origin
Motivation
Aave v3 is a “living” DeFi protocol, which akin to any other software, receives upgrades over time on its different components. Sometimes, the improvements can be made in isolation in independent upgrades, for example, almost 1 year ago, we introduced a new 3.0.2 version, including only relatively minor changes and bug fixes.
However, since 3.0.2, we had multiple other ideas on the backlog heavily focused on security and optimisation, that over time got validated due to security incidents on similar protocols and by observing operational overhead for Aave contributors (e.g. governance proposals changing parameters). As some of this features in some cases were dependent between each other, end of 2023 we decided to batch them together in a new major-minor Aave v3 version we propose for activation here: Aave v3.1.
Specification
v3.1 is clearly focused in 2 fields: redundant security and optimisation of the logic to reduce operational overhead. With those principles in mind, the following is a summarised of the features/improvements included in the release (for extensive information, full specification can be found HERE):
- Virtual accounting
- Stateful interest rate strategy
- Freezing by EMERGENCY_GUARDIAN on PoolConfigurator
- Reserve data update on rate strategy and RF (Reserve Factor) changes
- Minimum decimals for listed assets
- Liquidations grace sentinel
- LTV0 on freezing
- Permission-less movement of stable positions to variable
- Allow setting debt ceiling whenever LT is 0
- New getters on Pool and PoolConfigurator for library addresses
- Misc minor bug fixes and sync the codebase with the current v3 production
Upgrade payloads
All the information about this upgrade can be found on the payload repository, but to summarise, for each network:
- The PoolConfigurator implementation is upgraded.
- The Pool implementation is upgraded. On initialization of the new implementation:
- For each asset, indexes and rate data is updated to the most recent value.
- Also for each asset (except GHO), virtual balance (virtual accounting storage variable) is initialized, together with the flag to enable virtual accounting.
- The PoolDataProvider address is updated on the PoolAddressesProvider.
_pendingLtv
is initialized for all frozen assets on the PoolConfigurator.- The new stateful interest rate strategy is connected to every asset with the current production paramaters. GHO is handled ad-hoc in this stage, given its fixed rate.
- The
RISK_ADMIN
role is temporarily disabled for Aave v3 Avalanche, due to incompatibility with the new freezing and LTV0 mechanics. It will be re-enabled in a follow-up proposal.
References
- Payload implementation: UpgradePayload
- New initialization logic of Pool: PoolRevisionFourInitialize
- New L1 pool implementation: PoolInstanceWithCustomInitialize
- New L2 pool implementation: L2PoolInstanceWithCustomInitialize
- Payload tests: Tests
- Aave v3.1 and payloads security procedures: v3.1 security section
- Configuration diffs pre/post proposal execution: diffs
- Snapshot
- Discussion
Copyright
Copyright and related rights waived via CC0.