以太坊存储方案路线图:挑战和机遇并存

自EIP-4844之后,以太坊网络数据吞吐量与存储压力增长,为节点带来挑战。为降低存储压力,部分客户端删减历史数据已成标准。EIP-4444和EIP-4844确保所有客户端一致性。若要重放历史数据,需依赖中心化服务,促使探索更去中心化解决方案。以太坊门户网络提供P2P连接,适用于历史数据等所有以太坊数据。EthStorage是激励存储网络,存储BLOB需支付费用。未来计划包括发展去中心化以太坊状态网络。探讨存储成本、访问扩展,Portal网络与EthStorage集成等问题。致谢:以太坊基金会、Polychain等贡献者。

摘要:

· 自EIP-4844之后,以太坊网络的数据吞吐量与存储压力日益增长,不断增长的存储需求为以太坊节点带来了巨大的挑战。为了降低存储压力,部分以太坊客户端对本地仓储的以太坊历史数据进行了删减,不同的全节点在存储行为上的一致性被逐渐瓦解。

· 为确保所有以太坊客户端功能在行为上达成一致,EIP-4444和EIP-4844将历史数据删减行为进行了标准化,将在未来成为以太坊节点的标配。

· 因此,如果要重放历史数据来最新的Layer1或Layer2状态,要依赖于中心化的、以太坊协议外部的服务设施,这促使人们探索去更中心化的、与以太坊一致的架构解决方案

· 以太坊门户网络是一个轻量级、去中心化的P2P网络,适用于包括历史数据在内的所有类型的以太坊数据。它专门为资源配置的设备而设计,并提供以太坊JSON- RPC服务。历史网络和信标链网络几乎已经准备就绪。

· EthStorage是一个针对EIP-4844 BLOBs数据的激励存储网络。为了存储BLOB,用户可以调用L1上的存储合约,以ETH作为存储手续费,在链上记录下BLOB的哈希值。时间的推移,存储费用将逐渐分配给提供链下 BLOB 存储证明的存储服务商。

·目前EthStorage测试网正在以太坊Sepolia测试网上运行,多个社区参与者已成功证明了他们的本地存储状况。未来的计划包括开发一个去中心化的以太坊状态网络、实现动态大小数据的存储证明,并可以直接从浏览器以去中心化的方式访问EthStorage网络。

致谢:感谢以太坊基金会的 Piper Merriam、Polychain 的 Karthik Raju、EthStorage 的朱强对本文提供的反馈。

背景

背景:

2023年10月22日,著名的Go-Ethereum(Geth)开发负责人Péter Szilágyi在Twitter上表达了他对以太坊数据存储方案的担忧。他指出,虽然Geth客户端保留了所有历史数据,但Nethermind和 Besu 等其他类型的以太坊客户端,可以配置删除某些以太坊历史数据(例如历史区块)。这会导致部分客户端节点的行为与其他客户端不一致,对 Geth 客户端运行者来说很不公平。上述话题随即引发了关于以太坊路线储存方案的锻炼讨论。

存储挑战

存储的挑战

Nethermind 和 Besu 允许客户端运行者删除本地的历史数据?这决定了重点的问题是什么?从我们的角度来看,有两个关键:

  • 以太坊客户端的存储要求越来越高。
  • 存储以太坊历史数据没有任何协议内的激励或处罚。

第一个原因源于以太坊客户端不断上涨的存储需求。下面的饼图展示了接近2023年12月13日时,区块高度为18,779,761下,一个新的Geth节点的存储分配情况。

以太坊如图所示:

  • 总存储大小:925.39 GB
  • 历史数据(区块/交易收据):约628.69 GB
  • Merkle Patricia Trie (MPT) 中的状态数据:约 269.74 GB

第二个原因是,以太坊节点缺乏存储历史区块的协议内或惩罚。虽然该节点节点存储所有历史数据,未能提供任何来鼓励存储或惩罚违规的行为。并对外提供历史数据的提取权限,更多出于利他主义,而不是因为有激励措施。

当然,客户端运行者可以自由地删除或修改所有历史数据,而不会受到任何惩罚。相比之下,验证节点必须在本地维护并更新完整的状态,以防止因提议/投票支持无效区块因此,当存储成本成为节点的主要负载时,一些节点运营商选择删除历史数据就不足为奇。在没有历史数据的情况下,节点客户端可以显着着降低存储成本,将占用的存储空间从大约 1TB 减少到 300GB 左右。

以太坊图标:Nethermined 配置运行没有历史区块的节点 – 目前可节省约 460GB 的成本存储

