Author Topic: New BSIP:GS protection via core code  (Read 1890 times)

0 Members and 1 Guest are viewing this topic.

Offline bitcrab

  • Committee member
  • Hero Member
  • *
  • Posts: 1499
    • View Profile
  • BitShares: bitcrab
  • GitHub: bitcrab
New BSIP:GS protection via core code
« on: July 19, 2019, 07:04:34 am »
I plan to draft a BSIP to implement GS protection via core code, before doing that, I'd like to do some explanation here:

Global Settlement may be the worst way to handle bad debt, because:

1. it settles all the debt positions, including the ones with CR>1
2. it stop the borrowing feature.
3. it make it not easy for the smartcoin to revive, and it's easy to make whales in the revive process, as what happened in bitUSD in recent past.

GS is just like suicide.

another mechanism has been discussed for long time at https://bitsharestalk.org/index.php?topic=27273.0, which can be called "individual settlement", the core idea is that when bad debt appears, instead of triggering GS, only convert the bad debt positions to sell orders at settlement price of that individual debt position.

but this solution also have big issues.

if force settlement is still active after settlement order appears, for example, bad debt positions have been converted to sell orders in 0.04~0.06bitUSD with debts, however, as the market price fall sharply to 0.02bitUSD, bitUSD is off peg, devaluated to about 0.6USD.

which means, feed price is 0.02USD, DEX price is 0.033 bitUSD.

then bitUSD holders begin to exploit debt position owners with force settlement.

even worse, the last bitUSD balance cannot do force settlement, it can only fill the settlement orders with higher price.

this process is unfair to the debt position owners and the last bitUSD holders, and will not help things to recover.

then how about disable force settlement feature while settlement order appear?

then bitUSD holders can only fill the settlement orders from lower price to higher price, in other words, from debt positions from higher CR to lower CR, and filling some settlement orders will devalue bitUSD more, as the left settlement orders has higher price.

after considering this, I think a good mechanism need to follow base principle:

1.do not stop the borrowing feature.
2.ensure smartcoin holders to settle bad debt positions from lower CR to higher CR.
3. accept the possibility that the smartcoin will devalue, just try to minimize the hurting to the ecosystem.

GS protection is perfect to suit the above principle.

GS protection ensure the feed price be above the GS price, this is irrelevant to market manipulation or price faking, it is just to force the smartcoin holders to settle the bad debt position with lowest CR first. and filling margin call orders will reduce GS price and also feed price as well and have chance to end the bad debt, this is a way to let the market do the choice.

in the last several days we have seen that this mechanism protect bitUSD from one more time black swan, it works well, however now it depend on witnesses' work and not 100% reliable, to switch to realize the mechanism via core code will help to make it 100% reliable.

 

« Last Edit: July 19, 2019, 07:47:51 am by bitcrab »

Offline sschiessl

Re: New BSIP:GS protection via core code
« Reply #1 on: July 19, 2019, 07:12:25 am »
Let's assume we want to explicitly allow undercollaterization. In my opinion, a more suitable way would be to implement a bitasset parameter "prevent global settlement", which then can be turned on by committee, and leave the price feed as is. Then the undercollaterization is transparent.

What are your thoughts on that?

Offline bitcrab

  • Committee member
  • Hero Member
  • *
  • Posts: 1499
    • View Profile
  • BitShares: bitcrab
  • GitHub: bitcrab
Re: New BSIP:GS protection via core code
« Reply #2 on: July 19, 2019, 07:36:44 am »
Let's assume we want to explicitly allow undercollaterization. In my opinion, a more suitable way would be to implement a bitasset parameter "prevent global settlement", which then can be turned on by committee, and leave the price feed as is. Then the undercollaterization is transparent.

What are your thoughts on that?

what does bad debt mean? which means the debt in the position cannot be fully paid by selling the collateral with margin call/force settlement referencing the market price.

then you choose to disable margin call and force settlement while bad debt appears? or you allow the existence of a debt position with pure debt and 0 BTS?

« Last Edit: July 19, 2019, 08:00:34 am by bitcrab »

Offline Bangzi

  • Sr. Member
  • ****
  • Posts: 253
    • View Profile
    • Steemit: Bangzi
  • BitShares: bangzi
Re: New BSIP:GS protection via core code
« Reply #3 on: July 19, 2019, 08:28:32 am »
1.do not stop the borrowing feature.
Yes

2.ensure smartcoin holders to settle bad debt positions from lower CR to higher CR.
Even better, Smartcoin holders does not need to use their BitAssets to settle bad debt which mean number of BitCNY/USD will not reduced.

3. accept the possibility that the smartcoin will devalue, just try to minimize the hurting to the ecosystem.
Yes. No price manipulation required and under collateralized time will be shorter than GS protection due to huge incentive.

Please check this:
https://bitsharestalk.org/index.php?topic=27273.msg332494#msg332494
Please Vote for My Witness: Bangzi
请投票支持比特股见证人: Bangzi
Witness Update: https://bitsharestalk.org/index.php?topic=26459.0

Offline bitcrab

  • Committee member
  • Hero Member
  • *
  • Posts: 1499
    • View Profile
  • BitShares: bitcrab
  • GitHub: bitcrab
Re: New BSIP:GS protection via core code
« Reply #4 on: July 19, 2019, 08:41:19 am »
1.do not stop the borrowing feature.
Yes

2.ensure smartcoin holders to settle bad debt positions from lower CR to higher CR.
Even better, Smartcoin holders does not need to use their BitAssets to settle bad debt which mean number of BitCNY/USD will not reduced.

3. accept the possibility that the smartcoin will devalue, just try to minimize the hurting to the ecosystem.
Yes. No price manipulation required and under collateralized time will be shorter than GS protection due to huge incentive.

Please check this:
https://bitsharestalk.org/index.php?topic=27273.msg332494#msg332494

this is similar to the individual settlement solution with disabling force settlement as described above, and has similar disadvantages.

another disadvantage is that this is so complicated for common users to understand, and also cost big development efforts.

Offline sschiessl

Re: New BSIP:GS protection via core code
« Reply #5 on: July 19, 2019, 09:09:52 am »
Let's assume we want to explicitly allow undercollaterization. In my opinion, a more suitable way would be to implement a bitasset parameter "prevent global settlement", which then can be turned on by committee, and leave the price feed as is. Then the undercollaterization is transparent.

What are your thoughts on that?

what does bad debt mean? which means the debt in the position cannot be fully paid by selling the collateral with margin call/force settlement referencing the market price.

then you choose to disable margin call and force settlement while bad debt appears? or you allow the existence of a debt position with pure debt and 0 BTS?

Margin call price would need to be adjusted. If CR is less than MSSR, adjust the price such that the full debt would be bought (which is essentially their global settlement price). If CR is higher, use existing rules. Force settlement would still eat the least collaterized positions first, in that sense the punishment goes to holders that decide to force settle instead of sell on the market. Incentivization would be possible by adjusting the force settlement price if it settle a margin position with CR < MCR (the force settlement offset could then be MSSR (punishment for margin position holder)).

For the bitasset holders it is similar as compared to being in global settlement state.

With "prevent global settlement flag":
 - bitasset holder can sell into the margin calls which is equal or even better compared to global settlement price instead of force settling
 - bitasset holder can force settle, accepting the undercollaterization
 - margin position holder can recollaterize
 - new margin positions can be created
 - margin positions with CR < 1 receive a bit of protection that is shifted to bitasset holders iff they are using force settlement, on the other hand force settling is incentivized if applied to a margin position that is currently being called

Offline Bangzi

  • Sr. Member
  • ****
  • Posts: 253
    • View Profile
    • Steemit: Bangzi
  • BitShares: bangzi
Re: New BSIP:GS protection via core code
« Reply #6 on: July 19, 2019, 09:14:15 am »
this is similar to the individual settlement solution with disabling force settlement as described above, and has similar disadvantages.
Those debt in settlement pool are <1 MCR and thus is unfair for BitAsset who use force settlement, so force settle does not apply to those in settlement pool.
No need to disable force settlement for those in low CR list with MCR =>1.


