如何设计一个最简单的去中心化稳定币?_稳定币:稳定币USDT

本文作者JacobEliosoff为加密货币基金CalibratedMarkets的管理负责人,CalibratedMarkets是TreviDigitalAssetsFund的GP,该基金研究比特币和相关加密货币,并进行长期投资。

Calibrated由JacobEliosoff进行管理,JacobEliosoff是一位计算机程序员,自2013年秋季以来一直从事该基金的工作。

文章经白计划Yaoyao编译整理,内容有所删减。

一段时间以来,这个问题一直萦绕在我的脑海中。直到上周,受到MakerDAO和Uniswap等项目的启发,我茅塞顿开,在这篇文章中,我将回顾以下部分:

1.计划的稳定币设计,这里称为USM(“极简美元”);

2.它极简的四种操作:mint/burn(创建/兑换USM稳定币)和fund/defund(创建/兑换相关的“投资代币”FUM);

3.我遇到的最大设计障碍,以及我提出的解决方案;

4.一个大约200行Python的概念证明实现。

这只是为了做个有趣的尝试,只要它不会无辜损失用户的钱,成为一个真实实现的话会很酷。

(注:本文仍为草稿,可能会有所修改。)

A.基本理念:无风险的USM+高风险的FUM

最简单的可行的稳定币是依靠ETH池创建/赎回代币。将价值n美元的ETH(在铸造时)存入池中,铸造出n个新的“USM”稳定币,或者从池中烧掉m个USM换取价值m美元的ETH(在燃烧时)。

(为了方便,将使用Ethereum,但设计是与平台无关的。)

为什么这个方案行不通呢?

首先,要想知道x个ETH值n美元,你需要一个或多个价格预言机。这一点我们稍后再谈,几乎所有的稳定币都需要这个,所以即使是最简单的设计也需要它。而更大的问题是ETH的价格波动。

假设ETH是200美元,在池中存入10ETH就能铸造出2000USM。假设ETH跌至150美元,烧掉你的2000USM,但是,池中已经没有足够的ETH(你应该得到2000/150=13.33ETH,但池中只有10ETH)。

抵押品池的价值下降,以至于无法清算未偿付的债权(代币)。这对稳定币投资者和金融业来说是一个非常熟悉的问题。当你的伞不断地收缩和膨胀时,你如何保持干燥?

观点:无论与SEC的诉讼结果如何 对Ripple而言都不是致命打击:1月27日消息,针对美国SEC对Ripple发起的诉讼,律师Jeremy Hogan表示,如果诉讼最终对Ripple有利,在诉讼结束时,XRP价格将上涨2至3倍将只是一个“保守估计”。无论诉讼得出什么结论,对Ripple来说都不是致命的打击。如果诉讼结果不佳,导致Ripple关闭,XRP可能会归零,但这种情况不太可能发生。因为Ripple是一个技术公司,不太依赖实物资产运营。最糟糕的情况可能是其商业模式遭破坏,最终可能退出美国市场。Jeremy Hogan称,SEC诉讼最可能的结果将是双方达成和解。SEC可能会对Ripple包括其2013-2014年度(甚至2015年)的业务处以巨额罚款,以及对托管XRP销售业务进行某种控制或限制。(AMBCrypto)[2021/1/27 21:48:59]

最简单的解决方案也很常见:对池进行超额抵押—给它一个安全缓冲,用更多的ETH赎回未偿还的USM。

这样做,我们的系统需要一种方式,让其他参与者—“投资者”—把ETH加入到池中(以换取第二个代币FUM),并激励他们这么做。

让我们尝试两种激励方式:

手续费:对铸币/烧钱操作收取少量费用,并分红给投资者。杠杆:可以建立一个有市场风险的ETH池(它的价值随ETH的价格涨跌),支持一堆USM代币,这些代币的唯一目的就是避免这种风险(价格保持在1美元)。

所以我们将把所有的市场风险都抛给投资者:

