数据可用性采样是我最近正在学习的技术,也是目前区块链方向最重要的技术,这个理论和实践都比较难,我将翻译一些资料,同时把自己的心得和大家分享。
https://twitter.com/nickwh8te/status/1560426053830574080
数据可用性采样是区块链扩展的一项重大突破,但许多人难以理解它。别担心,实际上非常简单,我们可以把它想象成抛硬币。想想一下,我有两个硬币,A硬币两面都是字,B硬币一面是字,一面是图案。问题:我给了你两枚硬币中的一枚,你如何知道我给了你哪一枚呢?
如果硬币是B,每次抛的时候,只有50%的概率字朝上。
因此,每次你抛硬币的时候,如果字朝上,你就会多出50%的信心认为它是A。重复这个过程20次,你将有99.9999%的概率相信是A这就是数据可用性采样的工作原理。或许你有疑问:拿到硬币看一下不就可以了?在实际场景中,看到整个硬币和拿到整个区块的数据是等同的。BTC等区块链也就是这样验证的。也正是这个原因,BTC等的处理能力受到影响。
所以,抽样是为了只获取小部分的数据就可以进行整体的验证。从而提升性能。
有两种类型的区块:数据可用的区块和数据不可用的区块(只有区块头,或者是有正反面的硬币B)
区块生产者给你一个区块,为了安全,我们需要知道它到底是什么!
如何做呢?通过多次对这个区块进行采样,就类似抛硬币。
对于每一个成功的样本,你对这个区块是可用的信心就增加50%。重复这个采样的操作,直到我们拥有99.99%的信心认定这个区块是可用的。更大的区块意味着更高的吞吐量,但这也意味着更多的数据需要下载。
在这样的场景里,为了确保一个区块可用,需要下载整个区块的数据。数据可用性采样允许你仅仅下载几个小样本来确保一个块是可用的。如果你有一个4MB的区块,并且需要20个样本,每个样本1KB,那么你只需要下载大约0.5%的数据就可以99.9999%的确定它是可用的。这正是@CelestiaOrg 正在构建的核心技术之一,也是模块化区块链技术栈的基础。
更多的信息可以查看 celestia.org/learn。
这是一个形象的解释,这已经可以和足够多的人聊天了,但对于工程师来说,显然是不够的,并且一些细节,这个例子的讲述也不是那么贴切。我们后续继续研究。