一文了解数据可用性(DA)对区块链的要紧意义

2022-01-12 18:09

注:原文来自medium,作者是Blockchain Capital 高级剖析师Yuan Han Li。

你可能听说过,ETH的分片路线图基本上已取消了实行分片,目前它只专注于数据分片,以最大限度地提升ETH的数据空间吞吐量。

你可能还在近期看到了关于模块化区块链的讨论,深入研究了rollup并知道了volition或validium‌,然后听说了“数据可用性解决方法”。

但或许你会产生困惑,挠了挠头,然后问自己数据可用性到底是什么?

在大家深入研究之前,复习一下大部分区块链是怎么样工作的入门知识,可能会有所帮。

买卖、节点与著名的“区块链不可能三角”

当你遇见一个新的带有高APY的OHM分叉项目时,你的下一步行动可能就是猛按“stake”按钮,但当你实质通过Metamask提交该tx时会发生什么?

容易地说,你的买卖会进入mempool存储池,假设你给矿工或验证者的贿赂足够高,你提交的买卖就会被纳入到下一个区块中,并被添加至区块链。然后,包含你的买卖的这个区块,会被广播到区块链节点的互联网。全节点将下载这个新区块,实行/计算该区块中包含的每笔买卖,并确保它们都是有效的。比如,对于你的买卖,这部分全节点可能验证你没从别的人那里窃取资金,并且你事实上有足够的以太币来支付gas成本等等。因此,全节点实行了有关矿工/验证者的强制区块链规则的要紧任务。

正是因为这种机制,致使传统区块链遇见了扩容方面的问题,因为全节点检查每笔买卖以验证它们是不是遵循区块链的规则,区块链没办法在不增加运行全节点的硬件需要的状况下,每秒去处置更多的tx。但,假如运行全节点的硬件需要提升,那样全节点的数目就会降低,系统的去中心化属性就会遭到影响。也就是说,假如检查矿工/验证器工作以维持诚实的人降低,这将是危险的!

要让数据可用的需要,是大家没办法同时拥有全部3个区块链属性的重要原因之一

该机制还描述了在传统单体区块链中保证数据可用性的重要程度:区块生产者需要广播并提供来自其产生的区块的买卖数据,以便全节点可以检查其工作。假如区块生产者不让其生产的区块中的买卖数据可用,大家将处于如此一种状况:即全节点没办法检查他们的工作并通过实行区块链的规则集来维持矿工/验证者的诚实!

目前你知道了,为何数据可用性在传统的单体区块链中非常重要,让大家来继续讨论,它怎么样影响大伙最喜欢的可扩展性解决方法——rollup。

在Rollup环境中,数据可用性的重要程度

让大家第一回顾一下rollup是怎么样帮解决可扩展性问题的:与其提升运行全节点的硬件需要,不如降低全节点需要检查是不是有效的tx数目?大家可通过将tx计算和实行从全节点转移到功能更强大的计算机来达成这一点。

那这不意味着大家需要相信定序器吗?假如要维持低的全节点硬件需要,那样在尝试检查定序器的工作时一定会落后于定序器。

那样,大家怎么样确保该定序器提出的新区块是有效的?考虑到它已经被反复提过,我相信你已经知晓了这个问题的答案,但请耐心等待:

对于 Optimistic Rollup,大家依赖称为欺诈证明的东西来维持定序器是诚实的。但假如大家期望别的人可以计算欺诈证明,他们将需要定序器实行的买卖中的tx数据才能提交欺诈证明。换句话说,定序器需要使tx数据可用,不然的话,无人可以保证 optimistic rollup的定序器是诚实的!

而在ZK Rollup的状况下,要维持定序器诚实就容易多了:定序器在实行一批tx时,需要提交有效性证明,而这种有效性证明可保证没任何tx是无效的/恶意的。除此之外,其他人都可以轻松验证提交的证明。但对于ZK Rollup的定序器来讲,让数据可用仍然是尤为重要的。这是由于,作为上述rollup的用户,假如大家想用垃圾币,大家需要知晓Rollup上的竞价推广账户余额是多少。假如买卖数据不可用,大家将没办法知晓大家的帐户余额怎么样,并且将没办法再与rollup 进行交互。

