Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BSIP58: Global Settlement Protection Through Price Feeding #135

Closed
bitcrab opened this issue Dec 30, 2018 · 18 comments
Closed

BSIP58: Global Settlement Protection Through Price Feeding #135

bitcrab opened this issue Dec 30, 2018 · 18 comments

Comments

@bitcrab
Copy link
Contributor

bitcrab commented Dec 30, 2018

BSIP: 0058
Title: Global Settlement Protection Through Price Feeding
Authors: Jerry Liu [email protected]
Status: Draft
Type: Protocol
Created: 2018-12-30
Discussion: https://github.com/bitshares/bsips/issues/135

Abstract

This BSIP proposes that witnesses prevent global settlements from happening by not permitting the
published feed price to drop below the global settlement price × MSSR. This BSIP will only
apply to specific smartcoins that are subsequently approved by Poll Worker voting.

Motivation

BitShares has a mechanism to handle debt positions whose collateral is valued less than the debt itself ("bad debt"). This mechanism is called global settlement ("black swan") and is triggered when the published feed price (FP) is less than or equal to the product of the global settlement price (Pgs) and the maximum short-squeeze ratio (MSSR).

FP ≤ Pgs × MSSR

If this does occur it means that the collateral ratio (CR) of at least one debt position is less than the MSSR.

Global settlement is not a good way to handle bad debt, as can be seen to what happened to bitUSD. After global settlement was triggered for bitUSD in December 2018:

  • traders could no longer borrow bitUSD;
  • the price of bitUSD dropped below USD because of insufficient collateral; and,
  • it will take a long time for bitUSD to be revived.

The community has had extensive discussions about how to handle the bad debt in a better way in the future. Two ideas have emerged about what should happen when bad debt appears. At a high-level,

  1. the ability to update the collateral of a debt position (debt position update) should still be enabled, and
  2. the bad debt position should be handled independently of the good debt positions.

Before these advanced features can be implemented in the BitShares core software, this BSIP proposes an easy way to realize these benefits by something currently under the control of the witnesses.

Rationale

Compared to a global settlement, this "global settlement protection" approach (GSP) will provide several benefits.

  1. If a global settlement occurs the debt position update feature is disabled which is very troublesome to users. But under global settlement protection, the collateral backing a debt positions can still be updated by the debt creators.

  2. Under global settlement protection, the margin called orders can still be filled independently. Their filling will cause the global settlement price to drop further and will also increase the collateral ratio of the remaining debt positions. This can help to protect the smartcoin from devaluing.

  3. Global settlement is always a great concern for BTS users. Global settlement protection will remove the possibility of global settlements which will bring much confidence to users.

After the community abandoned BSIP-42, there is now a strong consensus that the feed price should be the market price. Given this pre-condition, global settlement protection will ensure that this consensus does not cause future problems.

It is possible that the smartcoin may devalue even under global settlement protection (such as may happen if GSP needs to be activated by feed publishers). However, if the community permits global settlement to be triggered, the devaluation will be even worse.

Specifications

The global settlement protection price (PGSP) for an asset is defined as

PGSP = 1.01 × MSSR × Pgs

Witnesses who publish price feeds should ensure that their published price feed (FPP) is greater than or equal to the global settlement protection price. This can be calculated as

FPP = max(FPN, PGSP)

where FPN is the natural feed price

If there is no global settlement price, then the natural feed price should be used.

This BSIP provides a general solution to handle the issue of bad debt smartcoins. Whether this BSIP
will be applied to any specific smartcoin will depend on voting results from a Poll Worker. Two
related poll worker proposals, including FOR and AGAINST, will be created for voting on each specific
smartcoin.

References

Discussion

Summary for Shareholders

It is important to eliminate concerns about global settlement. This can currently be achieved with the technical options that are available to the witnesses.

Copyright

This document is placed in the public domain.

@bitcrab bitcrab changed the title New BSIP: feed price floor for black swan protection New BSIP: Black swan protection in price feeding Dec 30, 2018
@ryanRfox ryanRfox changed the title New BSIP: Black swan protection in price feeding New BSIP: Global Settlement Protection Through Price Feeding Jan 6, 2019
@ryanRfox
Copy link
Contributor

ryanRfox commented Jan 6, 2019

@bitcrab the Core Team reviews BSIP submissions, proposes edits to voice and includes clarifying content. Our intent is to maintain the spirit of your proposal. Please review the Editor's Comments below and respond with a comment herein. Thank you.

Editor's Comments
I renamed "black swan" to "global settlement" because "global settlement" is being used a little more in English
I am slightly uncertain if I captured the intent of your technical point about Rationale 2. Please review.

The revised BSIP draft is now updated as this Issue's description field above.

