如果区块生产者没有公布区块中的所有数据,那么如何发现区块中是否隐藏恶意交易? 原文标题:《科普 | 什么是 「数据可得性」 ?》 「数据可得性(data availability)」和「数据可得性问题」指的是一些区块链扩容方案所面临一个问题。具体来说,就是当新的区块创建时,节点如何确保该区块中的所有数据都已发布到网络上?困难之处在于,如果区块生产者没有公布区块中的所有数据,就没人能发现该区块中是否隐藏了恶意交易。 在本文中,我将深入探讨数据可得性问题的重要性,以及相关解决方案。 区块链节点是如何运行的?区块链上的每个区块都由两部分组成:
区块链网络中主要有两类节点:
幸运的是,有一种方法可以让轻客户端间接检查区块中的所有交易是否有效。轻客户端可以依赖全节点向其发送关于无效交易的欺诈证明 ,无需自己检查交易的有效性。欺诈证明是一个很小的证明,可以证明区块中的某个交易是无效的。关于欺诈证明的运作原理,本文不做具体介绍,请阅读这篇文章。 这里只有一个问题:全节点如果要为某个区块生成欺诈证明,需要知道该区块的交易数据。如果区块生产者只公布区块头,没有公布交易数据的话,全节点就无法验证交易的有效性,并针对无效交易生成欺诈证明了。这就要求区块生产者公布区块的所有数据,但是我们需要找到一种方法来强制实行。 为了解决这个问题,轻客户端需要找到某种方法来检查区块的交易数据是否真的发布到了网络上,以便全节点进行验证。然而,我们又要避免让轻客户端下载整个区块,因为这会使得轻客户端丧失存在的意义。 我们该如何解决这一问题?首先,我们先来讨论数据可得性问题的相关性,以及如何采取解决措施。 (责任编辑:admin) |