The QuantAMM protocol does not address the risks posed by tokens with blacklisting capabilities (e.g., USDC, USDT). If a token issuer blacklists a pool’s smart contract address, all interactions with that token (swaps, withdrawals, and deposits) are disrupted, leading to frozen funds and non-functional pools.
Tokens with blacklisting functionality allow their issuers to freeze transactions involving specific blockchain addresses:
A token issuer (e.g., Circle for USDC) could blacklist the address of a pool's smart contract, freezing all USDC in the pool.
This would halt swaps, weight adjustments, and liquidity withdrawals involving USDC, effectively breaking the pool's functionality.
QuantAMM does not have mechanisms to detect blacklisting or replace frozen tokens, making pools dependent on issuer compliance.
Frozen Funds:
Liquidity providers (LPs) cannot withdraw their deposits involving the blacklisted token.
Example: If Circle blacklists a USDC-ETH pool, all USDC in the pool becomes inaccessible.
Protocol Downtime:
Pools containing the blacklisted token become non-functional.
Weight updates and swaps fail, disrupting the protocol’s core operations.
Cascading Failures:
A single blacklisted token in a multi-token pool could render the entire pool unusable.
Create a Pool:
A USDC-ETH pool is deployed with the following parameters:
Initial weights: 50% USDC, 50% ETH.
Swap fee: 0.3%.
Users interact with the pool as follows:
Alice deposits $1,000 USDC.
Bob deposits 1 ETH.
Swapping and Liquidity Provisioning:
Users perform swaps and provide liquidity normally.
USDC Issuer Blacklists the Pool Address:
Circle blacklists the pool's smart contract address.
All USDC in the pool becomes frozen and inaccessible.
Failed Withdrawals:
Alice tries to withdraw her $1,000 in USDC but receives an error because the pool cannot transfer frozen USDC.
Alice’s funds are permanently locked.
Failed Swaps:
Bob tries to swap ETH for USDC but the transaction fails because USDC is frozen.
Operational Disruption:
The pool cannot adjust weights or handle swaps, rendering it effectively broken.
Manual Code Review
For example, maintain a mapping that tracks blacklisting status per token and replacement upon detection:
Incorporate a pausing mechanism to halt all pool operations if a critical blacklisting event occurs, preventing further disruptions.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.