火星链 火星链
Ctrl+D收藏火星链

GAS:Vitalik:存储的定价应该独立于执行吗?

作者:

时间:1900/1/1 0:00:00

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

正如我关于资源定价的旧文章里详细讨论的那样,以太坊的gas实际上是为三种不同的资源付费。

带宽(事务中必须被下载的数据)

计算(验证和执行事务所需时间)

存储(历史记录,但更重要的是状态,例如账户余额、nonces、合约代码和合约存储)

存储不同于其他两项开销。带宽和计算消耗的都是短暂开销,它触碰到短暂存储界限是这样的情况:一个节点在一个区块内能做多少计算或数据下载是有限度的,一旦该区块被打包了,下载和验证该区块的开销基本上都会消失(未来只有少数同步节点需要处理它)。另一方面,存储则是一项永久的开销。如果一个区块的状态大小增加100MB,这个区块在当下被处理没有问题,但当一系列这样的区块持续生成一个月后,整个以太坊会变得不可用。一时严重的状态增长带来的突发影响是可以忽略不计的,但长期的影响则是最严重的,因为每生成一个状态都永久地增加网络的负荷。

RSS3研发的“Web3 User Activity”插件在ChatGPT商店中上线:6月21日消息,RSS3团队宣布,由他们研发的一款名为“Web3 User Activity”的插件已经在ChatGPT商店中正式上线。“Web3 User Activity”插件搜集整合链上信息,并提供给ChatGPT。这一行动弥补了AI领域中Web3数据的缺失,使ChatGPT用户能够访问到更加全面的链上内容。[2023/6/21 21:51:41]

采用了stateexpiry和弱无状态方案后,长期来说状态的影响肯定会大大减少:状态不再永久成为网络的负担,一个状态将只会在一年内增加网络负荷,而且即使在那一年里,也只有少数节点需要实际存储该状态。但即使如此,这个长期开销还是会存在的,且仍然需要被定价。

Vitalik Buterin通过Archer Swap抛售超4000万美元meme代币:5月14日消息,昨日以太坊创始人VitalikButerin大量抛售meme代币中,超4000万美元通过ArcherSwap抛售。起初,V神通过Uniswap将meme代币换成ETH,然而由于抢跑导致交易失败耗费很多ETH,后V神转用ArcherSwap进行交易。

注:ArcherSwap可倚靠Uniswap和Sushiswap流动性,而不公开向mempool广播交易,由匿名团队开发的以太坊矿工可提取价值(MEV)套利产品Archer于三周前推出。[2021/5/14 22:02:16]

存储大小的一般情况vs最坏情况

无论是在当前的协议(普遍认为是不可持续的),还是有stateexpiry的改良方案,对状态建模的一个弱点是状态膨胀的一般与最坏情况间有巨大差异。想想当前的协议。当前状态的总容量是大约5.5亿个对象,或约32GB(不包括trie的开销)。如果我们把在前一年没有被触及的状态都拿走,状态总容量很容易下降一半。

VitalikButerin提议使用Flashbots系统实现“账户抽象”:3月11日消息,以太坊联合创始人 Vitalik Buterin 在研究机构 Flashbots 的 GitHub 仓库中提议利用 Flashbots 作为“账户抽象”的一种实现方式。“账户抽象”是以太坊社区中讨论的改进提案之一,以实现交易不需要从私钥控制的 EOA 账户发起,而是可以直接从智能合约发起,具体的用例包括智能合约钱包、Tornado.Cash 这类隐私保护工具等。Vitalik Buterin 认为 Flashbots 可以解决这个问题,通过搭建一个插件将其变成智能合约钱包的中继器以实现。他表示该方案不需要对以太坊底层协议进行很多改动。

Flashbots是由五位区块链行业人士发起成立的开放研究机构,旨在针对以太坊及各智能合约公链所面对的 MEV 问题进行研究,并实施解决方案。[2021/3/11 18:35:51]

那最坏的情况是什么?创建合约代码按每字节200gas来收费,如果我们把一个区块分为三个事务,每个事务创建一个合约,我们可以用"12334800gas+3*55000gas"作为合约创建开销来创建三个20558字节的合约。假设平均出块时间是13.1秒,那么每年会出31556925/13.1=2408925个区块,因此,一年的状态大小增长是~61800*2408925=148871600381.67938字节,或大约138GB。

Vitalik在Synthetix L2上质押了562枚SNX:浏览器信息显示,Vitalik在昨日在Synthetix的Layer2上质押了562枚,价值9700美元的SNX。[2021/1/26 13:33:07]

这接近10倍的差异是非常显著的!而且16GB特别符合现实消费者的硬件RAM(如果不行,我们可以修改gas价格或状态失活期使其可行),但138GB是办不到的。如果我们可以使最坏的情况更接近于一般情况,那就更好了。

