Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alternative arbitrage pool mechanism #59

Closed
kaiynne opened this issue Dec 4, 2019 · 2 comments
Closed

Alternative arbitrage pool mechanism #59

kaiynne opened this issue Dec 4, 2019 · 2 comments

Comments

@kaiynne
Copy link
Contributor

kaiynne commented Dec 4, 2019

One of the mechanisms Synthetix uses to support a tighter peg is the arb pool. This pool receives 5% of the weekly SNX inflation. If the ETH/sETH ratio in uniswap falls below .99, ether can be sent to the arb pool where it is used to purchase sETH via the uniswap sETH pool. This buying pressure lifts the peg, and in return the pool distributes SNX to the wallet that sent the ether at a discount proportional to the ETH/sETH ratio. For more info see: https://synthetix.community/docs/arb-pool or Synthetixio/synthetix#188.

The issue is that the intent was to provide discounted SNX for restoring the peg, but this incentive alignment is weak as bots are now automatically closing the arbitrage loop through the SNX/ETH uniswap pool to lock in the discount. While this is not a problem in principle it does expose the system to gaming. The specifics of how the bots are gaming the pool will be provided by Nocturnal in a comment below.

This issue proposes a new mechanism with longer term alignment, where SNX is still deposited into the arb pool but is now purchased directly with ether at a discount proportional to the current discount in the ETH/sETH pool on uniswap, but this SNX is escrowed for 12 months.

The ether proceeds from the SNX purchases are immediately used to purchase sETH via the uniswap pool putting upwards pressure on the peg. The advantage to this mechanism is it rewards arbitragers with a longer time horizon, but it also removes the ability to immediately close the arbitrage loop and game the pool.

Now even if a bot is selling into the uniswap sETH pool to artificially lower the ratio in order to access discounted SNX, they must be prepared to accept the slippage from this sETH sale and to hold the SNX longer term. This is less efficient from an arbitrage perspective but should still be more than sufficient to restore the peg while being less gameable.

@nocturnalsheet
Copy link
Contributor

nocturnalsheet commented Dec 4, 2019

A little insight on how this arb pool system can be exploited and is currently exploited

Firstly the mechanics of Arb pool design favours anyone with large sETH supply as they can control when the Arb pool can be triggered + exiting their sETH position with minimum slippage (by using the arb pool to bring the peg back up before selling down again)

Example onchain
Sells large amount of sETH to push down the peg: https://etherscan.io/tx/0xb521b732dcf20f848c60d6eaa7f60880afcf551a10c0d043b1d58aefcd743db0
Uses the ETH from selling sETH to buy SNX from the Arb pool
https://etherscan.io/tx/0xd5a18eb179ead5a5775428ac9fe952f6a2b02e5d3e535cf51cf4a98595a889ee
Repeat the sell of sETH
https://etherscan.io/tx/0x2e25f80639d200b01741ec66f7efe080b6528ee1e593317c33ae3beeeee5a561
Another buy using the ETH from selling sETH through the Arb pool
https://etherscan.io/tx/0x8a2297da7b960c0a693eb8b6904c319f28a063f74affce833e24fd6b4358350c

Another bot offloading SNX automatically from Arb pool
https://etherscan.io/token/0xc011a72400e58ecd99ee497cf89e3775d4bd732f?a=0xc0fb2a3be460a9a027ab55b947f8461402284f7d

These bots can then offload the SNX on Uniswap (which is the current method) and this puts a weekly sell pressure of 72k SNX on open market as users who have long term incentive alignment with SNX are not able to win/have opportunity to get discounted SNX by helping to restore the peg

@capnstash
Copy link

capnstash commented Dec 9, 2019

Not closing the arb loop is a big no-no. Arbitrageurs have opex, they will not long, more likely switch to some other arb.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants