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