数据可用性采样是我最近正在学习的技术,也是目前区块链方向最重要的技术,这个理论和实践都比较难,我将翻译一些资料,同时把自己的心得和大家分享。
本文翻译整理自:
@nickwh8te
https://twitter.com/nickwh8te/status/1560426053830574080
数据可用性采样是区块链扩展的一项重大突破,但许多人难以理解它。
别担心,实际上非常简单,我们可以把它想象成抛硬币。
想想一下,我有两个硬币,A硬币两面都是字,B硬币一面是字,一面是图案。
问题:我给了你两枚硬币中的一枚,你如何知道我给了你哪一枚呢?

简单,你只需要多次的投掷硬币。

如果硬币是A,它总是字朝上。

如果硬币是B,每次抛的时候,只有50%的概率字朝上。

因此,每次你抛硬币的时候,如果字朝上,你就会多出50%的信心认为它是A。
重复这个过程20次,你将有99.9999%的概率相信是A
具体的计算如下:

1-0.5^20=0.9999990463
如果次数更多,概率将会更大。
这就是数据可用性采样的工作原理。或许你有疑问:拿到硬币看一下不就可以了?在实际场景中,看到整个硬币和拿到整个区块的数据是等同的。BTC等区块链也就是这样验证的。也正是这个原因,BTC等的处理能力受到影响。

所以,抽样是为了只获取小部分的数据就可以进行整体的验证。从而提升性能。

继续。
有两种类型的区块:数据可用的区块和数据不可用的区块(只有区块头,或者是有正反面的硬币B)

区块生产者给你一个区块,为了安全,我们需要知道它到底是什么!

如何做呢?通过多次对这个区块进行采样,就类似抛硬币。

对于每一个成功的样本,你对这个区块是可用的信心就增加50%。
重复这个采样的操作,直到我们拥有99.99%的信心认定这个区块是可用的。
为什么这是区块链可扩展性的重大突破?
更大的区块意味着更高的吞吐量,但这也意味着更多的数据需要下载。

如果没有数据可用性采样:

在这样的场景里,为了确保一个区块可用,需要下载整个区块的数据。
数据可用性采样允许你仅仅下载几个小样本来确保一个块是可用的。
如果你有一个4MB的区块,并且需要20个样本,每个样本1KB,那么你只需要下载大约0.5%的数据就可以99.9999%的确定它是可用的。
这是一个200倍的改进
随着区块变大,它只会变得更有效率。

这正是@CelestiaOrg 正在构建的核心技术之一,也是模块化区块链技术栈的基础。

更多的信息可以查看 celestia.org/learn。

这是一个形象的解释,这已经可以和足够多的人聊天了,但对于工程师来说,显然是不够的,并且一些细节,这个例子的讲述也不是那么贴切。我们后续继续研究。
继续阅读
阅读原文