BIP-0005: Emergency Deposit Pause Feature

Introduction

BabelFish is an aggregator of USD-pegged stablecoins. While the stablecoins that are added to the aggregator are vetted to filter through only what the community considers among the strongest USD-pegged stablecoins, it is still possible that one of these stablecoins is compromised after they are added to the aggregator. A particularly bad problem that can happen is that a stablecoin is compromised in such a way that its supply is inflated beyond the value of its backing collateral, causing the stablecoin to become partially unbacked. For example, the stablecoin issuer might go rogue or have their minting key compromised, or the smart contract used to mint the stablecoin could have a vulnerability exploited.

BabelFish needs a mechanism for responding to these events as quickly as possible to prevent the compromised stablecoin from being used to drain all of the other stablecoins in the aggregator. We can use the USD price of the stablecoin as a proxy for risk. If the USD price of a given stablecoin drops too much for a long enough period of time, this will indicate that there is a serious risk that deserves a response. The response should allow a long enough period of time to confirm that the price drop is not a temporary glitch, but not so long that a compromised stablecoin could come across the bridge and drain the XUSD aggregator.

**Note: This proposal has already been implemented on mainnet as described here. If approved, this proposal will remain in effect. If rejected, the proposal implementation will be rolled back to be removed until it is approved by BabelFish Bitocracy. **

Out of scope

There are three situations that we anticipate could cause a stablecoin to be inflated beyond its backing collateral value where we are unable to respond in time, and therefore might not be able to be guarded against by the mechanism described in this proposal:

  • A Rootstock-based stablecoin is compromised (since we would not have any time to respond to a problem)
  • Stablecoins that are compromised but do not have an external USD price feed.
  • Bridged stablecoins that are compromised due to malfunctioning or compromised bridge signers, bridge contracts, or bridge token contracts.

Implementation

Smart contract change implementation requirements

  • Using a GovernorAdmin proposal, FISH Bitocracy should be able to:

    • Add one or more Rootstock addresses to a “deposit pauser list”.
    • Remove one or more Rootstock addresses from the “deposit pauser” list.
    • Un-pause any deposit pause that is active.
  • Addresses on the deposit pauser list should have the power to submit a “deposit pause” transaction that will immediately pause deposits of one or more of the stablecoins in the BabelFish XUSD aggregator.

    • Initial addresses added to the deposit pauser list.
      • 0xe5277D0B5CddfdddaefB87792ff76517980643d0
      • 0x6D63d2eD09638fb9f6cFe2Ad2053B23e404b79b2
      • These addresses are controlled by a Sovryn developer who is running a keeper node that is designed to automatically pause stablecoins that depeg to the downside by more than 3% for longer than 10 minutes according to the price feeds it monitors.
  • Mainnet BabelFish XUSD aggregator deployment: 0x1440d19436bEeaF8517896bffB957a88EC95a00F

  • If approved, this proposal will remain in effect

  • If rejected, the proposal implementation will be rolled back to be removed until it is approved by BabelFish Bitocracy.

Deployed changes

Vote is now live

Dear BabelFish community,

We regret to inform you that the BIP-0005: Emergency Deposit Pause Feature vote has been defeated due to the failure to reach quorum, despite receiving 100% support from those who participated in the voting process. We want to thank everyone who took the time to cast their vote and express their opinion.

However, we also encountered some technical difficulties with our Bitocracy platform during the voting period. Specifically, some nodes went out of sync, causing the platform to go down for a few hours. While this issue was quickly resolved, we acknowledge that it may have prevented some users from casting their vote.

We apologize for any inconvenience this may have caused and are working to ensure that such issues do not occur in the future. We will keep you updated on any further developments related to this matter.

Thank you for your continued support of BabelFish.

I am disappointed that this measure failed.
Since it had a clear majority, but not a quorum, is it possible to resubmit it as another BIP in a week or two to see if a quorum can be achieved?

I do think that this should be possible. Result clearly shows the sentiment towards this proposal.

We are investigating the issue with hardware wallets - some people reported that they were unable to participate.