another disadvantage is that this is so complicated for common users to understand, and also cost big development efforts.
Honestly, this is for advance players eg. alt, clockwork etc with some capital because huge reward come with huge risk.
The core team have more than enough $$$ on hand.
Please Vote for My Witness: Bangzi
请投票支持比特股见证人: Bangzi
Witness Update: https://bitsharestalk.org/index.php?topic=26459.0

Offline bitcrab

  • Committee member
  • Hero Member
  • *
  • Posts: 1499
    • View Profile
  • BitShares: bitcrab
  • GitHub: bitcrab
Re: New BSIP:GS protection via core code
« Reply #7 on: July 19, 2019, 09:55:13 am »

Margin call price would need to be adjusted. If CR is less than MSSR, adjust the price such that the full debt would be bought (which is essentially their global settlement price). If CR is higher, use existing rules. Force settlement would still eat the least collaterized positions first, in that sense the punishment goes to holders that decide to force settle instead of sell on the market. Incentivization would be possible by adjusting the force settlement price if it settle a margin position with CR < MCR (the force settlement offset could then be MSSR (punishment for margin position holder)).

For the bitasset holders it is similar as compared to being in global settlement state.

With "prevent global settlement flag":
 - bitasset holder can sell into the margin calls which is equal or even better compared to global settlement price instead of force settling
 - bitasset holder can force settle, accepting the undercollaterization
 - margin position holder can recollaterize
 - new margin positions can be created
 - margin positions with CR < 1 receive a bit of protection that is shifted to bitasset holders iff they are using force settlement, on the other hand force settling is incentivized if applied to a margin position that is currently being called

what you describe is very similar to "individual settlement with force settlement", the disadvantage has been already discussed above.

Offline bitcrab

  • Committee member
  • Hero Member
  • *
  • Posts: 1499
    • View Profile
  • BitShares: bitcrab
  • GitHub: bitcrab
Re: New BSIP:GS protection via core code
« Reply #8 on: July 19, 2019, 09:57:31 am »
this is similar to the individual settlement solution with disabling force settlement as described above, and has similar disadvantages.
Those debt in settlement pool are <1 MCR and thus is unfair for BitAsset who use force settlement, so force settle does not apply to those in settlement pool.
No need to disable force settlement for those in low CR list with MCR =>1.


disadvantage of "individual settlement with force settlement" has also been discussed above.

Offline sschiessl

Re: New BSIP:GS protection via core code
« Reply #9 on: July 19, 2019, 10:16:14 am »
then bitUSD holders begin to exploit debt position owners with force settlement.

even worse, the last bitUSD balance cannot do force settlement, it can only fill the settlement orders with higher price.

I don't understand how that exploit works. If I force settle while there are positions with CR < 1 are present, I settle for BTS that are worth less then 1 USD, accepting the undercollaterization. This also closes out the bad margin position, but that is of course the risk of running a undercollaterized position (it's a loss-loss scenario so I expect this is not an exploit for you). In my scenario force settlement still eats the margin position with least CR. There will of course be margin call orders with a price different than the feed price, but that does not force the traders to deviate from the peg. Can you please make another example please?

Offline bitcrab

  • Committee member
  • Hero Member
  • *
  • Posts: 1499
    • View Profile
  • BitShares: bitcrab
  • GitHub: bitcrab
Re: New BSIP:GS protection via core code
« Reply #10 on: July 19, 2019, 10:45:07 am »
then bitUSD holders begin to exploit debt position owners with force settlement.

even worse, the last bitUSD balance cannot do force settlement, it can only fill the settlement orders with higher price.

I don't understand how that exploit works. If I force settle while there are positions with CR < 1 are present, I settle for BTS that are worth less then 1 USD, accepting the undercollaterization. This also closes out the bad margin position, but that is of course the risk of running a undercollaterized position (it's a loss-loss scenario so I expect this is not an exploit for you). In my scenario force settlement still eats the margin position with least CR. There will of course be margin call orders with a price different than the feed price, but that does not force the traders to deviate from the peg. Can you please make another example please?

you cannot force settle debt positions with CR<1 with market price, as that will lead to a debt position with pure debt and 0 collateral, which is not allowed.

you can only force settle debt position with CR<1 with price higher than market price, bitUSD holders obviously will select to force settle debt positions with CR>=1, as it is cheaper.

while bad debt appear, bitUSD is easily be devaluated, as it is not backed by sufficient BTS.

you use devaluated bitUSD(insufficient collateral) to force settle a debt position in market price, is it fair?
« Last Edit: July 19, 2019, 10:48:22 am by bitcrab »

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 3667
    • View Profile
    • Steemit Blog
  • BitShares: abit
  • GitHub: abitmore
Re: New BSIP:GS protection via core code
« Reply #11 on: July 19, 2019, 12:23:47 pm »
Why have many threads to discuss the same thing?

https://github.com/bitshares/bsips/issues/179#issuecomment-512175417

IMHO @bitcrab and @sschiessl were essentially saying the same thing, which is the 2nd option as I described in the BSIP issue: simple GS protection.
* allow undercollateralization
* no globally settlement
* no individual settlement, the system don't take over the undercollateralized debt positions
* when undercollateralization happens and someone tries to settle, fill the settlement request with the positions with lowest CR first, so first settler will get less

I'm for the 4th option now:
* allow undercollateralization
* no globally settlement
* has individual settlement, the system take over the undercollateralized debt positions (which would form a pool)
* when undercollateralization happens and someone tries to settle, fill the settlement request with the positions with lowest CR (can be the pool) first, so first settler will get less

I think the mechanism that I proposed in https://bitsharestalk.org/index.php?topic=27273 favors debt holders too much.
* allow undercollateralization
* no globally settlement
* has individual settlement, the system take over the undercollateralized debt positions (which would form a pool)
* when undercollateralization happens and someone tries to settle, fill the settlement request with the fully-collateralized positions with lowest CR (can be the pool) first, so settlers will always get the same unless the asset is globally undercollateralized.


Perhaps best if the core provide all the options, and let asset owners decide to choose which one.
« Last Edit: July 19, 2019, 12:34:23 pm by abit »
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Offline sahkan

  • Sr. Member
  • ****
  • Posts: 225
    • View Profile
    • BitShares DEX
Re: New BSIP:GS protection via core code
« Reply #12 on: July 19, 2019, 12:52:15 pm »
How about we just increase MSSR to to least 5%? Margin calls will be bought before GS happens. If you continue to 100% protect the debt holders GS events will happen all the time.

If you settle the under collateralized positions to smart coin owners that's just stealing from them and goes against DEX rules.

Online binggo

  • Hero Member
  • *****
  • Posts: 1246
    • View Profile
Re: New BSIP:GS protection via core code
« Reply #13 on: July 19, 2019, 12:59:14 pm »
The market will run as your thought? en,that's very interesting.

How about we just increase MSSR to to least 5%? Margin calls will be bought before GS happens. If you continue to 100% protect the debt holders GS events will happen all the time.

If you settle the under collateralized positions to smart coin owners that's just stealing from them and goes against DEX rules.

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 3667
    • View Profile
    • Steemit Blog
  • BitShares: abit
  • GitHub: abitmore
Re: New BSIP:GS protection via core code
« Reply #14 on: July 19, 2019, 01:21:02 pm »
How about we just increase MSSR to to least 5%? Margin calls will be bought before GS happens. If you continue to 100% protect the debt holders GS events will happen all the time.
Last time bitUSD MSSR is 10%, GSed.
This time bitUSD MSSR is 2%, GS-protected.

This means "MSSR" is irrelevant to whether undercollateralization will happen.

Quote
If you settle the under collateralized positions to smart coin owners that's just stealing from them and goes against DEX rules.

The word "settle" is used in too many places but means different things.

Perhaps we need to find a better word.

