自上一版无状态以太坊的全面 “路线图” 发布以来已经过去了一段时间,现在很多东西都发生了改变。似乎又到了需要 “全都写下来” 的时候了。
我们没有在解决无状态挖矿的问题。
我们没有在解决?DSA(动态状态访问)问题,也不准备出于执行的目的为事务附加见证数据(witness)。
很难确定我们的目标到底是什么。但是我认为,只要我们着眼于需求,自然会出现一个目标梯度。
通过区块见证实现无状态验证者
我们 希望/需要 验证者无需保存完整的状态就能验证区块。一种提议是在协议中要求为区块附加区块见证,以便客户端使用区块见证数据来验证执行区块得到的状态根。
为此,我们需要:
A:大大缩小见证(就当前的十六进制帕特里夏树而言,见证数据大小最高可达 100 MB)
加密基金公司Valkyrie 5月15日提交一份新的比特币期货ETF申请:金色财经报道,加密货币基金公司 Valkyrie 5月15日再次提交了一份新的比特币期货交易所交易基金(ETF)申请,该基金希望在纳斯达克交易,股票代码为“BTFD”。BTFD与已经进行交易的BTF基金不同,这只基金将被杠杆化。
据悉,Valkyrie 的两个以比特币为中心的基金都没有直接接触比特币。他们都使用CME交易的比特币期货。[2023/5/16 15:06:38]
B:让验证者可以连同区块一起获得可靠的见证
我们使用 Verkle Trie 来解决需求 A ,将证明开支降至恒定大小(从理论上来说,根据当前 1250 万的 gas 上限来估算,证明大小的上限约为 800k,平均约为 200k)。另请参见 "为以太坊状态应用 verkle trie 的提议"。还值得一提的是,统一 verkle trie 需要修改?SELFDESTRUCT?操作码的行为,或完全删除该操作码。
动态 | 欧洲央行执委Benoit Coeure将于下月向G7财长提交一份关于虚拟货币的报告:欧洲央行执委Benoit Coeure在出席完欧元区财长会议后在赫尔辛基举行的新闻发布会上表示,Libra是“一个警钟”。 Coeure还提到了一项鲜为人知的计划TIPS。该项目于去年启动,可允许消费者使用电子现金,这些现金将直接存入欧洲央行,而不需要银行账户、金融中介机构或清算对手方。Coeure称欧洲央行的这个项目在Libra发布之前就已经开始了,可能还会持续数月甚至数年。技术上的可行性仍有待观察,可能会遭到银行的反对。 Coeure还表示,他将于下月向G7财长提交一份关于虚拟货币的报告。[2019/9/14]
我们通过见证消息成为协议运行的一部分(很可能是将其作为区块头中的访问列表)来解决需求 B,以便收到该证明的人确认它是对应区块的正确证明。关于生成并通过 gossip 广播见证的责任归属尚未确定。
动态 | 律师公布了一份“印度禁止使用加密货币”的草案:据律师Varun Sethi分享的信息称,印度禁止使用加密货币的草案已经公开。第二部分草案的一部分写道:“任何人不得在印度境内开采、生产、持有、出售、买卖、发行、转让、处置或使用加密货币。本法案的任何规定均不适用于任何为实验或研究目的而使用任何加密货币基础技术或程序的任何人,包括向学生传授的人,前提是不得使用加密货币来支付或接受此类活动的付款。本法任何规定均不适用于使用分布式分类账技术创建网络,用于交付任何金融或其他服务,或用于创造价值,而不涉及使用任何加密货币进行支付或接受支付。”考虑到这么长的时间,政府表示正在“研究技术”和“理解加密货币”。据今年5月报道,印度官员提交的一份RTI文件,询问是否计划对加密货币实施全面禁令,但遭到了经济事务部(DEA)的拒绝。拒绝的理由是,审议工作已经结束,有关资料将很快公布。(crypto-news)[2019/7/15]
延伸阅读:为什么无状态性对于 ETH 2.0 来说如此重要?
声音 | BM:将发布一份公开的路线图披露Block.one所做的一切:据MEET.ONE消息,继昨日(3月3日)在电报群中发言“好事即将到来”后,3月4日凌晨 BM 再次现身EOS电报群,进一步解释他所说的“好事即将到来”指的是什么。BM称:(会发布)一份公开的路线图来披露我们所做的和将要做的一切,日期已经确定。[2019/3/4]
通过状态保质期(State Expiry)来抑制状态增长
区块提议者(或矿工)依然需要生成区块。我们不建议解决无状态区块挖矿的问题,因为这会将我们的目标变成减轻日益增长的状态维护负担。
我们的目标是对总体状态规模施以经济限制。我们计划通过“状态保质期”来实现该目标,详情请参阅:Resurrection-conflict-minimized state bounding, take 2 - #17 by vbuterin。
大致上讲,所谓的状态保质期,就是让状态在一段时间(大约 12 个月)后“失去活性”。失活状态不再由协议管理。任何与失活状态的交互都需要附带一个证明,让失活状态重新恢复活性。该方案不会将任何复杂的 “租赁” 机制引入 EVM,但它实际上还是强制实现了“状态租赁”。其结果就是为总体状态规模设置了严格的上限。
通过“门户客户端”实现无状态客户端架构
延伸阅读:Complete revamp of the "Stateless Ethereum" roadmap - #2 by dankrad
当前的 DevP2P 以太坊协议不能很好地支持无状态客户端。即使为支持无状态客户端而修改协议,这也并非易事。也就是说,仅依靠“关键路径”,我们就可以构建出适用于 Eth1+Eth2 合并基础设施的客户端,但是这些客户端对于大多数为了使用 JSON-RPC API 而使用客户端人来说没什么用。
另一项正在开展的计划是构建支持广泛部署超轻量级 “门户客户端” 所必需的网络基础设施。所谓的 “门户” ,就是指客户端可以查看网络和相关数据,但是不必通过任何有意义的方式参与协议。
“门户客户端” 将参与专为满足以下需求而设计的专用型点对点网络:
1. 按需检索任意状态。
State Network DHT - Development Update #2 - #5 by pipermerriam
2. 按需检索任意区块链历史。
Alexandria - HackMD(已经过时,但是从概念上讲具有代表性)
3. 参与交易 gossip 广播,但是无需访问状态。
Scalable Transaction Gossip - #3 by pipermerriam
4. 参与区块 gossip 广播,但是无需满足 DevP2P 以太坊协议的隐形要求。
任何想要吸引 JSON-RPC API 用户的 “无状态客户端” 都会参与这类网络。我们希望现有客户端会利用这类网络来让自己变得更加轻量级。
这不是实现 Eth1 + Eth2 合并这一主要目标的关键路径,但它有助于将无状态客户端扩展至除验证者以外的用例。
Regenesis(或许不会清理状态)
过去,“Regenesis” 有两个不同的涵义:
使用一个新的创世块来重新启动区块链,并就创世状态达成共识。
让状态“失去活性”,必须提供证明来让状态“恢复活性”。
活性/失活机制现已归类为 “状态有效期” 方案。
使用新的创世块来重启区块链有很多好处。其中,最主要的一点是,将所有客户端从历史分叉规则所带来的隐形需求中解放出来,让客户端变得更加简单。这也可以帮助节点缩短获得完整状态副本所需的同步时间。
Binary Trie
原本是用来减少见证大小的主要机制,现已被 Verkle Trie 替代。
参考阅读:EIP-3102: Binary trie structure
代码默克尔化
原本是用来减少见证大小的次要机制,现已被 Verkle Trie 替代。
参考阅读:EIP-2926: Chunk-Based Code Merkleization
原文链接:
https://ethresear.ch/t/an-updated-roadmap-for-stateless-ethereum/9046
作者:??pipermerriam
翻译&校对:?闵敏 &?阿剑
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。