BSIP-0006
This commit is contained in:
parent
d33362e306
commit
689a039236
1 changed files with 308 additions and 0 deletions
308
bsip-0006.md
Normal file
308
bsip-0006.md
Normal file
|
@ -0,0 +1,308 @@
|
|||
BSIP: 0006
|
||||
Title: Market Maker Incentivization
|
||||
Authors: Daniel Larimer <Dan@cryptonomex.com>
|
||||
Fabian Schuh <Fabian@BitShares.org>
|
||||
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
|
||||
|
||||
|
||||
# Introduction
|
||||
|
||||
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.
|
||||
|
||||
# Market Makers
|
||||
|
||||
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.
|
||||
|
||||
# Flexible Maker Fees
|
||||
|
||||
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.
|
||||
|
||||
# Rewarding Market Makers
|
||||
|
||||
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).
|
||||
|
||||
# Specifications
|
||||
|
||||
## Definitions
|
||||
|
||||
* `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](https://en.wikipedia.org/wiki/Leaky_bucket)
|
||||
* `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.
|
||||
|
||||
## Calculations Performed on Match
|
||||
|
||||
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.
|
||||
|
||||
## Distributing Market Fees
|
||||
|
||||
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.
|
||||
|
||||
# Maker Issued Asset
|
||||
|
||||
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.
|
||||
|
||||
# Funding this Proposal
|
||||
|
||||
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.
|
||||
|
||||
# Approving this Proposal
|
||||
|
||||
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.
|
||||
|
||||
# Understanding by Example
|
||||
|
||||
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.
|
||||
|
||||
# Preventing Abuse
|
||||
|
||||
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:
|
||||
|
||||
1. There is a non-zero cost to creating fake volume in the form of order
|
||||
creation fees charged by the network.
|
||||
2. 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.
|
||||
3. 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.
|
||||
|
||||
# Discussion
|
||||
|
||||
## Fees that go to purchase MSHARES
|
||||
|
||||
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.
|
||||
|
||||
## Opportunities for Abuse
|
||||
|
||||
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%
|
||||
|
||||
## Thought experiment
|
||||
|
||||
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:
|
||||
|
||||
1. Suppose that takers paid a 0.1% fee
|
||||
2. 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.
|
||||
|
||||
# Copyright
|
||||
|
||||
This document is placed in the public domain.
|
Loading…
Reference in a new issue