Force settle - bitUSD holders will pay bitUSD to debt position holders or the GS pool and get BTS
Globally settle - all debt positions will be closed and a pool will be formed, nothing changes to bitUSD holders
Individual settle - undercollateralized debt positions ( whose CR < a special threshold) will be closed and the collateral will be put into a pool, nothing changes to bitUSD holders

What did you mean when saying the one word "settle"?

And what's "against DEX rules" in your sentense?
IMHO, rules can be changed if BTS token holders agree to change via stake-based voting, that's why we have BSIPs. That's why we're discussing how to change.
« Last Edit: July 19, 2019, 01:25:40 pm by abit »
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Offline sahkan

  • Sr. Member
  • ****
  • Posts: 225
    • View Profile
    • BitShares DEX
Re: New BSIP:GS protection via core code
« Reply #15 on: July 19, 2019, 01:26:18 pm »
The market will run as your thought? en,that's very interesting.

How about we just increase MSSR to to least 5%? Margin calls will be bought before GS happens. If you continue to 100% protect the debt holders GS events will happen all the time.

If you settle the under collateralized positions to smart coin owners that's just stealing from them and goes against DEX rules.

GS happens because of 1 thing:
1. debt positions don't adjust debt

To correct that DEX should:
1. Margin call their position with enough incentive for the position to be liquidated (MSSR), the margin call should be such that debt holder would want to adjust their debt or close it.

Shifting risk to the DEX, smart coin holders or anyone else is just not a good business practice.

But you are most likely a debt holder so you probably want others to pay for the risk you took and lost. When BTS goes up I don't see any debt holders creating GS funds, they just want to use other people's money to cover their risk. And that's the gist of it. The sad part is that by seeing only your way, you fail to notice that BTS continues to slide because of people's mistrust and bad practices.


Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 3667
    • View Profile
    • Steemit Blog
  • BitShares: abit
  • GitHub: abitmore
Re: New BSIP:GS protection via core code
« Reply #16 on: July 19, 2019, 01:29:41 pm »
The market will run as your thought? en,that's very interesting.

How about we just increase MSSR to to least 5%? Margin calls will be bought before GS happens. If you continue to 100% protect the debt holders GS events will happen all the time.

If you settle the under collateralized positions to smart coin owners that's just stealing from them and goes against DEX rules.

GS happens because of 1 thing:
1. debt positions don't adjust debt

To correct that DEX should:
1. Margin call their position with enough incentive for the position to be liquidated (MSSR), the margin call should be such that debt holder would want to adjust their debt or close it.

Shifting risk to the DEX, smart coin holders or anyone else is just not a good business practice.

But you are most likely a debt holder so you probably want others to pay for the risk you took and lost. When BTS goes up I don't see any debt holders creating GS funds, they just want to use other people's money to cover their risk. And that's the gist of it. The sad part is that by seeing only your way, you fail to notice that BTS continues to slide because of people's mistrust and bad practices.
Too many wrong assumptions in your comment.

I'd say please understand the situation before starting to argue on something.
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Offline sahkan

  • Sr. Member
  • ****
  • Posts: 225
    • View Profile
    • BitShares DEX
Re: New BSIP:GS protection via core code
« Reply #17 on: July 19, 2019, 01:30:15 pm »

The word "settle" is used in too many places but means different things.


I was referring to "Force Settlement" and the idea that the first person that settles bad debt gets less BTS.

Offline sahkan

  • Sr. Member
  • ****
  • Posts: 225
    • View Profile
    • BitShares DEX
Re: New BSIP:GS protection via core code
« Reply #18 on: July 19, 2019, 01:31:44 pm »
@abit I am not arguing, just stating my thoughts.

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 3667
    • View Profile
    • Steemit Blog
  • BitShares: abit
  • GitHub: abitmore
Re: New BSIP:GS protection via core code
« Reply #19 on: July 19, 2019, 01:33:37 pm »

The word "settle" is used in too many places but means different things.


I was referring to "Force Settlement" and the idea that the first person that settles bad debt gets less BTS.
Current rule aka GS means everyone who settles bad debt gets less BTS.
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Offline sahkan

  • Sr. Member
  • ****
  • Posts: 225
    • View Profile
    • BitShares DEX
Re: New BSIP:GS protection via core code
« Reply #20 on: July 19, 2019, 01:41:37 pm »

The word "settle" is used in too many places but means different things.


I was referring to "Force Settlement" and the idea that the first person that settles bad debt gets less BTS.
Current rule aka GS means everyone who settles bad debt gets less BTS.

Yes, and that's bad business. And how about if we introduce a 24hr debt settlement where the debt holder gets a chance to close his debt before GS?

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 3667
    • View Profile
    • Steemit Blog
  • BitShares: abit
  • GitHub: abitmore
Re: New BSIP:GS protection via core code
« Reply #21 on: July 19, 2019, 01:55:46 pm »
The market will run as your thought? en,that's very interesting.

How about we just increase MSSR to to least 5%? Margin calls will be bought before GS happens. If you continue to 100% protect the debt holders GS events will happen all the time.

If you settle the under collateralized positions to smart coin owners that's just stealing from them and goes against DEX rules.

GS happens because of 1 thing:
1. debt positions don't adjust debt

It's that undercollateralization happens ..., not GS happens .... Whether to GS is what we're discussing, aka whether to change the rule.

Quote

To correct that DEX should:
1. Margin call their position with enough incentive for the position to be liquidated (MSSR), the margin call should be such that debt holder would want to adjust their debt or close it.

We didn't find the way so far, as you can see, changing MSSR didn't work.

You think they "should" do it, but they didn't do it. It means you are wrong, but not them.


Simply, collateralized debt means if you can't pay the debt, you lose the collateral, but nothing more.
When undercollateralization happens, the debt position holder is already prepared to lose the whole collateral.
It's not justice to ask debt position holders to put more funds into the collateral, although they could, they don't have to.

We're on blockchain. Thus "anonymity and unnacountability. If you take margin anywhere outside crypto your liability is unlimited. It is not limited to your deposit. The brokers have your details and can and will pursue you through the courts. In cryoto your liability is limited to your deposit." (credit to Anthony Garner in Telegram BitShares Community Group)

Quote
Shifting risk to the DEX, smart coin holders or anyone else is just not a good business practice.

Think it in another way:
It's the debt asset holders' responsibility to settle before undercollateralization.
The debt asset holders are responsible to keep value of collateral as high as possible, otherwise when they settle they can't get the full face value. It's simple, because settling for collateral is the only way to "redeem the value".

When you go into a position (borrow bitUSD or hold bitUSD) you bear some risks, although different risks for different parties. There is no such thing 100% safe. Current rule, aka GS, doesn't solve the issue.


Quote

But you are most likely a debt holder so you probably want others to pay for the risk you took and lost. When BTS goes up I don't see any debt holders creating GS funds, they just want to use other people's money to cover their risk. And that's the gist of it. The sad part is that by seeing only your way, you fail to notice that BTS continues to slide because of people's mistrust and bad practices.
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 3667
    • View Profile
    • Steemit Blog
  • BitShares: abit
  • GitHub: abitmore
Re: New BSIP:GS protection via core code
« Reply #22 on: July 19, 2019, 01:58:54 pm »

The word "settle" is used in too many places but means different things.


I was referring to "Force Settlement" and the idea that the first person that settles bad debt gets less BTS.
Current rule aka GS means everyone who settles bad debt gets less BTS.

Yes, and that's bad business. And how about if we introduce a 24hr debt settlement where the debt holder gets a chance to close his debt before GS?
Before discussing your idea, how about you think about the 4 options I described?
It's better if you can explain what are the pros and cons first then ask others.

In your words you mentioned "debt holders", I guess you mean "debt position holders"?
When the debt positions turned into margin calls, the debt position holders are already willing to close their positions. It's that nobody buys into the margin calls caused the final undercollateralization. It's the debt asset holders' fault.

