去杠杆化

第一步:Alice仓位的总价值变为负值,应用程序将其与Bob的仓位相匹配

‌让我们看下面的例子。 Alice的仓位为-1 BTC和+29,000 USDC。 新的Oracle价格(中介价格)变动将BTC的价格从28,800 USDC更改为29,400 USDC。 这导致Alice的仓位出现负结余。
在这种情况下,如果Bob的BTC数量带有相反的符号,则允许应用程序将Alice的仓位与Bob的仓位进行匹配。 在我们的示例中,如果Bob的BTC数量为正,则可以将其仓位与Alice的仓位进行匹配。 他可以提供整个BTC或仅提供其中的一部分。
‌设定匹配后,应用程序将以下参数发送到StarkEx:
  • Alice和Bob的vaultId(保险库ID)
  • 已转移的合成资产的assetId
  • 已转移的合成资产金额
  • 已转移的抵押资产金额
  • 交易的方向(即Alice是合成资产的购买方还是出售方)

‌第二步:StarkEx检验请求的有效性

StarkEx检验以下约束条件:
● Alice的仓位确实需要资金杠杆,这意味着,根据最新价格,她的余额为负。
● Alice和Bob的BTC正负号相反。
● 由于交易,Alice和Bob的合成资产总额变小,并且没有改变其正负号。
● 对于Bob而言,(帐户总值/总维护保证金要求的比率)Total Account Value / Total Maintenance Margin Requirement要么大于1,要么由于交易而有所提高。
● 在Alice和Bob之间转移的金额保留了Alice的Total Account Value / Total Maintenance Margin Requirement(帐户总值/维护保证金总额的比率)
最后一个条件的基本原理是保证系统中用户的公平性。 例如,在上述仓位(Alice拥有-1BTC,+ 29000USDC),我们可以以29,000USDC的价格给Alice 1BTC或以2900USDC换取 0.1BTC,但是我们不能以5000USDC的价格给Alice 0.1BTC(这对Alice不公平)或以1000USDC的价格给Alice 0.1BTC(这对Bob不公平)。

第三步:批处理中的去杠杆化

如果去杠杆化请求有效,则将其与有效性证明一起打包到批处理中,待提交到链上。有关链上状态更新的完整详细信息,请参见此处