Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文
最近提出用「Data Publication」来取代「Data Availability」,避免 DA 这个词所造成的干扰。本篇文章将介绍 DA 这个词所带来的干扰以及为什么用 Data Publication 来取代某些 Data Availability。, s2 L; j9 f. o3 B+ y, g- D- T0 p
! o4 w8 Q3 m+ S* C. Y. k7 A
1 Z; |7 I6 A6 H+ s& ^
先备知识:1 l2 }+ Z5 o; _: \; ?
  • 听过数据可得性(数据可用性),大概知道它在什么情境下会被提及以及在该情境下所造成的影响8 a3 ?& j$ n/ \. s
Rollup 与资料可用性本文将介绍数据可用性与 Rollup 的关联,Rollup 要如何在数据可用性上做出一些牺牲来换取大量的交易成本。媒体网站数据可用性 — 数据可得性! Q  ~1 ]& c, W( S
随着模组化区块链的设计越来越流行,大家也越来越常提到数据可用性这个词。数据可得性在区块链的底下指的是出块者(提议者,例如 PoW)的矿工或者PoS的验证者)发布的区块内容是否可取得,如果不可取得则其他节点也不会承认该区块。
. G6 x* H8 p! K2 n可用的就代表数据永远都可以获得吗?! k% \5 C2 b! c
目前在区块链下数据可用性这个词产生最大的困扰是它没有区分数据发布(数据发布)与数据存储(数据存储)两种性质,让我们认为数据可得就表示数据永远都可得,但实际上保证区块链的有效性及区块链的安全性并不需要区块数据永远都可得。而这也是这篇文章的目的——推广用数据发布取代数据可用性这个词。4 ?& ?7 ~8 {: Z$ \
数据发布 — 数据发布- J/ V5 R3 X$ ]: _8 n
但为什么会考虑区块数据是否可得?节点不是都会下载完整的区块数据吗?是的,在过去及当前的区块链都是以太坊,节点都会下载完整的区块。但随着以太坊走向资料分片(Data Sharding)的设计前进后,节点将不会再下载完整的区块内容,因为这就是分片的目的 — 如果所有节点下载每个区块的完整内容,那么区块大小就永远不能扩大​​,区块链也没法进行扩容,大家要相应负责不同区域(分片)的数据。在分片的世界中,为了避免节点相信一个不完整区块是完整的,节点除了检查「区块是有效的」,还必须检查「区块是完整的」,悟出块者真的有发布完整的区块内容到区块链网路上。检查通过了节点才会承认该区块,将其接上自己手上的区块链,否则就会忽略它。* V' o" B% O/ q/ q7 y' {2 W
注:「检查区块是否完整发布」的方法可以穿透信任一个数据可用性委员会的方式,或者所有者一起对区块采样进行数据可用性采样的方式,但这里不会再深入介绍这些细节。
! b- c# L3 E2 b+ C4 \7 `1 ^1 I3 D如果一个区块的完整内容有即时发布,那网路中的节点很快就会承认该区块,下一个出块者生生接在该区块之后继续拓扑新区块;如果出块者没有即时发布或者网路层可能出现的问题导致区块数据没有即时传播出去,那就有可能造成该区块被部分节点以及下一个出块者忽视,从而产生由此分叉。不过其实目前的区块链兼容就是这样,有时候出块者可能下线或者因为网路太差导致它的区块该没有立即被广播出去,所以区块就会被下一个出块者跳过而产生分叉。+ e1 K, j% z. E9 @
注:虽然区块没有及时发布导致在刚才被忽略,但并不表示该区块是不合法的。它可能是合法的,只是没有及时发布导致成为孤儿区块。
* m" U0 ]. _1 l2 g' Z7 d. E因此可以看到一条区块链能顺利实现新区块且很少发生分叉,仰赖的是区块有即时被(完整地)发布,让当前网路中的节点相互正确验证其有效性及而当区块接上最后一条链、最终性被确认后,区块内容是否可得就不再影响安全性,因此在一段时间内区块内容就可以被丢弃。
! n5 I/ B. p; m. b注:这里「可以删掉」的区块内容是指区块中的 Blob 数据,Blob 会在 EIP-4844 中被引入,是专门用于临时放数据而不是用于 EVM 执行的数据格式。在以太坊的数据分片设计中,区块还是有部分数据是会在 EVM 执行的,这些就不能删除,而另外一个大部分会是可以删除的 Blob 数据。更多 EIP-4844 介绍可以参考这里篇。6 T& f7 I4 G; w3 R
注意这里会说区块要「即时」发布是这里的姿势是在区块链的姿势底下:在区块链中区块必须要即时发布才能避免变成孤块。但因为如果跳出区块链的话的设想,重点讨论资料发布的话,就只有资料「是否」发布的问题,有时不会有效性的问题。) e9 L7 x: U" w# D# @( k/ Z
数据存储 — 资料保存" h- {" N/ k) b8 n( B, F. B9 O) U
那会不会未来某一天Blob再次访问不到?这是有可能的,如果这些Blob里的数据没有人有兴趣,那就不会有人特别保存下来。等到最后一个节点把它放到手上上面的那份 Blob 数据也删除后,网路中就再也没有人可以提供该 Blob 数据了。这其实就像 BitTorrent 等 p2p 文件共享服务一样,热门的数据会被备份到很多节点上,但乏味的人问津的数据有一天就会从网路中消失。但总之,以太坊的安全性需要的是出块者出块立即发布完整的区块内容,让大家能够达成共识,等待共识达成、最终性确认后,区块内容就由有兴趣的人自己保存即可。4 [% _0 J* k( }9 N5 }" a7 z8 C$ c8 V
目前想像未来大部分会使用 Blob 资料的都会是 Rollup,所以相当于 Rollup 项目方、在该 Rollup 提供基础建设服务的项目、建立该 Rollup 浏览器的服务等等的角色都会主动下载并保存该 Rollup 上传Blob 的数据,毕竟他们提供的服务是基于这些数据的。1 G' o  G+ |4 C; j% h
总结: T( Z& ?( J" h
  • 数据可用性数据可得性这个词会让人以为数据永远都是可得的,但数据分片设计中区块链并不需要区块数据永远可得才能确保安全性,而是在出块者发布区块当下能即时发布区块内容,让大家能够达成完整共识、通过 Finality 确认让区块,之后区块内容是否可得就不再影响安全性
  • 因此Data Availability这个词应该改名为Data Publication,指的是数据是否被即时、完整发布
  • 而共识达成、最终确认后的区块数据的保存问题包装数据存储的问题,有兴趣的人自然会保存数据
  • 数据存储和数据发布(数据可用性)是相关的,大家记得不要再假设数据永远都可访问得到4 Q( L3 _0 I1 @& l  _& _- J
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

华重公主卤 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    4