Author Topic: 12月8日BSIP 18生效后,黑天鹅复活相关规则和操作说明  (Read 10372 times)

0 Members and 1 Guest are viewing this topic.

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4664
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
原来如此。
1105重钱包比老版本是好多了。reindex快 强行关闭关系也不大了。
不过最近重钱包节点连接有时候延时也显示200ms 400ms 最低的时候89ms样子
有时候会提示广播超时  老版本也出现过
不知道是不是和我宽带是移动的  内网ip有关系
新版轻钱包比较重,需要继续优化。
BitShares committee member: abit
BitShares witness: in.abit

Offline sudo

  • Hero Member
  • *****
  • Posts: 2255
    • View Profile
  • BitShares: ags
原来如此。
1105重钱包比老版本是好多了。reindex快 强行关闭关系也不大了。
不过最近重钱包节点连接有时候延时也显示200ms 400ms 最低的时候89ms样子
有时候会提示广播超时  老版本也出现过
不知道是不是和我宽带是移动的  内网ip有关系

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4664
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
3.4 复活前,黑天鹅资产的持有人(比如 GOLD 和 SILVER 等),可以按黑天鹅价发起实时强清,因为上面提到的 BUG 修复。

然而 GUI限制了吧 没有喂价 没法强清
12.8 分叉时间到之后,但是资产被复活之前,可以。

交易广播失败:
insufficient feeds: Cannot force settle with no price feed.
这个错误提示是见证人节点反馈的么?还是说连接的api反馈的呢。
轻钱包连接1105a重钱包节点直接广播,过了升级时间节点就没有这个限制了么。感觉很神奇。 不是GUI限制的。
是不是任意连接的api 或者自己的重钱包 收到轻钱包的清算需求反馈的呢?
api返回的。过了时间就不会再返回这个了。
BitShares committee member: abit
BitShares witness: in.abit

Offline sudo

  • Hero Member
  • *****
  • Posts: 2255
    • View Profile
  • BitShares: ags
3.4 复活前,黑天鹅资产的持有人(比如 GOLD 和 SILVER 等),可以按黑天鹅价发起实时强清,因为上面提到的 BUG 修复。

然而 GUI限制了吧 没有喂价 没法强清
12.8 分叉时间到之后,但是资产被复活之前,可以。

交易广播失败:
insufficient feeds: Cannot force settle with no price feed.
这个错误提示是见证人节点反馈的么?还是说连接的api反馈的呢。
轻钱包连接1105a重钱包节点直接广播,过了升级时间节点就没有这个限制了么。感觉很神奇。 不是GUI限制的。
是不是任意连接的api 或者自己的重钱包 收到轻钱包的清算需求反馈的呢?


Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4664
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
2.2 “价格为抵押率1倍以上的买单” 是不是可以这样理解“价格为爆仓喂价0.9倍以上的买单”?

比如,抵押率最低的债仓,抵押了 100 BTS,借款 100 CNY。

* 当喂价低于 1.75 CNY/BTS 时,抵押率为低于  (100BTS * 1.75 CNY/BTS)/100CNY = 1.75,这个单子爆仓,挂单卖价为 喂价/110% ,比如喂价1.74 时挂单价是 1.74/1.1 = 1.58 CNY/BTS 。也就是说这个单子爆仓价是 1.75 。

* 当喂价高于1.1CNY/BTS时,比如1.1011 CNY/BTS 时,抵押率为 (100BTS*1.1011CNY/BTS)/100CNY = 1.1011,这个单子仍然处于爆仓状态,挂单卖价为 1.1011/1.1 = 1.001 CNY/BTS ,按这个卖价,如果成交100CNY,债仓会付出99.9BTS,可以平仓,剩余0.1BTS归还债仓所有人,所以此时抵押仍然足够。

* 当喂价低于1.1 CNY/BTS 时,比如1.09 CNY/BTS,抵押率为 (100BTS*1.09CNY/BTS)/100CNY=1.09,这个单子仍然处于爆仓状态,挂单卖价为 1.09/1.1 = 0.99 CNY/BTS ,如果这时没有1CNY/BTS的买单(对应100CNY/100BTS=1倍抵押率),如果按爆仓挂单卖价成交100CNY,债仓需要付出101BTS,但是抵押只有100BTS,所以不够平仓,资不抵债,所以系统不会将这笔爆仓单挂出,而是触发黑天鹅事件,执行全局清算。

Quote

