BSIP: 0006
Title: Market Maker Incentivization
Authors: Daniel Larimer <[email protected]>
Fabian Schuh <[email protected]>
Status: Draft
Type: Protocol
Created: 2015-12-16
Discussion: <https://github.com/cryptonomex/graphene/issues/475>
<https://bitsharestalk.org/index.php/topic,20482.0.html>
Worker: TBD
The success and failure of a market depends to a large degree on the number of participants in that market. The number of participants depends upon the liquidity in a market. This is a chicken and egg problem that must be resolved by bootstrapping a new market with liquidity. This bootstrapping process is very risky because it involves trading in an illiquid market. With the proper incentives it can become profitable to bootstrap a market until no additional incentives are necessary.
A market maker is anyone who has their order filled after being left open on the books for a minimum period of time (at least 1 block). These individuals leave an open order ready to meet the demand for someone looking to buy and/or sell. Leaving orders on the books that are never filled does not qualify for being a maker even if they add the appearance of depth. To be more specific, a market maker buys and resells over and over again and pockets the spread between buying and selling as their profit. This is not a risk free operation if the market starts to move consistently in any one direction.
The first step toward increasing liquidity is to reduce the artificial costs associated with trading in a market. This means simply lowering the trading fees to 0 for those who provide liquidity (makers) while only charging those who consume liquidity (takers). Under this proposal we would introduce a new parameter to assets that allows the issuer to configure different market fees for makers vs takers. Early on it may be desirable to have 0 maker fee, but for the sake of flexibility we will parameterize it.
Simply reducing the fees does little to reduce the risks (costs) associated with trading in an illiquid market. These costs are disproportionately borne by the early adopters of a market, especially in volatile markets. In order to offset these costs these market makers should be compensated for their risk in a manner that does not impose costs to participants outside the market. The goal is to reallocate the income generated by the market fees charged to the takers, to the makers.
An instantaneous reallocation does little more than shift the equilibrium price. Instead we propose to redistribute future market fees generated after a market has been bootstrapped to the risk takers that facilitated the growth of that market. Each market is like a startup business and like all startup businesses, some capital is required get started. In the case of a market, the startup capital required is liquidity provision. Shares in a company are usually distributed proportional to how much capital each founder contributed. As the company matures and raises future rounds of capital the company can sell their shares for higher and higher prices (offer less shares for the same capital).
-
MSHARES
- a special asset that has maximum supply M and is rewarded to users based upon the percent of the daily liquidity (volume) they provide to a particular ASSET. Every ASSET has the potential to have their own unique MSHARES. -
RESERVE
- The total remaining MSHARES to be distributed over time -
BUCKET
- a collection of MSHARES that is available to be divided among current liquidity providers. This is used to implement the leaky bucket algorithm -
DECAY_RATE
- The maximum percent of the RESERVE that can be moved into the BUCKET per second. This defines the half life of the reserve and the extent to which early liquidity providers have an advantage over later liquidity providers. -
B
- the total number of MSHARES in the BUCKET at any given point in time. -
Bmax
- the maximum MSHARES the BUCKET may accumulate (a multiple of the DECAY_RATE). -
Vavg
- An approximation to the average volume in the market -
Vperiod
- the number of seconds to average volume over (1 week recommended) -
V
- the volume of the maker order being filled (measured in UIA units) -
REWARD
- the reward in MSHARES that a MAKER receives -
T
- seconds since last match -
Tmin
- the minimum time a order must be on the books to be considered for maker rewards.
Top off the bucket (but cap at Bmax
):
Bchange = min( B + RESERVE * DECAY_RATE * T, Bmax ) - B
RESERVE = RESERVE - Bchange
B = B + Bchange
Reward a fraction of the bucket:
REWARD = B * V / (Vavg + V)
Remove Reward from Bucket:
B = B - REWARD
Update Weighted Average of Volume
Vavg = Vavg * MAX(0,Vperiod-T)/Vperiod + V
After calculating the REWARD the Maker's balance of MSHARES is increased.
Every maintenance interval the accumulated market fees for an UIA are used to purchase MSHARES in the UIA/MSHARES market. The percentage of market fees that are directed to repurchase MSHARES is a parameters that is set by the issuer. It may be increased, but never decreased.
All parameters are configured by the asset issuer including DECAY_RATE, Bmax, RESERVE, Vperiod, Tmin, maker fee, and percent of market fees allocated to the maker. An issuer may revoke their permission to change the parameters and thereby reduce the risk of the issuer changing the terms and impacting the value of MSHARES.
The result of this proposal is the creation of a new type of asset called the Maker Issued Asset that can only be created/destroyed by the algorithm above.
It is our belief that the cost of implementing a feature must be less than the present value of a feature. It is the belief of Cryptonomex that this particular feature is worth much more than the cost to implement it and therefore Cryptonomex will be implementing it speculatively in exchange for a cut of all MSHARES for all assets that use this feature to improve their liquidity.
We will create a new NETWORK ISSUED ASSET, called MAKER that will automatically be repurchased with 20% of all MAKER ISSUED ASSETS ever created. This asset with have a maximum supply of 1,000,000 MAKER and initially be 100% allocated to Cryptonomex in exchange for implementing this feature. Cryptonomex will sell MAKER into the market to cover the cost of development.
In order for this proposal to be approved by the network a worker proposal will be created that will pay 100,000 BTS to Cryptonomex. If the proposal gets funded then it will be assumed that the required hardfork has been approved by stakeholders and development will compense.
If a particular asset issuer defines their DECAY rate such that 50% of all MSHARES are allocated in the first year, then someone who provides 100% of the liquidity would earn 50% of all future market fees in exchange for liquidity provision. It does not matter what the volume is over that year, all that matters is the relative percentage of liquidity provided by every market maker.
If the market starts out small with $10K / 24hr volume, and then turns into a $30M 24/hr volume then the market fees of 0.2% will yield $30,000 per day, half of which would belong to the individual who provided a meer $10K of liquidity in the first year. Meanwhile those who provide $10K of liquidity once $30M of volume is reached will get a very small number of MSHARES.
Assuming a market provides a useful function for traders, these incentives should easily encourage early adopters to bootstrap the market.
All systems must be analysed for potential abuse. In this case we are concerned about a single bad-actor attempting to create fake volume in order to profit without actually providing liquidity. Abuse is prevented by three factors:
- There is a non-zero cost to creating fake volume in the form of order creation fees charged by the network.
- Creating fake volume requires also being a "taker" and paying the taker's market fee. The asset issuer will only allocate a fraction of the taker fees to repurchase. This means that there is a non-zero cost of creating MSHARES.
- In the event that it is profitable to create MSHARES through fake volume, there will be market competition to fight over the "free money". This would work like mining difficulty as many different individuals compete to create "fake volume" until percent of MSHARES each market participants earns approaches the cost of creating those MSHARES.
Our conclusion is that the design of this algorithm is resistant to abuse. If abuse is attempted the network and the issuer should profit greatly.
When there is a market fee it is denominated in UIA and is value is a percent of
the the UIA received from the trade (ie: 0.2%). If the trade was for $1000, then
$2 would be the "market fee" paid by the "taker". This $2 will be further
divided according to a parameters set by the issuer, the issuer could allocate
50% for issuer profits, and 50% for maker. In this case $1 would be used to
repurchased MSHARES
for UIA. The total maker rewards would be: REWARD = B*1000 / (Vavg + 1000)
. Of this 20% of REWARD will be used to purchase MAKER in the
MSHARES/MAKER market, and 80% will go to the user who performed the market maker
role.
BitShares would receive the ORDER_CREATION_FEE
which is fixed regardless of the
size of the order and is about $0.20 for regular users and $0.04 for lifetime
members. This ORDER_CREATION_FEE
is distributed to the referral program /
network like all other non-market fees.
The only market fees earned by BTS holders would be the 50% (variable) allocated to the issuer when the issuer is the committee. These funds are at the discretion of the committee.
Bottom line, BTS holders make the same money they use to make. This proposal simply offers UIA issuers the opportunity to increase their profits by bootstrapping their liquidity with a stake in future revenue from the market.
It seems like there will be opportunity to abuse this, at least in the beginning, where few people are competing. The fee's payed trading with yourself seem minuscule compared to the possible gain if that asset ever becomes popular. It is a risk though, that it may not be popular.
Envision what this competing will look like. Everyone trying to trade with themselves without offering too good of a price and also trying to avoid filling someone else's order.
If your own order is the cheapest available. Other than the fee, is there any reason NOT to trade with yourself? If not shouldn't we expect every market to completely saturate based on the perceived future volume of that market?
I think the conclusion I'm coming to is that these attempted "abuses" are actually good for everyone. All participants will be taking their own risks, and not participating costs you nothing. Its not a further complication because not knowing about it doesn't hurt you. The more competition, the tighter the spread and greater collected network fees. Whats to lose? +5%
Lets try the experiment with a 20% taker fee just to be outrageous. Lets have the maker fee be -20%. Under such a market, those who demand liquidity take a 20% loss and those who provide it get a 20% gain. The trader would view such a market similar to a market with a 20% spread. They would be hesitant to buy such an asset because they know they will take an instant 36% loss if they are the taker on both sides. (0.8 in and 0.8 out). This means that someone looking to get in-or-out of such a market with the least loss would have to be a maker for one of the two trades in which case they take a 4% loss (.8*1.2=.96). Those who are willing to "wait" on both sides of the trade can profit by 44% (1.2*1.2). Hence the negative maker fee encourages users to wait (which is the opposite of liquidity). You create "lines" on both side of the order book of people who want to exit their position. I suspect you would see very narrow spreads with steep walls. This market would have the appearance of good liquidity, but the underlying reality is that 'day traders' view it as a market with a 20% spread.
So in this extreme case the takers end up paying for their liquidity TODAY the same way they would pay for their liquidity without the 20/-20 maker/taker rule: via a large spread. Market makers end up making the same profits they would if they had a 20% spread between their buy and sell walls. The only thing the negative maker fee is doing under this model is enforcing a minimal spread that makers can provide, in other words price-fixing the market maker fee. Instead of market makers competing to reduce spread, they are competing to be the first in line of a "virtual" 0 spread. Because no value is moving through time all this price fixing is doing is creating shortages (of takers) and gas lines (those waiting to exit on both sides of the book).
So it is clear that if we set the maker/taker fees to be greater than the natural spreads that things break down. Our real goal is to reduce spreads, not enforce a minimum spread with steep cliffs of liquidity on either side of that minimum spread.
So this means that we want to maximize maker rewards without increasing the cost to the taker. So lets look at another extreme market:
- Suppose that takers paid a 0.1% fee
- Suppose that makers earned 20% bonus from someone else (ie: the network).
In this market there would be huge walls of liquidity as people compete to get a 44% return every time they turn over. This 44% return completely eliminates almost all market volatility risk. Traders/takers see an effective spread of just 0.1% which means they feel very comfortable buying the asset because they know they can turn around and sell it instantly with only a 0.2% loss. Assuming there was no limit on the 20% bonus, then people would start trading against themselves. Obviously you would have to mitigate this self trading by making the reward based upon how long the order was on the books before getting filled. This is the situation we really want to create.
So the question becomes how do you compensate makers today without making todays traders (takers) pay for it. My proposal has tomorrows takers pay today's makers by paying for market making today, but not tomorrow.
The proposal here says you give them 0.1% today + a cut of the net present value of all future fees.
The cost of providing liquidity on early on is much more expensive than the cost of providing the same liquidity in a mature market. Under this model you gain more liquidity from makers early on (when it costs the most) without actually decreasing liquidity available in the future (when it costs less). If you set the decay curve properly you can end up with "constant liquidity" equal to the average liquidity over the entire life of the market. Over a long enough time horizon this means that you should get almost as much liquidity in year 1 as you do in year 30 if market makers believe in the future of a given market.
So when people suggest "simple" rules they are not really getting the result they want.
This document is placed in the public domain.