数据可得性是什么意思 数据可得性问题的重要性及解决方案

数据可用性是什么意思?

“数据可得性(dataavailability)”和“数据可用性问题”指的是一些区块链扩容方案面临的问题。具体来说,当创建新区块时,节点如何确保该区块中的所有数据都在网络上发布?困难在于,如果区块生产者没有公布区块中的所有数据,就没有人能找到区块中是否隐藏着恶意交易。

本文将深入探讨数据可得性和相关解决方案的重要性。

如何运行区块链节点?

区块链上的每个区块由两部分组成:

  • 区块头,也就是说,区块的元数据由一些关于区块内容的基本信息组成,包括默克尔根的交易。
  • 交易数据,也就是说,区块的主要组成部分由实际交易数据组成。

区块链网络主要有两种节点:

  • 全节点(也称为完全验证节点)。这些节点将下载区块链中的每笔交易并验证其有效性。这需要大量的资源和数百个GB磁盘空间,但它们是最安全的,因为它们不接受包含无效交易的块。
  • 轻客户端。如果您的计算机没有足够的资源来运行整个节点,您可以运行轻客户端。轻客户端不需要下载或验证任何交易。它们只下载块头,并确定块中包含的交易是有效的。因此,轻客户端的安全性低于整个节点。

幸运的是,有一种方法可以让轻客户端间接检查区块中的所有交易是否有效。轻客户端可以依靠整个节点向其发送无效交易的欺诈证书,而无需检查交易的有效性。欺诈证书是一个小证书,可以证明区块中的交易无效。本文不详细介绍欺诈证书的操作原理,请阅读本文。

这里只有一个问题:如果整个节点想为某个块生成欺诈证明,则需要了解该块的交易数据。如果块生产者只发布块头,而不发布交易数据,整个节点将无法验证交易的有效性,并为无效交易生成欺诈证明。这要求块生产者发布块的所有数据,但我们需要找到一种强制执行的方法。

为了解决这个问题,轻客户端需要找到一些方法来检查块的交易数据是否真的发布在网络上,以便全节点验证。然而,我们应该避免让轻客户下载整个块,因为这将使轻客户失去存在的意义。

我们应该如何解决这个问题?首先,我们将讨论数据可得性的相关性以及如何采取解决方案。

数据可用性问题与哪些方案相关?

在最后一节中,我们介绍了数据可用性。让我们来讨论一下它对可扩展性解决方案的重要性。

增加块的大小

在比特币等区块链中,大多数普通便携式计算机可以运行整个节点并验证整个链,因为有人为的区块尺寸上限,以防止区块链变得过大。

但是,如果我们想增加区块大小的上限呢?只有更多的人才能负担得起运行整个节点并独立验证区块链的成本,大多数人将运行安全性较低的轻客户端。这不利于分散化,因为它使区块制造商更容易改变协议规则,插入无效交易来欺骗轻客户端。因此,为轻客户端提供欺诈证明支持是非常重要的,但正如我们所讨论的,轻客户端需要一种方法来验证块中的所有数据是否已经发布到网络上。

分片

提高区块链吞吐量的一种方法是将区块链分成多个链,即分片。这些分片有自己的区块生产者,可以相互通信,以便在分片之间转移代币。分片的意义在于将网络中的区块生产者分组,这样每个区块生产者就不需要处理每个交易,只需要将其分散到不同的分片上即可。每个分片只需处理部分交易。

一般来说,在分片区块链上,验证人只需要为一个或几个分片操作整个节点,并为其他分片操作轻客户端。毕竟,如果每个验证人都必须为每个分片操作一个完整的节点,就无法实现分片的目的——将网络费用划分为不同的节点。

然而,这种方法本身也有缺陷。如果分片上的块生产者作恶,开始接受无效交易怎么办?这种情况比非分片系统更有可能发生,因为后者每个分片上只有少量的块生产者,更容易攻击。请记住,块生产者将不断地分配到不同的分片上。

为了便于检测是否存在无效交易,我们必须确保所有数据都是公开的,以便使用欺诈证明来证明所有无效交易。

Rollup