稳定币用户存入有风险的ETH,收回无风险的USM;投资者存入风险较大的ETH,收回风险更大的FUM。

这又是一个熟悉的金融技巧——“分级”风险。

现在,在创建/赎回USM代币的mint(ETH->USM)和burn(USM->ETH)操作之上,我们添加了fund(ETH->FUM)和defund(FUM->ETH)操作来创建/赎回FUM。

B.一个简单的例子

ETH价格200美元:

A将10ETH存入池中,铸成2000USM。(我们暂时不计算手续费)B进行投资操作,存入另外5个ETH以换取1000个FUM,初始定价为1美元。

直播 | 九妹 > 如何促进区块链产业良性发展:金色财经 · 直播主办的《 币圈 “后浪” 仙女直播周》第4期今晚20:00准时开始,本期“后浪”仙女OKEx大客户商户总监将在直播间聊聊 “如何促进区块链产业良性发展”,感兴趣的朋友扫码移步收听![2020/6/12]

-池包含15个ETH(10个和5个加在一起),价值3000美元-A拥有价值2000美元的2000USM-B有价值1000美元的1000FUM

ETH涨到220美元:

-15ETH的池现在价值3300美元-A的2000USM仍然值2000美元-B的1000FUM值1300元

ETH跌至170美元:

-15ETH值2550美元-A的2000USM值2000美元-B的1000FUM值550美元

ETH跌至100美元:

-15ETH值1500美元-A的2000USM值2000美元-B的1000FUM值-500美元

面对ETH价格的大幅下跌,B的资金被证明是不足的:

无论如何池都缩水了(pool_value<usm_outstanding),不再有足够的ETH来赎回A的所有USM,加上B也损耗了。

C.为什么缩水是不好的

这意味着并不是所有的USM持有者都可以赎回他们的USM来为ETH兑换:

稳定币不再是“完全支持的”。只要用户不同时全部撤出(“银行准备金业务”),那就没问题,但是…

实际上延迟兑换者最终可能会两手空空,这一事实激励持有人更早的兑换——导致潜在的银行挤兑。

FUM投资者B的损失,同样也可能会促成一个糟糕的反馈循环,一旦出现下跌迹象,他们就会选择退出。

由于FUM的价格已如此之低,甚至是负值,新投资者可能会以极低的价格购买FUM,这会严重地削减了早期投资者的资金。

这篇文章剩下的大部分内容都是关于如何避免这些情况,这是有意义的,因为除了“保持1美元”外,防止/处理抵押品贬值和基金投资人出局是稳定币设计中最基本的挑战。

D.更多关于mint/burn/fund/defund的细节

这个系统有三个动态部分:

ETH价格上下变化,改变池的价值。mint/burn操作,创建/销毁USM(同时向池中添加/从池中删除ETH)。fund/defund操作,创建/销毁FUM(同时添加/移除ETH)。

大咖零距离 | 开仓到平仓:合约趋势交易的几个关键环节如何把握?:2月6日18:00,金色盘面邀请实盘大V Homily做客金色财经《大咖零距离》直播间,将分享《开仓到平仓:合约趋势交易的几个关键环节如何把握》,敬请关注,欲进群观看直播扫描海报二维码报名即可![2020/2/6]

有关这些操作的更多详情:

锚定美元:注意在正常运行的情况下(特别是:不低于1美元,价格预言机准确),mintand和burn应该保持USM与美元挂钩,让用户在任何时候可以立刻用1美元兑换价值1美元的ETH,除了少量手续费。这个过程挑战在于如何保持系统资本化。

债务比率是这方面的关键度量:usm_outstanding/pool_value。

当这个比率超过100%(或者超过我们指定的MAX_DEBT_RATIO,比如80%)时,系统可以通过禁用撤资和烧币操作来限制它,直到它下降,例如因新的投资者进入。