When it's already undercollateralized, what's the use of the 24 hours? Assume some debt asset holders will settle, what's the fair price? where to get the collateral to pay them? You still need to face the fact: whether first settler will get less.
« Last Edit: July 19, 2019, 02:07:42 pm by abit »
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Offline bitcrab

  • Committee member
  • Hero Member
  • *
  • Posts: 1499
    • View Profile
  • BitShares: bitcrab
  • GitHub: bitcrab
Re: New BSIP:GS protection via core code
« Reply #23 on: July 19, 2019, 02:08:28 pm »
I'm for the 4th option now:
* allow undercollateralization
* no globally settlement
* has individual settlement, the system take over the undercollateralized debt positions (which would form a pool)
* when undercollateralization happens and someone tries to settle, fill the settlement request with the positions with lowest CR (can be the pool) first, so first settler will get less

so the pool as a debt position may have CR<1, when some tries to settle, how can the pool fulfill the request with CR<1? or the pool can only fulfill the request with CR>1?

Offline sahkan

  • Sr. Member
  • ****
  • Posts: 225
    • View Profile
    • BitShares DEX
Re: New BSIP:GS protection via core code
« Reply #24 on: July 19, 2019, 02:14:47 pm »

The word "settle" is used in too many places but means different things.


I was referring to "Force Settlement" and the idea that the first person that settles bad debt gets less BTS.
Current rule aka GS means everyone who settles bad debt gets less BTS.

Yes, and that's bad business. And how about if we introduce a 24hr debt settlement where the debt holder gets a chance to close his debt before GS?
Before discussing your idea, how about you think about the 4 options I described?
It's better if you can explain what are the pros and cons first then ask others.

In your words you mentioned "debt holders", I guess you mean "debt position holders"?
When the debt positions turned into margin calls, the debt position holders are already willing to close their positions. It's that nobody buys into the margin calls caused the final undercollateralization. It's the debt asset holders' fault.

When it's already undercollateralized, what's the use of the 24 hours? Assume some debt asset holders will settle, what's the fair price? where to get the collateral to pay them? You still need to face the fact: whether first settler will get less.
I am not here to argue your points. I simply state my thoughts. If we were to increase MCR and MSSR (tools we already have) we might be able to avoid GS or "GS protection". That's my point. You think otherwise and that's ok, we are all entitled to our opinions.

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 3667
    • View Profile
    • Steemit Blog
  • BitShares: abit
  • GitHub: abitmore
Re: New BSIP:GS protection via core code
« Reply #25 on: July 19, 2019, 02:20:00 pm »
I'm for the 4th option now:
* allow undercollateralization
* no globally settlement
* has individual settlement, the system take over the undercollateralized debt positions (which would form a pool)
* when undercollateralization happens and someone tries to settle, fill the settlement request with the positions with lowest CR (can be the pool) first, so first settler will get less

so the pool as a debt position may have CR<1, when some tries to settle, how can the pool fulfill the request with CR<1? or the pool can only fulfill the request with CR>1?
The pool pays less BTS per bitUSD.
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Offline bitcrab

  • Committee member
  • Hero Member
  • *
  • Posts: 1499
    • View Profile
  • BitShares: bitcrab
  • GitHub: bitcrab
Re: New BSIP:GS protection via core code
« Reply #26 on: July 19, 2019, 02:30:48 pm »
I'm for the 4th option now:
* allow undercollateralization
* no globally settlement
* has individual settlement, the system take over the undercollateralized debt positions (which would form a pool)
* when undercollateralization happens and someone tries to settle, fill the settlement request with the positions with lowest CR (can be the pool) first, so first settler will get less

so the pool as a debt position may have CR<1, when some tries to settle, how can the pool fulfill the request with CR<1? or the pool can only fulfill the request with CR>1?
The pool pays less BTS per bitUSD.

so when someone tries to settle,
the pool has a settle price of 0.05USD,
the margin call order price is 0.04USD,
the normal force settlement price is 0.043USD

which will fill the settle request? the pool?

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 3667
    • View Profile
    • Steemit Blog
  • BitShares: abit
  • GitHub: abitmore
Re: New BSIP:GS protection via core code
« Reply #27 on: July 19, 2019, 02:35:18 pm »

The word "settle" is used in too many places but means different things.


I was referring to "Force Settlement" and the idea that the first person that settles bad debt gets less BTS.
Current rule aka GS means everyone who settles bad debt gets less BTS.

Yes, and that's bad business. And how about if we introduce a 24hr debt settlement where the debt holder gets a chance to close his debt before GS?
Before discussing your idea, how about you think about the 4 options I described?
It's better if you can explain what are the pros and cons first then ask others.

In your words you mentioned "debt holders", I guess you mean "debt position holders"?
When the debt positions turned into margin calls, the debt position holders are already willing to close their positions. It's that nobody buys into the margin calls caused the final undercollateralization. It's the debt asset holders' fault.

When it's already undercollateralized, what's the use of the 24 hours? Assume some debt asset holders will settle, what's the fair price? where to get the collateral to pay them? You still need to face the fact: whether first settler will get less.
I am not here to argue your points. I simply state my thoughts. If we were to increase MCR and MSSR (tools we already have) we might be able to avoid GS or "GS protection". That's my point. You think otherwise and that's ok, we are all entitled to our opinions.
Increasing MCR may probably reduce chance of undercollateralization, however, it may probably lead to the opposite as well.

With increased MCR, less bitUSD can be produced with same amount of BTS as collateral. Higher MSSR means debt position holders will lose more when being margin called, it means higher risks for debt pisition holders. So it will lead to lower bitUSD supply, poorer liquidity, and likely higher premium.

If we want to grow, we need to bear some risks.

Take bitEUR as an example. Its overall collateral ratio is very "healthy", but it has too little supply.
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 3667
    • View Profile
    • Steemit Blog
  • BitShares: abit
  • GitHub: abitmore
Re: New BSIP:GS protection via core code
« Reply #28 on: July 19, 2019, 02:37:39 pm »
I'm for the 4th option now:
* allow undercollateralization
* no globally settlement
* has individual settlement, the system take over the undercollateralized debt positions (which would form a pool)
* when undercollateralization happens and someone tries to settle, fill the settlement request with the positions with lowest CR (can be the pool) first, so first settler will get less

so the pool as a debt position may have CR<1, when some tries to settle, how can the pool fulfill the request with CR<1? or the pool can only fulfill the request with CR>1?
The pool pays less BTS per bitUSD.

so when someone tries to settle,
the pool has a settle price of 0.05USD,
the margin call order price is 0.04USD,
the normal force settlement price is 0.043USD

which will fill the settle request? the pool?
Compare CR of the pool and the call order, whose CR is lower gets settled.

If CR of the order or pool > 1 / (1+force_settle_offset), fill settle order at normal force settlement price,
if CR of the order or pool < 1 / (1+force_settle_offset), fill settle order at CR.
« Last Edit: July 19, 2019, 02:40:28 pm by abit »
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Offline bitcrab

  • Committee member
  • Hero Member
  • *
  • Posts: 1499
    • View Profile
  • BitShares: bitcrab
  • GitHub: bitcrab
Re: New BSIP:GS protection via core code
« Reply #29 on: July 19, 2019, 02:54:00 pm »
I'm for the 4th option now:
* allow undercollateralization
* no globally settlement
* has individual settlement, the system take over the undercollateralized debt positions (which would form a pool)
* when undercollateralization happens and someone tries to settle, fill the settlement request with the positions with lowest CR (can be the pool) first, so first settler will get less

so the pool as a debt position may have CR<1, when some tries to settle, how can the pool fulfill the request with CR<1? or the pool can only fulfill the request with CR>1?
The pool pays less BTS per bitUSD.

so when someone tries to settle,
the pool has a settle price of 0.05USD,
the margin call order price is 0.04USD,
the normal force settlement price is 0.043USD

which will fill the settle request? the pool?
Compare CR of the pool and the call order, whose CR is lower gets settled.

