Author Topic: BSIP-18: How to easily revive a BitAsset after Black Swan - read for comment  (Read 18395 times)

0 Members and 1 Guest are viewing this topic.

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
Instead of requiring the settlement pool to be purchased all in one go, why not let multiple accounts "bid" for it? Anybody who wants to can say "I want X amount of settlement_funds, and I'll commit Y amount of additional_collateral and Z amount of additional_bitasset." Then when all the settlement funds have been accounted for and there is sufficient collateral committed, all the bidders' bids are filled and the bitasset is revived. I haven't thought through how exactly you'd split the funds between the bidders, but I suspect there's a natural way that will be obvious once someone sits down and plays with the math.
This is exactly what I tried to manage with the `obtain_settlement_funds` parameter so that people can "bid" for a fraction of the settlement funds.
I'll add more text to clarify this.

additional_debt is superfluous and should be removed. It can be replaced with a preceding asset_settle_operation and adjusting additional_collateral accordingly.
Agreed

Also, I'm unclear what the purpose of the obtain_settlement_funds parameter is. Surely the command cannot be used to extract value from the settlement fund?
It is meant to define how much of the settlement fund you'd like to "obtain" (of course together with the corresponding debt)

Offline pc

  • Hero Member
  • *****
  • Posts: 1530
    • View Profile
    • Bitcoin - Perspektive oder Risiko?
  • BitShares: cyrano
Some more comments:

Quote
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
  • additional_debt (asset_type): Debt that is paid by the account in order to reduce the debt (while keeping the full settlement pool as collateral)
  • obtain_settlement_funds (asset_type): The amount of settlement funds the account is willing to obtain
The operation works as follows:

  • It pays a fee
  • It reduces the account's balance by debt. The debt is used to reduce the outstanding shares of the globally settled BitAsset.
  • 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 valuation of the collateral hasn't change since the global settlement) if the owner accepts a margin call.
  • The global settlement flag is removed from the asset.
  • The asset is re-enabled such that price feeds can be produced again.
  • After sufficient price feeds, the asset can be borrowed again.

additional_debt is superfluous and should be removed. It can be replaced with a preceding asset_settle_operation and adjusting additional_collateral accordingly.

Please explain what the resulting call_order_object looks like.

Also, I'm unclear what the purpose of the obtain_settlement_funds parameter is. Surely the command cannot be used to extract value from the settlement fund?
Bitcoin - Perspektive oder Risiko? ISBN 978-3-8442-6568-2 http://bitcoin.quisquis.de

Offline pc

  • Hero Member
  • *****
  • Posts: 1530
    • View Profile
    • Bitcoin - Perspektive oder Risiko?
  • BitShares: cyrano
Doesn't the global settlement operation seem like it's what should be fixed?

Global settlement happens in two situations:

1. In a prediction market, after the to-be-predicted event has a defined outcome, and
2. when a short position of an MPA has insufficient collateral to buy back the debt.

How would you fix that?
Bitcoin - Perspektive oder Risiko? ISBN 978-3-8442-6568-2 http://bitcoin.quisquis.de

Offline pc

  • Hero Member
  • *****
  • Posts: 1530
    • View Profile
    • Bitcoin - Perspektive oder Risiko?
  • BitShares: cyrano
Please read through this proposal:

    https://github.com/bitshares/bsips/blob/master/bsip-0018.md

Good job! Actually, I was working on something similar since we last talked about it. (Credits for the idea belong to Xeroc!) Here's a preliminary version: https://github.com/pmconrad/bsips/blob/bsip-0017a/bsip-0017a.md

I think we should enable price feeds for MPAs even after a black swan. That way, we know how much additional collateral is needed before the asset can be revived.

I've also thrown in parts of bsip-0017, because I see this as a first step towards implementing the full bsip-0017.

"Black swan" is incorrect term in this context. It refers to an event that is impossible or at least very difficult to foresee.

"Black swan" is the term traditionally used in this community for the problem of short positions becoming undercollateralized. (It may well be that the original intention was in fact that this should never happen. Reality thought different, though. :-/ )

The term is also used in the source code, so I suggest we stick to it.
Bitcoin - Perspektive oder Risiko? ISBN 978-3-8442-6568-2 http://bitcoin.quisquis.de

Offline biophil

  • Hero Member
  • *****
  • Posts: 880
  • Professor of Computer Science
    • View Profile
    • My Academic Website
  • BitShares: biophil
I was away from bitshares for a long time and I'm definitely not up to speed on all the discussions that got us here, but this feels a tiny bit like using a second hack to cover the issues created by a first hack.

Doesn't the global settlement operation seem like it's what should be fixed? rather than saying "oops, global settlement puts us in an incredibly awkward position so we better create a new operation to clean up that mess."

But anyway, maybe it's easier to add a new operation than fix the old one. In that case, I just have one concern with your proposal:

The way your proposal is worded makes it sound like a single account would have to buy the entire settlement pool. I would think about a slight variant instead:

Instead of requiring the settlement pool to be purchased all in one go, why not let multiple accounts "bid" for it? Anybody who wants to can say "I want X amount of settlement_funds, and I'll commit Y amount of additional_collateral and Z amount of additional_bitasset." Then when all the settlement funds have been accounted for and there is sufficient collateral committed, all the bidders' bids are filled and the bitasset is revived. I haven't thought through how exactly you'd split the funds between the bidders, but I suspect there's a natural way that will be obvious once someone sits down and plays with the math.

Also I'd let people cancel their bids if they want.

BTW, I pull-requested a couple typos in the github document.
Support our research efforts to improve BitAsset price-pegging! Vote for worker 1.14.204 "201907-uccs-research-project."


Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
"Black swan" is incorrect term in this context. It refers to an event that is impossible or at least very difficult to foresee. Global settlement is very well known risk so it's not a black swan event. Please change the terminology or Nassim Taleb will laugh at you.
Thanks for the input .. I wasn't aware of that ..

Offline Samupaha

  • Sr. Member
  • ****
  • Posts: 479
    • View Profile
  • BitShares: samupaha
"Black swan" is incorrect term in this context. It refers to an event that is impossible or at least very difficult to foresee. Global settlement is very well known risk so it's not a black swan event. Please change the terminology or Nassim Taleb will laugh at you.

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
Hey there,

Please read through this proposal:

    https://github.com/bitshares/bsips/blob/master/bsip-0018.md

In short: It offers a new operation that can be used to obtain the funds (and the debt) in the settlement pool of a bitasset after a black swan event.
This would add a feature that can be used to revive black swan-ed bitassets at the costs of one (or many) individuals that are bullish on BitShares and are willing to obtain a *instant short position*.

Looking forward to reading your throughts.