但以这种方式取消赎回,无论是频繁的还是偶尔短期的,都将损害用户对金融体系和价值锚定的信任。USM在交易所的交易价格可能开始低于1美元……可能会有所缓解,但也可能不会。没有人会把注押在一个实验系统上。

铸币/烧币的具体机制很简单:投入n美元的ETH,收回nUSM(减去手续费),反之亦然。投资/撤资的机制更为巧妙。

基本模型是,这些操作会改变FUM的数量,但不会改变它的单价,它只是池的多余缓冲区的美元价值:

buffer_value=pool_value-usm_outstanding/fum_outstanding。

例如(还是不计算手续费):

假设池中有15个ETH,ETH价格为220美元,池的总价值为3300美元,未偿付的USM为2000枚,FUM为1000枚。

然后:

-负债比率=$2000/$3300=60.61%-缓冲值=$3300-$2000=$1300-FUM单价=$1300/1000=$1.30

C将另外13个ETH(价值2860美元)投入池中,得到2860美元/1.30美元=2200个新铸造的FUM。现在:

-池中有28ETH,价值6160美元-仍有2000USM未偿付-3200个FUM未偿还-负债比率=$2000/$6160=32.47%-缓冲值=$6160-$2000=$4160-FUM单价=$4160/3200=$130

声音 | 赵长鹏:无论市场如何变化,币安仍将在100年内存在:据CCN报道,币安首席执行官赵长鹏今日表示,无论行业发生什么变化,币安仍将在100年内存在。币安团队并没有对每日比特币的价格波动有所顾忌,基本上并没有真正关注市场,而是长期关注并专注于团队工作。赵长鹏表示,币安只是低着头,建立功能。[2019/2/8]

当ETH价格降到200美元:

-28ETH价值5600美元-2000USM未偿还,3200FUM未偿还-负债比率=$2000/$5600=35.71%-缓冲值=$5600-$2000=$3600-FUM单价=$3600/3200=$1.125(下跌)

C取走其2200个FUM中的1000个(价值:1000*$1.125=$1125),收回$1125/$200=5.625ETH:

-22.375ETH价值4475美元-2000USM未偿还,2200FUM未偿还-负债比率=$2000/$4475=44.69%-缓冲值=$4475-$2000=$2475-FUM单价=$2475/2200=$1.125(不变)

E.FUM的价格

当池的资金缩水时,在第一个例子中,FUM的单价暴跌到-0.50美元。我们不能以负的价格或接近0美元的价格投资/撤资。

在这种情况(例如,当债务比率>MAX_DEBT_RATIO)下最简单的处理方式是:

1禁用撤资(池需要资金)2为了基金运营的目的,在资金价格上加一个溢价,保持资金价格>$0。

但思考良久后会发现,有很多不同的方式来定义这种溢价,我在整个系统工作的7天里有5天是用来探索它们的。细节不在这篇文章的讨论范围之内,但简而言之,到目前为止我最喜欢的规则是:

当债务比率>MAX_DEBT_RATIO时,投资操作(投入ETH换取新的FUM)需要至少按min_fum_buy_price计算支付,即在债务比率超过MAX_DEBT_RATIO时对应的以ETH计算的FUM单价。

一旦债务比率回落到低于MAX_DEBT_RATIO,min_fum_buy_price将被清除,基金操作将再次以正常的FUM价格进行(buffer_value/fum_outstanding)。

如果你想知道所有细节,可以了解这个例子(如果不是,你可以跳过它):

动态 | 受监管代币交易商寻求SEC澄清数字资产如何符合美国证券法:据Coindesk报道,受监管的代币交易商Templum希望美国证券交易委员会(SEC)澄清在区块链上跟踪或代币化的数字资产如何符合美国证券法规。为此,该公司上周向SEC提交了一份规则制定请愿书,其中概述了在某些形式的证券交易中如何利用加密资产和区块链技术。Templum联合创始人兼首席执行官Vince Molinari表示,该公司要求明确这些新生技术如何适应当前的监管计划。 至少在他们看来,它们并不存在于现有框架中。具体而言,Templum希望SEC解释区块链平台何时必须注册为清算公司或清算公司可以如何使用区块链,以及区块链平台何时必须注册为转账代理或告知数字资产发行人何时必须使用区块链转账代理人。该公司还试图了解SEC会何时可对现有的托管和客户保护规则进行改善,以允许用于跟踪证券交易的区块链。[2018/12/21]

