KVORUM
aaveSource: Aave governor v2 · #402

Activate Proof of Reserve

executedDec 16, 2023, 07:48 AM UTCbyF70xf71f…1e02

01Summary

AISummary by Kvorumclaude-haiku-4-5

Activate the Proof of Reserve mechanism on Aave V2 Avalanche by adding the Proof of Reserve Admin role to the Pool Configurator. This protects against infinite minting attacks on bridged assets (DAI.e, USDC.e, USDT.e, AAVE.e, LINK.e, WBTC.e, BTC.b, WETH.e) by verifying that tokens minted on Avalanche have corresponding backing on their origination networks.

Type
protocol addition

Key changes

  • Update Pool Configurator implementation to a new version that supports Proof of Reserve Admin role(high)
  • Set proof of reserve executor as admin to enable activation of proof of reserve mechanism for V2 Avalanche(high)
  • Enable proof of reserve checks for bridged assets on Avalanche (DAI.e, USDC.e, USDT.e, AAVE.e, LINK.e, WBTC.e, BTC.b, WETH.e)(high)

Notable concerns

  • This adds a new administrative role that requires proper governance and operational oversight to function correctly
ContractsAaveV2Avalanche.POOL_ADDRESSES_PROVIDERAaveV2Avalanche.POOL_CONFIGURATOR
Generated by Kvorum
model: claude-haiku-4-5
provider: anthropic
profile: anthropic-fast-v1
prompt: v1.0
generated: 2mo ago
Read the description ↗

02Description

223 words

Simple Summary

This proposal aims to add Proof of Reserve Admin role to the Avalanche V2 Pool Configurator in order to activate the proof of reserve mechanism.

Motivation

At the moment, in Aave v3 Avalanche there are multiple assets with a “bridged” nature: DAI.e, USDC.e, USDT.e, AAVE.e, LINK.e, WBTC.e, BTC.b and WETH.e.

These assets have 2 sides: one deposit account in the network where the asset originated (Ethereum in the case of the *.e assets) and a token smart contract on the “usage” chain (Avalanche in this case).

Given that architecture, there are 2 main attack vectors to exploit “bridged” assets:

An exploit on the usage network, generally minting tokens that have no backing on the origination network, usually called an “infinite minting attack”. An exploit on the origination network, extracting tokens from the deposit contract.

In order to prevent the 1) type of attack Proof of Reserve mechanism was introduced and activated for the V3 Pool on Avalanche almost a year ago. Now we are ready to activate it for the V2 as well.

Specification

  • AaveV2Avalanche.POOL_ADDRESSES_PROVIDER.setLendingPoolConfiguratorImpl() will be called with the new configurator address passed.

  • AaveV2Avalanche.POOL_ADDRESSES_PROVIDER.setAddress() will be called to set proof of reserve executor as the admin.

References

Copyright

Copyright and related rights waived via CC0.

03Mismatch analysis

AIMismatch analysis by Kvorummedium confidenceclaude-sonnet-5
Consistent

The proposal is a cross-chain Aave governance action: the on-chain calldata on the origin chain (mainnet) only contains a single 'forwardPayloadForExecution' call that dispatches payload #9 to the Avalanche chain (43114) via the known cross-chain payload controller address. This is the standard mechanism BGD Labs proposals use to execute a pre-deployed payload contract on the target chain — the actual logic (setLendingPoolConfiguratorImpl and setAddress calls described in the Specification section) lives inside that payload contract on Avalanche, which is not directly decodable from this mainnet calldata. The target chain (Avalanche) and the general intent (activating Proof of Reserve for the V2 pool) are consistent with the description. I cannot independently verify from this single decoded action that the payload contract itself calls setLendingPoolConfiguratorImpl and setAddress with the correct proof-of-reserve executor address, since those calls are internal to the forwarded payload and not exposed in this transaction's decoded arguments. This is a routine and expected pattern for this type of proposal, not a sign of concealment, so I do not flag it as a discrepancy, but confidence is medium rather than high because the specific parameter-level claims in the Specification section cannot be cross-checked against this particular decoded action alone.

Generated by Kvorum
model: claude-sonnet-5
provider: anthropic
profile: anthropic-strong-v1
prompt: v1.0
generated: 2mo ago
Review the decoded actions ↗

04Actions

1 total
#0forwardPayloadForExecution((uint256,uint8,address,uint40))chain 0x1
Target
0x9aee…2bc7
Value
0 wei
Function
forwardPayloadForExecution((uint256,uint8,address,uint40))
Arguments
{
  "0": [
    "43114",
    "1",
    "0x1140CB7CAfAcC745771C2Ea31e7B5C653c5d0B80",
    "9"
  ]
}
Calldata

05Tally

Summed from votes

Voters12
VP participating563.4K
Outcome (current)For
Current support100%

06Voters

12 total
Filter:
VoterChoice% of totalRationale
570x57ab…2922For144.3K25.62%—3y ago
320x329c…3ed4For103.1K18.31%—3y ago
070x0703…961bFor86.8K15.40%—3y ago
230x2331…7e73For60K10.65%—3y ago
2C0x2cc1…4df1For43.7K7.75%—3y ago
B90xb933…8dd1For42.6K7.56%—3y ago
EZezr3al.eth0x8659…7d0eFor38.1K6.76%—3y ago
870x8787…ea52For21.2K3.76%—3y ago
E40xe459…e666For20K3.55%—3y ago
180x1855…98baFor3.6K0.63%—3y ago
EA0xea17…6676For38.60.01%—3y ago
570x5762…a752For10.00%—3y ago
Showing 12

07Forum

No forum thread is confidently linked to this proposal.