-
Notifications
You must be signed in to change notification settings - Fork 86
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
BSIP71: Add "Prevent Global Settlement" Flag for Smartcoin (old title: Global Settlement Protection via core code) #179
Comments
I agree asset owners should able to enable Global Settlement Protection for their assets. At this moment, BitCNY and BitUSD Global Settlement Protection are done by witnesses in their price feed script but due to high turnover of witnesses, nobody can ensure after 1-2 years how many new witnesses enable Global Settlement Protection in their price feed script. |
A related discussion is here: https://bitsharestalk.org/index.php?topic=27273.0 |
FWIW earlier discussions about BSIP58: #135 |
Completely disagree. Not even sure how this is even a discussion. |
GS protection completely undermines how the assets are meant to work. Disagree. |
For context and understanding of the prior global settlements I would like to share the 20 plus page article I wrote for last global settlement. While not directly having all the answers, I think this pulls a few noteworthy ideas into the discussion. https://www.dexbot.info/2019/05/21/understanding-trading-activity-and-potential-causes-of-bitasset-settlement/ |
The basic idea of this issue is that we should not punish the good traders who are maintaining their collateral ratio well (E.G. always above 175% even 200%). Actually there are 3 topics (questions) here:
The original GS ruleAnswers to the questions:
IMHO the answer of this rule to the 1st question is stupid, and the 3rd answer is not ideal. Current voted-in GS protection ruleAnswers:
I think the main reason that some people are against this rule is the 2nd "no". Some people are against it due to the appearance (adjusted feed price showing on UI). Actually if it's implemented in core, witnesses will no longer need to publish "fake" price feeds, thus UI will show a normal feed price, and an adjusted "settle price" (which is already showing in UI). A few people are against it due to the 3rd answer, since it doesn't 100% guarantee that debt asset holders could get fully-valued collateral via force-settlement. The "convert bad debt positions to limit orders" ruleThe mechanism is proposed in forum https://bitsharestalk.org/index.php?topic=27273.0. The answers are:
The main debate is whether this rule favors debt asset owners too much. The "take over only under-collateralized debt positions but no GS" rule (aka partial GS)Answers by this rule:
This is a new idea. When CR of a debt position drops below a threshold (E.G. 110%), the system take over the debt by moving the collateral and debt to a special "debt-watcher" account, the original borrower's debt position would be closed and he'll lose all the collateral. The debt position of the special account still exposes to margin calls and force-settlements, same as other debt positions, if it has the lowest CR, it gets filled first. Related topicsI think it's better to change related things at same time. One thing is #164, with this, we can use some fees to fund the special "debt-watcher" account, so it would be slower to a global under-collateralization situation when price of collateral asset drops. |
Interesting Idea... |
I am against introducing a time frame, since it may greatly add complexity, also it's somehow unfair to the opponents. For traders, if they put money in margin trading, they should be prepared that one day the money may lose suddenly. Great efforts are required for individual traders to maintain their debt positions well, if one is not prepared, don't join. Cryptocurrency markets aren't like traditional futures markets which only open a few hours a day (so you have lots of time to sleep) and you can sue someone to get some money back if something went wrong. |
I like to convert bad debt positions to a limit order, which is also a kind of GS protection + #182 |
I am all against the current Global Settlement Protection (or its new fake name: Active Smartcoin Devaluation) embedded at the core level. I find it a pretty sloppy mechanism. It brings falsehood to the system. Falsehood whose consequences would accumulate over time and are totally unpredictable. For starters, it creates the stimulus for bad debtors to become even worst debtors. A solution to the problem of bad debtors, though, needs to be embedded in the core level. Partial GS with a debt-watcher account may just do the trick. If that debt-watcher account collects fees from certain transactions, so that it tends to increase its collateral over time, it would prevent bad positions to hit the market immediately and the ensuing amplification of the downward trend of the collateral's price.
This, because we are interested in bringing people to the platform, which needs to be friendly. We don't want to scare the hell out of borrowers due to their natural human incompetence and weakness, and send them back home penny-less and humiliated in a matter of the few seconds the market takes to fluctuate. |
@Inmortak: We are talking here, what is the best way to handle debt, when every thing else failed before. Debt potions are only converted to a limit order, when ...
The limit order can be removed by three different ways:
|
In the notes below there is the question about "...the best way to handle debt" - I'd like to address this.
I hadn't thought of forgiving quite at this level. As some of you know I'm working on a concept of creating a new form of asset. A forgiveness contract. A brotherhood of forgiveness establishes that they will financially participate in markets of forgiveness based tokens to establish their value in a fractional support methodology. Forgiveness contracts offer forgiveness as long as the party being forgiven has opportunity to object and does not object. In this way the forgiven party becomes a sort of counterparty to the instrument. Rather than simply extinguishing the debt, the brotherhood amplifies the importance of forgiveness by asserting that the forgiven instrument has just as much value as the original debt was worth.
In this way we are using the human heart to pull the world out of the debt slavery. But here it opens up the possibility if "high frequency forgiveness trading".
Sorry if I'm blowing your minds. If you're interested in helping with the projects I'm at [ https://forgivenesscapital.com/ | ForgivenessCapital.com ] and [ https://remedycoin.com/prospectus | RemedyCoin.com/prospectus ] . Some of you may have met me at the Bitshares event in Amsterdam in 2018 where I was introducing the concept of forgiveness based money. Think about it. It has no counterparty risk. It's not a debt instrument. It has intrinsic worth. Your computer programs can move it around, measure it, trade it, etc...
The core provable truth is that we each have infinite personal value. And as long as there is the ability to forgive money into existance for a purpose well then there is less reason to not trust people. Increasing trust, awareness, freedom and creativity in the world for all and less for none is a win, win, win, win proposition!
From: "froooze" <[email protected]>
To: "bitshares/bsips" <[email protected]>
Cc: "Subscribed" <[email protected]>
Sent: Thursday, July 18, 2019 7:43:15 AM
Subject: Re: [bitshares/bsips] New BSIP: Global Settlement Protection via core code (#179)
[ https://github.com/Inmortak | @Inmortak ] : We are talking here, what is the best way to handle debt, when every thing else failed before.
This should be part of the core, because it is a fundamental security risk and should not relay on other parties.
Debt potions are only converted to a limit order, when ...
* no margin call happened
* settlement protection fund is empty [ #182 | #182 ]
The limit order can be removed by four different ways:
* market buys the limit order
* settlement protection fund buys the limit order, when balance is bigger than 0
* when debt holder adds enough BTS to reach a CR of 1.1
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, [ #179?email_source=notifications&email_token=AKNQYWTDAQVJM622LATJL4DQABQOHA5CNFSM4H446YY2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2ILBFQ#issuecomment-512798870 | view it on GitHub ] , or [ https://github.com/notifications/unsubscribe-auth/AKNQYWQDS5AK4T2KMBEPYZLQABQOHANCNFSM4H446YYQ | mute the thread ] .
|
@abitmore Does add the option for Global Settlement Protection via core code required a hard fork? If no hard fork required, then make this as feature release for asset owners to decide whether want to enable Global Settlement Protection (Once BSIP Pass). |
@bangzi1001 Yes it requires a hard fork. |
@abitmore I liked your overview and picked up on it. Here are my thoughts, and another possibily Questions for rules that handle CR < 1:
1. Global settlement occurs
2. GS protection rule through price feed adjustment (currently active)Answers:
3. The "convert bad debt positions to limit orders" ruleThe mechanism is proposed in forum https://bitsharestalk.org/index.php?topic=27273.0.
4. The "take over under-collateralized debt positions and prevent GS" ruleAnswers by this rule:
5. Global Settlement Protection via Core Code(aka simple GSP)Same like 2. 6. Prevent GS rule through flag with force settle incentiveAdd bitasset flags "prevent global settlement" and "reverse force settlement offset during margin call". Both flags would be turned on for bitCNY and bitUSD after upgrade. EDIT: Forgot one aspect. If "prevent global settlement" is turned on, a margin call of a position with CR < 1 would still seek to buy exactly the debt, and not at current feedprice. Answers by this rule:
What do you think about my idea? |
@bitcrab thanks for the update on the text! I adjusted my numbering to match yours. Is there any difference in 2. and 5. (minus witness-fed vs. core-enforced)? |
5.7: if it's me to implement the 2nd mechanism into core, I won't adjust price feed, instead, I'll add a flag and another price field, just like your 6th option. So collateral transparency can be kept. 3.1: it does punish good debt position holders to an extent, because they can no longer hide behind the bad debt position holders, thus expose to force-settlements and margin calls. 4.9: no incentive (so far) but it's able to remove via force-settlements and margin calls. |
The text @bitcrab added is mostly copied from BSIP58. If to implement into core, some can be different. |
poll worker or smartcoin tag to enable the feature. I found European people like "political correctness" so much? you insist to feed market price, but if the margin call or/and force settlement will not refer the feed price, what sense does it make? |
Feed price is something everyone sees (passively) and uses as the everyday reference. The most critic I heard from reports is that the everyday traders are misled with an adjusted price feed. It is also very hard to sell price feed manipulation, and this is where all the resistance come from (independent what their reason for it is). Currently we have one price feed coming from the witnesses and is put on-chain, and the force settlement price and margin call price are derived from it. My suggestion would alter how the force settlement and margin call price are derived. Your suggestion already alters the price feed that is put on-chain, and the "truth" is only known to witnesses. It must be clear for traders to know what's the feed price (produced by witnesses) and what's the settlement/margin call price of positions with CR < 1 (decided by the blockchain). Questions:
|
@sschiessl-bcp please check the updated text, I think you can find some answers, and I don't support to add incentive to force settlement to remove bad debt. |
Thanks @bitcrab . For the new title, I find it misleading
I found the previous one more accurate. The on-chain flag could be called "Prevent Global Settlement", or in a more positive wording "Alleviate Global Settlement". Thoughts? |
@sschiessl-bcp in my idea, there will be no GS any more in smartcoin after the implementation of this BSIP, no need to add one flag for smartcoin. Yes, seems it's really a little misleading |
if there is no further comments, I feel it's time to complete this BSIP and push it forward. |
When doing the PR, I would still suggest to remove any wording of devaluation. It only is devalued (IMO) if trades happen below the peg. This BSIP does not touch market trading at all. If we are running in a CR < 1 state, what happens with the Force Settlement Offset (FSO)? Will it be applied on top of it, or do we redefine that FSO reduces until CR = 1 - FSO and then we have no FSO anymore (because there is already the implicit punishment through the adjusted price)? |
devaluation of smartcoin is possible while bad debt happens, any solution, either GS, partial settlement, or Prevent GS cannot avoid this completely. so I don't think we cannot use "devaluation" in the proposal, we need tell the truth to public. no need to do any change to FSO. |
Yes, BitCNY is a great example to defend my proposed protocol. There are no positions with CR < MCR at this moment. So, Bts price would have to suddenly fall about 30% for those positions to get to CR < 1.1. At that moment the take over begins, each new taken-over position creates buy pressure on Bts for reasons already discussed and increases pool collateral. I would say we need at least a 45% of sudden decrease in Bts price before force-settlements have to be stopped, according to my protocol and supposing the Pool is initially empty. And that's after this incredibly wild bear market. Add to this that pool is constantly replenished by fees and that taken-over positions can be bought-back which also puts buy pressure on Bts. Not bad at all!
You have a point here. But, notice that under those very extreme conditions, forcing potential force-settlers to go to the market and dump their BitAsset, would provide liquidity for those debtors who are unable to get the bitasset in order to close their positions. Something that is missing today due to the lack of BitAsset available created by the sell-wall. Free Market at its best. Probably the peg would be lost temporarily, but trading would be incentivized, every trade means more fees for the pool, helping it come back to pool_cr > 1. |
|
I appreciate your efforts @abitmore, this process is exhausting, If a given position was taken-over, the possibility of buying it back effectively increases buy pressure on BTS because, as you said, if it was taken-over with a CR =1.4 then, from the debtors perspective, it is as if he sold really cheap BTS. Buying the position back, reduces his loss. And, if we demand the position to have full collateral for the buy-back to occur, then he would have to BUY more bts in the market. Of course, the debtor would feel that pressure and dislike it, he may try to buy back his position simply to immediately close it. But then, that's a probability, not a fact. It is precisely these probabilities that we need to adjust, we call them incentives.
If force-settlement is suspended because the pool doesn't have any more positions to take over, would-be force-settlers will dump their bitAsset on the market. We agree on that. You see that as a decrease in price of the BitAsset VS Bts, I see it as an increase in price of Bts Vs BitAsset. Who is right? I think we both are. The public will also be split in their appreciation and, in the minds of many people, many of them outside the Bitshares ecosystem, 1 BitUSD will still be worth 1 USD, simply because they don't understand the intricacies of the protocol. Consequently, to their eyes bts price will be increasing against the dollar, which is what we need to recover pool_CR = 1. Aren't, after all, the prices of all these cryptocoins a matter of perception? I went to Bitsharestalk and I saw that many of these ideas were already been discussed by the community, way before my analysis. A Pool that takes over bad debt and replenishes via fees is nothing new. The buy-back your taken-over position is, and the whole mechanism to use whenever the pool_cr falls below 1 is new too. |
|
We both were talking about the extreme case in which the pool has taken over all positions and the pool_cr < 1, and consequently, force settlements have to be stopped. Please follow the thread backwards and see for yourself.
@abitmore I am thinking throughly, to the best of my abilities, everything I write here. No need to be harsh. Markets are all about perception. Ignoring that fact is fooling oneself. And markets will always have positive and negative perceptions about any asset/situation. We need to use the good perception people may have about BitUSD in order to self leverage whenever things get acid. Saying that it's legit to present BitUSD falling Vs BTS and not legit presenting Bts going up Vs BitUSD is equivalent to take only the weakest angle of our product and try to make a sale out of it. There is even a proposal being discussed in BitsharesTalk to create a OMO fund which would hold Tether and exchange it in the DEX as 1 USDT = BitUSD. What do you think will happen if force-settlements are suspended due to pool_cr < 1, and the would be settlers begin to sell their BitUSD for bts, which many other people are trading for USDT? Why would we take the overly negative position that our BitAsset lost his peg and Bts didn't increase when, in reality, these many perspectives tend to average each other? Anyway, I think the most important points have already been highlighted. And I feel this discussion is already getting a little tiresome. I really thank you for the time you took to understand the mechanism I propose. I hope it is taken into consideration in whatever is submitted for voting. |
@Inmortak I apologize is if I've offended you.
If you want your opinion to be submitted for voting, please write a BSIP, or convince someone to write a BSIP for you. Thanks. |
A position with a CR>1.1 is still a healthy position. We can't taker over the position whose CR > MSSR. Which we want to handle is the 'GS', not the position whose CR>MSSR. The position CR>MSSR or 1.1, should let the market itself to solve it. |
it's time to finalize the BSIP and put on poll voting. |
If I vote for approval of this BSIP, out of everything that has been discussed, what would be implemented? What's the protocol? |
see Specification at the top |
Just FYI |
In my opinion a positive aspect about this proposal in comparison to BSIP58 is that when global settlement protection (GSP) is activated witnesses will publish the natural feed price which is what will be recorded in the blockchain. The greatest risk with this proposal is not new but is the same risk as for BSIP58 when GSP is activated: the "settlement price CR" of debt positions will be less than the "feed price CR". If the price of the collateral continues to fall the "feed price CR" will be less than MCR and may potentially become less than 1. The smartcoin will naturally devalue as this BSIP properly describes. In this situation I will like to encourage client software to prominently inform users who are attempting to buy the smartcoin that it is under GSP and cannot be force-settled for the normal value. |
Please note that the original post has been lightly edited for formatting and readability |
BSIP76 Become Game Changer for SmartCoin and this BSIP71 may need to change Effective Price Feed to Max(Normal Price Feed by Witnesses, GS Protection Price, BSIP76 Threshold Price) BSIP76: Threshold for price feeds through voting |
Change request to act on BSIP76 |
@sschiessl-bcp I think perhaps it's better to use 2 flags for GS protection and the threshold. What do you think? |
Yes I agree, must not necessarily be connected, and you might want to disable threshhold forever at some point. |
What is the purpose of MSSR except to protect those who make poor loan decisions at the expense of the entire ecosystem? In effect, MSSR does nothing more than BRIBE individuals into making loans that incur more risk than they would otherwise take; an inflationary bubble of the monetary supply. Should we be surprised when it causes a bust? Should we be surprised when it cripples the very market it purports to prop up? Who are we to claim that MSSR should be 10%? why not 11? 9? maybe 53? perhaps wouldn't 1 be nice? Its like going to the horse track... you can bet on any lame horse you like and the track ensures you'll never lose more than 10% on your bet. Maybe, let's put it to a vote! Lets give those who have the most loans out the highest voting power. Ha!
and yet where is this MSSR value decided? By vote of witnesses! Preposterous. Step back for a second from the technical challenges you're surrounding yourselves with... and ask: What would Austrian econonomists have to say about the very root of the concept: "maximum" SSR? It would seem to me that MSSR should be short for "Moral haSSaRd", plain and simple. Is this blockchain a cartel? Or is it an experiment in Austrian economic theory? It is my understanding we are striving for a vibrant free market; perhaps I'm mistaken. Markets work efficiently when liquidation of bad debt is immediate. What have the Austrians to say?
MPA's are a core component feature and differential selling point of this blockchain. Is it any wonder that their inability to hold peg coincides directly with the diminishing subjective value of the core BTS token on global markets?
What is the solution? You are under collateralized? Your debt is called? Liquidation. Not "limit order" but "market order" liquidation. And if the book is empty? Crash the book and "core account" takes the debt position and gives you 1 BTS in return. Good bye, have a nice day. Your failure to form a solid economic plan for you business does not become everyone else's problem. Over time surely methods could be derived by which a "core account" which acquires debt positions for nil could profit on them in the open market and restore collateral. The details of this core account's methods I am unsure of. I am a logically minded individual, I suspect those of you here more logistically talented could pull off such a feat. What I do know: Bad debt requires immediate liquidation in a vibrant economy; not a lender of last resort at some voted - by the lenders themselves - "reasonable" rate. I leave you with the advice of Andrew Mellon and Ron Paul:
|
@litepresence |
FWIW a community member posted new ideas in forum: https://bitsharestalk.org/index.php?topic=33058.0 . It seems he doesn't like Github so did not come here. |
I propose to use 2 methods. The first method is "partial GS". This type of "bad debt" resolution is warranted in well-developed markets where it is especially important to preserve the value and function of Force Settlement. We would like bitUSD, bitCNY, bitEUR to have a good reputation and be trusted. The second method would be used wherever the owner is able to accept the devaluation of his token over a period of time. Which is pretty much the same as Bitcrab proposed except that FS is turned off. We know that such an extreme situation on the market often lasts very short and may be caused by a rumor (-50% on USDT), information manipulation or an error in the PF script (an example is bit20) The option to temporarily disable the FS seems to me to be easy to implement and a desirable option to solve the problem for young and shallow markets or those in which the collateral would be, for example, gold, platinum, stable token or a similar type of asset. An extreme situation may disappear there as quickly as it appears without major losses for investors and without large sell walls Ideally, the token owner could always change the method of solving the bad debt problem depending on his subjective assessment of the situation or when the project develops and requires greater trust. |
Done in BitShares Core 6.0 with bitshares/bitshares-core#2499 and following PRs. |
Abstract
This BSIP proposes a new solution to handle bad debt: the core idea is, while bad debt appears, the system does not take over the bad debt positions; instead, it accepts the smartcoin devaluation caused by bad debt and it lets borrowing, margin call, and force settlement all operate referring to the BTS/devaluated smartcoin price. This solution avoids any global/partial settlement, and keeps the borrowing, margin calls and force settlement features to continue and allow the market to decide how to finally remove bad debt, either by BTS price restoration or by debt position adjustment/ margin call order filling/force settlement.
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:
The community has had extensive discussions about how to handle the bad debt in a better way in the future. However an easy way, BSIP58, has been implemented for smartcoins like bitCNY and bitUSD; it has worked successfully to prevent GS from happening with no other obvious impact. However, BSIP58 has some issues - it is suspected of market manipulation and it risks witnesses independence. Moving forward, this BSIP will be built based on BSIP58 and eliminate all its disadvantages.
Rationale
We now have several choices on handling bad debt:
We need to do a deep review on bad debt before evaluating above solutions.
Bad debt means in some debt positions the debt cannot be fully paid by selling the collaterals via margin call/force settlement at the market price. In other words, the relevant smartcoin loses sufficient collateral to back the value and will possibly devalue.
At this moment, the system should accept the fact that the smartcoin will possibly devalue, find ways to minimize the impact to different parties in the market and the time to revive.
In my view, a good way to handle bad debt need to follow below principles:
In above mentioned 5 solutions, only "5. Prevent Global Settlement" fulfills all 3 principles.
Partial GS is another attractive solution: it is similar to Global Settlement but differs in that (a) only takes over the bad debt positions and moves them to a settlement pool without touching the debt positions with CR>1, and (b) users can issue force settlement from the pool, from the margin call orders, or from the good debt position depending on which has the lowest CR.
The problem of Partial GS is that borrowing and force settlement may refer to different prices which will lead to obvious confusion and unfairness.
The "Prevent Global Settlement" solution adopts a new idea to handle bad debt: while bad debt appears, the smartcoin will be devaluated at a ratio of the lowest CR from among the bad debt positions, yet all the smartcoin trading features, including borrowing, margin call and force settlement, will all switch to refer to GS price to ensure the continuity and fairness of all the features.
Specifications
Add one flag "Prevent Global Settlement" to each smartcoin asset.
Introduce a new parameter: settlement price. Its value shall be calculated as:
where FPM is the median of the prices published by witnesses; witnesses should always feed the real market price.
All calculations of debt position collateral ratios and trading price determinations in borrowing, margin call and force settlement shall refer to the settlement price instead of directly to the feed price.
Potential Risks
References
Discussion
Summary for Shareholders
It is important to eliminate concerns about global settlement. This is currently achieved with the technical options that are available to the witnesses. A more advanced solution as proposed here is needed.
Copyright
This document is placed in the public domain.
The text was updated successfully, but these errors were encountered: