USDT, USDC, WBTC, and TUSD* are all pausable tokens. This means a central admin can pause them at any time, halting all transfers. When a token is paused, it will be bad news for Compound users on both sides. Depositors will be unable to withdraw their underlying token, and borrowers will be stuck with their collateral locked, since they cannot repay their loan.
*TUSD could be paused with an implementation upgrade.
Let’s add a new repayBorrow function that allows repayment with the correct amount of cToken rather than the underlying. With this in place, when a token is paused we can expect a market to develop for the cToken (e.g. on Uniswap). Depositors will now be able to exit their position by simply selling their cToken. And borrowers will be able to exit theirs by buying the cTokens and using the new repayBorrow function.
Another minor benefit: COMP farmers who borrow and lend the same token will be able to exit their positions more easily.
This would be a major improvement to the platform, giving users much more confidence in using a pausable token on Compound. In fact, this change will create an entirely new reason to hold cTokens: they’ll be transferable and there’ll be a market for them even when the underlying token is paused! This could be a major draw for folks who otherwise hold large balances of a pausable token.
Any other thoughts on what happens if a token calls pause()?
Any downsides to implementing this? Or upsides not mentioned here?
Anybody want to apply for a grant and work on this with me?