If CR of the order or pool > 1 / (1+force_settle_offset), fill settle order at normal force settlement price,
if CR of the order or pool < 1 / (1+force_settle_offset), fill settle order at CR.

so in my above example, obviously the pool has lower CR and will be settled with price 0.05USD.

maybe at the time the feed price is 0.042(not exact), but when user settle, they have to settle the pool with price 0.05, not the margin call order with price 0.04?

you tell the people the price is 0.042, but you only allow them to settle at 0.5...confusion...

Offline sschiessl

Re: New BSIP:GS protection via core code
« Reply #30 on: July 19, 2019, 03:59:23 pm »
Followed abit's style and added a 6th option to https://github.com/bitshares/bsips/issues/179#issuecomment-513269772

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 3667
    • View Profile
    • Steemit Blog
  • BitShares: abit
  • GitHub: abitmore
Re: New BSIP:GS protection via core code
« Reply #31 on: July 19, 2019, 05:08:51 pm »
I'm for the 4th option now:
* allow undercollateralization
* no globally settlement
* has individual settlement, the system take over the undercollateralized debt positions (which would form a pool)
* when undercollateralization happens and someone tries to settle, fill the settlement request with the positions with lowest CR (can be the pool) first, so first settler will get less

so the pool as a debt position may have CR<1, when some tries to settle, how can the pool fulfill the request with CR<1? or the pool can only fulfill the request with CR>1?
The pool pays less BTS per bitUSD.

so when someone tries to settle,
the pool has a settle price of 0.05USD,
the margin call order price is 0.04USD,
the normal force settlement price is 0.043USD

which will fill the settle request? the pool?
Compare CR of the pool and the call order, whose CR is lower gets settled.

If CR of the order or pool > 1 / (1+force_settle_offset), fill settle order at normal force settlement price,
if CR of the order or pool < 1 / (1+force_settle_offset), fill settle order at CR.

so in my above example, obviously the pool has lower CR and will be settled with price 0.05USD.

maybe at the time the feed price is 0.042(not exact), but when user settle, they have to settle the pool with price 0.05, not the margin call order with price 0.04?

you tell the people the price is 0.042, but you only allow them to settle at 0.5...confusion...
feed_price = 0.04
settlement_price = 0.05

两个数,没毛病。

现在UI也是两个数:
feed_price = 0.3
settlement_price = 0.303

如果你硬是要因为 settlement_price = 0.05 而显示 feed_price = 0.05 才让人更困惑,明明外盘成交价在0.04
« Last Edit: July 19, 2019, 05:12:10 pm by abit »
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Offline bitcrab

  • Committee member
  • Hero Member
  • *
  • Posts: 1499
    • View Profile
  • BitShares: bitcrab
  • GitHub: bitcrab
Re: New BSIP:GS protection via core code
« Reply #32 on: July 19, 2019, 05:23:48 pm »
Quote from: bitcrab

so in my above example, obviously the pool has lower CR and will be settled with price 0.05USD.

maybe at the time the feed price is 0.042(not exact), but when user settle, they have to settle the pool with price 0.05, not the margin call order with price 0.04?

you tell the people the price is 0.042, but you only allow them to settle at 0.5...confusion...
feed_price = 0.04
settlement_price = 0.05

两个数,没毛病。

现在UI也是两个数:
feed_price = 0.3
settlement_price = 0.303

如果你硬是要因为 settlement_price = 0.05 而显示 feed_price = 0.05 才让人更困惑,明明外盘成交价在0.04

0.303=0.3*1.01, easy to understand the relation of these 2 figures.

0.05 and 0.04 is an example, even higher gap is possible, maybe the settlement price is 0.08 and feed price is 0.04, because the settle price of the pool may be much higher than market price.

when force settlement price does not refer the feed price, what sense does the feed price make? although it is the market price?

难道不是喂价格A, 然后爆仓价是A/MSSR, 清算价是A*(1+force settlement offset),保持这样一种关系才是正常的吗?

Offline biophil

  • Hero Member
  • *****
  • Posts: 877
  • Professor of Computer Science
    • View Profile
    • My Academic Website
  • BitShares: biophil
Re: New BSIP:GS protection via core code
« Reply #33 on: July 19, 2019, 06:36:49 pm »
The market will run as your thought? en,that's very interesting.

How about we just increase MSSR to to least 5%? Margin calls will be bought before GS happens. If you continue to 100% protect the debt holders GS events will happen all the time.

If you settle the under collateralized positions to smart coin owners that's just stealing from them and goes against DEX rules.

GS happens because of 1 thing:
1. debt positions don't adjust debt

To correct that DEX should:
1. Margin call their position with enough incentive for the position to be liquidated (MSSR), the margin call should be such that debt holder would want to adjust their debt or close it.

Shifting risk to the DEX, smart coin holders or anyone else is just not a good business practice.

But you are most likely a debt holder so you probably want others to pay for the risk you took and lost. When BTS goes up I don't see any debt holders creating GS funds, they just want to use other people's money to cover their risk. And that's the gist of it. The sad part is that by seeing only your way, you fail to notice that BTS continues to slide because of people's mistrust and bad practices.

I've been thinking about this a lot lately, and am writing a paper which I'll potentially submit to the Decentralized 2019 conference on the topic.

Choosing MCR and MSSR is a surprisingly complex issue. Like abit said, 10% MSSR didn't protect BitUSD from GS last December. Maybe this was because MSSR penalties are paid out of collateral, which means that there's less margin before a GS. Or maybe the GS happened because MSSR was too low, so there wasn't enough demand for margin calls. Or, maybe this was just because the BTS market was so bad that BitUSD was going to global settle no matter what.

I'm generally in favor of MSSR, and one of the things this paper is going to say is that 0% MSSR may be one of the worst options of all. However, I think one of the bigger issues is that there really isn't a good incentive for individual traders to protect against a GS event. Because of this, I'm loosely in favor of any proposal that gets rid of GS. I totally agree with bitcrab that GS is like suicide. However, I've yet to see a replacement that I really like. It'll be one of the major focuses of my research project.
Support our research efforts to improve BitAsset price-pegging! Vote for worker 1.14.204 "201907-uccs-research-project."

Offline bitcrab

  • Committee member
  • Hero Member
  • *
  • Posts: 1499
    • View Profile
  • BitShares: bitcrab
  • GitHub: bitcrab
Re: New BSIP:GS protection via core code
« Reply #34 on: July 19, 2019, 11:59:56 pm »
I've been thinking about this a lot lately, and am writing a paper which I'll potentially submit to the Decentralized 2019 conference on the topic.

Choosing MCR and MSSR is a surprisingly complex issue. Like abit said, 10% MSSR didn't protect BitUSD from GS last December. Maybe this was because MSSR penalties are paid out of collateral, which means that there's less margin before a GS. Or maybe the GS happened because MSSR was too low, so there wasn't enough demand for margin calls. Or, maybe this was just because the BTS market was so bad that BitUSD was going to global settle no matter what.

I'm generally in favor of MSSR, and one of the things this paper is going to say is that 0% MSSR may be one of the worst options of all. However, I think one of the bigger issues is that there really isn't a good incentive for individual traders to protect against a GS event. Because of this, I'm loosely in favor of any proposal that gets rid of GS. I totally agree with bitcrab that GS is like suicide. However, I've yet to see a replacement that I really like. It'll be one of the major focuses of my research project.

yes, when the market is bad enough, bad debt will happen no matter either the MSSR is 1.01 or 1.5.

I tried to change MSSR of bitUSD from 1.02 to 1.01 at this time, because I feel now either 1.01 or 1.02 does not change the market status, however 1.01 will lead to a better pegging than 1.02.
« Last Edit: July 20, 2019, 12:01:55 am by bitcrab »

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 3667
    • View Profile
    • Steemit Blog
  • BitShares: abit
  • GitHub: abitmore
Re: New BSIP:GS protection via core code
« Reply #35 on: July 20, 2019, 04:30:35 am »
Quote from: bitcrab