请注意,以上内容让大家确切地看到了,为何大家一直在吹捧rollup。鉴于全节点无需跟上定序器,为何不让定序器成为一台功能强大的计算机呢?这将使定序器每秒实行的tx量达到可怕的程度,从而减少gas成本,让每一个人都感到开心。但,你还记得定序器需要怎么样使tx数据可用吗?这意味着即便定序器是一台真的的超级计算机,它每秒实质可计算的tx数目,仍将遭到其用的底层数据可用性解决方法/层的数据吞吐量的限制。

简而言之,假如rollup所用的数据可用性解决方法/层,没办法跟上rollup的定序器期望转储到其上的数据量,那样定序器即便想,也没办法处置更多的tx,这会致使大家今天在ETH上看到的gas成本暴涨的状况。

这正是数据可用性极其要紧是什么原因:保证数据可用性使大家可以确保rollup定序器的行为,假如rollup要最大化其tx吞吐量,则最大化数据可用性解决方法/层的数据空间吞吐量是至关要紧的。

但细心的读者可能会意识到,大家事实上还没完全解决确保定序器正常工作的问题。假如rollup结算的“父”区块链的全节点无需跟上定序器,定序器可以选择扣留大多数买卖数据。父区块链的节点怎么样强拟定序器将数据转储到数据可用性层?假如节点没办法强制实行,大家事实上在可扩展性方面没获得任何进展,由于大家将被迫信赖定序器,或者自己去购买超级计算机!

这一问题就被叫做“数据可用性问题”。

“数据可用性问题”的解决方法

数据可用性问题最显而易见的解决方法,就是强制全节点将定序器转储的所有数据下载到数据可用性层/解决方法,但大家知晓,这并不现实,由于它需要全节点跟上定序器的tx计算速率,从而提升了运行全节点的硬件需要。

因此非常明显,大家需要一个更好的解决方法来解决这个问题,而且,大家确实有一个好的解决方法!

数据可用性证明

每次定序器转储一个新的tx数据区块时,节点可用称为数据可用性证明的新创造“采样”数据,确保定序器确实提供了数据。

这部分数据可用性证明的实质工作原理很复杂,但无论怎么样,我都会去尽力讲解。

大家可以第一需要对定序器转储的tx数据块进行纠删码,这基本上意味着减半原始数据大小,然后新的/额外的数据用冗余片段编码。通过对数据进行纠删码处置,大家可以用任意50%的纠删码数据恢复全部原始数据。

但请注意,通过对tx数据块进行纠删码,这将需要行为不端的定序器扣留超越50%的区块数据。假如该区块没被纠删码,定序器可能会由于只扣留了1%的数据而出现错误-因此通过对数据进行纠删码,大家已经大大提升了全节点可以拥有些置信度,即定序器确实在使数据可用。

尽管这样,大家期望尽量多地保证定序器使所有数据可用,理想状况下,大家期望像直接下载整个tx数据块一样自信。事实上,这是可能的:全节点可随机选择从区块中下载一些数据。假如定序器行为不端,全节点被愚弄的可能性<50%,即当定序器试图扣留数据时,随机下载一段数据。这是由于,假如定序器试图行为不端并扣留数据,请记住,他们需要扣留>50%的纠删码数据。

请注意,这意味着通过第三实行此操作,全节点可以大大减少被欺骗的可能性。通过随机选择另一块数据进行第二次下载,被欺骗的可能性将小于 25%。事实上,当一个全节点第七次尝试随机下载一部分数据时,它未能测试到定序器正在扣留数据的可能性将小于1%。

这一过程就被叫做数据可用性证明抽样,或简称为数据可用性抽样。它的效率是让人难以置信的,由于这意味着节点可以只下载父区块链上定序器发布的完整数据块的一部分,并且具备与下载和检查整个数据块基本相同的保证。为了确保我真的把这一点牢记在心:想象一下,假如在附近散步10分钟所消耗的热量,与跑步10公里所消耗的热量一样多。这就是数据可用性采样技术的突破性意义。

