PEPE0.00 2.45%
SUI4.33 -3.73%
TON5.46 1.73%
TRX0.25 0.87%
DOGE0.32 -0.69%
XRP2.20 -2.18%
SOL184.91 0.00%
BNB670.74 0.98%
ETH3329.48 -1.03%
BTC95810.63 -0.90%
PEPE0.00 2.45%
SUI4.33 -3.73%
TON5.46 1.73%
TRX0.25 0.87%
DOGE0.32 -0.69%
XRP2.20 -2.18%
SOL184.91 0.00%
BNB670.74 0.98%
ETH3329.48 -1.03%
BTC95810.63 -0.90%
ETH Gas6.88 Gwei
贪婪 73
Curve 稳定币设计白皮书的中英文参照版本,加入一些辅助理解的中文注释,也修正了一些原版的拼写错误,供大家参考学习。
这个稳定币的设计中有几个概念是最重要的:借贷-清算AMM算法(LLAMMA),PegKeeper(稳定保持机制),货币政策。但主要的设计点是在LLAMMA:用一个特殊用途的AMM代替传统超额抵押借贷的清算流程。
图2:损失对相对于清算阈值的价格变动的依赖性。观察的时间窗口为3天。
在这种设计中,如果有人用抵押品借款,即使是在清算阈值,抵押品的价格下跌后反弹--也不会发生明显的损失。
例如,根据自2017年9月以来使用ETH/USD的历史数据进行的模拟,如果放着CDP无人看管3天,在此期间,价格下跌至低于清算价格10%的情况发生的话, 也只有1%的抵押品被损失。
稳定币设计的核心思想是 Lending-Liquidating AMM 算法。这个想法是,它在抵押品(例如ETH)和稳定币(这里姑且称之为USD)之间进行转换。如果抵押品的价格很高--用户的存款都是ETH,但当价格降低时,它就会转换为USD稳定币。这与传统的AMM设计有很大不同,传统的AMM设计是将USD稳定币放在上面(AMM曲线上半截),ETH放在下面(AMM曲线下半截)。
下面的描述并不能作为一个完全自洽的严谨证明。很多东西(尤其是不变量)都是从各种维度考虑得到的。要有一个完整的数学描述,可能需要更多的研究,然而下面的描述被认为足以支持在智能合约中实施。
这只有通过外部预言机喂价才能实现。简而言之,如果一个人做了一个典型的AMM(例如,粘合曲线是一块双曲线),并将其 "中心价格 "从(例如)下降到上升,代币将从(例如)USD“绝热”地转换为ETH,同时在过程中提供两种方式的流动性(图3)。这有点类似于量子物理学中的“回避交叉”(也称为Landau-Zener跃迁)(虽然只是一个概念:对该过程的数学描述可能非常不同)。
流动性集中的范围在这里被称为“波段”(Band),在恒定的po波段有从pcd到pcu的流动性。我们寻求pcd(po)和pcu(po)只作为po的函数,函数比线性更陡峭,因此,增长速度比po快(图4)。此外,让我们把价格p↓和p↑定义为p↓(po)=po和p↑(po)=po的价格,定义为绝热极限中的波段两端(例如p=po)。
图3:"具有外部价格来源的AMM "的行为。外部价格pcenter决定了围绕流动性形成的一个价格。AMM支持流动性集中在价格pcd到pcu之间,pcd<pcenter<pcu。当当前价格p超出pcd和pcu之间的范围时,AMM要么完全进入稳定币(当在pcu时),要么完全进入抵押品(当在pcd时)。当pcd≤p≤pcu时,AMM价格等于当前价格p。
图4:我们寻找的 AMM。我们试图构建一个 AMM,其中pcd和pcu是po的函数,当po增长时,它们增长得更快。在这种情况下,当ETH昂贵时,这个AMM将全部转换为ETH,而当ETH便宜时,全部转换为USD。
我们从一些波段开始,与Uniswap3类似,通过增加“虚拟余额”,保留了粘合曲线的双曲形状。比方说,USD的数量是x,ETH的数量是y,因此 "增强的 "常数-产品不变性将是:
我们也可以表示x0≡x+f和y0≡y+g,这样不变式就可以写成熟悉的I=x0 y0。然而,f和g并不是保持不变的:它们随着外部预言机价格的变化而变化(不变量I也是如此,所以它只是在预言机价格po不变时的不变量)。在给定的po下,f和g在整个波段内是不变的。如前所述,我们把p↑表示为波段的顶部价格,p↓表示为波段的底部价格。我们对A(衡量流动性集中度的指标)的定义是这样的:
我们正在寻找的属性是这样的:更高的价格po应该导致在相同的余额下更高的价格,因此,当前的市场价格(平均来说,将跟随po)低于这个价格,并且波段将朝着全部为ETH的方向交易(而另一个方向也是如此)。可以找到很多方法来满足,但我们需要这样一个:
其中y0是一个与p0相关的衡量当前波段存款的指标,以ETH为单位,其定义是:当当前价格p、p↑和po相互相等时,则y=y0,x=0(见图4上po=p↑的点)。那么,如果我们把那一刻的y替换掉:
价格等于dx0 /dy0,那么对于一个恒定的产品不变量来说,就是:
我们可以用x=0或y=0来代替po=p↑或po=p↓的情况,以验证上述公式是自洽的。
通常对于一个波段,我们知道p↑,因此也知道p↓、po、常数A,还有x和y(波段中的当前存款)。为了计算剩下的一切,我们需要找到yo。它可以通过解决不变量的二次方程来找到:
这就变成了针对yo的二次方程:
在智能合约中,我们在get_y0函数中解决这个二次方程。
在预言机价格po保持不变的情况下,AMM以正常的方式工作,例如,上涨时卖出ETH/下跌时买入ETH。通过简单地将x=0替换为 "当前下跌 "的价格pcd或y=0替换为 "当前上涨 "的价格pcu值分别代入不变量方程,就可以说明在po的当前值和p↑的当前值下的AMM价格是:
另一个重要的实际问题是:如果价格的变化如此缓慢,以至于预言机价格po完全能够”绝热地”(在一个波段内)跟随它,那么在给定当前值x和y,并且我们也从p=po开始的情况下,这个波段最终会得到多少y↑的ETH(如果价格上涨)或x↓的USD(如果价格下跌)。虽然这不是一个立即可以解决的数学问题,但数字计算显示了一个相当简单的答案:
在评估借贷的安全性以及AMM的潜在损失时,我们将使用这些结果。
现在我们有了对一个波段的描述。我们把所有的价格空间分成若干波段,这些波段的价格p↓和p↑相互接触,因此,如果我们设定一个基础价格pbase,并有一个波段号n:
对于任何一个波段,可以证明公式7和公式5的解都可以得到:
这表明波段之间没有空隙。
交易发生的同时保留了公式1的不变性,然而,当价格为po时,AMM内部的当前价格会发生变化:当po下降时,它就会上升,反之亦然(立方系数),从公式8可以看出。
稳定币是一种 CDP,人们以不稳定的抵押品(加密货币,例如ETH)来借入稳定币。抵押品被加载到 LLAMMA 的价格范围内(这样的波段),如果抵押品的价格下降相对缓慢,ETH被转换成足够的稳定币来覆盖关闭 CDP(这可以通过自我清算发生,或者通过外部清算,如果抵押率太接近危险的限制,或者根本不关闭,同时等待价格反弹)。
当用户存入抵押品并借入一个稳定币时,LLAMMA 智能合约会计算出抵押品所在的波段。当抵押品的价格变化时,它开始被转换为稳定币。当系统处于 "水下 "时,用户已经有足够的USD来支付贷款。可以获得的稳定币数量可以通过一个公共的get_x_down方法来计算。如果它给出的数值过于接近清算阈值--外部清算人可以参与进来(通常不应该在抵押品价格下跌和横盘后的几天甚至几周内发生,甚至如果抵押品价格从未上涨或相对较快地回升,则永远不会发生)。当价格远高于 "清算 "时,一个健康的方法会返回 get_x_down 与债务的比率,再加上抵押品的价值增加。
当一个稳定币收取利息时,这应该反映在 AMM 中。也要反映出来。这是通过调整价格的所有网格来实现的。因此,当一个稳定币 收取利率r时,AMM中的所有价格格都会向上移动,与 相同的利率r,这是通过一个基础价格乘数完成的。所以,只要收取的利率是正的,乘数会随着时间的推移而上升。
当我们计算get_x_down或get_y_up时,我们首先要找的是如果当前价格移动到当前价格po的稳定币和抵押品x∗和y∗的数量。然后我们看一下,如果po绝热地变化到最低区间的最低价格,或最高区间的最高价格,我们分别得到多少稳定币或抵押品。这样,我们就可以得到一个衡量我们将获得多少稳定币的标准,它不依赖于当前的瞬时价格,这对夹层攻击的阻力很重要。
需要指出的是,LLAMMA使用定义为ETH/USD价格的po作为价格来源,我们的稳定币可以在挂钩之下(ps<1)或超过挂钩(ps>1)进行交易。如果ps<1,那么LLAMMA中的价格就是p>po。
在绝热近似中,p=po/ps,所有抵押品<>稳定币的转换将发生在较高的预言机价格上/就像预言机价格较低且等于:
在这个价格下,转换时获得的稳定币的数量要高出1/ps的系数(如果ps<1)。
在长时间内,ps>1是不太理想的,为此我们将使用稳定器(见下一章节)。
当ps>1时(例如,由于对稳定币的需求增加),就会有锚定的储备,由稳定币和可赎回的参考币或LP代币之间的不对称存款到stableswap Curve池形成。 一旦ps>1,PegKeeper合约被允许铸造无抵押的稳定币,并且只将其单边存入 stableswap 池,这样做之后的最终价格仍然不低于1。当ps<1时,PegKeeper 被允许提取(不对称地)并烧毁稳定币。
这些行为导致价格ps高于1时迅速贬值,低于1时升值,因为不对称的存款和提款改变了价格。即使这部分“铸币”是没有抵押的,但稳定币似乎是由稳定币池中的流动性隐性抵押支持的。整个铸币/燃烧周期在最后似乎是有利可图的,同时提供了稳定性。
让我们把铸造给稳定器(债务)的稳定币数量表示为dst,把计算在stableswap AMM get_dx中购买稳定币所需的可赎回USD数量的函数表示为fdx()。然后,为了保持“储备”不是非常大,我们通过改变借款r来使用 "缓慢 "的稳定机制。
其中h是ps的变化,速率r的变化为2倍(ps越高,r越低)。稳定器债务dst的数量将根据ps=1 r0的速率在不同的值上平衡。因此,我们可以(而不是手动设置)在dst/supply大于某个目标数字(例如5%)时减少r0(从而激励借款人借入并抛出稳定币,降低其价格并迫使系统燃烧dst),或者在它较低时增加(从而激励借款人归还贷款并推动ps上升,迫使系统增加债务dst和稳定器存款)。
希望所提出的机制能够解决为制造稳定币和借贷目的而进行清算的风险性。
此外,稳定器和自动货币政策机制可以帮助保持价格锚定,而不需要保持过大的PSM(Peg Stability Module 锚定稳定性模块)。
欢迎加入深潮TechFlow官方社群
2024.12.20
2024.12.20
2024.12.18
2024.12.16