再从15个ETH计算,ETH价格$220,价值:$3300,包含2000USM,1000FUM:

-负债比率=$2000/$3300=60.61%-缓冲值=$3300-$2000=$1300-FUM单价=$1300/1000=$1.30

ETH价格跌至100美元:

-15ETH价值1500美元-2000USM未偿还,1000FUM未偿还-负债比率=$2000/$1500=133.33%-缓冲值=$1500-$2000=-$500-FUM理论单价=-$500/1000=-$0.50

因为债务比率已经上升到MAX_DEBT_RATIO=80%以上,我们设置min_fum_buy_price为ETH下跌至80%时。

在这个例子中,当ETH价格达到$166.67时,当buffer_value是(15*$166.67)-$2000=$500,因此FUM价格是$500/1000=$0.50=0.003ETH。

此时D投入$600的ETH。因为min_fum_buy_price=0.003,D支付0.003ETH(0.30美元)每FUM的单价,而不是负理论价格-0.50美元。所以D得到6/0.003=2000枚新铸造的FUM:

-此时ETH价格$100,21ETH价值$2100-2000USM未偿还,3000FUM未偿还-负债比率=$2000/$2100=95.24%-缓冲值=$2100-$2000=$100-理论上的FUM价格=$100/3000=$0.0333-min_fum_buy_price=0.003ETH(计算约为$0.30)

如果ETH进一步下跌至60美元:

-21ETH价值$1260-2000USM未偿还,3000FUM未偿还-负债比率=$2000/$1260=158.73%-缓冲值=$1260-$2000=-$740-FUM理论价格=-$740/3000=-$0.2467-min_fum_buy_price=0.003ETH($0.18)

D再次投入6ETH=$360,同样得到6/0.003=2000FUM。

以ETH计算,D的融资利率与以前相同(即min_fum_buy_price=0.003ETH),但当ETH降至60美元时,以美元计算的利率更便宜(0.003ETH=0.18美元,之前是0.30美元):

-此时27ETH价值$1620-2000USM未偿还,5000FUM未偿还-负债比率=$2000/$1620=123.46%-缓冲值=$1620-$2000=-$380-理论上的FUM价格=-$380/$5000=-$0.076-min_fum_buy_price=0.003ETH($0.18)

无论如何,最简洁、最安全的确保投资者投入合理的(主动的)资金的方式,还有进一步研究的空间。目前大致的方式是,当系统资金不足时,FUM的价格应该低到足以吸引新的投资者进入,但又不能低到彻底折损老的投资者。

(ElliotOlds的一个伟大建议:在这些情况下,债务比率>MAX_DEBT_RATIO,即系统需要资金时,使FUM购买价格随时间下降。

这样就避免了min_fum_buy_price高于投资者的预期系统因缺乏资金而消亡。随着价格的不断下降,投资最终会到位,即使其价格会大大削减现有FUM持有者的风险/回报。新资金到位后,USM的烧币将会恢复,这应该会让USM持有者安心,并对锚定美元的汇率抱有信心。)

F.系统其他部分

预言机使用什么价格(ETH/USD,系统依赖的唯一外部数据),这是一个其他人可能更想了解的问题。在我的思考中,我建议使用Uniswap的其他几个稳定币价格的平均值:USDT,USDC,PAX,DAI,TUSD。

投资USM->FUM:让投资支持USM作为一种投资方式(因此,USM->FUM),连同ETH(ETH->FUM),可能是个好主意。特别是当ETH的价格下降时,也就是当投资者花费USM可能比ETH更好的时候。

