TME:EOS创始人BM最新文章:重构 EOSIO 资源分配_SMEX

来源:MEET.ONE

编者注:原标题为《BM:重构EOSIO资源分配》

今天,BM在Medium上发表了关于《重构EOSIO资源分配》的文章,针对CPU问题提出了全新的方案,编者简要概括要点如下:

原模式的弊病:

当前REX出现的问题是由于设计理念和现实情况有差距,例如赎回或购买REX都是二八分布而不是正态分布;

原模式下,未来特定时间能分到的CPU时间数是不确定的,受多个因素干扰;

因此,需要重构整个EOSIO的资源分配。

新模式:

所有要用CPU的人,都需要去新的CPU租赁市场租,取消抵押EOS获取CPU的分配机制

CPU租赁成本变得可预测,所有人可根据公式计算不同出租率下,需要支付的租金

CPU出租获得的收益,甚至可以抵消EOS网络通胀率,替代支付节点的出块奖励;

新CPU租赁市场的收入依然可能转入REX池,但未来REX的功能更趋向于吸引用户抵押,但不主导CPU租赁市场的价格;

虽然所有人去新市场租CPU是需要花费的,但由于租金收入转入REX池,所以会变相回到EOS持有者的口袋,用得多花得多,用得少有收入。

编者评价:?

BM今天的文章非常长,可能很多人乍一听觉得EOS又复杂了,但其实对于普通用户而言,应该是好事:

首先,就是因为用EOS交易的人越来越多了,所以才堵了,那怎么办呢,开始采取更合理的市场调控手段,也就是说你单看每笔转账,确实需要向一个“统一的CPU租赁市场”买CPU才能操作,也就是单笔转账是要付钱了。

EOS突破4.8美元关口 日内涨幅为4.33%:火币全球站数据显示,EOS短线上涨,突破4.8美元关口,现报4.8006美元,日内涨幅达到4.33%,行情波动较大,请做好风险控制。[2021/2/13 19:40:12]

但是,如果你持有EOS并抵押到REX的池子里,你就能按抵押的EOS的比例获得全网的手续费。这跟以太坊不同,人家是矿工都拿走了,而EOS是tokenholder也有获利。而且EOS网络越繁荣,交易越多,越是普通的持有者就应该笑开花了,租金收益是指数增加的。甚至节点收入都能cover,如果节点收入越来越多,那节点就会更专心的做贡献。

而且现在EOS钱包功能升级这么快,底层改了对应的钱包功能很快会跟上,没有太大的学习门槛。

那下面呢就是原文翻译,为了帮助大家阅读,我适当增加了标题及白话解释。

原文如下:

EOS是第一个广泛被采用的公链,它最近的数据是每秒处理800次转账交易,人们对交易的需求是如此之高,以至于REX里可以租赁的CPU消耗殆尽。本文旨在探讨为什么REX出现无法出借CPU的问题,并提出一种新的解决方案,确保CPU按合理的市场价格稳定分配。

原CPU机制1——抵押EOS获得对应CPU

当用户质押EOS后,可以分配到对应比例的CPU。但当前CPU使用价格已经被市场高估,也就是说大多数人需要使用EOS来租赁所需的CPU。如果是自己抵押EOS获取CPU,则需要非常多的EOS,且需要承担EOS价格波动带来的风险。

原CPU机制2——REX租赁市场

REX的目的是设计一个自动分配CPU使用权的市场,让那些没有太多EOS但想要使用CPU的人可以使用整个网络。这就带来了新的挑战——既要保证合理的CPU租赁价格,又要维护EOS持有者的权益。如果价格太高,那么没人愿意租赁,这样网络资源利用率并不高,而如果定价过低,则EOS上可用的资源过度消费,最终反而也导致了CPU不可用的问题。

EOS跌破3.9美元关口:火币全球站数据显示,EOS短线下跌,跌破3.9美元关口,现报3.9美元,日内涨幅达到5.16%,行情波动较大,请做好风险控制。[2021/2/10 19:28:35]

我们设计REX时使用的算法是当可供租用的EOS的剩余供应量接近0时,将租赁价格提高到无穷大。但最近REX陷入了不管什么价格,都没有余粮可以租的情况,这是因为那些提供可租EOS的人可以随时随时赎回EOS,我们没考虑到现实中REX会有如此巨额的赎回发生。

但是不必担心,REX目前是正常运行的。虽然目前大家在排队等赎回,但是最终当REX里租出去的CPU,用户是可以赎回自己的EOS的。

REX为何出现当前的状况?

REX之所以发生这样的情况,是因为当初的设计算法是这样考虑的:

用户对EOS租金的需求是正态分布的;

REX借贷的需求是正态分布的;

租金上涨将催生更多的人向REX提供新的EOS,即供应更多CPU;

REX的赎回支出可被产生的租金收益所抵消,总体维持稳定的供应。

但事实上:

