BIP-000X: Adding ZUSD to the XUSD aggregator
Introduction
Zero is a decentralized stablecoin and borrowing protocol, originating as a fork of Liquity.[1] Users put up collateral to receive a 0% interest loan denominated in stablecoins issued on-demand by the Zero protocol. The stablecoin issued by the Zero protocol is ZUSD, a USD-pegged stablecoin backed by RBTC with a minimum 110% collateralization ratio.
Proposal
We propose to add ZUSD to the BabelFish XUSD aggregator. This will enable users to deposit ZUSD in exchange for XUSD and vice versa. ZUSD will be added with the same target weight as every other asset in the aggregator.
Motivation
We believe that adding ZUSD to the XUSD aggregator has its benefits for both BabelFish and Sovryn:
- Being overcollateralized by BTC, ZUSD can provide a strong, censorship-resistant backing that fiat stablecoins are unable to offer. ZUSD presents a compelling, differentiated source of USD-pegged stability for XUSD.
- The BabelFish and Sovryn communities have together spent the last year building liquidity and utility for XUSD, including spot and margin trading, borrowing, and lending capabilities. By adding ZUSD to the XUSD aggregator we can give ZUSD holders access to all of these capabilities without having to build them up for ZUSD in parallel. Rather than competing with XUSD for liquidity, ZUSD becomes part of XUSD liquidity.
Zero parameterization
There are several configurable parameters that Zero inherits from Liquity. The initial parameterization of Zero is identical to Liquity, except for the following:
- Changed the minimum debt per Line of Credit from 2000 LUSD to 200 ZUSD
- Changed the liquidation reserve amount from 200 LUSD to 20 ZUSD
- Changed the primary oracle to the MoC Oracle and the secondary oracle to the RSK Oracle
- Changed the smart contracts to be upgradeable via the Sovryn TimelockOwner contract [2]
- Integrated Zero with Sovryn Mynt, enabling seamless ZUSD <> Mynt stablecoin conversion when opening/repaying a Zero Line of Credit
- Disabled community issuance (no native token)
- Diverted 100% of fee revenues to SOV stakers
Stability
Zero uses two “hard peg” to ensure relative stability of the ZUSD peg:
-
Redemptions: Zero has a redemption mechanism that allows any ZUSD holder to redeem 1 ZUSD for 1 USD worth of RBTC, minus a variable fee. The net effect is that if the price of 1 ZUSD ever drops below 1 USD, it becomes profitable to redeem the ZUSD for the underlying RBTC collateral. This creates a price floor for ZUSD of approximately 1 USD.
-
Minimum collateral ratio: Zero has a minimum collateral ratio of 110%. This means that if the price of ZUSD is ever above 1.10 USD, it becomes profitable to use a Zero Line of Credit to mint ZUSD and sell it for USD. For example, if 1 ZUSD is worth 1.11 USD, a user could mint 100 ZUSD and sell it for 111 USD. Even if they get liquidated, losing 110 USD worth of RBTC, they have made 1 USD profit.
You can learn more about the “hard” and “soft” peg mechanisms the Zero has in the blog post “On Price Stability of Liquity”.[3]
Risk
There are several risks associated with ZUSD that FISH and XUSD holders should be aware of:
-
Smart contract risk: If there is a vulnerability in the Zero smart contracts that enables an attacker to steal the collateral backing ZUSD or mint ZUSD without providing the proper backing collateral, and this vulnerability gets exploited, it could lead to the value of 1 ZUSD falling below its price target of 1 USD.
-
Oracle risk: Zero relies on the use of an oracle to provide an accurate BTC/USD price feed, which is necessary for the accurate issuance and redemption of ZUSD and liquidation of RBTC collateral. The system designates a primary oracle (the MOC oracle) and a secondary oracle (the RSK oracle). If the primary fails to report prices in a timely manner, the system falls back to the secondary oracle. Both the primary and secondary oracles can be replaced by SOV stakers via smart contract update if needed. Despite these backup mechanisms, it could be the case that the oracles either fail or become compromised for an extended period of time, resulting in inaccurate prices being reported and leading to the value of 1 ZUSD falling below its price target of 1 USD.
-
Governance risk: Zero smart contracts are now upgradeable via Sovryn Bitocracy. This means the logic of the smart contracts could be changed by passing a proposal via the TimelockOwner (and by proxy, the GovernorOwner) contract. If Sovryn Bitocracy approved a smart contract upgrade that leads to ZUSD being undercollateralized, then this could lead to the value of 1 ZUSD falling below its price target of 1 USD.
The implication of these risks for FISH and XUSD holders is that if the value of 1 ZUSD falls below 1 USD for an extended period of time, then XUSD effectively becomes partially-collateralized, potentially leading to a bank run as people flee out of XUSD into the still-stable underlying stablecoins that are part of the XUSD aggregator. The Zero developers have taken multiple precautions to avoid this scenario from happening, such as the aforementioned oracle backups as well as using a battle-hardened codebase that has gone through multiple audits from multiple security firms. While the risk to XUSD is not zero we believe that ZUSD offers one of the least-risky stability mechanisms in the entire stablecoin industry.
To better assess these risks, we invite the BabelFish community to explore the Zero source code repository.[4]
Resolved
- If this proposal is approved, ZUSD will be added to the XUSD aggregator at the same target weight as every other stablecoin currently part of the aggregator.
- TODO: Add ZUSD token contract address here once the token has been deployed on mainnet