2.3 黑天鹅价是不是约小于等于0.6倍爆仓喂价?
      假如此时市场上黑天鹅价格附近都没有买单并且无人进行强清,这种极端情况会不会发生?此时平仓的资金来自何处(是不是来自系统预支?)?
黑天鹅价为 (爆仓价/1.75)*1.1=爆仓价*(1.1/1.75)=爆仓价*0.629

没有买单并且没人强清,就会触发黑天鹅事件,触发全局清算,但此时抵押仍然是足够的,不需要系统预支。

继续上面的例子,
比如最低抵押率的债仓是账号A所有,抵押 100BTS借款100CNY;黑天鹅价是1.1CNY/BTS;
还有一个债仓是账户B所有,抵押300BTS借款200CNY。
为方便举例,假设不存在其他债仓。
假设借出的300CNY分别在C、D、E手里,金额分别是50,100,150。

全局清算时,系统产生一个清算抵押品池,
A的债仓按天鹅价计算,借款100CNY价值100/1.1=90.9BTS,所以90.9BTS扣除到清算池,剩余100-90.9=9.1BTS归还给A,A的债仓关闭;此时清算池抵押品总计90.9BTS,对应A的借款100CNY。
B的债仓也会被关闭,借款200CNY价值200/1.1=181.8BTS,所以181.8BTS扣除到清算池,剩余300-181.8BTS=118.2归还给B;此时清算池抵押品总计272.7BTS,对应A+B的借款总计300CNY。

这时,C和D和E可以选择强清,用手里的CNY从清算池换取BTS,兑换汇率就是固定的黑天鹅价1.1CNY/BTS。
这种强清是实时执行,没有24小时延迟。

Quote
2.31 黑天鹅事件触发后,黑天鹅式强清发起是不是已经没有时间限制?

3.2.2
先决条件:发布一次新的喂价后,如果新的中间价与喂价(此喂价指从何时开始的喂价?)前不同:
主贴已经说了,必须“发布喂价的见证人达到 7 个后,喂价生效(取7个喂价的中间值)”。

“发布一次新的喂价后,如果新的中间价与(发布)喂价前不同”这句话应该好理解吧?发布喂价是见证人发起的一个动作,比较的是这个动作前的中间价和动作后的中间价。

如果已经有5个见证人发布了喂价,那么第6个见证人发布喂价前和发布后,价格都不生效,不会触发复活计算。
如果已经有6个见证人发布了喂价,那么第7个见证人发布喂价前,没有有效价格,发布后,产生有效价格,认为不同,就会触发后面的复活计算。
如果已经有7个见证人发布了喂价,比如中间价是 1CNY/BTS,第8个见证人发布价格时,或者7个见证人中的一个更新喂价时,如果算出来中间价还是1CNY/BTS,那么认为发布前和发布后中间价相同,就不触发后面的复活计算。如果新的中间价不是1CNY/BTS,就会触发后面的复活计算。


Quote

           清算池负债=零,此时是否是清算池抵押品已被买单买走或强清清走?欠款已由两者还完?

是的,此时清算池已经被强清完,没有抵押品也没有负债。但是,清算池是不能用买单买的,只能强清。

Quote
           清算池的抵押率已经超过 1.75 倍  此项发生的条件是不是 “黑天鹅喂价大于约1.75倍黑天鹅价”?
抵押率=喂价*抵押品数量/负债数量=喂价/黑天鹅价,抵押率超过 1.75 倍就等于是说喂价超过黑天鹅价的1.75倍。

比如发生黑天鹅时,黑天鹅价是1.1CNY/BTS,清算池中有272.7BTS,对应300CNY负债。

12月8号分叉后,如果7个见证人喂价中间价超过 1.1*1.75=1.925,则会自动复活。


Quote

           资产以这种方式复活时,如果清算池负债非 0(资产复活的其中一项为清算池负债=零,所以此种情况是否为清算池的抵押率超过1.75倍?也就是说清算池抵押率超过1.75倍之后,清算池抵押品归资产发行者所有,欠款由资产发行者承担.

“负债为0”与“超过1.75倍”抵押率是“或”关系。

如果负债已经是0,也就是说全部强清完了。那么,一旦有7个见证人开始喂价,资产就复活了。市场参与者可以重新开始抵押借款。

如果负债不是0,也就是说有人持有CNY一直没有强清,那么如果喂价达到1.75倍以上就会复活。

Quote
           复活之后划归资产发行者的抵押品怎么处理?投放市场?还是归入资金池?还是平掉之前系统在2.3处的预支款?)

