织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 竞争币 > 以太坊

状态保质期是解决以太坊状态问题的重要方案,过期状态如何复活?

时间:2021-08-23 13:47来源:未知 作者:admin 点击:
原文标题:《干货 | 过期状态复活方法比较》 撰文:matt 翻译 校对:闵敏 阿剑 状态保质期是目前解决状态增长问题的推荐方案。在本文中,我们将状态保质期视为一种会定期让完整状

原文标题:《干货 | 过期状态复活方法比较》
撰文:matt
翻译 & 校对:闵敏 & 阿剑

状态保质期是目前解决状态增长问题的推荐方案。在本文中,我们将状态保质期视为一种会定期让完整状态树失效的机制。本文将讨论如何存储之前的周期(period),因为我们的关注点就是如何复活已经被遗忘的状态 —— 无论 n=0 还是 n=1

以下总结了一些机制提案:

清空

顾名思义,「清空」 就是什么都不剩:过了保质期的状态会立马失效,如果用户需要使用已失效状态中的部分数据,必须提供对应的见证数据(witness)。请注意,若要读取或写入还未在有效状态中初始化的部分,用户必须提供证明:要么是一个除外证明(exclusion proof)来表明这部分数据在之前任意时刻都没有初始化,要么是一个具体时间点的证明,然后再提供一个除外证明来表明这部分数据在这个时间点之后没有改变过。

  • 非常简单

  • 除外证明的大小会随时段数量呈线性增长,让初始化状态数据的成本变得异常高

  • 逃避了地址冲突问题

带周期标记的地址(PWA)

清空元数据的主要问题在于,初始化新的状态元素会产生很高的成本。通过让地址带上周期标记,以太坊协议可以创建一种机制来避免在初始化新的状态数据时产生地址冲突。鉴别器会设定账户最少能够存活到哪个时段。目前有两种方法可以实现 PWA:

地址空间扩展(ASE)

  • Vitalik 的文章

  • Ipsilon 的文章

太长不看:同时允许传统的 20 个字节的地址和 32 个字节的 ASE 前缀地址存在。在以太坊虚拟机中创建一个环境变量来修改涉及地址的操作码的行为,具体视相关地址是传统地址还是 ASE 地址而定。

  • 新的状态无需证明即可初始化。

  • 可扩展以保存其它元数据。

  • 解决地址冲突问题。

  • 需要对 EVM 进行大量修改。

  • 需要创建两种不同的 EVM 环境,分为传统模式和扩展模式。

  • 转换映射将无限增长(与传统环境中使用的长地址数量呈线性关系),而且无法用过期机制来抛弃似乎是可以有过期机制的,只不过(抛弃数据后)要承担一些地址冲突的风险。

  • 用户体验不佳,因为用户可以将资产存储在三种类型的地址上(短地址、长地址、压缩地址)。

  • 并非所有 Solidity 编译的合约的掩码地址都有 160 位,因此一些合约的地址可能会存在高阶脏位(dirty upper bit)。 (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容