SIP-332: Mint and Burn with Account Balance

Author
StatusImplemented
TypeGovernance
NetworkEthereum & Optimism
ImplementorTBD
ReleaseTBD
ProposalLoading status...
Created2023-07-25

Abstract

This SIP proposes a minor change to Synthetix V3 which effects the stablecoin issuance system. Rather than minting/burning stablecoins from the wallet of the address which calls the function, stablecoins balance changes occur on the core system address and associated with the relevant account.

Motivation

In anticipation of the implementation of cross-chain pools, the Synthetix protocol will need a way to issue stablecoins but disallow users to withdraw until a timeout expires, such that information pertaining to pool debt can be syncronized across chains. Because we anticipate this requirement and this may be an interface-breaking change, we believe it should be incorporated into a protocol upgrade as soon as possible.

Further, because the withdraw function respects the withdraw timeout (outlined in SIP-316) there is an added security improvement here. If an attacker were able to somehow associate collateral with their account, without this upgrade, they could circumvent the withdrawal timeout by minting stablecoins against it.

Specification

In the IssueUSD Module, the stablecoins should be minted to the core system address rather than msg.sender and then associated with the relevant account (as collateral is during a call to deposit). The analagous change can happen for burning stablecoins.

The stablecoin will need to be added as depositable collateral type, such that it is recognized by the system in the deposit and withdraw functions. The minimum delegation amount can be set to MAX_UINT, such that it cannot be used by pools as collateral.

Configurable Values (Via SCCP)

N/A

Copyright and related rights waived via CC0.