Discover more from Economics Design Newsletter
EP 34: Economics of Cross-chain DEX with Sifchain.
Economics & Design of Sifchain.
Welcome, premium subscribers! Thank you for subscribing. I appreciate you very much.
TLDR below. This is not financial advice.
Catch the episode on YouTube
In the previous episodes, we have done plenty of deep dives into decentralised exchanges. For example, Uniswap using X*Y=K, Bancor uses a more complex model that arrives at a similar result and Balancer uses a formula with more variables. Today, we will be sharing another DEX, Sifchain. The main difference is that it is built on their own blockchain. This adds some complexity to the usual AMM incentive and reward structure. And that's what we are going to cover!
Cross-chain AMM vs usual AMM
In DEXs, we're always talking about a typical AMM. That is built on a specific layer one and you don't have to think about how to deal with validators to validate these transactions. (Because that is done by someone else as it's a different protocol, a different set of people, a different company, different project, different open-source smart contract.)
Typical AMM: Built on Ethereum like Uniswap
In typical AMM’s they're just building a platform to transit between the crypto-assets so for example on Uniswap you can transact between ETH and wNXM or wBTC. There are all these different assets available which are ERC20 that you could trade and swap.
Cross Chain #1: Built on Ethereum like Bancor
Then we have this another type which is different because it's similar to Uniswap and it allows you to trade between assets and expands a little bit further. You can also trade ERC20 assets and crypto assets on EOS or in Tron.
Think of each layer one as a country, In Ethereum everything is built in the U.S. Only U.S stocks are being traded over there. Bancor is where you can trade stocks that are from the UK so you live in the states and you can trade with UK stocks.
Cross Chain #2: Built on its own Layer 1 like Sifchain
Lastly, application specific blockchain also allows for cross-chain exchanges. It adds in a layer one component so it has its own layer one solution where it will validate each of these transactions as well.
There are a lot of pros and cons to that. Pros generally being that it's probably a lot faster, a lot cheaper and you can control a bit more of the different behaviors and different incentives to affect the different kind of behaviors that you want to have in your ecosystem. Because you can control or you can incentivise actions in the validators layer and the liquidity provider layer so the application layer. The cons is that because you have two focuses, now it's important to balance them.
Sifchain big picture overview
Sifchain vs Bitcoin
I want to show you when comparing Sifchain and Bitcoin because they have the similar idea. Blockchain consists of blocks and they are connected in chains.
Each block we need to verify transactions, which will record transaction information between the two parties. Each verified block will be put into the chain. This is verification that exists.
Where is Bitcoin created?
Bitcoin is generated from each new block, which is verified. But the winning validators will get these new Bitcoins. And step by step more Bitcoins is brought into the network. These are what we call layer 1
What happens on top layer 1?
What is built on layer 2 are decentralised applications (Dapps). If you send me your 1 Bitcoin, it happens on the application layer and all of this transaction information is confirmed and put into the next block on layer 1.
Sifchain, as you can imagine, is also quite similar it has layer one solution and it has a little box to be validated so if we go back to layer one again you have block one, block two, block three that will be validated so block one is when you have all these different transactions and then you also have validators that will be getting your tokens and their token is called $ROWAN so they will also be getting these tokens which are basically block rewards and the key difference is that in bitcoin your block reward is fixed and it only changes every four years but here the block rewards changes every single time a transaction occurs because it is dynamically increasing and it's dynamically calculated so the block rewards for every block that's minted by validators changes and so layer one is the validators which is similar as bitcoin.
The main difference:
Bitcoin has a fixed reward and a decreasing half every 4 years.
$ROWAN validators get paid every second when transactions occur dynamically. So block reward from $ROWAN will change and not be fixed.
Furthermore, the applications on Bitcoin's layer 1 are P2P transactions such as BTC transactions from person to person. In dapp layer for $ROWAN, transactions or swaps are executed with $ROWAN pair and Validators will receive $ROWAN rewards. So these are the basic ideas that differ between them.
Sifchain economics mechanism
The most important thing is the balance between Validators and Liquidity Providers in the ecosystem because they use the same capital to generate rewards (for example you can hold between $ETH to provide liquidity on Dexs and receive transaction fees or staking them to receive additional $ETH). This is the opportunity cost.
On Sifchain, the cost of position trade-offs can be minimised with the interesting mechanism I'll cover. First, you can imagine if I have a few dollarsROWANI can decide to become 3 types:
Validator (the same with the miner on Bitcoin)
Liquidity Provider (similar to Liquidity Providers on current DEX exchanges)
Traders (you will benefit when the value of $ROWAN growth).
Thus, on Sifchain, opportunity cost also arises where people have to decide which position to choose the most profitable. However, to "erase" the opportunity cost that sets Sifchain apart, it is how they design their economy to do this.
How do people make these decisions?
This is where economics comes in with all the opportunities. There are three different functions/ways to participate:
Trader: If I'm a trader then it means that I want the price right now so if $ROWAN cost one ETH then I want the price of one ETH right now
Liquidity Provider: If I’m a liquidity provider it means that I want to put up my liquidity into the pool so people can exchange and with that, I can be earning additional tokens because I'm earning the fees so this is similar to adding money in the bank and earning interest rates
Validators: It's also a similar concept so if I put money in the bank and then get a different kind of interest rates then this interest rate is basically block rewards
Therefore, in general, we want to focus more on validator and liquidity provider mainly because you get returns on that and when you get returns the people like it and want to put more money in there because if you're a trader then you do get money right now but if there's potential that you're going to get a lot more money in the future then you usually want to use the other systems instead.
In whatever protocol we have to consider options for becoming Validator or Liquidity Provider; In other words, looking at options is behavioural modification. We need to understand clearly how people behave and what we can do to affect this behaviour. This gives birth to rewards, which encourage fundamentally good action on the ecosystem.
Now return to the two factors above: becoming a Validator you need to stake your token and to become a Liquidity Provider you need to put your money into the pool. They are the same, deposit money somewhere and receive interest. The rewards of the two positions above are distinct and very different factors that encourage specific behaviours in the ecosystem.
How rewards will be affecting Validators / Liquidity Providers.
Things that affect the validator are either the mint or burn.
For example, with POS on Ethereum, Validators will receive the reward from staking which is minted from block rewards. If you are a validating some bad transactions then your stakes will be burn.
The motivation to become a Liquidity Provider is:
Fee transaction: every time traders make transactions which makes fees to Liquidity Providers. As many transactions as possible.
Traded volume: The larger the volume of transactions, the more profitable the Liquidity Providers are.
Subsidy (yield farming): The system will reward Liquidity Providers through incentive programs.
How will the rewards affect liquidity providers?
Imagine, I have to decide whether to staking or provide liquidity. The main reason I choose one of them is based on the profits I make.
Liquidity providers rewards come from a few ways:
Fees: As you can imagine every time you make transactions you have to pay a small amount of fees so this fee is calculated and it goes to the liquidity providers
Volume: It also depends on how frequent the volume is because that affects the total amount that is given to the liquidity providers.
Subsidy: The system also rewards liquidity providers so fees and volume are by users/traders and every time they transact some fees will be given to the liquidity providers but the main difference with a subsidy is that it is given out by the protocol itself so to the liquidity providers it's the same thing as it's money given to them but from a backend point of view it's different because fees come from traders whereas subsidy comes from the system.
If the profitability of becoming a Validator is higher, everyone becomes Validator and assuming no one is Liquidity Provider, there will be no traders who trade, nothing is validated. On the contrary, if there are over many Liquidity Providers or too many rewards for providing liquidity and there will not be enough people to validate transactions.
Therefore, a stable system tries to rebalance between these two factors.
The total supply of tokens includes mint is where we have an additional block reward (+) and minus where bad actors burn their tokens (-).
The total supply is split into 2 different things: the stake by Validators and the circulating supply, there are 2 different layers. With Validator who stakes their token in layer 1, and the circulating supply is basically in your dapp at the application layer.
In circulating supply, we can use them in 2 ways:
The first one is to be used by liquidity providers and to be a liquidity provider you have to stake your $ROWAN to have liquidity because with a decentralized exchange or autonomous market maker you're basically trading with the reserve and this is part of the reserve
The second is other on-chain activities which will be governance, different kind of voting, trading, or peer-to-peer exchange.
Liquidity Providers put their token into the pool and earn fee transactions and on-chain activities will be governance, different kinds of voting, trading or p2p exchange and paying in $ROWAN.
What are the different parameters that affect the Validator System?
There are 2 main things that we are discussing: I (Inflation) is the % amount of token entered the system in a period, and A (total block reward per year) is the entire token will be rewarded.
Inflation is the amount of new tokens being introduced into the system but this needs to be balanced. There is minimum and maximum inflation which can be fixed in a smart contract and every time inflation is recalculated because it is dynamic it has to be within the maximum and minimum threshold so these are basically constraints that have been included in the system.
With I, we need to balance by fixing Inflation Ceiling and Inflation Floor. Every time inflation is recalculated and dynamic in a range.
This is similar to Ampleforth's incentive mechanism when the token supply will be elastic with the volatility and demand from the market.
Consider the formula to satisfy this incentive, the change in inflation:
An interesting thing in the Validator System is that there is no fixed supply, the block reward will always calculate dynamically.
Consider the ratio (*):
With is the actual percent stake Pv and is the ideal percent stake Yv.
For example, I fixed the reward rate for staking 66%, which means if the total supply is 100M tokens, 66M tokens will be rewarded through staking program by Validators, which mean Yv=66%
Returning to the ratio (*), we have 3 cases:
(*) = 1: reached the goal of mechanism design, because all parameters are exactly what I want-Yv = Pv = 66% <=> ΔI+=0. The change in inflation is zero.
(*) <1: This means the system needs more Validator. Because the actual percent stake does not reach to the ideal percent stake Yv yet, not as I expected. This makes the change in inflation greater than 0 which means the system will increase more token rewards to encourage people to become Validator.
(*)> 1: Contrary to the above case. But how do we reduce tokens in circulation? We cannot say every one to remove the existing token in the wallet, this is what economics is all about. In this case, we will decrease the reward block based on the previous inflation rate (an inflation rate of the previous block).
Consider: total block per year and: block rewards per block and A = b=AITotal Supply (S)
So that: b=I*S/β
If minting from S though Validator Stake (Sv) and Circulating Supply (Sc) are used in the target, we have:
(% Ideal stake) (Actual Amount Stake)
Let consider the difference of % Ideal Stake and Actual Amount Stake, we have 3 cases:
= 0: The system reach goal and not thing change;
<0: The Actual Amount Stake is too much and so many Validator stakes. So that, the system will decrease b with less reward minted per block;
0: We need more people to become Validator, the system will increase b with more reward minted per block.
That is the gist of the Validator System.
The base case of symmetric addition is everything that you see in Uniswap and all the other AMM’s out there.
Let’s imagine we have a liquidity pool and I have two tokens which are $ROWAN and $LISA. Symmetric addition means that I'm adding in $ROWAN and I am adding $LISA and so we get another pool with $ROWAN and $LISA along with additional new $ROWAN and new $LISA.
These are both liquidity pools and the cool thing is that it is invariant. Invariant basically means something that is kept constant so in these different liquidity pools you have X times Y equals K model and this is really just X 0.5 times Y 0.5 equals K. When we increase them proportionally then you will still get the same thing so symmetric addition is really just about adding the same quantity into the liquidity pool.
How do they decide to deal with this fee?
The reality is that the fees have a spectrum. We have a constant market maker spectrum.
CMM-Const market maker <------------> CLP-Continuous Liquidity Provider
✅External Fee ❌External Fee
❌Internal Fee ✅Internal Fee
Your fee will be dynamic in the above range. The Fee formula is
This is No Internal Fee Model or CMM Model (in which it is the Uniswap Model). This is how much $LISA token you get in exchange for the $ROWAN token that you put in.
This is the External Fee Model or CLP Model.
m: The change in tokens that you receive.
λl is Swap fee parameter which has 3 cases:
(Note: Although we dive into the math of being> 1, Sifchain's to balance the incentives between Validators and Liquidity Providers)ll(0;1]
= 0: we use No Internal Fee Model
= 1: we use External Fee Model
1: we have both Models which are bad for traders but good for Liquidity Providers. Because Liquidity Providers will bear great risk volatility where arbitrage is going on.
For example, if traders know a huge arbitrage opportunity, they are going to be making big trades and will usually harm Liquidity Providers who will suffer the loss.
We prevent that by giving these big fees to Liquidity Providers. Traders are sharing part of profit back to the Liquidity Providers.
Asymmetric addition is the same AMM, and here I showed you some different perspectives about Internal Fee, External Fee and how they are affected together. That makes the system fairer, Liquidity Providers are not constantly suffering Impermanent Loss.
Back with the pool, someone wants to add one-side of the pool. This is the same concept with Bancor 2.1 where people can add liquidity by one-side and other-side will be added by the system. So we will find out:
How can the asymmetric addition be added to the liquidity pool and equalise the composition?
Remember, the pools in the system rely on the formula x * y = k to operate. We have 3 steps:
An initial balance pool has exactly x * y = k;
Someone adds more tokens on one-side of the pool which now has x * y ≠ k;
The system will balance this pool by burning or minting $ROWAN tokens.
This system has one interesting thing. You are already a liquidity provider and trade in the same pool, you must pay a fee which will come back to Liquidity Providers including you.
How does it work?
QR: the change in $ROWAN, it is your addition.
When you put more tokens into the pool, the system will calculate itself how many tokens to be swapped? How many tokens per side changes? and automatically burn or mint $ROWAN token.
Economics of Sifchain token
In this part, I emphasise some points that I mentioned above. When we look at the market design, one of the main important things that the tokens have to be used by someone, there must be reasons for the token to exist. It could be a rules kind of game where the tokens exist and people have to use it.
We start with the parties involved in the system because tokens are encouraged to be used at the average level of the system so they behave the way you want. They are
In it, tokens are used mainly by Validators and Liquidity Providers. Hence the system is designed to influence them who decide to allocate their tokens to become Validator or Liquidity Providers. This depends on the rewards to pay them.
Validators: The block rewards are dynamically determined. It depends on the blocks major, the inflation rate, the actual number of Validators compared to the desired one in the system.
Liquidity Providers: The block rewards depend on the fees earned as well as the token rewards.
A few factors are affecting the $ROWAN:
The percentage staked by validators: There is the validator state or the ideal state versus the actual state
Staked by liquidity providers: There is one-third that's not staked by validators then people either use it, trade it, or become a liquidity provider and this needs to be balanced as well.
Rewards to LP vs Validators: Then you want to balance the rewards between liquidity providers and validators because there'll be rewards given to them and if one of the rewards is higher then people will all flock to that side and the system will not be so robust and if too many people become liquidity providers there isn't enough validators and transaction fees would be very expensive and people could exploit the system and if there are too many people being validators then there aren’t enough liquidity providers and there aren't enough transactions that are going on and nothing to validate
Minting schedule to the validators: This is the minting and burning structure.
Burning: There's a fixed supply and the way to reduce the amount of tokens is through burning and burning is done when a validator is a bad actor or it can be reduced when more people are staking so you have fewer tokens circulating.
LP rewards: It's a 12-week subsidy program that Sifchain will get started with once they roll out
Rebalancing is key
Rebalancing scene in 2 main ways: (1) Rebalancing the rewards between Validators and Liquidity Providers. You have a correct amount of participation in both 2 factors, (2) we also have rebalancing in the liquidity pool because someone can have asymmetric addition to the liquidity pool and it will balance itself.
There are 3 things to balance that make sure the system is robust on its own as well as dynamically taking in a lot of variables. It constantly rebalances itself.
Listen on podcast if you prefer audio version.
TLDR: That is about Sifchain which will probably start the scheduled launch in mid-January. This system is quite interesting, it adds a new dimension to a new layer to such systems. One of the problems with all these different systems built on Ethereum Blockchain where transactions get very expensive. We have other solutions like Thorchain that is built on layer 1, but they do not exactly interact with ERC20 tokens. So Sifchain resolves that by having both Validators and Liquidity Providers on their system. It is a layer 2 solution with their own Dapp. We also have layer 2 solutions, but most of them have fixed parameters, which makes Sifchain different as they can rebalance the parameters depending on the conditions of the system. Let us keep an eye on whether Sifchain becomes a welcome solution.
Get smart: Sifchain is ahead of the curve when it comes to application specific blockchains to reduce reliance on ETH network and to reduce transaction costs.
Get smarter: Sifchain is coming out next week. Check out https://sifchain.finance to follow their plans.
Order the book now: book.economicsdesign.com