so in my above example, obviously the pool has lower CR and will be settled with price 0.05USD.

maybe at the time the feed price is 0.042(not exact), but when user settle, they have to settle the pool with price 0.05, not the margin call order with price 0.04?

you tell the people the price is 0.042, but you only allow them to settle at 0.5...confusion...
feed_price = 0.04
settlement_price = 0.05

两个数,没毛病。

现在UI也是两个数:
feed_price = 0.3
settlement_price = 0.303

如果你硬是要因为 settlement_price = 0.05 而显示 feed_price = 0.05 才让人更困惑,明明外盘成交价在0.04

0.303=0.3*1.01, easy to understand the relation of these 2 figures.

0.05 and 0.04 is an example, even higher gap is possible, maybe the settlement price is 0.08 and feed price is 0.04, because the settle price of the pool may be much higher than market price.

when force settlement price does not refer the feed price, what sense does the feed price make? although it is the market price?

难道不是喂价格A, 然后爆仓价是A/MSSR, 清算价是A*(1+force settlement offset),保持这样一种关系才是正常的吗?
The purpose of implementing GS protection into core is, no matter witnesses feed what price, force settlements and margin calls will execute at the protected price. So it's clearer for traders to know what's the feed price (produced by witnesses) and what's the settlement price (decided by the blockchain). Actually it's a UI issue, so we don't need to argue here. UI can even should a third price: what will be the settlement price and margin call price if GS protection is disabled.

On the other hand, if GS protection is implemented into core, witnesses will no longer need to and should not publish adjusted price feeds which was criticized as price manipulation.

IMHO, whether the blockchain should take over the bad debt is the main thing to debate.
« Last Edit: July 20, 2019, 04:32:19 am by abit »
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Offline sahkan

  • Sr. Member
  • ****
  • Posts: 225
    • View Profile
    • BitShares DEX
Re: New BSIP:GS protection via core code
« Reply #36 on: July 20, 2019, 12:37:26 pm »

Choosing MCR and MSSR is a surprisingly complex issue. Like abit said, 10% MSSR didn't protect BitUSD from GS last December.
   
The MSSR did not work because BSIP 42 introduced price manipulation and the MSSR was offset by fake price feeds.

I will give everyone another option to think about on the GS issue:
When collateral reaches 1:1 simply force settle that debt based on percentages. If there are 1000 smart coins issued, 10 is being force settled; each holder would see 1% of their smart coin force settled by the blockchain. This avoids GS alltogether and good debt stays in the system.

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 3667
    • View Profile
    • Steemit Blog
  • BitShares: abit
  • GitHub: abitmore
Re: New BSIP:GS protection via core code
« Reply #37 on: July 20, 2019, 01:42:07 pm »

Choosing MCR and MSSR is a surprisingly complex issue. Like abit said, 10% MSSR didn't protect BitUSD from GS last December.
   
The MSSR did not work because BSIP 42 introduced price manipulation and the MSSR was offset by fake price feeds.
I understand you. It's easier to blame others than to find the real reason or solution.

bitSILVER, bitGOLD and bitBTC always had 10% MSSR and never applied BSIP42 but GSed long ago. This fact doesn't support the assumption that a higher MSSR will prevent undercollateralization from happening.

Actually the assets got into undercollateralized situation simply due to
1. lack of incentives for borrowers to keep shorting (lack of desire to put more collateral, because putting more collateral would mean the potential to lose more in a downtrend, thus they chose to "stop loss"), and
2. lack of incentives for debt asset holders to settle when CR is low (because settling when price is dropping simply means loss, we assume most of debt asset holders tend to hold stabler assets, although some of them may don't know about GS or don't care, anyway finally they chose to take no action before GS).

If we can find a proper way to incentivize the involved parties, we'll solve the problem.

