“数据可用性”和“数据可用性问题”是指一些区块链扩展方案所面临的问尚力财经小编2022题。具体来说,当创建新块时,节点如何确保该块中的所有数据都已发布到网络?难点在于,如果块生产者不发布块中的所有数据,没有人能发现块中是否隐藏了恶意交易。
在本文中,我将探讨数据可用性的重要性以及相关的解决方案。
区块链节点是如何工作的?区块链中的每个块由两部分组成:
块头,即块的元数据,由一些关于块内容的基本信息组成,包括事务的Merkel根。事务数据,即块的主要组成部分,由实际事务数据组成。区块链网络中有两种主要类型的节点:
所有节点(也称为完全验证节点)。这种节点将下载区块链中的每一笔交易并验证其有效性。这会消耗大量资源和数百GB的磁盘空间,但这些节点是最安全的,因为它们不会接受包含无效事务的块。轻客户端。如果您的计算机没有足够的资源来运行完整节点,您可以运行轻型客户端。轻型客户端不需要下载或验证任何事务。他们只下载块头,并假设块中包含的事务是有效的。因此,轻客户端的安全性低于全节点。幸运的是,有一种方法可以让轻客户端间接检查块中的所有事务是否都有效。轻型客户端可以依赖整个节点向其发送关于无效交易的欺诈证书,而无需自己检查交易的有效性。欺诈证明是一个块中的交易无效的小证明。至于欺诈证明的操作原理,本文不作具体介绍。请阅读这篇文章。
这里只有一个问题:如果所有节点都想为某个区块生成欺诈证书,那么就需要知道那个区块的交易数据。如果块生产者只发布块头而不发布交易数据,则整个节点无法验证交易的有效性,并为无效交易生成欺诈证书。这要求块生产者发布块的所有数据,但是我们需要找到一种方法来强制执行它。
为了解决这个问题,轻客户端需要找到某种方法来检查该块的事务数据是否实际发布在网络上,以便所有节点都可以验证。但是要避免让轻客户端整块下载,因为这样会让轻客户端失去意义。
怎么才能解决这个问题?首先,让我们讨论数据可用性的相关性以及如何采取解决方案。
哪些项目存在与相关的数据可用性问题在上一节中,我们介绍了数据可用性问题。让我们讨论一下它对可伸缩性解决方案的重要性。
增加块大小
在比特币等区块链中,大部分一般笔记本电脑都可以运行所有节点,验证整个链,因为有人为规定的块大小限制,防止区块链变得过大。
但是,如果我们想增加最大块大小呢?那么只有更多的人能够承担运行所有节点和独立验证区块链的成本。大多数人会运行安全性较低的轻客户端。这不利于去中心化,因为这将使块生产者更容易改变协议规则并插入无效事务来欺骗轻客户端。因此,为轻型客户端提供防欺诈支持是很重要的,但是正如我们已经讨论过的,轻型客户端需要一种方法来验证块中的所有数据是否已经发布到网络。
分片
提高区块链吞吐量的一种方法是将区块链分成多个链,即分片。这些切片有自己的块生产者,它们可以相互通信,在切片之间传递令牌。碎片化的意义在于对网络中的块生产者进行分组,这样就不需要每个块生产者处理每一个事务,只需要将它们分散到不同的碎片中即可。 对于每个切片,只需要处理部分事务。
一般来说,在一个分段的区块链上,验证者只需要运行一个或几个分段的所有节点,其他分段运行轻客户端。毕竟如果每个验证者对每个碎片都运行一个满节点,碎片化的目的就无法达到。——将网络开销分摊到不同的节点。
但是,这种方法有其自身的缺陷。如果切片上的块生产者作恶,开始接受无效事务怎么办?与非分区系统相比,这种情况更容易发生在分区系统中,因为后者的每个分区上只有几个块生产者,更容易被攻击。请记住,块生产者将不断被分配到不同的切片。
为了检测是否存在分段接受无效交易的情况,我们必须确保分段中的所有数据都是公开的,以便使用欺诈证书来证明所有的无效交易。
rollup
Optimal roll up是一种新的基于roll up侧链的可扩展性策略(类似于切片)。这些侧链有自己专属的块生产者,可以和其他侧链转移资产。
但是如果一个恶意的区块生产者将无效交易打包成区块,窃取侧链所有用户的资金怎么办?要解决这个问题,可以用造假证明来发现这种情况。但是,还是那个老问题。侧链用户需要找到一些方法来确保侧链上所有块的数据都是公开可见的,以便发现无效的事务。为了解决这个问题,以太坊上的rollup将所有的Rollup块发布到以太坊区块链,依靠以太坊实现数据可用性。也就是说,邰方将被用作数据可用性层。
ZK累计类似于最佳累计。不同的是,前者不是用欺诈证明来寻找无效块,而是用有效性证明来证明块的有效性。有效性证明本身并不要求数据可用性。然而,一般来说,ZK汇总需要数据可用性,因为如果区块生产者创建有效区块并为其生成有效性证书,但不发布区块数据,则用户无法知道区块链及其余额的状态,并且他们无法与区块链交互。
进一步探索
rollup旨在使用区块链作为数据可用性层来存储事务,但实际的事务处理和计算都发生在rollup上。这是一个有趣的想法:区块链实际上不需要任何计算,但至少需要将交易打包成块,并保证交易的数据可用性。
这也是LazyLedger的设计思路,也就是一种“懒惰”的区块链,只需要完成区块链3354的两个核心任务就可以以可扩展的方式对事务进行排序,实现事务的数据可用性。这使得LazyLedger成为rollup等系统中最小的“可插拔”组件。
解决数据可用性问题的方法下载所有数据
如上所述,解决数据可用性问题最直接的方法就是要求所有人(包括轻客户端)下载所有数据。显然,这种方法不具备良好的可扩展性。比特币、以太坊等大多数区块链都采用这种方式。
数据可用性证明
数据可用性证明是一项新技术:客户端只需下载一个块中的一小部分数据,就可以检查该块中的所有数据是否都已发布。
数据的可用性证明使用了一种叫做纠删码的数学元素。擦除码广泛应用于从光盘到卫星通信到QR码的信息尚力财经小编2022技术中。纠删码可以将原来1 MB的块数据扩展到2MB,多出来的1 MB就是所谓纠删码的特殊数据。如果块中有任何字节丢失,擦除代码可以帮助您找到它们。即使整个块的数据丢失,纠删码也能帮你恢复所有数据。 同样,有了纠删码,即使光盘里的数据全部被擦除,你的电脑也能读取(译者注:纠删码帮不了你节省带宽。假设1 MB的数据扩展到2 MB,您仍然需要获得至少1MB的数据来恢复原始数据,尽管不要求1MB的数据是连续的)。
这意味着要实现100%的数据可用性,块生产者只需要将块中50%的数据发布到网络上。如果一个恶意的块生产者想要成功隐藏1%的数据,就必须隐藏50%以上的数据,否则这1%的数据就可以通过剩下的50%被检索出来。
有了这些信息,客户端可以采取措施来确保数据块中的数据不会被隐藏。客户端可以尝试随机下载从块中切割的数据块。如果他们未能成功下载数据块(即表明该数据块属于恶意块生产者未公开的50%的数据),他们将拒绝承认该块的数据可用性。如果你下载一个随机数据块,客户端有50%的概率找到一个无效块。如果下载两个数据块,有75%的概率。如果下载三个数据块,有87.5%的概率。以此类推,直到下载完7个数据块,有99%的概率。这样,客户端只需下载块中的一小部分数据,就可以有效地检查整个块的数据可用性。
数据可用性证明的完整细节会更复杂,它取决于其他假设。例如,网络中的轻客户端的数量不能低于某个下限,以便有足够多的轻客户端请求数据块来恢复整个块的数据。如果你想知道更多的信息,你可以查看关于数据可用性证明的论文。
结论
本文介绍了数据可用性问题,讨论了数据可用性对区块链可扩展性的重要性,并提出了解决方案。
以上是数据可用性含义的细节。上述文章内容就是数据可用性的更多信息,请关注coir.com的其他相关文章!
标签: 2022