2017-06-06 07:21:18 +00:00
|
|
|
BSIP: 00018
|
|
|
|
Title: Revive BitAsset through buying Settlement Pool
|
|
|
|
Authors: Fabian Schuh
|
|
|
|
Status: Draft
|
|
|
|
Type: Protocol
|
|
|
|
Created: 2017-06-05
|
2017-06-06 07:24:39 +00:00
|
|
|
Discussion: https://bitsharestalk.org/index.php/topic,24322.0.html
|
2017-06-06 07:21:18 +00:00
|
|
|
Worker: FIXME
|
|
|
|
|
|
|
|
# Abstract
|
|
|
|
|
|
|
|
BitAssets, i. e. market-pegged assets (MPA) like bitUSD in BitShares can suffer
|
2017-06-06 08:13:01 +00:00
|
|
|
a "global settlement" event. After global settlement, the asset is
|
|
|
|
effectively rendered useless. This BSIP proposes a protocol change to
|
|
|
|
enable resolving a global settlement so that affected assets can be
|
|
|
|
continued and put to good use again.
|
2017-06-06 07:21:18 +00:00
|
|
|
|
|
|
|
# Motivation
|
|
|
|
|
2017-06-07 11:02:22 +00:00
|
|
|
The necessity of reviving bitassets has already been discussed in
|
|
|
|
BSIP-0017, and is unquestioned.
|
|
|
|
|
2017-06-06 07:21:18 +00:00
|
|
|
Market-pegged assets, aka SmartCoins are among the core features of the
|
|
|
|
BitShares blockchain and as such provide one of our unique selling points.
|
|
|
|
|
2017-06-06 08:13:01 +00:00
|
|
|
MPAs can suffer a "global settlement" event. A global settlement occurs
|
|
|
|
when the least collateralized short position has insufficient collateral
|
|
|
|
to buy back the borrowed SmartCoins at the current feed price. What
|
|
|
|
happens then is that the MPA is tagged with a "settlement price",
|
|
|
|
defined as the collateral ratio of the least collateralized short. All
|
|
|
|
short positions are closed automatically, by collecting sufficient
|
|
|
|
collateral into a settlement pool and paying out the remainder to the
|
|
|
|
short's owners. MPA holders can use the forced settlement operation to
|
|
|
|
receive their share from the settlement pool in exchange for their MPAs.
|
|
|
|
Even after global settlement, market-pegged assets can still be
|
2017-06-06 07:21:18 +00:00
|
|
|
transferred or traded, but they can no longer be borrowed.
|
|
|
|
|
2017-06-06 08:13:01 +00:00
|
|
|
Currently, in BitShares, there is no actual way to resolve the global
|
|
|
|
settlement, but eventually, all significant holders will have to settle
|
|
|
|
their positions to obtain BTS for their long position. Some dust will
|
|
|
|
remain scattered all over the place, where the value of the dust
|
|
|
|
position is lower than the fees required to get rid of it.
|
2017-06-06 07:21:18 +00:00
|
|
|
|
2017-06-06 14:57:48 +00:00
|
|
|
# Rationale
|
2017-06-06 07:21:18 +00:00
|
|
|
|
2017-06-06 08:13:01 +00:00
|
|
|
When a market-pegged assets undergoes a global settlement, one of the crucial
|
2017-06-06 07:21:18 +00:00
|
|
|
mechanisms that support the peg (namely "margin calls") is no longer available.
|
|
|
|
However, other mechanisms, such as the "face-value", trading and settlement
|
|
|
|
still exist and, unless the valuation of BTS decreases significantly, the
|
|
|
|
outstanding debt (the BitAsset long positions) are still collateralized by
|
2017-06-06 08:13:01 +00:00
|
|
|
approximately 100% through the settlement pool at the fixed settlement price.
|
2017-06-06 07:21:18 +00:00
|
|
|
|
2017-06-06 08:13:01 +00:00
|
|
|
This means, if a global settlement event happened on USD at a price of 1
|
|
|
|
bitUSD/BTS, then an outstanding debt of 1000 bitUSD would be backed by
|
|
|
|
1000 BTS in the settlement pool of the bitUSD asset and no other call
|
|
|
|
positions would be open by anyone else. Every bitUSD long position
|
|
|
|
could, in this case, claim BTS from the settlement pool at a rate of
|
|
|
|
1:1.
|
2017-06-06 07:21:18 +00:00
|
|
|
|
|
|
|
# Proposal
|
|
|
|
|
|
|
|
All that is needed for the asset to be *revived* is:
|
|
|
|
|
|
|
|
* empty the settlement pool
|
|
|
|
* re-enable price feeds
|
|
|
|
|
2017-06-06 08:13:01 +00:00
|
|
|
Since after a global settlement, the collateral for the outstanding long
|
|
|
|
positions are stored in the settlement pool, we here propose to **obtain
|
2017-06-06 14:57:48 +00:00
|
|
|
the funds in the settlement pool and its outstanding debt from the
|
2017-06-06 08:13:01 +00:00
|
|
|
network**. Since the collateral ratio of the settlement pool after a
|
|
|
|
global settlement is 100%, obtaining the settlement funds in order to
|
|
|
|
convert it into an open call position **requires to also provide
|
|
|
|
additional collateral or reduce the debt** in order to not cause another
|
|
|
|
global settlement or margin call right away.
|
2017-06-06 07:21:18 +00:00
|
|
|
|
|
|
|
# Specifications
|
|
|
|
|
2017-06-07 11:02:22 +00:00
|
|
|
## Bugfix: MPAs that have seen a global settlement cannot be settled after the price feed expires
|
|
|
|
|
|
|
|
It has turned out that force-settling an MPA requires a valid price feed
|
|
|
|
even when the MPA has a `settlement_price` set. This is clearly a bug,
|
|
|
|
since in that case the settlement price is independent from the price
|
|
|
|
feed. Furthermore, publishing price feeds is no longer possible after a
|
|
|
|
global settlement, so the time when settlement is possible at all is
|
|
|
|
limited to the expiration period of the price feed of the MPA.
|
|
|
|
|
|
|
|
This bug will be fixed. See
|
|
|
|
https://github.com/cryptonomex/graphene/issues/664#issuecomment-254056746
|
|
|
|
for a discussion.
|
|
|
|
|
|
|
|
## Auto-revive empty bitassets
|
|
|
|
|
|
|
|
A bitasset is "empty" if nobody is holding a positive amount of it
|
|
|
|
anymore. The only reasonable exception to this rule is the pool of
|
|
|
|
accumulated fees belonging to the asset itself. This situation can occur
|
|
|
|
after all holders of a globally settled asset have settled their
|
|
|
|
position via forced settlement.
|
|
|
|
|
|
|
|
The emptiness of a bitasset can easily be determined. When the BitAsset is
|
|
|
|
empty, the remainder of the settlement fund will be paid out to the
|
|
|
|
issuer, the accumulated fees and the current supply are reset to zero,
|
|
|
|
and the settlement price is cleared.
|
|
|
|
|
|
|
|
## `bid_settlement_funds_operation`
|
|
|
|
|
|
|
|
This applies only to SmartCoins, not to Prediction Markets.
|
|
|
|
|
|
|
|
The idea of turning the settlement fund into a short position when its
|
|
|
|
value has increased sufficiently can easily be extended. If the value of
|
|
|
|
the settlement fund itself is not sufficient to create a sufficiently
|
|
|
|
collateralized short position (in terms of price feed and MCR), an
|
|
|
|
investor could volunteer to add the required amount of collateral to the
|
|
|
|
fund and take ownership of the resulting short position
|
|
|
|
(collateral+debt).
|
2017-06-06 07:21:18 +00:00
|
|
|
|
|
|
|
This operation is all that is needed empty the settlement pool and re-enable price feeds.
|
|
|
|
It has the following payload:
|
|
|
|
|
|
|
|
* `fee` (asset_type): The operation requires a fee to be paid
|
|
|
|
* `symbol` (asset_id_typ): Symbol that has a settlement fund to be claimed.
|
|
|
|
* `account` (account_type): This account obtains the collateral **as well** as
|
|
|
|
the debt (i.e. call position) and has to either pay additional collateral,
|
|
|
|
provide shares of the BitAsset to reduce the outstanding debt, or a combination
|
|
|
|
of both.
|
|
|
|
* `additional_collateral` (asset_type): Collateral paid by the account in
|
|
|
|
order to support the call position
|
|
|
|
* `obtain_settlement_funds` (asset_type): The amount of settlement funds the
|
|
|
|
account is willing to obtain
|
|
|
|
|
|
|
|
The operation works as follows:
|
|
|
|
|
|
|
|
1. It pays a fee
|
|
|
|
2. It reduces the account's balance by `debt`.
|
|
|
|
The debt is used to reduce the outstanding shares of the globally settled BitAsset.
|
|
|
|
3. It reduces the account's balance by `collateral`.
|
|
|
|
The collateral is used to initially support the accounts' call position.
|
|
|
|
However, technically, only little additional collateral is required (if the
|
2017-06-06 08:13:01 +00:00
|
|
|
valuation of the collateral hasn't change since the global
|
|
|
|
settlement) if the owner accepts a margin call.
|
2017-06-06 07:21:18 +00:00
|
|
|
4. The global settlement flag is removed from the asset.
|
|
|
|
5. The asset is re-enabled such that price feeds can be produced again.
|
|
|
|
6. After sufficient price feeds, the asset can be borrowed again.
|
|
|
|
|
|
|
|
The required checks for the operation are:
|
|
|
|
|
|
|
|
* Has the asset globally settled?
|
|
|
|
* Are funds in the settlement pool?
|
|
|
|
* `debt` > 0 or `collateral` > 0
|
|
|
|
* `obtain_settlement_funds` <= `settlement_pool`
|
2017-06-07 11:02:22 +00:00
|
|
|
* the account has sufficient balance to cover `additional_collateral`
|
|
|
|
|
|
|
|
If the checks are successful, a `call_order_object` belonging to the
|
|
|
|
investor will be created or updated as described above. Then, the
|
|
|
|
settlement price and `settlement_fund` will be cleared.
|
|
|
|
|
|
|
|
The fee for this operation will be paid by the investor/recoverer. The
|
|
|
|
fee is equal to the fee of the `call_order_update` operation.
|
2017-06-06 07:21:18 +00:00
|
|
|
|
|
|
|
# Discussion
|
|
|
|
|
|
|
|
## Sufficient Collateral
|
|
|
|
|
2017-06-06 08:13:01 +00:00
|
|
|
Given that at the time of claiming the settlement funds, the blockchain
|
|
|
|
cannot know the valuation of the collateral, the user needs to ensure
|
|
|
|
that sufficient collateral is provided to support the call position
|
|
|
|
**after** the price feeds are refreshed. Otherwise, the asset will
|
|
|
|
either experience another global settlement event right away, or the
|
|
|
|
call position will be margin called. In any way, it is up to the user
|
|
|
|
of the above operation to take that risk.
|
2017-06-06 07:21:18 +00:00
|
|
|
|
|
|
|
## Partially Obtaining Settlement Funds
|
|
|
|
|
|
|
|
In the case a widely used BitAsset is globally settled, the costs of providing
|
|
|
|
the collateral can be shared among multiple participants by means of only
|
|
|
|
obtaining a fraction of the settlement pool.
|
|
|
|
|
|
|
|
## BitAssets using BitAssets as collateral are unaffected
|
|
|
|
|
2017-06-06 08:13:01 +00:00
|
|
|
One huge advantage of this approach is BitAssets that are collateralized
|
|
|
|
by other BitAssets are not directly affected by this proposal. Even
|
|
|
|
though the *economical debt* of such asset may be argued about if the
|
|
|
|
collateral asset experienced a global settlement, the *technical debt*
|
|
|
|
is unaffected. Converting the settlement pool into a regular call
|
|
|
|
position through this proposal would not only restore the original
|
|
|
|
BitAsset, but also reset the collateral of the derived BitAsset.
|
2017-06-06 07:21:18 +00:00
|
|
|
|
|
|
|
## Committee funded BitAsset Recovery
|
|
|
|
|
|
|
|
## Cost vs. Profit
|
|
|
|
|
|
|
|
This operation opens an interesting cost vs. profit trade-off for those willing
|
|
|
|
to take the risk of using this operation that we would like to discuss. Keep in
|
|
|
|
mind that
|
|
|
|
|
|
|
|
* the valuation of the collateral may be volatile (e.g. in case of BTS)
|
2017-06-06 08:13:01 +00:00
|
|
|
* after global settlement, the long positions can settle and thus
|
|
|
|
reduce the debt as well as the settlement pool
|
2017-06-06 07:21:18 +00:00
|
|
|
|
|
|
|
Market participants that are willing to take risk may want to obtain a larger
|
|
|
|
chunk of a settlement pool as it means an **instant short position**.
|
|
|
|
|
2017-06-07 11:02:22 +00:00
|
|
|
## Feeds
|
|
|
|
|
|
|
|
Re-collateralization is deliberately not restricted to the issuer of the
|
|
|
|
globally settled bitasset. The intent here is to incentivize potential
|
|
|
|
investors. Effectively, during an uptrend in the value of the
|
|
|
|
collateral, this works like a reverse auction. A higher value of the
|
|
|
|
collateral results in a lower required amount for re-collateralization,
|
|
|
|
i. e. the chance/risk ratio increases. This incentive makes sense,
|
|
|
|
because additional collateral is in the best interest of the holders of
|
|
|
|
the settled BitAsset.
|
|
|
|
|
|
|
|
This "reverse auction" ends when the BitAsset is auto-revived by
|
|
|
|
creating a short position for the issuer. At that point, an "investor"
|
|
|
|
could re-collateralize with zero risk, which is no longer in the
|
|
|
|
interest of the holders.
|
|
|
|
|
2017-06-06 07:21:18 +00:00
|
|
|
# Summary for Shareholders
|
|
|
|
|
|
|
|
This proposal presents a flexible way of reviving a BitAsset that has
|
2017-06-06 08:13:01 +00:00
|
|
|
experienced a global settlement event. The blockchain or shareholders do
|
|
|
|
not need to take any risk as the proposal only offers a new way for
|
|
|
|
market participants to (partially) revive the BitAsset.
|
2017-06-06 07:21:18 +00:00
|
|
|
|
|
|
|
# Copyright
|
2017-06-07 11:02:22 +00:00
|
|
|
|
2017-06-06 07:21:18 +00:00
|
|
|
This document is placed in the public domain.
|