存入REX的数额受到二八分布规则的约束;

赎回REX的资金也受二八分布规则影响;

向REX租用CPU的需求也是二八分布;

出租者可以在30天租赁期到期前提取已经获得的租金收入;

因为理论和现实有差异,所以导致了目前REX存在的问题。

全新设计的CPU分配

REX的当前状况是EOS公链网络资源分配策略逐渐演变的结果,为了最大程度地发挥设计解决方案的灵活性,我们希望考虑如果不受过去设计的限制,可以采取哪些不同的措施。如果可以构想出更好的解决方案,那我们可以进一步加以设计,即基于现有的REX衍生出更好的方案。

EOS在1小时内跌幅超过3.00%:据火币全球站数据显示,EOS/USDT在1小时内出现剧烈波动,跌超3.00%,达到-3.00%。当前报价为 3.39 美元,行情波动较大,请注意风险控制。[2020/8/21]

目前我们看到社区最大的抱怨是CPU太贵了,其次是抱怨特定时间下,能分配到的带宽时间是不可预测的。鉴于高昂的持仓成本和低利用率,这些抱怨的根源可能与先前想要降低CPU价格有关。EOSIO想要用token来实现资源定价,比如你有1%的EOS就意味着您可以永久拥有1%的CPU资源使用权,类似于购买永久居住的房屋。

不可否认的是,现有的CPU所有权模型为EOS带来了巨大的实用性,但也不可避免的造成了用户必须拥有大量的EOS才能使用网络。而现今的市场环境下,所有可以交易的加密资产都被赋予了超过“预期使用价值”的“投机价值”,也就是说对于一个开发者而言,如果他只是想要使用CPU,而为了使用CPU去买大量的EOS,他承担了EOS价格剧烈波动的巨大风险。而且当EOS价格波动剧烈时,CPU的真实成本将随之不可预测的波动。

因此在原有模型下,为了降低CPU成本,我们还引入了“部分备用CPU”的概念。。但这也不可避免的给CPU分配增加了不可预测性。

上个月,我们推出了将任意账户列入灰名单的可选项,并且取消了1000倍放大分配的机制,鼓励用户使用REX.因为和自己抵押EOS获取CPU相比,直接去REX里租非常便宜。但即便这样做了,每个EOS对应的CPU时间的可预测性仍然取决于放在CPU上的EOS的百分比。

这是什么意思呢?可以想象一下,你是唯一一个质押EOS获得CPU的用户,那么您就获得了100%的CPU分配,假定另外一个用户抵押的EOS数量是你的100倍,那你这边分配到的CPU马上就变成了原来的1%。这就是当前REX里的CPU分配和CPU原抵押分配机制存在的矛盾。

EOS在1小时内跌幅超过3.00%:据火币全球站数据显示,EOS/USDT在1小时内出现剧烈波动,跌超3.00%,达到-3.39%。当前报价为 2.55 美元,行情波动较大,请注意风险控制。[2020/5/21]

此外,除了1000倍放大机制,没抵押的EOS也随时可以抵押到池子里,这些变量全部导致了CPU分配的不确定性和不可预测性。

理想算法

在理想算法下,CPU没有投机价值,并且您保留的CPU时间将是固定的和可以预测的。此外,您依然可以租赁CPU,而不用花大量的EOS获取,减少二级市场波动带来的风险。

最后,市场上总会有可用的CPU,只是价格不同,因此在一段时间内CPU的租赁价格将趋于稳定。

那么,要实现这一目标,应该怎么做呢?

所有的CPU资源都应该从系统合约中租赁,租金以EOS定价,且这个价格随着CPU对外租赁出去的百分比的增加而呈指数增长。

而CPU租赁获得的收入将分配给EOS抵押池。这一模型通过将抵押EOS获得的收益和CPU租赁支出两相抵消,从而保留了CPU分配给抵押EOS用户的理念。

例如,你质押的EOS每个月可以获得1EOS的收入,而你可以拿这1EOS去租赁市场得到对应的CPU。而你能获得的CPU数量则是根据市场价格所变动。显而易见的是,在这样的情况下,部分的CPU租赁收入将根据您抵押EOS的占比返还给您。

通过将100%CPU全部分配到租赁市场,您就不需要抵押自己的EOS来获取CPU,也不需要担心有人从REX赎回导致CPU定价机制波动。

此外,CPU变得不可转让,因为您所获得的CPU时间是系统合约中租赁而来的,并不是通过抵押EOS分配的。这消除了CPU定价的投机成本,确保每个人都在同样的资源模型下运行。

行情 | EOS 1小时涨幅超过2.50%:据Bitfinex数据显示,EOS 现报价3.49美元,1小时内涨幅超过2.50%,波动较大,请做好风险控制[2018/11/26]

这样一来,你要租赁多少比例的CPU时间,都可以根据一个确定的公式快速计算得出。

