Vitalik最新讨论:存储的分开定价和双轨EIP1559_币世界+白计划

2021-04-07 20:04 栏目:行业动态 来源:网络整理 查看()

以太网中的存储和计算是否需要单独定价?以太网状态模型最大的问题是平均状态增长和最坏情况状态增长之间的巨大差异。本文是维塔利克在以太网研究论坛上提出的一个新的讨论,它是由以太网研究科学家巴纳贝蒙诺特提出的关于实际实施EIP1559的想法的结合。

以下是原文的翻译,有部分文字被团队标注并略删。

作者:Vitalik Burerin

汇编:白色策划团队

特别感谢@barnabe在早期提出了类似的想法。

正如我在之前的《关于资源定价的立场文件》中详细讨论的,以太网中的气体实际上为三种不同的资源付费:

1.带宽(必须下载的交易数据)

2.计算(验证和执行交易的时间)

3.存储(历史,但更重要的是状态报表,如账户余额、随机数、合同代码、合同存储)

白色计划注:《关于资源定价的立场文件》是区块链资源定价的草案,其中维塔利克通过数学计算推导出相应的定价方法。

草案内容包括:价格与数量、社会成本曲线、第一次与第二次拍卖、可调整收费计划、仓储维护费、固定费用为什么没有得到充分利用。

带宽和计算是短期成本。与这两种成本不同,存储将超过短期限制。

一个节点在一个块中可以计算或下载数据的次数是有限制的。一旦块通过,下载和验证所需的数量就达到了限制。大部分块消失了(以后只需要少数同步节点处理)。

存储是一项持续的成本。如果单个块的状态增加100MB,现在可以处理该块,但是一系列的块会使Ethereum不可用。国家增长的“爆炸性”影响可以忽略,但长期影响最严重。超大型状态一旦建立,总会给网络增加负担。

但随着状态变得无状态(白色计划注:无状态Ethereum方案),则(超大)状态的长期影响会大大降低:状态不会对网络造成永久性的负担,只会承受一年左右,而在那一年,只需要少量节点实际存储那个(超大)状态。但是这个长期(一年)成本还是真实的,需要定价。

平均大小和最坏情况下的存储大小

在当前(状态)协议(一般认为是不可持续的)和状态过期的改进协议中,状态建模的一个缺点是平均状态增长和最坏情况状态增长之间的巨大差异。

考虑当前的协议。如今,这种状态的总大小约为5.5亿个对象,约为32GB(不包括trie开销)。如果我们把前一年所有未触及的州都剔除,总数很容易下降一半以上。

现在,最坏的情况是什么?

创建合同代码的成本是每字节200个气体。因此,如果将一个块划分为三个事务,每个事务创建一个合同,我们可以为12,334,800 gas 3 * 55,000 gas制作三个20,558字节的合同,以增加合同创建的成本。

这样,在单个块中,存储大小可以增加20600*3=61800字节。

假设平均块时间为13.1秒,每年有31,556,925/13.1=2,408,925个块,总体上可以增加状态61,800 * 2,408,925=1,488,716,003 81.67938字节,即138 GB左右。

这个差大概是10倍。(白色计划注:根据上下文,以下数据16GB是当年以太网的总状态)

很重要的一点是,消费类硬件RAM的实际大小可以是16GB(如果不是,我们可以调整Gas价格或状态有效期使其合适),而138GB是不能存储的。

如果我们能让最坏的情况接近平均水平,那就太好了。

双轨EIP-1559

解决这个问题的自然方法是对临时成本和永久成本使用EIP-1559定价,但调整期不同。

对于临时费用,价格可以一次性调整10%以上。但是,对于永久成本,价格调整会慢很多。

如果我们使用AMM成本曲线机制作为基础,我们可以考虑存储曲线,目标速率为每月1GB,成本的增加取决于我们比目标高多少:

例如,存储成本可能每超出目标1GB就会翻倍。在这种情况下,可能需要大约3天的时间,大宗价格才会翻倍。如果存储增长超过10GB,存储成本将是正常价格的1000倍,在经济上无法继续存储。

有两种方法可以做到这一点:

1.购买储物和天然气。也就是说,使用SSTORE创建一个新的存储插槽会像现在这样消耗气体,但是消耗的气体量是可变的。这样做的缺点是会产生(变相的)激励,用户更喜欢在燃气价格低的周末补充存储空间。

2.用ETH买储物。事务(和调用)需要在Gas之外提供另一种资源(我们可以称之为mana),它会采用类似Gas的机制,只是参数不同。这样做的缺点是它使CALLing规则变得复杂,并且需要添加一个新的call操作码。

请注意,这里有一个混合选项:

3.储物可由ETH定价,但由Gas收费(因此,如果基本成本增加2倍,则填充储物槽所需的Gas将自动减半)。我们可以从EIP 1559天然气价格更新规则中排除用于扩展存储的ETH,甚至阻止限制。

4.把Gas转化成三个概念:Gas,执行点,存储点。1Gas=1wei分配天然气的交易只是意味着它正在将其一部分转化为一种特殊的形式,可以用来支付资源。就呼叫和子呼叫之间的转移模式而言,这种形式的工作方式与Gas相同。

然而,AMM现在管理两个成本:执行点成本和存储点成本。一个执行进程在处理一个当前消耗N Gas的操作码时,会花费N个执行点,也就是说需要N* execution_point_cost来支付Gas。需要1个存储点来填充存储插槽,因此需要storage_point_cost来填充Gas。

最后,应该注意的是,退款预计将从状态截止日期的路线图中删除。这是由于技术原因:存储槽不能“清空”,有资格退款,所以只能设置为零,零记录必须保持这种状态,直到周期结束,这种状态可以过期。这大大降低了早期尝试存储租金的复杂性。

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发