谢谢
主贴已经说了,抵押品变成资产发行者的债仓。对GOLD来说,也就是变成理事会抵押了那么多BTS借了那么多GOLD。
这个债仓会正常参与被强清,喂价下降时也可能爆仓。
当然,理事会也可以用收到的手续费来平仓,或者增减抵押率。

BitShares committee member: abit
BitShares witness: in.abit

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4664
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
3.4 复活前,黑天鹅资产的持有人(比如 GOLD 和 SILVER 等),可以按黑天鹅价发起实时强清,因为上面提到的 BUG 修复。

然而 GUI限制了吧 没有喂价 没法强清
12.8 分叉时间到之后,但是资产被复活之前,可以。
BitShares committee member: abit
BitShares witness: in.abit

Offline sudo

  • Hero Member
  • *****
  • Posts: 2255
    • View Profile
  • BitShares: ags
3.4 复活前,黑天鹅资产的持有人(比如 GOLD 和 SILVER 等),可以按黑天鹅价发起实时强清,因为上面提到的 BUG 修复。

然而 GUI限制了吧 没有喂价 没法强清

binggo

  • Guest
2.2 “价格为抵押率1倍以上的买单” 是不是可以这样理解“价格为爆仓喂价0.9倍以上的买单”?

2.3 黑天鹅价是不是约小于等于0.6倍爆仓喂价?
      假如此时市场上黑天鹅价格附近都没有买单并且无人进行强清,这种极端情况会不会发生?此时平仓的资金来自何处(是不是来自系统预支?)?

2.31 黑天鹅事件触发后,黑天鹅式强清发起是不是已经没有时间限制?

3.2.2
先决条件:发布一次新的喂价后,如果新的中间价与喂价(此喂价指从何时开始的喂价?)前不同:

           清算池负债=零,此时是否是清算池抵押品已被买单买走或强清清走?欠款已由两者还完?

           清算池的抵押率已经超过 1.75 倍  此项发生的条件是不是 “黑天鹅喂价大于约1.75倍黑天鹅价”?

           资产以这种方式复活时,如果清算池负债非 0(资产复活的其中一项为清算池负债=零,所以此种情况是否为清算池的抵押率超过1.75倍?也就是说清算池抵押率超过1.75倍之后,清算池抵押品归资产发行者所有,欠款由资产发行者承担.
           复活之后划归资产发行者的抵押品怎么处理?投放市场?还是归入资金池?还是平掉之前系统在2.3处的预支款?)

谢谢
« Last Edit: December 04, 2017, 02:27:49 am by binggo »

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4664
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
BitShares committee member: abit
BitShares witness: in.abit

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4664
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
1. BSIP 18 的计划生效时间是北京时间 2017 年 12 月 8 号 UTC 时间 15:40 ,也就是北京时间 23:40


2. 关于黑天鹅事件的说明(注:以下说明中的数值均为资产参数,不同资产可能参数有区别)

2.1 借款人抵押借出资产时,按当时喂价,最低需要至少提供1.1倍抵押,保证不会直接触发黑天鹅事件。一般借款人会提供至少 1.75 倍抵押率,但这个不是强制要求。低于 1.75 倍的债仓,抵押品会被系统按“喂价/1.1”的价格挂单出售,也就是接近 0.9 倍喂价挂单出售,称为爆仓。(前面说的不强制要求 1.75 倍以上抵押率有个前提条件,就是出现的爆仓单必须当场成交,否则设置会失败)

2.2 当喂价下降,导致抵押最低的债仓抵押率不足 1.1 倍但高于1倍时,并且市场上没有价格为抵押率 1 倍以上的买单(买抵押品的单),并且市场上有价格满足【1倍抵押率>价格>喂价/1.1】的买单时,将触发黑天鹅事件,进行全局清算;如果有价格为抵押率 1 倍以上的买单,会照常和爆仓单撮合成交,撮合完后继续检查是否触发黑天鹅事件;如果没有“喂价/1.1”以上买单,也不会触发。

2.2.1 如果喂价下降,导致抵押最低的债仓抵押率不足 1 倍时,也会产生黑天鹅事件。

(注:当前版本里,上述2.2 和2.2.1的判断代码存在一个bug,实际上不是用抵押率最低的债仓进行判断,而用的是爆仓价最高的债仓进行判断,但因为部分爆仓后爆仓价不变的而抵押率会变高,所以爆仓价最低的债仓抵押率不一定最低,这会延缓黑天鹅事件发生,一般会延缓到排第一的爆仓单被吃完或者主动调整抵押后触发)