@bitcrab
Copy link
Contributor Author

bitcrab commented Jan 7, 2019

the Core Team express the spirit of the proposal more exactly.
Thanks, please move this proposal ahead with creating new PR.

@Yamtt
Copy link

Yamtt commented Jan 13, 2019

stand by

@ryanRfox ryanRfox mentioned this issue Jan 14, 2019
@ryanRfox ryanRfox changed the title New BSIP: Global Settlement Protection Through Price Feeding BSIP58: Global Settlement Protection Through Price Feeding Jan 14, 2019
@bangzi1001
Copy link

Good solution until there is better way to handle global settlement.

Please clarify some issues so witnesses have better understanding of this BSIP:

  1. Which assets covered by this BSIP? Witnesses not only feed price for BitAsset like BitCNY and BitUSD but some witnesses also feeding price for HERTZ and HERO etc.
  2. What about global settled assets like BitUSD and BitBTC? Should witnesses feed current market price or global settlement protection price until it revive?

@bitcrab
Copy link
Contributor Author

bitcrab commented Jan 15, 2019

As different smartcoins has different market status and different user groups, my suggestion is to decide which smartcoin is covered separately.

If community has a strong will to apply this BSIP on one specific smartcoin, the poll worker proposals will be created on this smartcoin and the voting result will decide whether to apply this BSIP on this smartcoin.

bitCNY should be the first to experience this kind of poll, for bitUSD, as it is now in global settlement status, I suggest to begin the poll after it revive.

For other little smartcoins, the key users can issue poll worker proposals to decide whether to imply BSIP58 if they feel necessary.

@ThomasFreedman
Copy link

After the community abandoned BSIP-42, there is now a strong consensus that the feed price should be the market price. Given this pre-condition, global settlement protection will ensure that this consensus does not cause future problems.

This is contradictory. The first sentence describes the "strong consensus", i.e. witnesses need to publish the asset market price, and the 2nd one supports this BSIP which tells witnesses to ignore that consensus and publish a price different from market price, i.e. the global settlement protection price.

So which is it?

Although reference links are provided for alternative approaches to handle gs, I feel they should be distilled and incorporated herein. The rationale for that is there have been many discussions about price feeds ever since the bsip42 fiasco. We shouldn't leave this topic as a difficult to follow series of documents and discussions left to the reader to coalesce into a plan of action, b/c if left up to individuals we'll have no common understanding and therefore no consensus on what action should take place.

I saw 2 proposals by abitmore to handle gs, he favored the 2nd which I didn't fully understand. I liked the 1st of those proposals, as it was straightforward. The second one muddied the waters and it failed to convince me it was necessary.

I am also a strong proponent of a mechanism to disincentivize "bad debt". I believe some type of penalty is justified to enforce consensus on what constitutes "bad debt". Without that in place we'll see a repeat of the type of hap hazard and poorly organized "experimentation" we saw under bsip42.

I am opposed to feeding any price besides the actual market price of assets. This bsip is the same rationale proposed under bsip42, but with a different name. We need to find a better way to address gs besides manipulating the feed price. I believe if we had strong enough disincentives in place it would help a tremendous amount. It will not "fix" the issue 100% however, as a big enough shift in price over a sufficiently short period of time could still trigger a black swan / gs event.

What should be done under such dramatic market shifts? Can the code "take over" responsibility where individual users fail to exercise it by maintaining at least 100% collateral? The change in market price could be so rapid it wouldn't allow anyone to update their collateral if they attempt to minimize their collateral. That is precisely why MCR is greater than 100%, to provide a buffer for volatile markets.

The current consensus is that individuals control their own risk by monitoring the markets and adjusting their collateral up or down accordingly. This bsip proposes to return to the price manipulation tactics attempted under bsip42, but with a different approach. It's still feed price manipulation, which erodes confidence in the asset under the guise of protection.

Market "safety" can be provided by adequate collateral under the control of individuals, or it can be collectivized. If the later there will always be people who will game the system to take advantage, so effectively their habit of creating bad debt will be incentivized rather than disincentivized.

@bitcrab
Copy link
Contributor Author

bitcrab commented Jan 16, 2019

this BSIP is not relevant to BSIP42, no doubt that witnesses should feed market price.

there are much discussions on black swan, global settlement is a bad way to handle bad debt, abit proposed some new ways to handle it, but it need time to go through the consensus->development->hardfork road.

before this can be done, what can we do when the market is at the edge of black swan, shall we just let the global settlement happen?

actually some months ago we have experienced this, bitCNY has been at the edge of black swan, some witnesses have take the black swan protection action, and finally black swan is avoided, for bitUSD there's also suggestions to do the same, but finally the protection measure is not successfully taken, and then bitUSD enter global settlement status?

