Add Market: SNX

Benefits:

  • It will bring greater reserves to Compound.
  • In the future it could become collateral.

Risk Assessment:
There is more to do to assess the risks, but here’s a start.
Coin market cap has FDV, Supply, Volume.

  • Fully Diluted Value: $2,208,614,193
  • Circulating Supply: $1,609,652,076
  • Daily Trading Volume: $163,111,000
  • Volatility: High
  • Mintable: True (It’s inflationary.)
  • Ownership concentration: Here.
    Synthetix: Reward Escrow V2: holds 26% of SNX. These staking rewards vest over 1 year.
    Synthetix sDao: holds 14% of SNX. How is this DAO controlled?
    0x8cA24021E3Ee3B5c241BBfcee0712554D7Dc38a1: a gnosis wallet with 5% of SNX.
    There are a handful of other wallets with >0.9%, or $20,000,000 in SNX.
  • Launch Date: Initially, it was known as Havven when it first launched in September 2017. In late 2018, it became Synthetix.
  • Time since last exploit: I think around February 2020 they had an oracle failure leading to loss of some funds.

Here’s a cErc20Delegator on Ropsten.

Action Items:
What do you think are appropriate values for:

  1. Reserve factor
  2. Borrowing limit

Collateral factor should be zero until more research is done.

Also, what level of community interest is there?

  • Yes, I’m interested in adding SNX.
  • No, add something else. (comment)

0 voters

*Edited to correct some values and add links.

2 Likes

Since Maker has similar concerns as Compound, here’s a link to the proposal to add SNX to Maker as a collateral asset. Here’s a Maker call with Kain Warwick discussing adding SNX as collateral.

Updates:
FDV is undefined because there is 2.5% inflation indefinitely AND because the SNX token contract is upgradable, so supply could change. The protocol DAO, a 4/9 multisig, is empowered by SNX token holders with “the ability to upgrade the system, including the ability to redeploy contracts with modified balances.”
Reserve Factor - 25% based on Getty’s example.

SynthetixDao:
sDao, a 3 person multisig, holds the treasury (14% of SNX). Control of the treasury is on track to being controlled by a larger multisig elected by token holders.

Oracle Issues and Improvements:
Synthetix has a history of problems related to oracles. Most recently they’ve had front-running attacks depending on oracle update frequency and synth volatility. These attacks have increased the debt of SNX stakers.
Synthetics now uses Chainlink for oracles. They hope to mitigate front-running by moving to optimistic ethereum which will enable more frequent oracle updates. There is talk of changing their L1 oracle architecture to reduce attack vectors: Oracle Threshold signatures.

SynthetixV3 will “redesign everything from scratch”, not upgrading via the proxy pattern. So, Compound would have to redeploy the SNX market after SynthetixV3 is released. Kain Warwick told me the release will likely be in Q1 of 2022.

Is it better to wait and deploy the Compound Market with their new proxy instead of their current proxy?

  • Wait until SynthetixV3, Q1 of 2022.
  • Don’t wait.

0 voters

SNX is upgradable by the pDAO multisig without a time delay. Until there is a time delay, SNX cannot be a collateral asset on Compound.

Community member @aaaaaaaaaaaaa indicated a potential vulnerability from upgradable tokens. The balanceOf() function in the underlying token contract could be upgraded to the following:
balanceOf(address) { if address is cSNX return 10000*true_balance }
Assuming non-zero collateral factor, cSNX holders would be able to borrow 10000x what they otherwise could.

SNX could still be added as a non-collateral asset. But, due to these issues and the upcoming update, I think it’s best to wait to add SNX until after SynthetixV3 and even better - after there is a time delay for token contract upgrades.

Summary and Next Steps

SNX is Not Currently Fit for Compound

The addition of a cSNX market to Compound is being postponed. There are two reasons. First, adding SNX as collateral is a security risk, as described below. Second, there is a Synthetix update, SynthetixV3, targeted for Q1 2022. This update would require Compound to redeploy the cSNX market. It also could address the security risk.

The Risk of Adding SNX as a Collateral Asset

The SNX token is upgradable by the pDAO multisig without a time delay . This is risky for integrated contracts. For example, community member @aaaaaaaaaaaaa identified a vulnerability from upgradable tokens used as collateral. The balanceOf() function in the underlying token contract could be upgraded to the following:
balanceOf(address) { if address is cSNX return 10000*true_balance }
This means cSNX holders would be able to borrow 10000x what they otherwise could. Therefore, adding SNX as collateral puts all of Compound’s collateral in the hands of the pDAO multisig which is not incentivised to act in Compound’s best interest.

Next Steps for Synthetix

A time delay on token contract upgrades could mitigate this risk by allowing Compound enough time to pause the markets if a malicious upgrade is made. The delay may need to be several days or longer to make sure Compound has enough time to organize multisig participants to pause Compound. Perhaps Synthetix could add a time delay on token upgrades as part of SynthetixV3. There may be other ways to limit this risk. For example, Synthetix might limit proxy upgradability.

Next Steps for Compound

Scenario 1: SynthetixV3 is released without adding a pDAO time delay.
Synthetix could be added to Compound as a non-collateral asset.

Scenario 2: SynthetixV3 is released with a pDAO time delay.
Synthetix could be added to Compound as a collateral asset. However, the community may be cautious of adding new contracts as collateral before the test of time.

Because of major changes coming with SynthetixV3, a few things should be reviewed before adding a cSNX market:
Make sure SynthetixV3 has an audit.
Make sure the cToken contracts still appear to work correctly with SNX.
Examine the powers of the pDAO multisig and any timelock duration.
Examine the SNX holdings of the upcoming Treasury Council, which may replace the sDAO multisig.

There is a followup discussion of Next Steps for Synthetix in the synthetix-ambassadors channel of the Synthetics discord.

1 Like