2.3 触发黑天鹅事件时,系统计算黑天鹅价,规则是:抵押率最低的债仓的抵押价(总负债/总抵押)和喂价进行比较,如果抵押率高于1,则按喂价作为黑天鹅价,否则以债仓抵押价作为黑天鹅价。所有债仓会被以黑天鹅价为平仓价强制平仓。对于抵押率较高的债仓,平仓时,多出的抵押品会退回抵押者。然后,所有剩余抵押品会归集至一个全局清算抵押品池。资产持有者可以按黑天鹅价,以强清的方式,从全局清算池购买抵押品(同时销毁用于购买抵押品的资产);与资产没有发生黑天鹅事件时不同,这种强清不需要等待 24 小时,而是即时执行。

2.3.1 在 BSIP 18 生效前,上述强清操作只能在 24 小时内发起,超过 24 小时就不能发起,这在 BSIP 18 提案里认为是个 BUG ,所以 BSIP 18 包含了对这个问题的修复。

2.4 触发黑天鹅事件后,资产不能再被借入,在 BSIP 18 生效前也不能再喂价。


3. BSIP 18 生效后,

3.1 任何人都可以对黑天鹅清算池进行竞价(提出购买申请),竞价申请会集中处理,后面有说明

3.1.1 竞价方式为:我愿意增加 X 数量的抵押品,承担清算池中 Y 数量的负债(同时获取清算池中 Y 对应的抵押品,按黑天鹅价计算,可以算出一个数值 Z )。

3.1.2 竞价单对应的 X 数量的抵押品会被锁定

3.1.3 每个账号只可以有一个有效竞价单,多次竞价会以最后一次竞价为准。可以修改抵押品,可以修改希望承担的负债数量,也可以取消竞价。降低抵押或者取消竞价时,对应数量的锁定抵押品会释放。

3.2 见证人(以及非见证人喂价资产的指定喂价人)需要对黑天鹅资产开始喂价。
  (以下以见证人喂价资产进行举例,非见证人喂价资产类同。)

3.2.1 当发布喂价的见证人达到 7 个后,喂价生效(取7个喂价的中间值),会开始复活流程,如下

3.2.2 发布一次新的喂价后,如果新的中间价与喂价前不同,且清算池负债为 0 或者清算池的抵押率已经超过 1.75 倍,则资产即时复活。
  资产以这种方式复活时,如果清算池负债非 0 ,则清算池的抵押品归资产发行者所有,欠款由资产发行者承担,成为资产发行者账户中一个新的债仓,同时取消所有竞价单。对于 GOLD 和 SILVER 等资产来说,发行者是理事会,也就是债仓转移到理事会账号。

3.2.3 如果发布喂价时,清算池抵押率不足 1.75 倍,则系统会在每个整点对竞价单进行统计(第一次统计时间是 12 月
 9 号北京时间 0:00 )。统计时,按竞价单愿意增加的抵押率(X/Y)排名,逐一累加,当累加到 Y 的数量达到清算池总负债时,如果当前竞价单的有效抵押率 (X+Z)/Y 不低于 1.75 倍喂价,则资产复活。
  资产以这种方式复活时,上述排名靠前的、检查过的竞价单,会加上清算池中获取的抵押品/债务一起,成为申请人的债仓。排名靠后没被检查到的竞价单会被取消。

3.3 复活后,资产恢复正常,可以抵押借出,会爆仓,可以延时 24 小时清算,等等。

3.4 复活前,黑天鹅资产的持有人(比如 GOLD 和 SILVER 等),可以按黑天鹅价发起实时强清,因为上面提到的 BUG 修复。

4. 竞价命令(在 cli_wallet 里执行)

Code: [Select]
bid_collateral [账号] [负债金额] [负债币种] [增加的抵押品金额] [是否广播]

比如,用户 abit 愿意增加 10 BTS 抵押,获取 1 GOLD 负债,则命令为:

Code: [Select]
bid_collateral abit 1 GOLD 10 true

比如,修改竞价,增加 20 BTS 抵押,获取 1.5 GOLD 负债,则命令为:

Code: [Select]
bid_collateral abit 1.5 GOLD 20 true

比如,取消竞价,则命令为:

Code: [Select]
bid_collateral abit 0 GOLD 0 true


« Last Edit: February 08, 2018, 04:14:59 am by abit »
BitShares committee member: abit
BitShares witness: in.abit