由于EIDOS的出现,以高TPS著称的EOS陷入了久违的拥堵。
DAppTotal.com数据显示,11月25日,全网的CPU消耗总量为11956660 ms,EOS主网拥堵指数为100%,DAppTotal已收录635个EOS DApps中,排名前5的DApp分别为:EIDOS(占比77.76%),BigGame(占比1.78%),WhaleEx(占比0.64%),EOSDynasty(占比0.55%),Dice(占比0.5%)。其中EIDOS消耗了全网77.76%的CPU资源,当日交易次数总计为3803万次,较前日环比增加1.03%。(注:数据为每日平均值,配图为当前CPU按小时动态拥堵状况)
实际上,自11月1日EIDOS上线,到目前为止,EOS已经拥堵了近一个月时间。在这长达一个月的时间内,不仅仅是EOS普通用户,甚至包括EOS上Dapp的一些项目方都苦不堪言。
据IMEOS报道,由于EOS的当前状态, EarnBetCasino团队(原EOSBet)已经宣布,如果情况在30天内未能解决,他们将离开EOS主网。他们认为这是治理问题,而不是资源分配问题,希望EOS能够解决。
对此,今日,EOS创始人Daniel Larimer(BM)发布了一篇名为“重新构想EOSIO资源分配”的文章,在文中,BM提出了一种新的CPU使用方式,BM表示,这种方式将使得CPU价格更加稳定,并显著降低CPU成本,同时使CPU的分配变得可预测。这个新的CPU方案简单易懂,应该能为社区提供可持续发展的道路。
以下为BM构想全文:
EOS公共网络是EOSIO的第一个实现,是最广泛使用的公共区块链,并且最近一直在使用其技术能力的一小部分处理持续的每秒800次传输。对转移的需求如此之高,以至于资源交换REX的EOS令牌已经用完了。
这篇文章探讨了REX耗尽EOS来出借的原因,并提出了一个解决方案,以确保CPU资源始终以合理的市场价格可用。
EOS令牌在被标记时提供CPU带宽的效用。CPU效用的资本成本已经被市场定价过高,这意味着大多数人需要以可承受的价格租用EOS来获得他们需要的CPU,而EOS的价格波动带来的资本损失是最小的。
REX(资源交换)旨在自动化拥有EOS CPU实用程序的人和希望在不拥有EOS的情况下使用CPU时间的人之间的市场。现在的挑战是确定租赁EOS的价格,同时保持EOS所有者的效用值:如果价格过高,那么没有人愿意租,因此网络将利用不足,如果定价过低,则可用的EOS供应将会过度扩展,从而导致任何价格都没有可用的CPU。
我们设计REX时使用了一种算法,当剩余的可供租赁的EOS供应接近于零时,可以将价格提高到无穷大。最近,REX陷入了一种情况,没有EOS可以以任何价格出租,因为那些提供EOS给其他人出租的人可以随意收回它们。鉴于预期的获利需求,我们没有预料到会有如此大量的EOS从REX中撤出。
好消息是,REX正在按照设计进行工作,并且它将兑现代码中的承诺,允许在30天内将放入REX的EOS归还给贷款人。当EOS数量突然超过出借数量时,定价算法会将价格推至无穷大。
这是因为在REX设计时所做的最初假设:
在大量的账户中,租金需求将呈正态分布
对REX的贷款需求将呈正态分布
租金上涨将推动新的需求,为REX提供更多的EOS以供出租
从REX的提款将被存款所抵消,总租金供应将相对稳定
现实:
存入REX的存款受帕累托(Pareto)分布支配
从REX撤回来的钱分布在帕累托
从REX借款的需求由帕累托分布决定
提前取得的租金收入可以在30天的租赁期结束前提取
最初的假设与REX使用的实际情况不匹配的结果是,资源的租用价格不稳定,而EOS则无法租用。
CPU分配的全新设计
REX的当前状态是公共EOSIO网络资源分配策略逐步演进的结果。为了最大限度地发挥我们想象解决方案的灵活性,我们喜欢考虑如果不受过去设计的限制,我们可以做些什么不同的事情。如果可以设想出更好的理想解决方案,那么我们就可以从EOS网络及其REX的当前状态发展出一种设计。
最大的抱怨是“CPU”太贵了,其次是在任何给定时间都无法预测CPU带宽的大小。这些抱怨的来源可能与之前的尝试有关,考虑到较高的资本成本和较低的利用率,他们试图降低CPU的成本。EOSIO被设想为使用一个令牌来表示一个所有权模型,其中1%的EOS允许您永远免费使用1%的CPU。这种资源模式类似于买房子,你可以永远住在里面。
CPU所有权模型为EOS提供了巨大的实用功能,但也导致用户必须拥有大量的EOS才能使用网络。因为市场赋予了所有可转移的加密资产超过预期效用价值的投机价值,获得EOS CPU时间效用所需的资金超出了大多数用户的承诺。此外,与波动性相关的风险意味着,CPU的真实成本与一个极度波动的市场中的资本利得或损失是不可预测的。
为了降低CPU成本,EOSIO引入了“部分备用CPU”,将未使用的CPU周期分配给活动用户。这降低了CPU的感知成本高达1000倍时,网络的利用率;然而,它同时也带来了不可预测的结果,当使用量激增,人们被锁定在他们的帐户之外,因为他们已经消耗了超过最低保证的CPU。
上个月我们在greylist中引入了这个选项,去掉了1000倍的CPU提升,然后鼓励人们使用REX。他们可以以比购买EOS更低的风险和成本租用EOS。与此同时,一些EOS用户从REX租借了大部分EOS,并开始使用他们合法的CPU预算。即使取消了1000倍的免费CPU奖励,每个EOS的CPU时间的可预测性也取决于所有EOS占用CPU的百分比。
假设您是唯一一个将EOS绑定到CPU的用户,您将被分配100%的CPU。现在,假设另一个用户对CPU投入了100倍的EOS,将CPU预算降低到原来的1%。当某人从REX租了大量的EOS并将其投入到CPU中时,就会发生这种情况。
底线:除了1000倍的奖金,还有一个额外的3 - 5倍奖金基于未挂载的EOS(upon unstaked EOS),可以在任何时候挂载。这些因素使得那些持有EOS的人(无论他们是租用还是拥有它)的CPU分配变得不可预测。
理想的算法
在理想的算法中,CPU将没有投机价值,您所保留的CPU时间将是固定的和可预测的。此外,您可以在不占用大量资本(以EOS令牌的形式)并使其面临资本收益或损失的情况下使用CPU。最后,总有某个价格的CPU可用,因此,CPU的价格在时间上相对稳定。
要实现所有CPU时间的100%,应该以EOS价格从系统合约中租赁,EOS价格随着所租赁CPU的百分比的增加呈指数增长。支付了CPU时间租金的EOS将被分发到staked EOS令牌(例如REX池)。该模型通过抵销建立EOS的收入和租赁CPU的费用,将CPU分配给建立EOS的持有者。假设你的EOS每个月增长1个EOS,你可以在租赁市场花费1个EOS并获得一些CPU。CPU数量将根据当前价格动态变化。显然,一些CPU租赁费将根据标记的百分比直接返回给您。
通过租赁分配100%的CPU,不再有动态的令牌供应给CPU,也不需要担心人们从REX中提取EOS会对CPU租赁市场及其定价算法造成冲击。
此外,CPU时间变得不可转移,因为所有CPU时间都是通过从系统合约中租赁而不是通过标记EOS来分配的。这消除了CPU定价的投机成分,并确保每个人都在相同的资源模型下操作。
可以使用一个简单的等式来确定租期为30天的CPU总时间的固定百分比所支付的金额。
下面的图表显示了1亿EOS * 2%的租金。根据这个等式,一旦网络租用了大约10%的容量,租金收入将超过EOS通胀率。EOSIO治理的未来版本可能会选择向区块生产者支付一定比例的租金收入,这将使他们在最大化网络效用价值方面的利益一致。原则上,社区可以使用任何常数指数来确定价格曲线。较高的指数将允许更大比例的网络被廉价利用,但是当利用率接近100%时,价格将更快地提高。理想的指数应该平衡供给和需求,以最大化总租金收入减去区块链运营成本之间的差额。
因为那些租用CPU的人分布在一个Pareto分布中,我们预计会有大量的大型租户同时租用和/或更新CPU。这可能会导致租金突然下降,然后上升。如果没有一个“订货单”来捕捉租金下降的趋势,可能会给较大的租户带来不受欢迎的定价优势。因此,我们建议租金下降的速度要比上升的速度慢。给定一个定价函数P(TotalUsage),新CPU租金的发行价格将是MAX(P(CurrentUsage), P(DailyAvgTotalUsage))。如果价格过高,那么当前的总使用量将下降,随着时间的推移,DailyAvgTotalUsage也将下降。如果当前的总使用量突然增加,那么价格将迅速攀升,以防止CPU的供应被消耗。
我们可以考虑这个算法的变化,比如将DailyAvgTotalUsage重置为CurrentTotalUsage,即CurrentTotalUsage大于DailyAvgTotalUsage。这将导致平均算法对需求增长做出快速反应,而在没有新需求的情况下,仍会在24小时内逐步降低价格。
upon unstaked EOS一个用户想要获得30天内1%的CPU供应,需要付出的代价是:
MAX(P(CurrentTotalUsage+1%),P(DailyAvgTotalUsage+1%))) — MAX(P(CurrentTotalUsage),P(DailyAvgTotalUsage))),或更简单地说,他们将需要支付在当前利用率下收取的租金收入总额与预计在新的利用率水平上收取的租金收入总额之间的差额。
从REX迁移
新设计之所以成为可能,是因为与REX不同,“CPU”不可能从租赁市场中撤出。REX算法必须平衡借贷双方的需求。在这一过程中,贷款人最终要等30天的租约到期,或者潜在的租客最终没有任何EOS可供出租,因为贷款人要求收回他们的EOS。在当前的REX模型下,没有一种简单的解决方案能为承租人和贷款人都创造理想的简单性。
解决这一问题最直接的方法是通过随时间“膨胀CPU供应”,逐步将当前模型下分配的CPU百分比转移到新模型。这可以通过在系统合约中实现一个新的操作来实现,该操作允许租借CPU分配,然后分配“虚拟CPU -stake”,从而将总的CPU staked(不管是拥有的还是租借的)稀释到现有的CPU。这并没有增加EOS的供应,相反,它只是调整了决定分配给每个帐户的CPU比率的参数。目前,系统合约将这个1:1连接到staked CPU的EOS,但是底层的EOSIO协议只知道相对的CPU权重(分配给您的帐户的权重除以分配给所有帐户的所有权重之和)。
如果新资源市场创造的“CPU”供给逐渐增长到EOS供给CPU的100倍,那么新的租赁市场将有效控制EOS 99%的CPU时间。最终,当所有人都转向CPU/NET租赁市场时,将EOS绑定到CPU和NET可能会被弃用和删除。
然后,新CPU租赁市场的收益就可以像姓名拍卖和RAM市场费用一样,直接投向那些押注于REX的人。这个解决方案可以使CPU立即可用,而且价格合理。随着时间的推移,REX市场的利用率将下降,新的CPU市场将取而代之。
如果被社区采用,那些拥有EOS并为自己持股的人将不得不从新的市场转向租用CPU,因为他们现有的持股EOS将在整个CPU市场中占有越来越少的份额。我建议在一年的时间内将CPU逐步引入新市场,让人们有机会迁移他们的CPU资源策略。
最终,为CPU配置EOS和从REX租用EOS的能力可能会因为新的提议的CPU市场而被弃用。
适用于CPU的一切也可以适用于与CPU市场具有相同动态的网络市场。
终端用户的可用性
许多应用程序和钱包已经采用了CPU的第一授权方付费模式,消除了最终用户不得不考虑租用或占用CPU带宽的麻烦。这一新的提议将反映类似的平台,在这些平台上,从云提供商那里租用服务的应用程序提供商通过订阅、广告或产品销售等多种货币化策略来支付成本。
结论
建议的CPU租赁市场将稳定CPU价格,降低CPU租赁成本,提高CPU访问的可预测性。CPU和净租金的收益仍然可以分配给REX的投资者。然而,最大的变化将是逐渐失去永远“拥有CPU”的能力,通过将EOS作为共享CPU的筹码。结合服务提供商为其用户支付每笔交易的CPU成本的能力,这将使基于EOSIO的网络成为市场上最容易使用和最具成本效益的解决方案。
作者:Daniel Larimer
编译:共享财经Neo