弱无状态性 以及/或者 状态保质期机制:即将到来_Nexus:COV

以太坊基础层接下来面临的一大挑战就是处理日渐增加的状态数据:当前以太坊区块链的状态数据约有100GB,而且每年大约会增加50GB。日益膨胀的状态会让同步以太坊区块链、担当区块链的验证者变得越来越困难,还有使网络陷入中心化的风险;尤其,状态数据的增长还有可能变得更快。

现在,人们提出了两类技术作为短期内的解决方案:

状态保质期:从状态中移除那些近期没有被访问的状态对象,并且,在“复活”这些过期的状态对象时需要提供见证数据。这将使?每个节点?都要存储的状态数据限制在20~50GB。

弱无状态性:仅要求区块生产者存储状态,而所有其他节点都无需存储状态即可验证区块。

当然,也有更长期的选择如“完全无状态性”:可以认为是上述两种方案的极端形式,但更具有挑战性,因此可以认为在短期内没有投入太多时间的必要。

“Hot Chainers 首届大学生区块链应用设计大赛”战队分组已开启:据Hot Chainers 大赛组委会消息,今日“Hot Chainers 首届大学生区块链应用设计大赛”命题赛报名通道已经结束,目前六个战队导师已开始组建,分别是星火爱心会员服务部总监王梦瑶的“Z 世代战队”、WOW3 项目创始人翟晏辛的“FIRE! WOW战队”、小云互娱联合创始人李旸“Fantasy Team战队”、奇异火科技创始人张佳臻的“奇异火战队”、吃谁家创始人洪七公的“洪七公战队”以及艾拓普创始人胡舒敏的“凡尔赛队”。

在4月17日—4月27日战队培训期间,六个战队导师会在4月17日公布培训流程。具体来说,战队导师将安排组织不少于三场针对区块链知识、项目 BP 制作、路演经验方式等线上集中培训。并且在4月25日前选拔并推荐 2-4 个项目参加决赛项目路演,推荐优秀项目进入火币 Labs 创业营第七期。

在培训期间,导师须对参赛大学生关于区块链以及自身行业领域和相关项目提出的问题做尽可能及时且详尽的答复,指导参赛大学生理解区块链应用的商业逻辑,并形成项目BP。

此外,Hot Chainers 大赛组委会也会根据各位导师的培训进度及战队情况,并根据大赛最终结果以及各位导师在培训期间的相关情况,评选出本次大赛的“优秀战队”。[2021/4/16 20:28:24]

当然,状态保质期方案和弱无状态性也面临许多挑战),不过,不论哪一种方案,近来都有可观的进步,可以大大缓解我们面临的困难。

NBA TopShot将于三月中旬发布奥尼尔、麦迪、艾弗森卡包:推特博主TheFirstMint发布推特称其在Clubhouse获得确认,NBA TopShot将于三月中旬发布奥尼尔、麦迪、艾弗森NFT卡包,系列为run it back。据悉,NBA TopShot 是 NBA、NBPA 和 Dapper Labs联手打造的区块链收集游戏,把 NBA 比赛中令人叹为的精彩瞬间变成数字收藏品。2月19日,NBA TopShot官方发推宣布NBA TopShot的卡包销售和二级市场交易的总销售额达 1 亿美元。[2021/2/21 17:36:18]

关于状态保质期方案,关键难点在于:

如何组织状态的结构,使得不用的部分就会过期?我们是在账户层实现它,还是在存储槽层面实现它)

NFT藏家WhaleShark的NBA Top Shot账户近48小时估值增值近500万美元:1月25日,著名NFT藏家WhaleShark于推特发布了其两个NBA Top Shot账户的估值,两个账号总估值达1580万美元。此前,WhaleShark曾于1月23日在推特公布其NBA Top Shot账户总估值,彼时总估值为1090万美元。近48小时,WhaleShark的账户总估值增值近500万美元,涨幅约为45%。[2021/1/25 13:25:42]

灭活状态对象时应采取什么样的流程?尤其是,我们是接连不断地灭活状态对象,还是每隔一段时间实施一次灭活行动?“ReGenesis”就是后面这种策略的代称。