who benefit from the bitUSD black swan status? none, the whole community are hurt, global settlement is just like suicide.

so this BSIP is just to ask consensus on one already existed method. it is just request the community to allow the witnesses to save the smartcoin when it suicide.

I'd also like to remind, here is a place mainly focus on the refinement of the BSIP as a solution, whether the solution should be implemented will be decided on the coming poll voting.

@grctest
Copy link
Contributor

grctest commented Jan 16, 2019

Can you please include asset scope in the BSIP? Past BSIPs which initially focused on one asset were applied to other assets which troubled many in the past. Does this apply solely to bitCNY, committee owned assets, or is it up to the interpretation of price feed publishers?

I'd prefer real solutions than manipulation though, and this is manipulation.

@MichelSantos
Copy link
Contributor

As different smartcoins has different market status and different user groups, my suggestion is to decide which smartcoin is covered separately.

If community has a strong will to apply this BSIP on one specific smartcoin, the poll worker proposals will be created on this smartcoin and the voting result will decide whether to apply this BSIP on this smartcoin.

bitCNY should be the first to experience this kind of poll, for bitUSD, as it is now in global settlement status, I suggest to begin the poll after it revive.

@bitcrab I appreciate that you have raised this BSIP for discussion as a temporary measure until another technical solution for global settlement can be implemented. I understand that the discussion here is not about the merits of the proposal but rather about its description for debate elsewhere.

I do agree with the concerns about asset scope of this BSIP. The use of voting polls to determine that scope is reasonable. Please consider not submitting this BSIP as a general poll but instead to submit two smart-coin specific polls that might be phrased similar to the following:

Vote FOR the application of BSIP-58 to the bitCNY smartcoin

Vote AGAINST the application of BSIP-58 to the bitCNY smartcoin

This will permit voting that is specific to a smartcoin and which might avoid confusion caused by two polls: a "general" BSIP-58 poll and a smartcoin-specific BSIP-58 poll.

If that approach is acceptable then the following text might be added to this BSIP:

This BSIP will only apply to specific smartcoins that are approved by the Bitshares (BTS) token holders on the BitShares blockchain.

@bitcrab
Copy link
Contributor Author

bitcrab commented Jan 17, 2019

If that approach is acceptable then the following text might be added to this BSIP:

This BSIP will only apply to specific smartcoins that are approved by the Bitshares (BTS) token holders on the BitShares blockchain.

thanks, added content about this.

@ryanRfox
Copy link
Contributor

Updated PR and draft within the description above to include language related to Poll Worker Voting and scope of impacted smartcoins as suggested by @bangzi1001 @grctest @ThomasFreedman @MichelSantos

I feel we are close with this specification. Checking with @pmconrad @xeroc @abitmore for final review.

@xeroc
Copy link
Member

xeroc commented Jan 21, 2019

While I am not a huge fan of the proposal it self, i think the BSIP itself is fine and should be brought before the BTS voters.
Similar to the sentiment in this thread, I (too) would rather see an actual implementation to deal with bad debt instead of cheating around.

@ryanRfox
Copy link
Contributor

BSIP58 was recently published. Please continue discussion within this Issue thread.

@ThomasFreedman
Copy link

ThomasFreedman commented Jan 31, 2019

Although this proposal still allows non-market price feeds to be published, it differs from bsip42 in that the "alternate" feed value is a frozen value, the gs price. The only manipulation possible is the timing of when the alternate feeds are published.

Edit: I was wrong about the frozen nature of the gs price. Thus it is not a straightforward matter to determine when witnesses publish a "correct" price during gs, as other factors affect it that may not be consistent for all witnesses.

However, I still believe this proposal is only a "quick fix" and only addresses the result of the problem, not it's underlying cause. If the rules are to have any weight they should have penalties for bad practices and incentives for proper actions, such as voting.

If users knew they might loose their LTM or had to pay a fine when their collateral repeatedly falls below 100% (a habitual pattern is detected) they would be far more attentive to their positions and I'd bet they would regulate their own CR according to market volatility.

Edit: My hope is that voters and devs will seriously consider the above, however discussion of penalties for accounts that practice "bad debt" is out of scope for this bsip and no further comments need to be made about it here.

@ryanRfox
Copy link
Contributor

ryanRfox commented Feb 2, 2019

A new PR #141 reflects an updated Potential Risks section with detailed analysis of the Global Settlement Protection. Please review the PR, and comment further within this thread to keep discussion streamlined.

@abitmore
Copy link
Member

abitmore commented Feb 3, 2019

I've commented in PR #141 because it's more intuitive.

@abitmore
Copy link
Member

Further discussions (to implement something in core) in #179.

@sschiessl-bcp
Copy link
Collaborator

Close this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants