Codex 是一种无云、无信任的 p2p 存储协议,旨在为以太坊生态系统及其他领域提供强大的数据持久性和耐久性保证。目前,EIP-4844 仅提供了数据膨胀问题的部分解决方案。费用仍然很高,生态系统几乎没有长期数据存储选项。
确定如何持久保存以太坊的多余数据将使其能够无限期地扩展到未来,而 Codex 的出现可以帮助缓解这些问题。让我们来探讨一下这个问题。
您是否曾在 Uniswap 上将 ETH 兑换成其他代币?
我通过 Metamask 连接并尝试用 0.001 Eth(约 35 美元)换取 SNT。gas 费用与交易费用一样多。对于加密货币交易来说,这个费用太高了。大多数人都不想支付这么多钱。
让我们来探究一下这些交易为何如此昂贵的根本原因。
近年来,Web3 和去中心化金融发展迅猛。由于新协议的快速开发和实施,以太坊区块链上的数据变得臃肿不堪。结果呢?Gas 费用高得令人望而却步,用户体验也很差。这种数据膨胀也可以定义为“网络拥塞”,交易数据会堵塞网络并破坏可扩展性。
本文探讨了区块链为何变得臃肿、交易吞吐量为何受到影响以及解决问题的各种方法。我将特别关注以太坊和 Rollups 环境中的数据可用性。我将探讨 Codex 如何为 DA 问题提供解决方案,但同时提供大多数其他解决方案所缺乏的数据持久性和持久性保证。
请耐心听我说完;我将使用专业术语和技术语言,但我会尽力用清晰的语言探讨这个至关重要、却被低估的话题。生态系统中的更多人必须开始努力理解数据可用性采样 (DAS) 对于扩展区块链的稳健性。在继续阅读之前,读者应该已经阅读了关于共识机制、权益证明以及该技术如何从高层次发挥作用的内容。
让我们首先来解析区块链的三难困境。
所有想要发展的分散技术都面临类似的限制。
他们希望扩大规模,让越来越多的用户采用该技术——从数千名用户到数百万名用户。然而,扩展不同的技术会带来不同的工程挑战。
以以太坊为例,链上的区块包含交易、状态和智能合约数据。使用网络的人越多,每个区块中添加的数据就越多。问题是,当区块开始填满时,就会出现一个费用市场,支付更高 gas 费的人更有可能将他们的交易包含在下一个区块中。
一个简单的解决方案是扩大区块大小并允许更多交易数据。然而,这种方法存在一个问题,这是区块链三难困境的一部分。
三难困境指出,区块链有三个主要特性需要维护和增强:可扩展性、去中心化和安全性。三难困境表明,试图改善其中两个特性会削弱另一个特性。
对于以太坊来说,升级区块容量也会增加在网络上运行完整验证节点的硬件要求。当网络以这种方式提高硬件要求时,普通人运行完整节点会变得更加困难——这会降低整体去中心化程度和抗审查能力,从而对网络产生负面影响。
从表面上看,这个问题似乎难以克服。幸运的是,开发人员和工程师正在重新思考区块链如何扩展。他们设想区块链及其生态系统是模块化的,而不是单一的。
必须重申的是,在网络上运行完整节点对于网络的成功至关重要。但“完整节点”或“完全验证节点”到底是什么?
全节点是下载所有区块链数据并执行网络上创建的所有交易的网络参与者。全节点需要更多的计算能力和磁盘空间,因为它们会下载完整的交易数据集。
袁汉丽撰写的一篇文章,题为“
“由于完整节点会检查每笔交易以验证它们是否遵循区块链的规则,因此如果不增加运行完整节点的硬件要求,区块链就无法每秒处理更多的交易(更好的硬件=更强大的完整节点=完整节点可以检查更多的交易=允许包含更多交易的更大区块)。”
维持去中心化的问题在于,你希望一些网络参与者运行完整节点。然而,这些节点需要巨大的计算能力,而对于大多数用户来说,购买和维护这些计算能力的成本太高。如果发生这种情况,它会极大地限制网络上的节点数量,从而损害整体去中心化。
主要问题是矿工和验证者可以隐藏网络中的数据,阻止其他人访问所有数据。这是“单片区块链”背景下的问题症结所在。
尽管这在生态系统中是一个被过度使用的流行词,但区块链中的“单片”概念意味着基础层(或以太坊区块链)必须充当结算层、共识层和数据可用性层,这会使系统充斥着数据,从而降低交易吞吐量并提高费用。
解决“单片”区块链这一问题的方法就是“模块化”其功能,并将数据可用性功能转移给其他网络参与者。在这种情况下,区块链的基础层将只充当结算和共识层。所有数据可用性要求都将转移给网络中的其他参与者。
现在我们了解了模块化的智慧,那么数据可用性到底是什么?为什么它对网络至关重要?
数据可用性是区块链作为不可改变的真相仲裁者所必需的。如果没有交易数据的可用性,没有人会知道区块链是否包含欺诈或无效交易。换句话说,没有人能够证明验证者和矿工是否有恶意行为。Emmanuel Awosika 的一篇文章对此进行了描述:
“数据可用性”是保证新提出的区块背后的数据(验证区块正确性所必需的)可供区块链网络上的其他参与者使用。”
重要的一点是:请注意“数据可用性”和“数据存储”之间存在差异。这个领域的许多人都混淆了这两者。数据可用性询问数据是否可用并且任何人都可以访问它,而数据存储意味着将数据长期保存在某个位置。从这个意义上讲,数据存储意味着“数据持久性”的概念。Celestia 的首席运营官 Nick White 提供了
如果你有罐头食品,它就代表着数据存储。食物在罐头里长期储存,可以随时取用和取出。从这个意义上讲,与“数据存储”相比,存在“数据持久性”的元素。相反,数据可用性更像是自助餐。食物准备好后摆放在自助餐桌上。每个人都可以品尝。数据可用性也是如此。
数据提供给网络主要是为了网络参与者可以验证数据的准确性和不包含恶意交易。
这就引出了一个问题:什么是“数据可用性问题”?
“数据可用性问题”是技术人员试图解决以扩大以太坊规模的核心问题。问题是,当全节点在生态系统中广播交易数据时,被称为“轻节点”的较小节点通常不具备下载和执行所有交易的硬件要求。
ledger.com 的一篇文章解释了轻节点的工作原理:
“轻节点不下载或验证交易,仅包含区块头。换句话说,轻节点假设区块中的交易有效,而无需全节点提供的验证,这使得轻节点的安全性降低。这个问题被称为数据可用性问题。”
在这种情况下,这些节点只需要知道数据是否可用,以及它是否代表区块链的当前“状态”。 “状态”只是链上存储的所有区块链数据、地址余额和智能合约值。 在以太坊区块链上,以目前的形式,轻客户端必须依靠所谓的数据可用性委员会 (DAC) 来提供链上证明,证明数据确实可用。
在以太坊扩展解决方案(称为 rollup)的背景下,必须提供这些数据,以便网络参与者可以确定这些数据是否符合网络规则。换句话说,他们需要确保数据准确无误,并且验证者不会试图欺骗轻客户端。
要进一步理解 DA 问题,理解 rollups 至关重要。Rollups 是第二层区块链,具有称为排序器的节点;这些排序器有助于对交易进行批处理、压缩和排序。Benjamin Simon
“rollup 本质上是一条独立的区块链,但有一些修改。与以太坊一样,rollup 协议有一个执行智能合约代码的“虚拟机”。rollup 的虚拟机独立于以太坊自己的虚拟机(“
简而言之,rollups 是一种链下扩容解决方案。然而,rollups 不会像许多“链下”扩容解决方案那样牺牲安全性。对于 rollups 来说,只有数据处理和计算在链下进行(通过序列器)。交易最终存储在第 1 层区块链上,以保证安全性。这种链上数据以前称为“ calldata ”。
从某种程度上来说,rollup 是社区“鱼与熊掌兼得”的方式;他们可以在扩展可用性的同时保持网络安全。这是一个巧妙的解决方案。
有两种流行的汇总类型:乐观汇总 (Optimistic Rollups) 和 ZK 汇总 (ZK Rollups)。
乐观汇总是讨论和部署最广泛的汇总类型。顾名思义,“乐观”汇总假设生态系统中至少有1 xn 个好参与者。这是什么意思?乐观汇总假设发布到网络的所有交易都是有效的。为了弥补这种“乐观”,汇总为网络提供了 7 天的时间来提交“
关于 Optimistic Rollup 的一个关键点是,它们大多与 EVM 兼容,因此开发人员可以高效地使用它们。因此,它们可以被视为以太坊更受欢迎的扩展解决方案。Optimistic Rollup 的两个示例如下:
ZK-rollups 使用零知识加密技术来证明其压缩和批处理的交易是正确且准确的。ZK-rollups 不会假设所有交易都是准确的(如 Optimistic Rollups),而是生成“有效性证明”来证明交易立即有效,从而消除任何等待期。
然而,众所周知,ZK-rollup 对开发人员来说可能更难使用,因为并非所有的 Rollup 都与 EVM 兼容。ZK-rollup 也需要大量计算,因为生成证明会消耗大量资源。尽管如此,越来越多的与 EVM 兼容的 Rollup 开始进入市场。
我之前提到过,rollup 需要某个地方来转储数据。正如前面提到的,大多数 rollup 都将数据推送到以太坊主链 — — 这导致了问题的症结:数据膨胀。当发生膨胀时,交易吞吐量会受到影响,交易和智能合约执行的费用会增加。
回想一下,解决方案的一部分是不依赖完全验证节点来确保网络安全。如果我们仅仅依赖这些节点,大多数用户将无法运行完整节点,因为硬件要求太昂贵了。(请注意,增加区块大小是一种潜在的解决方案,尽管值得怀疑,因为这条路径会对去中心化产生负面影响。尽管如此,这个特定的论点已经变得无效,因为 rollups 充当了维护主链安全性的第 2 层扩展解决方案)。
话虽如此,但如果不能让每个人都运行完整节点,解决办法是什么呢?
解决方案是让轻节点(以及全节点)无需下载和执行所有交易即可验证数据。这是问题的核心,也是以太坊网络(以及其他区块链)扩展的魔力所在。
第一步是建立一个数据可用性层,并配备一个强大的轻客户端网络来确定数据是否可用。但是,轻客户端通常只检查头数据,并依靠完整节点获取信息,它们如何确保数据有效且完整?答案可以在一种称为“数据可用性抽样 (DAS)”的数学技巧中找到。
DAS 是一种从数据块中抽取少量数据,并利用这些数据概率性地确定其余数据并重建数据的方法。许多组织(包括
Y = a[o] + a[1]x + a[2]x^2+...+a[k]x^k
这些函数用于确定丢失的数据并完全恢复。这通过创建 K of N 数据来实现,其中 K 是原始数据,N 是“奇偶校验数据”。如果部分原始数据丢失,节点的机器会利用称为
有一些明显的擦除编码应用示例。该方法已用于备份划伤的 CD。CD 中的擦除编码可以重建由于表面损坏而丢失的音乐片段。如果数据在浩瀚的太空中丢失,卫星也会利用擦除码。卫星或 CD 可以重建丢失的数据,为两个系统增加冗余保护。
Codex(以及 Celestia)使用的特定方案称为 2D 擦除编码方案。需要注意的是,2D 擦除编码虽然在加密生态系统中很流行,但并不是一项新技术。然而,它如何用于解决 DA 问题相当有趣。Bautista 博士解释了Codex 团队如何使用擦除编码:
“与 Codex 类似,将原始数据擦除编码为更冗余、更强大的数据结构是协议其余部分正常工作的基础,没有它就没有奇迹。在 Codex 中,这发生在想要上传数据的节点的 Codex 客户端内部,而在以太坊中,这发生在构建/提议区块的节点的共识/信标客户端的以太坊验证器内部。”
关于 Codex 数据之旅的故事还有很多,但这超出了本文的范围。请阅读 Bautista 博士的
Codex 旨在通过证明压缩实现同时的数据存储和检索功能以及数据可用性采样。这将允许处理临时数据(或长期不需要的数据),并且数据持久性和耐久性可保证其他项目可能缺少的数据。
关于如何扩展区块链的争论即将结束。在比特币生态系统中,关于如何扩展区块链的争论一直很激烈,从增加区块大小限制到利用第 2 层解决方案。事实上,两者的混合才是最合理的解决方案。例如,Codex 可以充当以太坊(以及其他区块链)的无云数据可用性层,允许区块大小增长,因为网络将包含许多节点来在网络上进行 DA 检查。
好消息是,这将增加网络的吞吐量,同时保持基础层的安全性。结果会怎样?没错,你猜对了:费用更便宜,交易更快。作为区块链用户,这才是我们最关心的。
有一天,或许很快,我可以用几美分的钱来兑换代币,而不是 35 美元。
by Sterlin Lujan