金色财经 区块链11月28日讯 EOS创始人BM(Dan Larimer)在Medium个人博客上发布长文《重新构想EOSIO资源分配》,金色财经编译如下:
EOS公共网络是EOSIO首个实施的、也是被广泛使用最多的公有链,最近还利用其一部分技术能力达到了每秒800次连续传输的处理能力。由于市场对转账需求如此之高,以至于Resource Exchange(REX)用完了提供给租赁的EOS代币。本文探讨了REX之所以无法使用EOS进行借出的原因,并提出了一种解决方案,以确保我们始终能以合理的市场价格提供CPU资源。
当EOS代币被抵押时,将会提供CPU带宽实用性。CPU的资本成本已被市场高估,这意味着大多数人需要租用EOS才能以可承受的价格获得所需的CPU,但人们为了让资本损失变得最小,也导致了EOS价格波动。
REX (Resource Exchange)旨在为拥有EOS CPU的人与希望在不拥有EOS的情况下使用CPU时间的人提供一个“自由市场”。这里有一个挑战,那就是既要确定租借EOS的价格,同时又要保持EOS所有者的实用价值:如果定价过高,就没有人愿意租借EOS,导致网络利用率不高;如果定价过低,那么EOS的可用供应会被过度扩展,从而让任何价格的CPU都不可用。
我们设计REX的时候,使用了一个能将价格提高到无穷大的算法,这样会让可供租用的EOS的剩余供应量接近零。但最近,REX陷入了一个困境,无法以任何价格租用EOS,因为那些给其他人提供EOS租用的人会随意召回自己的代币。我们仅考虑到投资者更多地出于赚钱需求,但是却没有想到他们会从REX中提取数量如此之大的EOS。
好消息是,REX的设计并没有问题,所以它会兑现承诺,并严格执行代码要求,将放入在REX中的EOS退还给贷方,但定价算法对突然撤出更多EOS的请求做出反应,将价格推到无穷大。
发生这种情况,是由于在REX设计过程中做出了以下几个初步假设:
1、大多数账户租金需求会呈现正态分布;
2、对REX的贷款需求也将会呈现正态分布;
3、租金上涨将会带动新需求,为REX提供额外的EOS租金;
4、REX的提现将抵消押金,总租金供应相对稳定。
然而现实情况却是:
1、存入REX的资金呈现出帕累托分布;
2、REX的提款也呈现出帕累托分布;
3、向REX借款的要求也是由帕累托分配决定;
4、可以在30天的租赁期限到期之前提取预支的租金收入。
(金色财经注:帕累托分布是以意大利经济学家维弗雷多·帕雷托命名的。 是从大量真实世界的现象中发现的幂定律分布。这个分布在经济学以外,也被称为布拉德福分布。)
所以,最初的假设与REX实际使用情况之间的不匹配,导致了资源租赁价格出现波动、也让EOS无法提供租金。
全新设计的CPU分配
REX的当前状态,其实是公共EOSIO网络资源分配策略逐渐演变的结果。如果不受过去设计的限制,我们希望看看可以采取哪些不同的措施来最大程度地发挥设计解决方案的灵活性。如果可以构想出更好的解决方案,我们就能实现向后设计,这种设计方式也可以从EOS网络及其REX的当前状态发展而来。
当前用户最大的抱怨,可能就是“CPU”过于昂贵,其次就是在给定时间内无法获得足够的CPU带宽,但这种情况太不可预测了。鉴于高昂的资本成本和低利用率,出现这些问题的额根本原因可能与此前EOSIO尝试降低CPU价格有关。EOSIO使用代币来表示所有权模式,这意味着如果你拥有1%的EOS,那么就能永久免费使用1%的CPU,这种资源占用模型类似于一个人购买了可以永久居住的房屋。
CPU所有权模式为EOS带来了巨大的实用性,但同时也导致用户必须拥有大量EOS才能使用网络。由于市场已经为所有可转让的加密资产注入了超出预期效用价值的投机价值,因此获得CPU时间效用所需的EOS资金也超过了大多数用户可以承受的水平。此外,与波动相关的风险意味着,在一个极度动荡的市场中,CPU的真实成本与资本损益有着不可预测的联系。
为了降低CPU成本,EOSIO引入了“部分备用CPU”,这种解决方案会把未使用的CPU资源分配给活跃用户,而且当网络使用不足的时候,也能让CPU的感知成本降低多达1000倍。但是,当网络使用量激增、同时人们因为已经消耗了超出其最低保证CPU数量的帐户而被拒之门外时,“部分备用CPU”解决方案也会带来不可预测的结果。
上个月,我们推出了一个新功能,将所有帐户列入灰名单并删除了免费CPU“1000倍提升”服务,随后又再次鼓励人们使用REX。与购买EOS进行抵押相比,这个新功能可以用更低的风险和成本租用EOS。同时,一些EOS用户从REX租用了大部分EOS,并开始使用他们应有的CPU预算。但即使消除了1000倍的免费CPU奖励,每个EOS的CPU时间的可预测性依然取决于放到CPU上的EOS的百分比。
想象一下,如果你是唯一将EOS抵押给CPU的用户,那么就能获得100%的CPU分配,现在,假设另一个用户向您的CPU投入了100倍的EOS,使您的CPU预算降低到原来的1%。实际上,当有人从REX租用大量EOS并将其抵押给CPU时,就会发生这种情况。
底线:除了1000被奖励之外,还有基于未抵押EOS的额外3-5倍奖金,这些奖金允许用户随时抵押。对于抵押EOS的人来说,无论是租用EOS还是拥有EOS,这些因素都无法预测CPU分配。
理想算法
在理想算法中,CPU将不会存在推测值,而且为用户保留的CPU时间将会是固定且可预测的。不仅如此,用户不用(以EOS代币形式)投入太多资金就可以使用CPU,也不会担心自己投入的EOS会存在资本损益风险。最后,不管EOS的价位在什么地方,总会有一些CPU资源可用,因此CPU价格也在一段时间内保持相对稳定。
要实现这一目标,需要以EOS价格从系统合同中租赁所有CPU时间的100%,该价格会随着CPU租赁百分比的增加而呈指数增长。为了租用CPU时间而支付的EOS代币,将会分配给已抵押的EOS代币(例如REX池)。通过抵消抵押和租赁CPU的费用,这个模式能够保留分配给已抵押EOS持有者的CPU。假设您抵押的EOS每月让你赚了1 EOS,就能在租赁市场上花掉这1 EOS并获得一定数量的CPU,CPU数量会根据当前价格动态变化而变化。此外,一些CPU租赁费用将根据您所抵押代币的百分比返还给用户。
通过将100% CPU分配给租赁服务,此时就不需要再向CPU抵押动态代币供应,也不必担心人们从REX退出EOS会对CPU租赁市场及其定价算法造成冲击。此外,CPU时间也将变得不可转让,因为所有CPU时间都是通过从系统合约中租赁而不是通过抵押EOS来分配的,此举将消除CPU定价中的投机成分,并确保每个人都在相同的资源模型下运行。
我们可以使用一个简单的方程式来确定按照固定百分比租用30天CPU时间所支付的总金额。
下图显示了收取“100M EOS * PercentUsage2”的租金,使用此方程式,一旦网络租赁容量达到10%左右,租金收入就将超过EOS通货膨胀。未来,EOSIO可能会选择向区块生产者支付一定比例的租金收入,这将使他们网络效用价值的利益实现最大化。原则上,社区可以使用任何常数指数(constant exponent)来确定价格曲线,较高的指数将允许用户以更低的成本使用更大比例的网络,但随着网络利用率接近100%,EOS代币价格将更快提高。理想情况下,这个指数将让供求关系变得更加平衡,以最大化总租金收入减去区块链运营成本之间的差额。
因为那些想要租用CPU的人会分布在“帕累托分布”里,所以我们预计会有大量同时租用和/或续约的大型租户,这种情况可能导致租金突然下降,然后上升。此时如果没有“定单”来追赶租金下降,则可能对大多数“租户”产生不利的定价影响。因此,我们建议租金下降的速度要慢于上升的速度。给定定价函数P(TotalUsage),将发布新的CPU租金的价格为MAX(P(CurrentUsage),P(DailyAvgTotalUsage))。如果价格太高,则CurrentTotalUsage将下降,并且随着时间的推移,DailyAvgTotalUsage也将下降。如果CurrentTotalUsage突然增加,那么价格将迅速攀升,以防止消耗CPU供应。
我们还会考虑该算法的变体,比如当CurrentTotalUsage大于DailyAvgTotalUsage时,将DailyAvgTotalUsage重置为CurrentTotalUsage。如果没有新的需求,将导致平均算法快速响应需求的增长,同时仍会在24小时内让价格逐渐降低。对于那些希望在30天之内获得1%的CPU供应的用户,他们需要支付的价格等于:MAX(P(CurrentTotalUsage + 1%),P(DailyAvgTotalUsage + 1%)))— MAX(P(P(CurrentTotalUsage),P( DailyAvgTotalUsage))或者更简单地说,他们将需要支付当前使用率收集的租金收入总额与预期在新使用率水平收集的租金收入总额之间的差额。
从REX迁移
之所以能够采用新设计,是因为 “ CPU”不可能从租赁市场撤回——很显然,这点与REX不同。REX算法必须让借款人和贷款人的需求保持平衡,在此过程中,如果贷方要求借方退还抵押EOS,他们必须要等待30天,因为只有这样借方的租约才能到期,否则贷方就无法获得EOS租金。在当前的REX模式下,没有一个简单的解决方案可以为租户和贷方创造理想的简便性。
解决此问题最直接的方法,就是随着时间的推移“增加CPU供应量”,然后在把当前模型下分配的CPU按照一定百分比逐渐转移到新业务模式上。这个解决方案可以通过在系统合约中实施一项新的操作来实现,该操作允许租用CPU分配,然后再分配“虚拟cpu-stake”,从而将已抵押的CPU总量(无论是拥有还是租用)稀释到现有CPU中。事实上,这种解决方案并不会增加EOS的供应量,而是仅调整确定分配给每个帐户的CPU比率的参数。当前,系统合约是按照1:1的比例将EOS抵押给CPU,但是基础EOSIO协议仅关注相对CPU权重(分配给你帐户的权重除以分配给所有帐户的所有权重之和)。
如果由新资源市场创建的“ CPU”供应量逐渐增长到抵押给CPU的EOS供应量的100倍,那么新的租赁市场将有效地控制99%的EOS CPU时间。随着越来越多人进入CPU / NET租赁市场,最终将EOS押在CPU/NET上可能会被弃用和删除。
接下来,我们就可以将最新CPU租赁市场的收益转给与REX相关的人,就像域名排名和RAM市场费用一样——这个解决方案可以使CPU以合理的价格实时提供给用户。随着时间的流逝,REX市场的利用率将下降,新的CPU市场将接管。
如果这个解决方案被社区采用,那些持有EOS、以及将EOS抵押的人,就必须转移到全新的CPU租用市场,因为他们持有的抵押EOS在整个CPU市场中的份额会不断下降。我建议可以用一年时间将CPU租赁模式逐步引入新市场,以使人们有机会迁移自己的CPU资源策略。
最终,人们将放弃为使用CPU而抵押EOS、以及从REX租用EOS会遭到社区反对,人们也将转向支持最新提议的CPU市场。而适用于CPU的所有内容,也可以适用于与CPU市场具有相同动态的NET市场。
终端用户可用性
许多应用程序和钱包已经采用了“先付费先授权”的CPU模式,从而消除了终端用户不得不考虑租用或占用CPU带宽的麻烦。本次给出的这个最新提议,其实与这些应用程序和钱包平台使用的策略差不多,在这些平台上,基本上应用程序提供商都是从云提供商那里租用服务,然后再通过多种货币化策略(例如订阅、广告或产品销售)来负担其成本。
总结
拟议的CPU租赁市场将稳定CPU价格、降低CPU租赁成本、并提高CPU访问的可预测性,而且CPU和NET租金的收益依然可以分配给那些在REX中抵押代币的人。但是,这次最大的变化,就是让那些通过抵押EOS来获得永久CPU份额的人逐渐丧失这种能力。服务提供商会以每次交易为基础为其用户支付CPU成本,这意味着基于EOSIO的网络成为市场上最易于使用、同时也是最具成本效益的解决方案。
本文编译自Medium