Higher MSSR is not an incentive for borrowers who decided to stop loss (aka so-called "bad borrowers" although I don't like to label people), although it may be an incentive for borrowers who have enough funds to add collateral.

GS is actually an incentive for borrowers who decided to stop loss, but not an incentive for borrowers who have enough funds to add collateral.

Quote
I will give everyone another option to think about on the GS issue:
When collateral reaches 1:1 simply force settle that debt based on percentages. If there are 1000 smart coins issued, 10 is being force settled; each holder would see 1% of their smart coin force settled by the blockchain. This avoids GS alltogether and good debt stays in the system.
This is also an option if our only goal is to avoid undercollateralization (btw technically 1% is not guaranteed that all undercollateralized positions will be settled, also technically we can increase the percentage when it's the case).

IMHO this option does more harm than good, because we have other goals which IMHO are more important, one of them is to give debt asset holders as much freedom as possible to decide by themselves, because we assume they're risk haters. On the other hand, debt position holders are risk lovers, so it's fine to have more aggressive rules on them, e.g. margin calls and force settlements. Please see discussions in https://github.com/bitshares/bsips/issues/179.

Also it would be a crisis for businesses built on top of BitAssets because they have no easy way to convert the collateral back to BitAsset when collateral price bounced back up. Imagine that if someone deposit bitUSD to an exchange but later can only withdraw some BTS and some BitUSD. In short, don't remove coins from users' balance, otherwise users will leave.

Alternatively, perhaps we should give asset holders an option on whether *automatically* settle a part of their holdings when feed price is closed to GS price, which may slightly improve the situation, but is not that hard.
« Last Edit: July 20, 2019, 01:45:06 pm by abit »
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Offline sahkan

  • Sr. Member
  • ****
  • Posts: 225
    • View Profile
    • BitShares DEX
Re: New BSIP:GS protection via core code
« Reply #38 on: July 21, 2019, 01:42:52 am »
I understand you. It's easier to blame others than to find the real reason or solution.
I'm not sure if you do, at least on this issue. I was just stating a fact.

bitSILVER, bitGOLD and bitBTC always had 10% MSSR and never applied BSIP42 but GSed long ago. This fact doesn't support the assumption that a higher MSSR will prevent undercollateralization from happening.
It takes more than MSSR. At least a combo of MSSR and MCR. But The weaker the bitAsset the higher they need to be; as en example bitCNY can have lower settings and still function properly. If you don't have liquid market on butAssets GS will happen no matter the MSSR and MCR if the right conditions are met.

If we can find a proper way to incentivize the involved parties, we'll solve the problem.
No matter the incentive, there will be always someone (maybe someone that no longer pays attention to his debt) that will let it ride. If we don't come up with a way to automatically close the debt the GS will always be there.
Quote
I will give everyone another option to think about on the GS issue:
When collateral reaches 1:1 simply force settle that debt based on percentages. If there are 1000 smart coins issued, 10 is being force settled; each holder would see 1% of their smart coin force settled by the blockchain. This avoids GS alltogether and good debt stays in the system.
This is also an option if our only goal is to avoid undercollateralization (btw technically 1% is not guaranteed that all undercollateralized positions will be settled, also technically we can increase the percentage when it's the case).

IMHO this option does more harm than good, because we have other goals which IMHO are more important, one of them is to give debt asset holders as much freedom as possible to decide by themselves, because we assume they're risk haters. On the other hand, debt position holders are risk lovers, so it's fine to have more aggressive rules on them, e.g. margin calls and force settlements. Please see discussions in https://github.com/bitshares/bsips/issues/179.

Also it would be a crisis for businesses built on top of BitAssets because they have no easy way to convert the collateral back to BitAsset when collateral price bounced back up. Imagine that if someone deposit bitUSD to an exchange but later can only withdraw some BTS and some BitUSD. In short, don't remove coins from users' balance, otherwise users will leave.

Alternatively, perhaps we should give asset holders an option on whether *automatically* settle a part of their holdings when feed price is closed to GS price, which may slightly improve the situation, but is not that hard.

bitAsset is not a currency or not even a coin, it's a contract between 2 parties that agree that particular asset will have a value equivalent to that asset in real life and will be backed by BTS. If anyone (exchanges) are running their business on that asset they should be able to adjust their holding (and users) to bitAsset+BTS. They already do it for some forks, air drops etc. This would not be any different and would always avoid GS. And I think that's the goal to have liquid market where the bitAsset is equal to it's RL counterpart ie: 1 bitUSD = 1 USD
Auto settling bad debt on a bit asset holder would be somewhat like force settlement on the debt holder. A risk on both sides.


Offline bitcrab

  • Committee member
  • Hero Member
  • *
  • Posts: 1499
    • View Profile
  • BitShares: bitcrab
  • GitHub: bitcrab
Re: New BSIP:GS protection via core code
« Reply #39 on: July 21, 2019, 07:05:08 am »
The purpose of implementing GS protection into core is, no matter witnesses feed what price, force settlements and margin calls will execute at the protected price. So it's clearer for traders to know what's the feed price (produced by witnesses) and what's the settlement price (decided by the blockchain). Actually it's a UI issue, so we don't need to argue here. UI can even should a third price: what will be the settlement price and margin call price if GS protection is disabled.

On the other hand, if GS protection is implemented into core, witnesses will no longer need to and should not publish adjusted price feeds which was criticized as price manipulation.

IMHO, whether the blockchain should take over the bad debt is the main thing to debate.

yes, in my view one principle should always be followed either bad debt appears or not:

borrowing, margin call, force settlement should always refer to the same price.

so it seems necessary to introduce one new parameter which is called settlement price as margin trading reference to replace feed price.

settlement price = max(feed price, GS Protection Price)

feed price should always be the real time market price.

borrowing, margin call, force settlement will always refer to settlement price, CR is calculated based on settlement price, margin call order price = settlement price/MSSR, force settlement price = settlement price*(1+force settlement offset)

normally, settlement price = feed price.

while bad debt appear, settlement price will be GS Protection Price, in financial sense it means, the system recognize and accept the fact that the smartcoin is in devaluation.

however, margin call order filling, debt position adjustment, force settlement can all reduce GS Protection Price and lessen the devaluation, until finally bad debt disappear.

and GS will be disabled for ever.

and I feel a new name is needed to replace "GS protection", maybe "active devaluation of smartcoin".

blockchain taking over bad debt have no essential help, as it can do nothing but wait for the BTS price to go up.

updated BSIP: https://github.com/bitshares/bsips/issues/179
« Last Edit: July 21, 2019, 02:21:51 pm by bitcrab »

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 3667
    • View Profile
    • Steemit Blog
  • BitShares: abit
  • GitHub: abitmore
Re: New BSIP:GS protection via core code
« Reply #40 on: July 21, 2019, 07:09:43 pm »
blockchain taking over bad debt have no essential help, as it can do nothing but wait for the BTS price to go up.
So just talk about this.

Assuming we never GS.

If the blockchain takes over bad debt positions,
1. debt position holders (borrowers) will have a bit more pressure to keep their CR a bit higher, otherwise they'll always lose the whole collateral when devaluation occurs;
2. if we fund the pool somehow, E.G. putting a part of market fee into the pool, CR of the pool can be higher than the other debt positions, so "wait for price to go up" is not the only way

If blockchain don't take over bad debt positions,
1. the bad debt positions can lose their collateral if someone buy into margin calls or force-settle, but if nobody buys into margin calls nor force-settle, they will keep the collateral;
2. the borrowers have the option to increase CR of their positions (although perhaps they won't do)

Think about how game theory works.

By the way, just saying, there are a lot of voices from the community which want to "punish the bad borrowers", one way to punish is taking over the debt positions when some conditions are met.
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 3667
    • View Profile
    • Steemit Blog
  • BitShares: abit
  • GitHub: abitmore
Re: New BSIP:GS protection via core code
« Reply #41 on: July 21, 2019, 08:12:57 pm »
bitSILVER, bitGOLD and bitBTC always had 10% MSSR and never applied BSIP42 but GSed long ago. This fact doesn't support the assumption that a higher MSSR will prevent undercollateralization from happening.
It takes more than MSSR. At least a combo of MSSR and MCR. But The weaker the bitAsset the higher they need to be; as en example bitCNY can have lower settings and still function properly. If you don't have liquid market on butAssets GS will happen no matter the MSSR and MCR if the right conditions are met.
You got the point: liquidity.

You think why bitCNY got better liquidity?

How to attract people to provide liquidity?
The answer:
1. find more people
2. give people what they want.

Who are them?
The borrowers (bitAsset creators) and the holders. Need a balance between the 2 parties.

What's the most important thing do they want?
Actually this is a hard question.
In Economics and project management practices, there are terms "effective demand" and "ineffective demand". People may keep saying they want something, but actually they want something else which they didn't say but is more important. One solution is to list all the demands/requirements, and sort them by priority, see discussions in https://github.com/bitshares/bsips/issues/179.


Quote

If we can find a proper way to incentivize the involved parties, we'll solve the problem.
No matter the incentive, there will be always someone (maybe someone that no longer pays attention to his debt) that will let it ride. If we don't come up with a way to automatically close the debt the GS will always be there.
Actually, "someone that no longer pays attention to his debt" will be margin called or force-settled if there are other people willing to and have the funds and desire to provide liquidity. Theoretically there are ways to avoid undercollateralization/devaluation, E.G. have a strong fund to keep BTS price stable (some people may say it's price manipulation, but if it works and benefits, who cares what it is).

Quote
Quote
I will give everyone another option to think about on the GS issue:
When collateral reaches 1:1 simply force settle that debt based on percentages. If there are 1000 smart coins issued, 10 is being force settled; each holder would see 1% of their smart coin force settled by the blockchain. This avoids GS alltogether and good debt stays in the system.
This is also an option if our only goal is to avoid undercollateralization (btw technically 1% is not guaranteed that all undercollateralized positions will be settled, also technically we can increase the percentage when it's the case).

IMHO this option does more harm than good, because we have other goals which IMHO are more important, one of them is to give debt asset holders as much freedom as possible to decide by themselves, because we assume they're risk haters. On the other hand, debt position holders are risk lovers, so it's fine to have more aggressive rules on them, e.g. margin calls and force settlements. Please see discussions in https://github.com/bitshares/bsips/issues/179.

Also it would be a crisis for businesses built on top of BitAssets because they have no easy way to convert the collateral back to BitAsset when collateral price bounced back up. Imagine that if someone deposit bitUSD to an exchange but later can only withdraw some BTS and some BitUSD. In short, don't remove coins from users' balance, otherwise users will leave.

Alternatively, perhaps we should give asset holders an option on whether *automatically* settle a part of their holdings when feed price is closed to GS price, which may slightly improve the situation, but is not that hard.

bitAsset is not a currency or not even a coin, it's a contract between 2 parties that agree that particular asset will have a value equivalent to that asset in real life and will be backed by BTS. If anyone (exchanges) are running their business on that asset they should be able to adjust their holding (and users) to bitAsset+BTS. They already do it for some forks, air drops etc. This would not be any different and would always avoid GS. And I think that's the goal to have liquid market where the bitAsset is equal to it's RL counterpart ie: 1 bitUSD = 1 USD
Auto settling bad debt on a bit asset holder would be somewhat like force settlement on the debt holder. A risk on both sides.
You think the most important thing is to avoid undercollateralization/devaluation, which is even more important than the freedom of asset holders.

I have to disagree with this. I think freedom is more important.

People hold 1 bitUSD, it will always be 1 bitUSD. Nobody will forcefully get some bitUSD from them although give back some BTS to them. This is the freedom.
As a result, the 1 bitUSD they hold can devalue under certain circumstances.
Actually, currently GS is working in this way. GS protection is in this way too.
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Offline Digital Lucifer

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 277
  • 13 years of being Slackware abUser
    • View Profile
    • BitShares 3.0
  • BitShares: dls.cipher
  • GitHub: dls-cipher
Re: New BSIP:GS protection via core code
« Reply #42 on: July 21, 2019, 08:43:05 pm »
Agree on that "manipulation" part from Abit.

And lets clear it up once and for all.

We have "bad debt" situation. In real life, if i wanna lend someone cash he needs to provide security (car, house, depends on the cash). If he fails to return the debt per agreement, he loses his security and debt is "cleared".

Why it's such a problem here to recreate same event ?

Simplified definition by me:
MANIPULATION would be something done for personal/selfish/unfair interests of individual or certain group, while here it would be MANAGEMENT for the safety of entire population.

You can all google up both terms for better and more refined definition, but facts are facts.

Lets do simple test:

- Block producers are being manipulated in order to keep their job ->> Block producers are being managed in order to keep their job.
- CNY market is manipulated by Chinese. ->> CNY market is managed by Chinese.
- Price feeds are manipulated by BTS Holders through block producers. ->> Price feeds are managed through block producers by BTS Holders.

Back to point from Abit:

IF IT DOES THE JOB AND SAVE THE DAY WHO THE F**K CARES WHAT TERM YOU WILL USE AS EXCUSE FOR THIS OR ANYTHING ELSE ?

This is not science anymore, it's turning into bullshit and endless drama.

Bad debts are the problem, core needs mechanics to deal with them more efficiently.

Remove the bad debts and we will get liquidity back to bitUSD as well.

End of discussion from my perspective.

Chee®s
« Last Edit: July 21, 2019, 08:45:25 pm by Digital Lucifer »
Milos (DL) Preocanin
Owner and manager of bitshares.org through Consensus
Move Institute - RN: 2098555000
Murska Sobota, Slovenia, SI.

Offline bitcrab

  • Committee member
  • Hero Member
  • *
  • Posts: 1499
    • View Profile
  • BitShares: bitcrab
  • GitHub: bitcrab
Re: New BSIP:GS protection via core code
« Reply #43 on: July 22, 2019, 07:47:33 am »
blockchain taking over bad debt have no essential help, as it can do nothing but wait for the BTS price to go up.
So just talk about this.

Assuming we never GS.

If the blockchain takes over bad debt positions,
1. debt position holders (borrowers) will have a bit more pressure to keep their CR a bit higher, otherwise they'll always lose the whole collateral when devaluation occurs;
2. if we fund the pool somehow, E.G. putting a part of market fee into the pool, CR of the pool can be higher than the other debt positions, so "wait for price to go up" is not the only way

If blockchain don't take over bad debt positions,
1. the bad debt positions can lose their collateral if someone buy into margin calls or force-settle, but if nobody buys into margin calls nor force-settle, they will keep the collateral;
2. the borrowers have the option to increase CR of their positions (although perhaps they won't do)

Think about how game theory works.

By the way, just saying, there are a lot of voices from the community which want to "punish the bad borrowers", one way to punish is taking over the debt positions when some conditions are met.

in most of the cases, whether the bad debt position owner want to handle bad debt depend on whether they are able to, not whether they will, in extreme bear market, almost everyone are in serious shortage of fund, how can you demand them to handle each bad debt?

I don't think the "punish the bad borrower" way will work, it can only lead to less borrowing. and, should borrower be responsible for going down of BTS price?

there also have been a lot of voices from the community for higher MSSR, but now, don't you agree that MSSR should be low enough?

whether the bad debt position are kept by borrower or system is not a problem, market fee can be used to fund the pool, it can also be used to force settle the bad debt positions.

there's one important reason why I prefer the "active smartcoin devaluation" way, it minimize the impact to the market, as we have seen in several days ago, bad debt appeared in USD market but the GS protection worked, the common users were even not aware that the bad debt had appeared, if bad debt lead to debt position taking over, possibly it will have much bigger market impact.

we have seen many facts that the risk itself is not serious, however the way to handle the risk lead to much bigger risk, 10% MSSR is one example, GS is another example, we need to try to avoid this in bad debt handling.

« Last Edit: July 23, 2019, 06:23:06 am by bitcrab »

Offline bitcrab

  • Committee member
  • Hero Member
  • *
  • Posts: 1499
    • View Profile
  • BitShares: bitcrab
  • GitHub: bitcrab
Re: New BSIP:GS protection via core code
« Reply #44 on: July 30, 2019, 06:49:52 am »
the draft BSIP is updated. https://github.com/bitshares/bsips/issues/179

please comment if you have any further thoughts.

if no big update is needed, I hope the BSIP can be soon finished and put on poll voting.

« Last Edit: July 30, 2019, 07:08:39 am by bitcrab »

Offline bitProfessor

Re: New BSIP:GS protection via core code
« Reply #45 on: July 30, 2019, 10:13:04 am »
It's time to act.

Offline Peryn

  • Newbie
  • *
  • Posts: 9
    • View Profile
Re: New BSIP:GS protection via core code
« Reply #46 on: July 31, 2019, 08:30:02 am »
And you are friends, no matter how you sit down, All the musicians are not fit.
I do not see the insurance market for debts in Bitshares.

Offline Sapiens

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: New BSIP:GS protection via core code
« Reply #47 on: August 05, 2019, 08:05:05 pm »
Hey guys, I wrote the following analysis regarding the issue. GS is only the manifestation of some more profound structural flaws in the Bitshares protocol. Given all that this community has build during the last years, I am fairly convinced that correcting this flaws will take us to the next level.

It's a pretty long read but, nonetheless worth the time.

Quote
Abstract


Eliminating the negative impact of Global Settlement events (GS) is certainly a priority for the Bitshares ecosystem. Currently, GS is widely regarded by the Bitshares community as a natural consequence of harsh market conditions, bad debtors and poor marketing strategy. Contrary to this perspective, I maintain here, that GS might be the consequence of some other more fundamental factors in the dynamics of the whole Bitshares protocol. I postulate that if these factors are modified, the probability of a GS or a similar event is drastically reduced almost immediately and may even tend to disappear in the long term. These factors include, but may not be limited to, two feedback loops currently present in the dynamics of workers’ financing and Margin calls. This work attempts to elucidate the architectural nature of the problem, out of which GS is only an inevitable result. Also, a new mechanism is proposed.   

Here is the link:

https://steemit.com/bitshares/@aguerrido/feedback-loops-and-analysis-of-bitshares-architecture-in-relation-to-smart-assets-sustainability
« Last Edit: August 05, 2019, 08:11:09 pm by Sapiens »

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 3667
    • View Profile
    • Steemit Blog
  • BitShares: abit
  • GitHub: abitmore
Re: New BSIP:GS protection via core code
« Reply #48 on: August 06, 2019, 10:31:48 pm »
Can I quote your messages in Telegram group to this post? E.G.

* "Suppose that A borrows BitUSD ..."

* "On a similar note, if a wallet ..."

I'm glad that you noticed the issues.


UPDATE:
Here are the messages:

"Suppose that A borrows BitUSD from the DEX and uses it to buy BitCNY from B. An additional player, C, decides to sell a bunch of his BTS to B in exchange for that BitUSD and hold it to avoid volatility. C's sell brings BTS price down and makes A fall into a margin call. Suppose also that there are no more players in this market. It seems to me that, even if A wanted, he could not close his position because all the existing BitUSD is in the power of C, which is decided to hold it. So, in order to prevent the call, the only alternative for A is to sell his CNY for BTS and increase his collateral, being left with less available money than what he started with, crippled, unknowingly, by C. A has himself labeled as a bad debtor without any possible solution. "

"On a similar note, if a wallet with lot's of BitUSD becomes inaccessible due to lost keys or his owner having a heart attack, because that BitUSD is backed by someone's collateral, someone's debt becomes impossible to pay, and his collateral impossible to recover. "
« Last Edit: August 10, 2019, 04:19:32 pm by abit »
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Offline Sapiens

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: New BSIP:GS protection via core code
« Reply #49 on: August 09, 2019, 11:57:12 pm »

I just saw this!

Sure man, this is al open source! ;D ;D ;D

BTW, I had to check about 10 reCAPCHATs to be able to post this. Quite suspicious.