基于EIP1559的两个方案

解决这个问题的一个自然方法是,用EIP-1559对短暂和永久开销定价,但使调整期(adjustmentperiod)不一样。对于短暂的开销,在单个区块里会有10%的变化幅度。但是对于永久的开销,我们会让价格调整得更慢。如果我们以AMM开销曲线机制作为基础,对于存储,我们可以考虑有一个条曲线代表每个月的目标比率是1GB,开销增长取决于我们比目标高出多少。例如,每超出目标1GB,存储开销可能翻倍。在这个参数里,最坏情况区块的存储价格可能需要大约3天时间才会翻倍。如果存储增长超过目标10GB,存储开销会比正常情况下高出1000倍,使得进一步填充存储在经济上变得不可行。

实现这点有两个方法:

用gas购买存储。也就是说,用SSTORE创建一个新的存储槽,这会像今天一样消耗gas,但消耗gas的数量是会变的。这有一个缺点,即保留了时间点的错误激励(用户会选择在周末gas价格低的时候增加存储,尽管这样对网络并没有好处)。

用ETH购买存储。事务(和调用)会需要提供gas以外的另一种资源(我们会称之为mana?),这种资源除了用不同的参数,会以与gas相似的机制进行收费。这个方法的缺点是它使调用规则变得复杂,且要求新增一个操作码CALL。

还有两个混合选项:

我们可以用ETH来定价存储,但以gas来收费。(因此,如果基本费用上涨2倍,然后填充一个存储槽所需的gas会自动减半)。我们可以把用来扩大存储的ETH从EIP-1559的gas价格更新规则、甚至区块gaslimit里排除出去。

对gas进行更全面的改革,把它拆分为三个概念:gas、执行点、和存储点。1gas=1wei;一个分配gas的事务只意味着它把一些wei转化为一种特殊形式,可用于支付各种资源。在它如何在调用和子调用间的传递方式上,这种形式的运作形式与gas一样。但是,现在有两种开销是由AMM来管理的:执行点的开销和存储点的开销。不同于执行处理一个操作码现在消耗的是Ngas,它消耗的是N执行点,意味着对N*execution_point_costgas收费。填充一个存储槽消耗1个存储点,因此storage_point_costgas会被收费。

还需注意的是,stateexpiry的路线图是包括移除gas返还的。这是由于技术原因,存储槽不能“变空”然后可用于返还;它们只能被设为0,而0的记录必须保留在状态里,直到该epoch结束且该状态失活。这大大减少了以前存储租金方案尝试的困扰。

来源|?ethresear.ch

作者|VitalikButerin

标签:GASVITVITATALugas币最新资讯Data Vitalvita币官网BlockPortal

火必交易所热门资讯
加密货币:随着全球监管机构施压 新加坡成加密公司避风港

随着全球其他国家或地区不断对加密货币行业释放监管信号,新加坡友好的监管环境成功吸引了来自世界各地的加密货币公司,这些公司正在扩大在新加坡的业务.

1900/1/1 0:00:00
加密货币:理解银行如何创造货币 对币圈为何非常重要(中篇)

这一系列的笔记相对比较硬核,整理也颇花了些时间。是来自北师大系统科学学院王有贵教授6月26日在苇草智酷上做的一个报告。报告原标题《货币稳定根源及其经济含义》.

1900/1/1 0:00:00
SWAP:分析22864个地址的Uniswap V3真实做市情况 77%都是被动流动性提供者

为什么做市商很重要?金融中的做市不仅仅是指x*y=k这一等式。在传统的中央限价订单簿市场中,做市商专门提交买方和卖方订单.

1900/1/1 0:00:00
ROB:金色观察|Robinhood的IPO申请能顺利成功吗?

7月2日,金色财经消息,根据向美国证券交易委员会提交的文件,美国股票及加密交易应用程序公司Robinhood今日递交了美股IPO申请,拟最多筹资1亿美元.

1900/1/1 0:00:00
LLC:观点:怀俄明州DAO法案想打造「DAO 大本营」 但注定事与愿违

怀俄明州DAO法案制造的问题多于它解决的问题,在修改该法案之前,任何类似的监管澄清尝试均不会起到辅助创新进行优化的效果。美国怀俄明州「让人惊掉下巴的」DAO法案在2021年7月生效.

1900/1/1 0:00:00
WOR:扩容带走了以太坊的热闹?沉默之后是爆发

近期,随着加密市场行情的走低,以及Matic、BSC等侧链的发展,以太坊链上交易的Gas费用大幅度降低,已经连续多日维持在10Gwei左右,在不活跃的时段,甚至低至5Gwei.

1900/1/1 0:00:00