通过让父区块链的全节点可以进行数据可用性采样,大家目前已经解决了大家之前的困境,即怎么样确保rollup定序器不会出现错误行为。大家目前都感觉非常高兴了,由于大家可以相信rollup确实可以扩展大家最喜欢的区块链。但,等一下,在你停止阅读这篇文章之前,请记住,假如大家想要让区块链被全世界的人用,大家仍然需要找到一种办法来扩展数据可用性本身。大家需要rollup,假如大家期望用rollup来扩展区块链,大家不只需要削弱定序器作恶的能力,大家还需要扩展数据空间吞吐量,以便定序器有一个便宜的地方来转储其tx数据。

数据可用性证明也是扩展数据空间吞吐量的重要

现在,ETH作为最知名的L1公链,其路线图侧重于扩展数据空间吞吐量。ETH期望通过数据分片来达成这一点,这本质上意味着并不是每一个验证器都会继续下载与节点目前相同的tx数据。相反,ETH将把它的验证器互联网分成不一样的分区,假如你有 1000 个验证器,所有这部分验证器都用来存储相同的数据,而你将其分成4组,每组250个验证器,那样用于转储数据的 rollup可用空间就忽然增加了4倍!这听上去非常简单,对吧?

ETH最近的数据分片路线图争取达成64个数据分片

然而,问题是,分片内的验证器只能下载转储到其分片的tx数据。这意味着,一个分片中的验证器不可以保证定序器转储的所有数据都是可用的,它们只能保证转储到其分片区的数据是可用的,但不可以保证其余数据可用于其他分片。

这意味着大家会遇见如此一种状况,即一个分片中的验证器没办法确保定序器没出现错误,由于它们不知晓其他分片中出了什么事,这就是大家的朋友第三派上用场的地方。假如你是一个分片中的验证者,那样你可以在每一个其他分片中用数据可用性证明容易地采样数据可用性!这将为你提供基本相同的保证,就像你是每一个分片中的验证者一样,从而允许ETH安全地达成数据分片。

还有其他的区块链,它们期望扩展到大量的数据空间吞吐量。与大部分其他区块链不同,Celestia和Polygon Avail仅寻求做两件事:排序区块和买卖,并成为数据可用性层。这意味着要维持 Celestia / Polygon Avail 的验证器诚实,要紧的是要有一个去中心化的节点互联网,以确保验证器确实正确地存储和排序tx数据。但,因为无需讲解这部分数据,你无需一个全节点来保证验证器的行为!相反,实行数据可用性采样的轻节点,将具备与全节点基本相同的保证,并且有很多轻节点采样数据可用性证明将足以让验证器负责保证数据可用性。这意味着,只须有足够多的节点用数据可用性证明对数据可用性进行采样,你可以使区块大小更大并增加验证器的硬件需要,从而提升数据空间吞吐量。

目前,概要一下:数据可用性问题可能是区块链三难困境的症结所在,它影响到了大家所有些扩容工作。幸运的是,大家能通过数据可用性证明的核心技术,来解决数据可用性问题。这使大家可以大规模地扩展数据空间吞吐量,为rollup提供了一个便宜的地方来转储足够的tx数据来处置足够的tx,以供全球人口用。除此之外,数据可用性证明意味着大家不必信赖rollup定序器,大家可以让它们维持诚实并验证它们的行为。目前,期望这篇文章可以帮你准确理解,为何数据可用性对rollup发挥其全部潜力而言是至关要紧的。

想更深入一些吗?我建议你钻进以下的兔子洞:

  1. 刚开始的论文提出了一个欺诈和数据可用性证明系统,以提升轻推广客户端安全性并扩展区块链。
  2. 更容易理解与更简短的版本‌。
  3. ETH以rollup为中心的路线图‌。
  4. Vitalik演讲:2020年及将来怎么样扩展ETH‌
  5. John Adler谈论数据可用性问题‌
  6. Ismail Khoffi谈论Celestia‌
  7. zkSync的Angela Lu、Arbitrum的Daniel Goldman与Fuel Labs的John Adler一块录制的内容‌,为大家提供了Rollup和ETH数据分片路线图的不少信息。

版权保护: 本文由 狗狗币 原创,转载请保留链接: http://www.leifuwangye.com/qukuai/20220112/937.html

下一篇:没有了
上一篇:NBA独行侠牵手狗币:加密货币渐成主流加速
相关文章
返回顶部小火箭