如何处理“复活冲突”问题?复活冲突是一个重要的概念。假设某些账户或存储槽在某些地址/位置创建好之后过期了;然后,该账户/存储槽又在相同的位置被重新写入;最后,有些人又尝试复活最初那个已经过期的对象。我们该如何解决这个过期又复活的状态与那个新创建的状态之间的冲突?我的文章有专门的一节详细描述了这个问题。

动态 | 比特币百度搜索热度整体同比下跌59%:据百度指数数据,近7日“区块链”搜索指数整体日均值为3963,整体同比下跌53%,环比下跌14%。近7日“比特币”的搜索指数整体日均值为16584,整体同比下跌59%,环比下跌21%。近7日“以太坊”搜索指数整体日均值为4823,整体同比上涨74%,环比下降26%。[2019/1/7]

至于弱无状态性,关键难点在于:

如何使用Gas重定价来限制见证数据的上限?,就仍然需要为访问每一个合约代码块施加成本)

见证数据的大小:见证数据即向无状态的客户端提供的、用于验证区块有效性的额外数据;这部分数据,即使有了合适的重定价措施,也有约4MB,对于我们这个每13秒就要广播一次区块的网络来说,还是太大了。

事务的广播:如果客户端并不能直接访问状态来验证事务本身的有效性,那事务要怎么在网络间传播、验证呢?

幸运的是,近来两种方法都取得了许多进展,这些进展似乎能解决绝大多数困扰:

一些技术能让ReGenesis类型的的状态保质期方案最小化复活冲突

PiperMerriam研究了如何在事务广播网络中添加见证消息使之适合无状态客户端;以及分布式的状态存储和按需可得性

Verkletree,可以将最糟糕情况下的见证数据大小从约4MB降低到约800kB的区块可达到约780kB,而我们也不得不处理)。看?幻灯片、文档?和?代码。

从理论到实际

两种解决方案都在开发中,可能现在是时候要改观、把它们当成是可行的路径而非研究领域的概念了。至少有一个需要在以太坊上实现。

那这就产生了一个优先级问题:如果我们不得不在两者中挑一个,哪一个更重要一些?Dankrad分析了弱无状态性;如果有详细讲解状态保质期的工作,那对照起来必定会很有趣。

另一个挑战是,让整个生态准备好付出转变的代价。举些例子:

弱无状态性需要用verkletree来替代二进制树,这会使现今所有的默克尔分支验证器失效

Verkletree也要求改变客户端的同步协议

我们还需要添加按代码块计算的Gas成本,这会让某些应用的Gas开销比当前的更大

状态保质期方案需要应用重新设计自己的合约,以高效地使用新状态需要新的版本和架构来处理这一点,虽然不更新也能继续用,但这样会更不便利,Gas开销也会更高)

依赖历史数据访问权的dApp需要切换到一些另外的协议/L2机制中,以访问1年以前的数据

好处

解决上述问题需要极大的毅力。但回报是丰厚的:

让更多人能够运行以太坊节点,帮助以太坊去中心化以及降低“Infura依赖风险”

启用以太坊的无状态验证,大幅降低成为PoS验证者的开销:实现之后,节点甚至可以选择性地验证以太坊应用的数据,例如:仅验证自己参与了见证的区块。这将使我们更接近我们梦寐以求的目标:保证用户使用容易买到的消费级硬件就能成为PoS验证者并且长期不变

提高区块Gas上限:缩减客户端的状态数据规模使我们能安全地大幅提高区块Gas上线,为用户提供更低的交易手续费。更小的状态数据意味着这些数据甚至可以放到内存中,因此每次访问状态的实际开销都会更小,因此我们有望安全地提高区块Gas上限。

让应用开发者更为确信,此番转变之后,协议的经济模型可以更坚固,而且未来不会再有太大改变,因为协议中主要的经济激励不兼容问题已经终结。

希望对该主题我们有更多的讨论,尽快开始开发必要的准备工作,为解决我们的状态问题、为更高的L1效率和可扩展性铺平道路!

原文链接:

https://ethereum-magicians.org/t/weak-statelessness-and-or-state-expiry-coming-soon/5453

作者:??Vitalik

翻译:?阿剑

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

金宝趣谈

[0:0ms0-4:538ms