这篇文章旨在作为Flare上创建和赎回FXRP的简化指南。它的目的是让人们直观地了解该系统及其安全机制,并没有强调每一个细节,完整白皮书可以在这里找到。由于 XRP 社区是第一个采用 Flare 网络的社区,因此以下所有示例都将使用 FXRP,但均可以替换为 LTC、Doge 和 XLM,统称为F-Asset。
设置
发起人
一个发起人:Alice想在Flare上的一个应用程序中使用她的XRP
Alice拥有一个种植燕麦的农场。她担心燕麦价格下跌,她的农场的收入会受到影响。她想用她拥有的一些XRP与Flare上的去中心化衍生品应用进行交易,这样她就可以减轻燕麦价格下跌给她的业务带来的风险。Alice将在Flare上用她在XRP账本上的XRP代币铸造FXRP。在FXRP系统中,Alice被称为发起人。
代理人
代理人:Bob和Charlie向FXRP系统提供Spark作为抵押品。
Bob和Charlie拥有Spark代币,他们想在上面赚取回报。他们向FXRP系统提供Spark代币作为抵押品。Bob和Charlie被称为代理人。
FXRP系统参数
Flare Time Series Oracle (FTSO) - 在下文中被称为Flare Oracle - 向FXRP系统提供XRP/Spark比率,即1个XRP可以购买多少Spark。再加上系统中的抵押品数量和抵押品比率,这定义了系统可以发行多少FXRP。
在这个例子中,比方说,参数如下:
可以发行的FXRP的数量被称为发行能力。它是由可用的抵押品数量除以XRP/Spark汇率,然后进一步除以抵押品比率决定的。
将上表中的数字插入方程,我们得到:
这意味着FXRP系统有足够的抵押品来发行200个FXRP。
抵押品保留交易
Alice储备了足够的抵押品来铸造100FXRP
为了安全地使用FXRP系统,Alice必须为她希望发起的FXRP数额保留抵押品。这就是所谓的抵押品保留。 Alice在Flare上也有一个地址,并与FXRP系统完成一笔交易,指定。1)她想创建的FXRP数量,(在本例中为100FXRP),2) XRP分类账上的发起账户,3)接收FXRP的Flare账户,包括4)抵押品保留费。抵押品保留费是根据XRP被铸成FXRP的价值,以Spark方式支付的0.1%费用。
抵押品需要确保被保留,以便从抵押品保留交易完成的那一刻起,有2.5倍价值的XRP被铸成FXRP,锁定在Spark代币中。一杯费用需要被支付,因为如果发起人(Alice)没有成功完成交易,抵押品反而可以用来给到其他成功的发起人,代理人可以同样的获得创造费用。
交易公式
交易公式规定了Alice需要在XRP账本上进行的交易
当Alice完成抵押品预订交易时,她会收到一个交易公式。 该交易公式指定了Alice需要在XRP分类账上进行的交易,以创建FXRP。重要的是,交易公式指定了XRP账本上的最后账本索引号(last ledger index number) ,指示Alice的XRP必须到达代理人那里。最后的分类账索引号是很重要的,因为当Alice在XRP分类账上进行交易时,她可以使用一个称为最后分类账索引的功能。这个功能意味着,如果由于某种原因,XRP账本上的交易在最后一个账本索引号之前没有最终完成,那么Alice将保留她的XRP,她的总损失是她为保留抵押品而支付的0.1%费用。
创建交易
Alice的创作交易
在XRP账本上,Alice向交易公式中列出的代理发送了她希望铸成FXRP的XRP数量+预先指定的创建费。在这种情况下,Alice想铸造100个FXRP,创建费被设定为5%。因此,Alice向代理发送了总共105个XRP。在这种情况下,交易公式规定,创设费在代理商之间平均设置。当然,这不会永远是这样的。
状态连接器系统
FXRP系统从状态连接器系统接收XRP Ledger的状态。状态连接器节点由每个Flare网络验证者独立运行,它们以安全和去中心化的方式观察外部系统的状态。Alice的创建交易是通过状态连接器系统输入到FXRP系统的。
Alice收到FXRP
当状态连接器系统向FXRP系统报告Alice的交易已经在XRP账本上最终完成时,FXRP就会被铸成货币并发送到Alice在抵押品预订交易中指定的Flare地址。
XRP/Spark利率上升
目前的FXRP系统看起来如下:
XRP/Spark比率现在从10增加到12
发出100个FXRP,按新的汇率保证FXRP所需的抵押品的数量是:
2500个Spark已经被锁定在100个已发行的FXRP上,所以FXRP系统现在又锁定了500个Spark代币以应对价格的上涨。
Alice使用衍生品应用程序
Alice对冲燕麦的价格
Alice花了50FXRP向Dana购买燕麦价格的看跌期权。看跌期权是一种金融工具,如果某样东西的价格在一定时间内下跌,期权所有者可以从中获益。燕麦的价格上涨了,这对Alice的农场收入来说是件好事,但这意味着Alice从Dana那里买的看跌期权到期后就没有价值了。Alice并不介意她为了保护自己的收入而损失了50FXRP给Dana。
用FXRP赎回XRP
Dana赎回
Dana在与Alice的交易中赚了50FXRP。Dana现在想把这些钱赎回到XRP分类账中。
Dana将她的50FXRP发回FXRP系统,同时附上:XRPL上的入账地址和Flare上的入账地址(Spark),以防赎回失败。这个例子假设赎回费为零。赎回费率由Spark管理控制,应该是零或非常低。)
一旦Dana对FXRP系统的交易完成后,代理会被发送一个代理赎回公式Agent Redemption Formula(ARF ),其中规定了他们需要在XRP账本上进行的交易,以及该交易需要由哪个账本索引号来最终完成。
成功赎回
赎回到XRP分类帐
代理商通过ARF中指定的分类账索引号向Dana发送50个XRP。当FXRP系统通过状态连接器系统观察到时,这就解锁了抵押品。
在这个例子中,由于代理是平等的,所以Bob和Charlie各解锁了750个Spark。
FXRP系统现在看起来如下。
在上表中,之前3000个Spark被锁定在100个已发行的FXRP上,现在只有50个FXRP被发行,另外50个已经被成功赎回,所以只有1500个Spark被锁定。
赎回失败
Bob的赎回失败
现在我们说,Bob最近花了太多时间在潜水上,忽略了他作为代理人的职责。Dana没有收到全额的50XRP,而是按指定的分类账索引号只收到25XRP。
Dana得到了补偿
为了让Dana补充她丢失的XRP,FXRP系统向她发送所丢失的XRP在Spark中的价值(当时的汇率是12个Spark兑换1个XRP)和1%的补偿费,以说明交易成本(补偿费由Spark管理部门制定)。
这就意味着:
Bob因作为代理人的失败而受到重罚。Bob在FXRP系统中锁定了1500个Spark。针对这些抵押品,之前已经发行了50个FXRP。Dana缺少的25个XRP是由Bob的抵押品的一半,即750个Spark担保的。从Bob的抵押品中提取的303个Spark是发给Dana的补偿,另外223.5个Spark被烧掉作为惩罚。这使得Bob在FXRP系统中拥有1973.5个Spark,其中750个Spark仍被锁定以保证25个FXRP。
Dana现在可以用她的303个Spark去交易所购买缺少的25个XRP,或者,在一个纯粹的去中心化的环境中,她可以用她的Spark代币从Alice那里购买25个FXRP,然后把它们兑换回FXRP系统。(在有许多代理和活跃的FXRP去中心化市场的环境中,后者选项更有意义)。
Bob在这里的经济损失是已经支付的代替XRP的Spark代币,加上已经烧毁的Spark代币,加上补偿费(Spark),减去他保留的XRP和他收到的XRP的创建费。Bob损失的XRP相当于比他保留的XRP多18.125。因此,Bob在经济上有很大的动力去兑现代理人赎回的义务。Dana虽然有一个令人沮丧的经历,但没有损失。
Bob离开FXRP系统
在赎回失败之前,FXRP系统中有5000个Spark代币,其中3000个是为100个已发行的FXRP提供担保。赎回失败后,系统的总抵押金额减少到:
这使得Bob在系统中拥有抵押品有以下变化:
50FXRP仍在发行,其中Bob的比例份额为25 FXRP。因此,Bob在系统中锁定了以下抵押品:
FXRP系统目前的情况如下:
Dana现在决定要成为一名代理人,向FXRP系统发送5000个Spark。
Dana向FXRP系统发送抵押品
Dana增加的5000个Spark使FXRP系统的发行能力提高了:
现在的总发行量是:
FXRP系统现在看起来如下:
Bob现在想辞去代理人的工作,全职从事潜水工作。Bob在他的XRP账本地址中有52.5个XRP,Alice用它来发行她的100个FXRP(其中他没有发送25个给Dana而受到惩罚)。Bob现在向FXRP系统表示,他希望发起新的FXRP,同时在这个过程中排除自己作为代理人(这样他就可以立即赎回FXRP)。Bob完成了这个过程,向XRP账本上的代理(Charlie和Dana)发送了26.25个XRP,在Flare上发起了25个FXRP。
然后,他赎回这25个FXRP,这使他在系统中的FXRP为零,并使他的所有抵押品(1973.5Spark)可以从系统中撤出。
Bob自我赎回
Bob现在已经离开了系统,不再是一个代理人。他带着从FXRP系统返还给他的1973.5个Spark代币(因他之前赎回失败而受到惩罚)和XRP账本上来自Alice的剩余26.25个XRP代币离开。
当Alice在未来的某个时间点来赎回她剩余的50个FXRP回到XRP分类帐时,所有的代理可能已经改变了,巨大的Spark可能已经在发行和赎回FXRP方面发生了变化,但为了赎回她的FXRP,Alice不需要知道或跟踪任何这些。Alice只需要将她的FXRP发送到FXRP系统,指定XRP账本地址,如果赎回失败,则指定Flare地址,如果有赎回费,则指定赎回费。
违反抵押品比率
在这里,我们将描述,如果代理人可用于FXRP系统的抵押品的价值,根据已发行的FXRP的数量进行分摊,低于所需的抵押品水平,会发生什么。让我们定义一个新的场景:
在新的情况下,我们现在有三个代理人,Charlie、Dana和Eve,他们总共发行了1200个FXRP,并在系统中拥有以下数量的抵押品。该系统看起来如下。
抵押率可按以下方式计算:
例如,对Charlie来说,这就是:
在XRP账本上,每个代理人还持有以下XRP:
成功修正抵押品违约
XRP/Spark汇率现在有一个冲击性的价格变动,即一个XRP买15个Spark。这是XRP对Spark的瞬时增长50%。
现在每个代理人的位置是:
(注意,在冲击性的价格变动之前,Charlie保持着2.5倍发行价值的最低绝对抵押品。在瞬间50%的价格变动下,Charlie仍然锁定了比FXRP发行值更大的抵押品。)
Charles和Eve违反了抵押品要求(即他们的抵押品比率已低于2.5),必须在一个被称为抵押品叫价带(collateral call band)的有限时间内采取行动。下表显示了他们的状况:他们必须按超额FXRP 一栏所示的金额减少他们的FXRP持有,或按抵押品赤字一栏所示的金额增加他们的抵押品。
所需抵押品是指支持FXRP所需的抵押品,按新的XRP/Spark价格分摊,并符合2.5的抵押品比率要求。
Charlie选择减少他的FXRP仓位,减少70FXRP。记住,Charlie在XRP账本上有200个XRP。所以Charlie发行了70个FXRP,支付了73.5个XRP,这是想要的FXRP数量+预设的5%创建费。然后,Charlie立即用自己的账户赎回FXRP,将他发行的FXRP的分摊额度从200减少到130,使他的抵押品比率超过2.5。如果系统中没有抵押品供Charlie发行新的FXRP,他可以通过交易所使用XRP购买FXRP。
另一方面,Eve决定增加她在系统中的抵押品。Eve向FXRP系统增加了5000个Spark,使她的抵押品比率回到2.5以上。
连带违约整改失败
如果Charlie或Eve没有在规定的时间内修正他们违反抵押品比率的行为,他们的Spark抵押品将被FXRP系统用来回购针对他们的抵押品所分摊的全部FXRP金额。
为了看到这一点,让我们看一下Eve的案例。在FXRP系统中,Eve有15000个Spark作为抵押品,XRP/Spark汇率为15,她的抵押率为:
这低于规定的比例,但仍是已发行的FXRP分摊给Eve账户的价值的两倍。
系统将使用Eve的抵押品出价,用Spark代币购买500FXRP。第一次出价是按照当时的XRP/Spark汇率,如果这个出价的任何部分在n个区块结束时没有被接受(其中n是一个系统参数),出价会增加10%。这个过程重复进行,直到整个500FXRP被系统回购。然后,FXRP被烧毁,Eve的抵押品的剩余部分被返还给她。
FXRP抵押品系统的安全基础集中在两个必要因素上:
1) 代理人对所需行动的违约损失总是比执行所需行动的损失大。
2)如果一个代理人确实违约,该系统为其他人创造了强大的利润激励来纠正这种情况。
抵押率是维护系统安全的关键。
在抵押品违约分析中,我们已经看了价格的瞬时50%变化。要看这个例子意味着什么,重要的是要记住,加密货币市场每天24小时,每年365天开放,FXRP系统将在高度频繁(分钟)的基础上重新计算所有参数(并向代理人发出指令)。因此,为了使上述情况真正发生,XRP/Spark汇率的50%变化需要在FXRP重新计算期间发生,即在1分钟内。
一般来说,预计在FXRP重新计算之间,绝大部分XRP/Spark汇率的变化幅度会小得多。值得注意的是,即使在这个极端的分析中,XRP/Spark汇率在不到一分钟的时间内增加了50%,所有的经济安全激励措施都保持不变。 在波动较大的时期,可以调整FXRP系统参数以增加重新计算的频率,然后系统可以更迅速地执行行动,减少对支撑系统安全的经济激励的任何降级的可能性。