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

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

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

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

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

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

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

Strike正在基于比特币的萨尔瓦多汇款中逐步淘汰USDT:金色财经报道,Strike首席执行官Jack Mallers表示,在萨尔瓦多建立基于比特币的支付系统的初创公司Strike正在逐步停止使用Tether的USDT稳定币作为美元替代品。Mallers表示,Strike现在正在与该国最大的五家银行和两家最大的取款机分销商进行整合。人们将可以用实物现金交换移动应用程序上余额,反之亦然。整合可能会消除USDT作为替代美元的需要,因为Strike将能够在银行持有客户的余额。[2021/6/22 23:55:02]

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

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

BiKi合约新版本上线:据官方消息,BiKi合约羊城破冰合作伙伴私人晚宴于今晚在广州开启。晚宴期间,BiKi运营副总裁Jme公布BiKi新版合约正式上线。

BiKi新版合约在优化展示界面的同时,新增以下功能:支持同时查看所有合约仓位,方便更好管理仓位;?多空转化?,一键平掉现有仓位并开相同数目的反方向单,快速把握行情;一键平仓,以市价平掉现持有的所有合约仓位,操作便捷;快速补仓,可不断调整持仓均价;风险度提示,清晰查看仓位风险情况,主动管理仓位风险。

BiKi永续合约自上线来已累计开通22个主流交易对,更多币种持续开放中。近期还将更新开仓止盈止损、分批止盈止损功能等。[2021/5/14 22:04:00]

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

现货黄金跌破1890美元/盎司,较日高回落逾35美元:现货黄金跌破1890美元/盎司,较日高回落逾35美元,日内跌超1.5%。[2020/10/13]

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

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

实现这点有两个方法:

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

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

还有两个混合选项:

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

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

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

来源 | ethresear.ch

作者 | Vitalik Buterin

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

区块博客

XMR为什么我们需要波卡 波卡的跨链网络效应是什么?

“波卡知识图谱”是我们针对波卡从零到一的入门级文章,我们尝试从波卡最基础的部分讲起,为大家提供全方位了解波卡的内容,当然这是一项巨大的工程,也充满了挑战,然而我们希望通过这样的努力让大家能够正确认知波卡,也让不了解波卡的人方便快速掌握波卡相关知识,今天是该栏目的第4期,来讲一讲我们为什么需要波卡。

以太坊价格DeFi借贷与杠杆的演变、必然趋势和副作用

杠杆一词在传统金融市场内一直是风险的象征,在数字货币市场内杠杆却被运用到淋漓尽致,其根本的原因在于市场的人群风险偏好不同,同时DeFI去中心化金融与传统金融的银行核心的运作模式区别,在银行为核心的运作体系之中,银行通常会使用杠杆为自身提供更高水平的收益,而官方最关注的是银行体系的整体稳定性,一旦银行系统过度杠杆化带来风险,所面临的就是官方为银行买单。

欧易交易所数据解析摩根大通眼中的Staking蓝海赛道

细心的朋友会发现,最近传统金融公司开始吹起了Crypto领域的权益证明(PoS)资产和Staking质押服务。 华尔街/中央银行机构通常并不喜欢能源密集型工作量证明(PoW)加密货币,尤其是比特币,这已经不是什么秘密,就连埃隆·马斯克(Elon Musk)这样的科技狂人此前也抨击过比特币耗能的问题。

比特币价格比特币矿业大变局:有人高位套现离场 有人奔向诗与远方

这两天行情真不错,比特币引领其他币种一路上涨,成功突破35000美元关口。行情反弹,沉寂已久的币圈仿佛一下子活跃起来,有人甚至直呼:“牛市回来了!” 与炒币者相比,矿工朋友却沉寂得多。自挖矿大省政策之靴纷纷落地,矿工们不得不面对自己悲催的处境,而最痛的哭泣往往掉不下半滴眼泪。 “踩着矿机行情的高点入场,花了30万买的S19,最终只好5万割肉离场。

[0:15ms0-7:882ms