(请注意,USM->FUM投资操作对ETH池中的金额没有影响,即使扣除了手续费。它只是销毁了一些用户的USM,并给予他们新铸造的FUM作为回报,而不动ETH池。)

限价购买订单:该设计的一个有前景的补充是一个投资选项,用户可以以“6ETH铸造2000FUM”或“600USM铸造2000FUM”的选项下限价购买,如果价格下降到指定的比率就会触发。

这相当于在投资op中添加了一个可选参数:

max_price_in_eth/max_price_in_usm。

这样的设计可以在资金池的缓冲区之上,提供第二道防线。而且,由于ETH和FUM的价格很可能是密切相关的,以美元计价的投标应该比较稳定。

按照我们这里的目标(以及Uniswap)的精神,治理应该是最小化的:“部署后就忘记”。

设计中没有包含冻结/撤回功能:如果需要修复这个部分,应该启动一个新的智能合同,用户可以选择迁移到新版本。我能想到的唯一受管理员限制的操作是指定一个“自愿升级”合同,这样用户就可以选择将他们的财产自动转移。

其他非美元挂钩的币种应该比较容易:唯一的挑战是找到一个好的价格来源,例如,ETH/EUR。事实上,比特币比欧元硬币更容易使用,因为ETH/BTC很容易从Uniswap获得。存入ETH时需要选择:

a)造币厂:0.025(或当时ETH/BTC的汇率)“BTC-pegcoins”,与BTC挂钩,就像USM与美元挂钩一样;

b)基金:1ETH的“比特币基金”——押注ETH/比特币,就像FUM是押注ETH/美元一样。

G.面对攻击

只是一些初步想法:

预言机操纵价格。如果攻击者可以操纵价格来源,他们可以打破锚定,低买高卖,抽干资金池。

预言机是该系统最明显的弱点,随着ETH在池中的增长,它将成为更大的目标。对我们有利的是,这是许多其他系统/智能合同的共同弱点,所以我们可以利用这一点。

一个明显的处理方式是使这四种操作中的一部分或全部延迟:例如burn的逻辑可以是“给USM,等一个小时,拿回ETH”,而不是“给USM,拿回ETH”。这虽然影响用户体验,但可以对抗价格操纵,值得一试。

USM系统对实时价格非常敏感。一些可能的方法可以降低这种灵敏度:

a)启动和执行之间的延迟,如上所述。b)随机分配这个延迟,例如,“你的铸币将在下一个小时的随机时间以ETH/USD的价格进行加工。”c)取较大数量的源价格的平均数:例如,多个平台上的多个稳定币。d)更高的手续费。下面示例代码中的往返买卖手续费为0.6%,但这只是一个概念证明。e)一般来说,在某种程度上,是许多连锁系统共同面临的挑战,值得遵循它们的最佳实践。

当ETH的价格下降。抵押品担保体系崩溃最明显的方式就是抵押品贬值。然而,在这个系统中,贬值似乎在一定程度上得到了控制。在超过MAX_DEBT_RATIO的情况下,赎回被禁止,如果ETH暴跌,系统就会停止,直到注入新的资金。

FUM持有者当然会损失大部分资金,但这是一种补偿风险,就像借款人拖欠贷款一样,而不是像大型保险公司破产那样的系统性失败。

特别是,只要1预言机的价格仍然准确,2新的投资者总持续出现,USM的锚定美元的会应该可以抵御ETH的价格下跌。所以预言机的价格似乎更脆弱。

H.概念验证实施

我编写了一个简单的Python命令行实现,虽然会有bug,还需要进一步的修改,但它已经足够让您了解系统是如何工作的。下面是一个来自上面例子的副本镜像操作示例:

原文链接:https://medium.com/@jacob.eliosoff/whats-the-simplest-possible-decentralized-stablecoin-4a25262cf5e8

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:15ms0-7:147ms