Thorchain’s design is an elegant balancing of incentives to combine several moving parts. In this post we will consider the peer-to-pool trading concept, liquidity providers and the role of Thorchain’s native token as a common asset in the design.
This is a general and simplified explanation without getting bogged down in all the details and specifics.
Peer-to-pool trading explained
On Thorchain users don’t trade directly with each other peer-to-peer, rather they trade into liquidity pools, peer-to-pool. This design is what allows Thorchain to be a decentralized exchange, which provides better privacy, security and censorship resistance than a centralized alternative like Coinbase or Binance. Following is a simplified explanation of the concept with an example of trading between Bitcoin (BTC) and Tether (USDT).
Thorchain maintains a pool containing an equal value amount of BTC and USDT. Anyone can put x% of one asset’s value into the pool and take the same x% of the other asset’s value out of the pool.
So a swapper puts in 0.1% of the pool’s BTC value and takes out 0.1% of the pool’s USDT value. This puts the pool out of balance because there is now more BTC value in the pool than USDT.
This presents an opportunity for arbitrage; an arbitrageur (arber) can now put in x% of the pool’s USDT value and take out the same x% of the pool’s BTC value. But because the BTC in the pool was worth more than the USDT in the pool (as a result of the previous swap), the x% of the pool’s BTC that the arber took out is worth more than the same x% of the pool’s USDT that the arber put in.
So the arber has made a profit. The useful thing about this for Thorchain is that the arber has rebalanced the pools. Perhaps not exactly but in the right direction; there was too much BTC and not enough USDT in the pool and the arber removed BTC and added USDT, thus addressing the imbalance.
The trades are kept to reasonable amounts by progressive trading fees that rise as a % with the amount traded. This means a swapper cannot make a trade so large that it would put the pool severely out of balance. Likewise when the pools are out of balance an arber cannot maximize their profit by putting in 100% of the less valuable asset and taking out 100% of the more valuable asset, because the fees would be prohibitive and make it unprofitable.
Let’s put some numbers to this by looking at an example swap that unbalances the pool and the subsequent arbitrage which rebalances the pool and makes a profit for the arber.
Peer-to-pool example
Bitcoin price = $100
Pool before swap
Asset | Value |
---|---|
1 BTC | $100 |
100 USDT | $100 |
1. Swapper trades
IN – 0.01 BTC (1% of the BTC) worth $1
OUT – 1 USDT (1% of the USDT) worth $1
Pool after swap, before arbitrage
Asset | Value |
---|---|
1.01 BTC | $101 |
99 USDT | $99 |
2. Arber trades
IN – 1 USDT (1.01% of the USDT) worth $1
OUT – 0.010201 BTC (1.01% of the BTC) worth $1.0201
The arber can then instantly sell his 0.010201 BTC for $1.0201. He only put in $1 for it so he has made a profit of $0.0201.
Pool after arbitrage
Asset | Value |
---|---|
0.999799 BTC | $99.9799 |
100 USDT | $100 |
The swapper is happy because he made the swap he wanted at the fair market price. The arber is happy because he made a profit.
For simplicity I left out the trading fees in the above example. You can see that without fees the total value in the pool has gone down by the amount of the arber’s profit. This is made up for by trading fees that bring the value of both assets to an equal $100.
Liquidity providers
So how does Thorchain get a pool of BTC and USDT? Liquidity providers put their BTC and USDT into the pool for the purpose of earning yield in the form of trading fees and block rewards.
A key consideration is that liquidity providers remain anonymous, maintain control and ownership of their funds and can withdraw at any time, which is known as self-custody. Again this provides better privacy, security and censorship resistance than staking crypto with a service like Nexo or Celsius.
Liquidity providers make large returns of around 15% APY on both assets in the pool and there is a key point; both assets in the pool. Whatever asset you want to stake and get returns on as a liquidity provider you have to stake the same value of the other asset in the pool.
From our simplified BTC/USDT example above you would think that would mean that for every dollar worth of BTC you stake you also have to stake a dollar worth of USDT. In fact for every dollar worth of BTC you stake you also have to stake a dollar worth of RUNE, Thorchain’s native token.
So if you have 1 BTC to stake you will have to also stake 1 BTC worth of RUNE, or sell half of the 1 BTC for RUNE and stake 0.5 BTC and the same value in RUNE. You can get RUNE on Thorchain itself or another exchange that supports it such as crypto.com and Binance. Let’s look at why the RUNE requirement exists.
The role of RUNE as a common asset in Thorchain
In the Thorchain interface a swapper appears to trade directly between BTC and USDT as described above. However what actually happens in the background is that BTC is swapped for RUNE then RUNE is swapped for USDT.
This means there is no pool for BTC/USDT trading, there is a BTC/RUNE pool and a separate USDT/RUNE pool. This would not make sense if all you wanted was a BTC/USDT exchange; however it’s brilliant if you want to allow trading between several assets. Consider the assets currently supported;
To allow for direct trading between all 9 assets you would need 36 different pools, all with enough liquidity. I like DASH and DOGE but I doubt there would be enough liquidity to support a direct trading pool for them. By pairing each asset to RUNE and using RUNE as a bridge between them all, you only need these 8 pools to effectively create 36 different trading pairs;
BCH/RUNE
BNB/RUNE
BTC/RUNE
DASH/RUNE
DOGE/RUNE
ETH/RUNE
LTC/RUNE
LUNA/RUNE
With RUNE as a common asset you can trade anything to anything by going through RUNE. You can trade DASH to RUNE then RUNE to DOGE and you have a DASH/DOGE trading pair with sufficient liquidity!
The system could be designed with bitcoin or any other asset as the common asset without needing a native platform token like RUNE, however using RUNE has many advantages;
- RUNE can be purpose-built for the specific use case of being a common asset on a decentralized exchange. It can be made with all the desirable characteristics for that use case and none of the undesirable characteristics for that use case.
- New RUNE can be created and put in a treasury for development and promotion of the project, such as paying for security audits and to compensate for losses caused by protocol level hacks.
- New RUNE can be created to incentivise node operators and liquidity providers.
- Requiring node operators and liquidity providers to hold RUNE creates a community of invested participants with aligned incentives who all want what is best for Thorchain. Note that swappers and arbers are not required to use RUNE.
That is why we have RUNE as the common asset and that is where the condition that liquidity providers must stake an equal amount of RUNE to the other asset they wish to stake comes from.
Jump in and have a go!
The best way to learn more about Thorchain and understand it better is to use it! You only need any one of the supported assets listed above todo a swap or provide liquidity and earn yield of 15% APY or more, so give it a try and let us know what you think in the comments bellow.
Good luck and have fun!