# Sentiment Exploit: Recovery Plan ## Introduction On Apr 4, 2023 a malicious transaction resulted in the unauthorized extraction of user funds from the Sentiment protocol. A technical postmortem will be released shortly. The exploiter converted all the ill gotten funds to ETH and transferred the assets through several bridges from Arbitrum to Ethereum mainnet. After a series of negotiations, the exploiter has returned the 90% of the funds, and with the assistance of Sherlock, [additional funds were recouped](https://twitter.com/sherlockdefi/status/1644361431826206720). Below is a detailed description of the plan to remove bad debt from the protocol and make Sentiment users whole. This plan is based on thoughtful consideration among advisors and core contributors with the main objective of making Sentiment users whole. ## Main Issue In brief, the exploiter was able to manipulate oracle pricing for a Balancer LP token and exploit the Sentiment protocol to borrow against a maliciously inflated asset price. This allowed the exploiter to extract funds from Sentiment leaving their Sentiment account with approximately $1,092,191.98 of bad debt at the time of the exploit. The accounting for the exploiters account after the hack is as follows: ### Debt * USDC = 463,920 * USDT = 363,303 * ETH = 81.63 (~$152,938.06) * FRAX = 125,804 **Total Debt = $1,105,965** (increasing every block due to interest accrual) ### Assets * BPT_WETH_WBTC_USD (Balancer LP token) = 221.2(~$90,585.24) * USDC = 488.1 * USDT = 639 * FRAX = 4875 * WETH = 0.919 (~$1,707.66) **Total Assets = $98,287.74** ## Funds Recovered A group of independent contributors and the Sentiment team negotiated the return of 90% of the funds misappropriated. This amount is 465.75 ETH ($872,724.60). Sherlock covered $49,275.77 (in USDC) and an additional $16,425.26 (in USDC) pending from Nexus Mutual, bringing the total insured amount to $65,701.03. The Sentiment core team determined to use internal treasury to provide the difference of the recovered funds amount, to make users whole. ## Recovery Process The Sentiment protocol is deployed only on Arbitrum. After the exploit the exploiter extracted funds from the Sentiment protocol, the exploiter converted all the funds to ETH and bridged the ETH from Arbitrum to Mainnet. After successful negotiations the exploiter returned funds to the Sentiment Deployer on ETH mainnet, which were sent to a multisig where they are at the time of this writing [seen here](https://etherscan.io/address/0x7582BC8402865c57bC55320B2a3Fe8EaC46C233C). The Recovery will occur in 2 phases ### Phase 1: Setup * The ETH and USDC that is currently in [this multisig](https://etherscan.io/address/0x7582BC8402865c57bC55320B2a3Fe8EaC46C233C) will be sent from the recovery multisig on ETH mainnet, to a multisig on Arbitrum. * Once the ETH and USDC is confirmed in the Arbitrum multisig, they will be exchanged for the equivalent of the debt assets * USDC = 463,920 * USDT = 363,303 * ETH = 81.63 (~$152,938.06) * FRAX = 125,804 ### Phase 2: Liquidation It appears that the optimal way to maximize an equitable restitution for Sentiment users will be to liquidate the exploiters account and relinquish the Sentiment Earn pools of bad debt. The liquidation and after effects can be understood as follows. The account to be liquidated can be seen here: https://arbiscan.io/address/0xdf346f8d160424c79cb8e8b49b13dd0ca61c3b8c The Sentiment protocol refrains from taking an active role in liquidating accounts. For this reason, [Wintermute](https://wintermute.com/) has agreed to perform the liquidation in good faith to help streamline the process for all Sentiment users. Recovered funds will be converted into their respective tokens and amounts to fulfill the debt requirement of the account: * USDC = 463,920 * USDT = 363,303 * ETH = 81.63 (~$152,938.06) * FRAX = 125,804 These tokens to fulfill the debt requirement will be transferred to Wintermute so that they can be used to liquidate the account. Wintermute will initiate an onchain transaction to liquidate the bad debt account. Once the liquidation is completed, there will be an official announcement and the transaction will be shared with the community. The following section will explain the redemption process for users. ## Redemption After the liquidation, all of the bad debt in the protocol will be extinguished, and the only borrows that remain will be the “good debt” currently held by Sentiment account users. What this means is that, Sentiment “Earn” depositors can be assured that their Ltokens (deposit receipt tokens) will be able to be redeemed for the initial capital they deposited plus any interest accrued. Sentiment users will not have to go through a claims process, as they will only have to withdraw their capital if they wish to in a normal fashion from the Sentiment protocol user interface. On completion of the liquidation, users will once again be able to deposit funds and borrow assets.