Optimisticrollup是一种基于rollup侧链的新型可扩展策略。这些侧链有自己的独家块制造商,可以与其他侧链相互转移资产。

但是,如果一个恶意的区块生产者将无效的交易打包到区块中,并窃取侧链上所有用户的资金呢?为了解决这个问题,我们可以使用欺诈证明来发现这种情况。然而,这仍然是一个老问题。侧链用户需要找到确保侧链上所有块数据公开可见的方法,以发现无效交易。为了解决这个问题,以太坊上的Rollup将所有Rollup块发布到以太坊区块链,依靠以太坊实现数据可用性。也就是说,以太坊作为数据可得性层。

ZK-rollup类似于optimisticrolup。不同之处在于,前者不使用欺诈证明来发现无效区块,而是使用有效证明来证明区块的有效性。有效性证明本身不需要数据可用性。但是,总的来说,ZK-rollup需要数据可用性,因为如果区块生产者创建有效区块并生成有效性证明,用户无法知道区块链的状态及其余额,也无法与区块链互动。

进一步探索

rollup的设计旨在将区块链存储为数据可用性层,但实际的交易处理和计算发生在rollup上。这是一个有趣的想法:区块链实际上不需要任何计算,但至少需要将交易分成块,以确保交易的数据可用性。

这也是LazyLedger的设计理念,即,“懒惰的”区块链只需完成区块链的两个核心任务——通过可扩展的方式对交易进行排序,实现交易的数据可用性。这使得LazyLedger成为rollup等系统中最小的“可拔插”组件。

解决数据可用性问题的解决方案

下载所有数据

正如上面讨论的,解决数据可用性问题最直接的方法是要求所有人(包括轻客户端)下载所有数据。显然,这种方法没有很好的可扩展性。比特币和以太坊等大多数区块链都使用这种方法。

数据可用性证明

数据可用性证明是一种新技术:客户端只需下载区块中的一小部分数据,就可以检查区块中的所有数据是否已发布。

数据可用性证明使用了一种数学元件,称为纠删码。从CD-ROM到卫星通信再到二维码,纠删码被广泛应用于信息技术中。将原来1MB的区块数据扩展到2MB,其中多余的1MB称为纠删码的特殊数据。如果区块中的任何字节丢失,纠正和删除代码都可以帮助您找到它们。即使整个块的数据丢失,修改和删除代码也可以帮助您找到所有的数据。同样,通过修改和删除代码,即使CD-ROM中的数据被删除,您的计算机也可以读取(翻译注:修改和删除代码不能帮助您节省带宽,假设1MB数据扩展到2MB,您仍然需要获得至少1MB数据来恢复原始数据,尽管不需要1MB数据是连续的)。

这意味着,为了实现100%的数据可用性,区块制造商只需在网络上发布区块中50%的数据。恶意区块制造商要想成功隐瞒1%的数据,必须隐瞒50%以上的数据,否则剩余50%的数据可以找到1%的数据(译者注:本段第一句有疑问)。

有了这一知识,客户端可以采取措施确保块中的数据不会被隐藏。客户端可以尝试随机下载由区块切割而成的数据块。如果他们未能成功下载数据块(即数据块是恶意区块生产者未披露的50%),他们将拒绝承认该区块的数据可用性。如果下载一个随机数据块,客户端发现无效区块的概率为50%。如果下载两个数据块,概率为75%。若下载三个数据块,概率为87.5%。以此类推,直到下载七个数据块,概率为99%。通过这种方式,客户端只需下载一小部分块中的数据,就可以有效地检查整个块的数据可用性。

数据可用性证明的所有细节都将更加复杂,并依赖于其他假设。例如,网络中的轻客户端数量不应低于一定的下限,因此有足够的轻客户端要求数据块恢复整个块的数据。如果您想了解更多信息,请查看关于数据可用性证明的论文。

结论

本文介绍了数据可用性,讨论了数据可用性对区块链可扩展性的重要性,并提出了解决方案。

以上是数据可用性的含义是什么“数据可得性”更多关于数据可用性的信息,请关注脚本之家的其他相关文章!

投资有风险,进入市场必须谨慎,以上内容仅供参考。

相关推荐