下面这张图显示了1亿EOS的总池子下,不同的出租比例下,CPU的价格。如果用了这个算法,也就是说当10%的CPU被租出的时候,租金收入将开始超过EOS的通胀率。也就是说,未来版本的EOSIO治理模式可能是选择向节点支付一定比例的租金收入,这将使得他们利益一致,能够尽力提升网络效用价值。

理论上而言,社区可以使用任意的参数来确定CPU租赁价格曲线的指数形态,较高的指数将允许低成本利用大量的网络资源,但随着利用率接近100%,价格将显著增加。理想指数将平衡供求关系,以使总租金和区块链运营成本之后的差额最大化。

因为租用CPU的人是二八分布的,所以我们预料到会有大量同时租用和/或续租的大型租户。这可能会导致租金突然下降后又突然上升。如果没有一个“订单薄”来捕捉租金下降的趋势,这可能会给大型租户带来不受欢迎的定价优势。

因此,我们建议租金下降的速度要慢于租金上升的速度。给定定价函数P(TotalUsage),一个新的CPU租用率下的租赁价格是MAX?(P(CurrentUsage),P(DailyAvgTotalUsage))。即分别取当前用量(CurrentUsage)下的定价和当天平均用量(DailyAvgTotalUsage)的定价这两者之间的最大值。

如果租金价格太高,当前用量将下降,并且随着时间的推移,当天平均用量也下降,如果当前用量突然增加,则价格迅速攀升,以防过度消耗。

我们也可以考虑这个算法的变体,例如当CurrentTotalUsage大于DailyAvgTotalUsage时,将DailyAvgTotalUsage重置为CurrentTotalUsage。如果没有新的需求,这将导致平均算法快速响应需求的增长,同时仍会在24小时内逐渐降低价格。

如果你想要在30天内获得1%的CPU资源,则你要支付的价格等于:MAX(P(CurrentTotalUsage+1%),P(DailyAvgTotalUsage+1%)))—MAX(P(P(CurrentTotalUsage),P(DailyAvgTotalUsage))

或更简单地说,他们将需要支付预期的EOS=新使用率水平收集的租金收入总额-当前使用率收到的租金收入总额。比如当前网络租用率为20%,您要租用1%的CPU,则费率是21%的租金总收入-20%的租金总收入。

从REX迁移

之所以能够这样设计,是因为整个定价模型和REX是不同的,出租者不能将“CPU”从REX市场赎回,REX要平衡出租方和租赁方的需求,在REX里,租客要等待30天后租赁到期,或者是因为巨额赎回导致想租的人租不到EOS,因此REX并没有实现想象中的,同时给租户和贷方带来便利。

最直接的解决方法是随着时间的推移,逐渐增加CPU供应,将CPU算法从旧模式平稳过度到新模式。可以通过在系统合约中新增一项操作来实现,即允许租赁方式分配CPU,随后分配“虚拟抵押的CPU”,从而将总的CPU稀释为现有CPU中。

这不会增加EOS的供应量,而是仅仅调整决定分配给每个账户的CPU比率的参数。当前,系统合约只知道相对CPU权重,是根据您抵押EOS占比来1:1进行CPU占比的分配。

如果由新的资源市场创建的“CPU”的供应量逐渐增长到抵押EOS获取CPU的100倍,那么新的租赁市场将有效的控制99%的CPU资源。随着每个人都采用这个新市场,那么原有的抵押EOS获取CPU/NET的模式就可以弃用或删除。

紧接着就可以把新的CPU租赁市场的收益转给REX相关的人,就像短账户竞拍和RAM市场一样。这一解决方案将使得CPU价格恢复合理,随着时间的流逝,REX里的CPU资源利用率将不断下降,由新的CPU资源市场取代。

如果这个新方案被社区采用,那么拥有EOS的人将不得不转头去这个新市场租CPU,因为他们可以从新市场租到更合理价格的CPU。我建议在一年内将CPU逐步引入新的市场,改变旧机制。

这个方式不仅在CPU市场适用,对于NET这个资源的分配也同样适用。

终端用户的可用性

许多应用程序和钱包已经采用了“thefirst-authorizer-pays”的CPU模式,从而解决了用户不得不租用CPU的烦恼。我的这份新资源分配方式的提案反映了类似的方式,即应用程序开发者可以从云服务商那里租用服务,通过订阅、广告和产品销售等多种策略覆盖其成本。

结论

本提议中的新CPU租赁市场将有助于稳定CPU价格,降低CPU租赁成本,提高使用CPU支付成本的确定性。CPU和NET资源所获得的租金收益依然会分配给REX持有者,但是最大的变化是EOStoken是共享整个EOSIO网络CPU等资源的工具,而用户不再抵押EOS获得自己的CPU。结合服务提供商以每次交易为基础,为用户支付CPU成本的能力,这将使得EOSIO的网络成为市场上最易使用且最具效益的解决方案。

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

区块博客

[0:15ms0-6:987ms