随着即将到来的以太坊数据可用性(DA)升级,存储挑战即将加剧。全面扩容以太坊DA的道路始于DenCun升级中的EIP-4844,它引入了一个固定大小的二进制大对象(BLOB) ,和一个被称为 blobGasPrice 的独立费用模型。每个 BLOB 设置为 128KB,EIP-4844 实行后,每个区块最多包含 6 个 BLOB。为了对数据吞吐量进行扩容,以太坊计划采用 1D Reed-所罗门允许纠错码,最初每个区块有 32 个 BLOB,并在完全扩容时达到区块每个 256 个 BLOB 的量级。

如果以太坊 DA 以全容量运行(每个块 256 个 BLOB),以太坊 DA 网络预计今年将接收大约 80 TB 的 DA,该数字超出了大多数节点的存储能力。

以太坊

以太坊存储路线图及其后果

Vitalik 发布的以太坊路线图推文,提到了 Purge 主要涉及存储方面的内容。

以太坊不断上涨的存储成本引起了以太坊生态研究人员的。为了解决这个问题并确保所有客户端的一致性,研究人员正在制定一些提议来明确消除以太坊客户端的数据历史关注。两个主要提议是:

· EIP-4444:限制满足客户端中的历史数据:该提议允许客户端删除超过一年的过往区块。假设平均区块大小为 100K,历史块数据上限约为 250 GB(100K * (3600 * 24 * 365) / 12,假设区块时间 = 12 秒)。

· EIP-4844:分片 BLOB 交易:丢弃超过 18 天的 BLOB 数据。与 EIP-4444 相比,这是一种更激进的方法,将历史 BLOB 大小限制在 100 GB 左右((18 * 3600 * 24) ) * 128K * 6 / 12,假设出块时间 = 12 秒)。

删除所有客户端的历史数据会产生什么后果?主要的一个问题是,新节点无法通过“全同步”模式来同步到最新状态,“全同步”是一种将历史数据重放,从创世区块同步到最新区块的数据同步方案。相应地,我们必须采取“snapsync”或“statesync”来直接同步以太坊节点的最新状态。这种方法已在 Geth 中实现,并作为默认的同步运行方式。

节点删除掉以太坊主网历史数据,同时导致以太坊L2出现问题,即新加入的Layer2节点,无法通过重放Layer2全部历史数据的方法,同步至当前的最新状态。另外,由于L1节点不维护L2状态,L2的“snapsync”方法无法根据Layer1区块直接派生出最新的Layer2状态,这违反了Layer2继承以太坊坊安全所需的重要假设。

预计的解决方案将依赖 Infura / Etherscan / L2项目本身的第三方服务来存储 Layer2 历史数据或状态副本,这是通过协议外、间接实现的中心化解决方案。

我们要探讨的核心问题是:

  • 我们在存储和访问方面的扩展找到了更好的去中心化解决方案?
  • 是否有可能找到给予节点直接启发、得到以太坊网络本身保障(例如,靠L1合约实现)的解决方案?
  • 在这一切的基础上,我们是否可以为以太坊存储路线提供一种完全去中心化的、协议内部直接指导的解决方案?

解决方案1:以太坊 Portal Network

以太坊 Portal 网络是一个轻量级、去中心化的网络,用于连接到以太坊协议。它提供 eth_call,eth_getBlockByNumber 等以太坊 JSON-RPC 接口,将 JSON-RPC 请求转换为到以太坊表(DHT)的P2P请求,类似于IPFS网络。与允许存储任何数据类型且容易受到垃圾数据影响的IPFS不同,Portal P2P网络专门托管坊以太数据,如历史区块头和交易数据,是通过Portal网络内置的轻客户端验证技术即将实现。

Portal网络的一个重要特性是。其轻量级的设计以及与资源配置设备运行的兼容性。它可以运行在具有几MB存储空间和低内存的节点之上,从而促进中心化。手机或Raspberry Pi设备也有可能加入该网络,为解决以太坊DA问题做出贡献。

Portal网络的开发与以太坊客户端多样性的理念相一致,客户端采用Rust、JavaScript和Nim编写。信标网络和历史网络已正在使用,而状态网络积极开发中。意义在于,门户网络并不为数据存储提供直接的启发。

以太坊

图标:具有 100MB 存储限制的 Portal 网络Rust客户端(Trin)在运行中

解决方案2:EthStorage网络

EthStorage网络是一个去中心化的激励存储网络,专门用于存储EIP-4844 BLOB,并获得ESP项目的资助。

