[RFC] bb-e-usd permissioned arbitrage to rescue non-withdrawn funds

bb-e-usd Permissioned Arbitrage

TL;DR

  • We have found a way to recover any funds not withdrawn from the paused pools before they unpause on their own and are pillaged by the dark forrest on June 8th.
  • This RFC explains how and why it is necessary and asks for feedback about when it should happen and any other input.
  • Assuming governance agrees to execute on this proposal before the pool unpauses, what currently seems to be 99.9% of all remaining liquid funds in bb-e-usd will likely be recovered removing some urgency to withdraw during gas heavy times.
  • Insturctions to withdraw from bb-e-usd now from the UI can be found here

Background

Inverse Finance has a significant amount of bb-e-usd, estimated to be burnable for over $250k locked in a smart contract. They can not easily burn/withdraw.

Over the last few days, a group of ballers have worked together to figure out a way to recover these funds.

It involves use the leftover Euler eTokens from TempleDAO’s bb-e-usd burn, which currently sit in their multisig, and using them to arb the remaining liquid dollars out of bb-e-usd.

This is not possible while the pool is paused, but the pause on the pool is time limited and will expire on June 8th. Governance can allow the pool to be unpaused early.

The Solution and a Proof of Concept on Fork

The code for the PoC on fork can be found here.

Here is what it does:

Setup Steps:

  1. Transfers the all eDAI and eUSDC from the temple multisig to the Balancer DAO multisig(Vault internal balance transfer).
    • Temple has agreed to help and is reviewing a payload to make this transfer.
  2. Reverts back to the old e-token logic on the Euler proxy from the Euler multisig so that a rate can be pulled.
    • Euler is deploying a patch this week that will provide a rate from the onchain bb-e-usd without this step.

Atomic Transaction from the Balancer DAO Multisig:

  1. Grants the DAO multisig permission to unpause the pool.
  2. For each of bb-e-usdc and bb-e-dai
    1. Unpause the pool.
    2. Swap as much of eDAI or eUSDC as required from internal balances to 99.9% of the liquid DAI or USDC in the pool
    3. The pool can not be repaused as it is in a grace period after the end of the pause window.
  3. Removes the DAO multisig’s unpause permissions (the Emergency DAO handles pausing/unpausing)

The POC currently results in 763k DAI and 732k USDC being transferred to the DAO multisig. This number will go down as more dollars are withdrawn from bb-e-usd and the linear pools it is made up of.

What this means

Before the pool unpauses on its own, and with support from Euler and Temple and authorization by veBAL voters(a BIP), the Balancer DAO Multisig can arb a vast majority of the money left in bb-e-usd out in an atomic transaction before anyone else can get to it.

If there are depositors in the pool beyond Inverse, this money will need to be distributed. As a result, anyone who has not exited the pool on their own before this happens will some how or another be able to claim the funds. Depending on the number of addresses this may be via the Claims page or simply via airdrop.

The goal is to atomically distribute all funds in the same transaction, such that the DAO Multisig never takes custody.

No need to withdraw your 5000 bb-e-usd at 100 gwei ser.

The question at hand… Wen?

The big question is when do we do this?

The pause window ends on June 8th. The DAO multisig executes on Tuesdays for the most part. This means that the payload should be executed at the latest on June 2nd.

If there is an overwhelming consensus to execute sooner, this could be done as soon as a distribution system has been completed and reviewed. It should be very similar to the one used to calculate the Euler distribution.

Barring strong interest in expedited execution, and following at least a week of time for discussion. A BIP will be put forward asking governance permission to unpause the pools and complete the arbitrage and distribute the proceeds as simulated on fork with execution on or around June 2nd.

7 Likes

Cryptoharry from Inverse Finance here. Firstly, I would like to express my gratitude to Temple, @Tritium, and the other Ballers who have invested their time and expertise in assisting Inverse (and potentially others) to recover the remaining funds locked in the bb-e-usd pool.

I believe that the execution of this proposal should be carried out as soon as possible, rather than targeting June 2nd. By incorporating a sufficient buffer in the timeline, we can accommodate any unforeseen issues or governance-related errors that may arise, and still have ample time to employ alternative solutions before the June 8th deadline. As Inverse has approximately $268k worth of USDC/DAI anticipated to be claimed through this method, I trust you can appreciate our cautious stance on this matter.

Furthermore, I would like to emphasize the importance of gas efficiency for the users. By expediting this proposal’s execution and distributing the recovered funds via a claim page, we can significantly reduce gas costs for more Balancer users, ultimately resulting in a more streamlined and cost-effective process for all users.

1 Like

We support this proposal and suggest that we proceed with the rescue of funds as soon as possible, giving room for further action in the unlikely event something goes wrong. This proposal is important for users and protocols involved in the balancer ecosystem and shows that we are prepared to take the necessary steps to protect the ecosystem.

5 Likes

Based on a number of requests for faster action, we will bring a BIP forward to execute these actions as soon as possible, once:

1: The PoC is rock solid, and can be used in the specification with no changes to code between proposal and execution. The payload may have to be generated same day but the code that generates its it should not change between the snapshot and the execution.

2: The environment is ready (we have the e tokens from Temple and Euler has patch their rate providers)

Currently it looks like we could go to vote next week, which would set us up to execute on or around the 22nd of May.

We are looking into a way to also arb out the bb-e-usd containing pools (dola,wsteth,reth) which also have 4 or 5 figures of liquid capital in them as part of the same operation in order to rescue maximal user funds. Details will be included in the final Proof of Concept and BIP.

2 Likes