· 最小信任:与需要中心化数据桥的现有解决方案不同,EthStorage依赖于以太坊的共识和消耗许可的EthStorage存储节点的1/m信任模型。存储BLOB的过程是这样的:用户签署一个说明BLOB 的交易,调用存储合约的 put(key, blob_idx) 方法。,存储合约将记录 BLOB 哈希在链上。之后存储将直接从以太坊 DA 网络下载并存储 BLOB,从而绕过数据桥问题。

· 存储成本与激励一致:当调用 put() 方法时,交易必须发送存储费用(通过 msg.value)并存入竞争中。在链下存储节点成功并验证存储证明后,该存储费用将随着时间的过去逐步分配给存储节点。与现有的向出块者(提议者)支付瞬时存储费的以太坊存储费模型相比,随着时间的流逝,支付的存储费遵循贴现清算模型——假设随着时间的推移,存储成本将相对于 ETH 价格而降低。EthStorage 引入的这一重大创新使得费用和存储节点的存储贡献保持一致。

· 存储证明:存储证明是受到数据可用性的启发,而 EthStorage 中的采样是针对一段时间的保存的 BLOB。为了有效地验证链上采样,EthStorage 充分利用了智能和最新的 SNARK 技术发展。

· 无授权操作:EthStorage中的任何存储仓储数据并定期在链上存储存储证明,都可获得收益。

从区块链的角度来看,EthStorage相当于以太坊存储L2,但它收取的是以太坊存储费而不是交易费。通过在链上索引BLOB存储,EthStorage是一个以太坊模式存储层,提升存储可扩展性及成本降低(目标约为1000倍)。

在开发方面,EthStorage已经与以太坊Sepolia测试网上的EIP-4844集成。我们已对EthStorage和以太坊Sepolia测试网进行压力测试,包括将大约数百GB的BLOB写入EthStorage。超过100名社区参与者加入网络并成功证明了他们的本地存储。

EthStorage网络的主要优势在于在以太坊之上提供中心化的直接——就我们目前的知识而言,这是一个前置性的功能。然而,该网络的制约是专门为固定约束而存在的。 BLOB 大小而设计的。

以太坊

EthStorage 上以太坊 Sepolia 测试网的看板

展望未来

尽管以太坊存储已受到主要关注,但其在以太坊生态系统中具有重要意义。随着以太坊网络的快速发展,以太坊数据的存储和可访问性成为关键挑战。Portal网络和EthStorage网络还在早期阶段,还有很多重要的长期的发展方向需要关注:

去中心化低延迟访问的以太坊状态数据网络:以去中心化且可验证的方式访问以太坊状态是关键但又具有挑战性的任务。使用传统的DHT网络模型,查询账户信息通常需要对存储在不同的 P2P 节点中的内部 trie 节点进行多次查询。这往往会导致相当长的延迟。如何利用状态树的结构来加速访问是关键所在。以太坊 Portal 网络推出的状态网络,就是旨在解决这个问题

Portal网络与EthStorage网络的集成:Portal网络可以无缝扩展,支持BLOB数据。EthStorage团队部分已经实现了这个功能。下一步的进展,将使这些网络统一起来,提供一个去中心化的JSON-RPC网络,能够通过合约来对 BLOB 进行即时访问。通过将合约中的应用逻辑与 EthStorage 提供的规模化 BLOB 存储相结合,我们可以在以太坊上启用新的 dApp,例如动态的去中心化网站(例如去中心化) Twitter/YouTube/Wikipedia 等)。

浏览器的中心化访问:与访问IPFS网络中的数据的ipfs://协议类似,web3行业去以太坊访问协议的来支持浏览器直接访问,以释放以太坊丰富数据的巨大潜力。这些数据涵盖了广泛的领域,从代币发票和账户余额到NFT图像和动态去中心化网站,所有这些都得益于智能合约和未来以太坊存储的功能所实现。在这个领域,ERC-4804 /6860定义的web3://协议目前正在积极开发和推广,以实现这一目标。

动态大小数据的高级存储证明:除了固定的 BLOB 之外,探索解决动态大小数据的高级存储证明(例如历史区块甚至状态对象等)也势在必行。开发复杂的算法增强存储解决方案的适应性。

在我们的追求中,我们希望通过这些努力,共同为以太坊路线图做出贡献,为未来以太坊生态系统的去中心化存储解决方案奠定基础。

资讯来源:由0x资讯编译自互联网。版权归作者EthStorage所有,未经许可,不得转载
提示:投资有风险,入市需谨慎,本资讯不作为投资理财建议。请理性投资,切实提高风险防范意识;如有发现的违法犯罪线索,可积极向有关部门举报反映。
你可能还喜欢