LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > 小乔和你聊聊区块链的事儿(673)

小乔和你聊聊区块链的事儿(673)

2020-06-06 乔辞念安 来源:区块链网络

当矿工找到一个块时,它将首先发送该块头,然后迅速发送其余块。接收节点会检查此标头以及该块的其余部分的有效性。如果有效,矿工将使用区块头在该区块的“顶部”进行开采。该块(包括标题)也被转发到其他节点。Head First Mining是前加密货币核心首席开发人员Gavin Andresen提出的技巧。借助Head First Mining,矿工无需等待完整的区块到达就可以开始开采后续区块。取而代之的是,他们一接收到块头便立即在块头的顶部进行挖掘,并将该头转发给其他节点。这显然可以节省时间。

但是,Head First Mining确实有两个缺点。首先,矿工不确定他们正在开采的区块是否真的有效。尽管块头可能看起来有效(由于足够的工作量证明),但该块可能例如包含无效交易。因此,此解决方案涉及一些风险。用假冒头目的“攻击”矿工浪费资源是昂贵的,但并非没有可能。其次,作为一个更大的劣势,矿工们不知道他们正在开采的区块中包含哪些交易。因此,确保其后续块有效且不会使交易花费双倍的唯一方法是根本不包含任何交易。只有在矿工收到完整的区块后,他们才能在不包含交易的区块上工作。

当然,这意味着某些块将为空,这对于网络吞吐量而言不是很大。(但是如果可以增加块大小,则可能会补偿。)由加密货币核心开发人员Matt Corallo 开发的Compact Blocks是一种旨在减少数据传输的技巧。当找到一个新块时,节点最初仅传递非常紧凑的事务数据散列。因为当节点最初通过网络发送时,节点已经收到了完整的交易数据,所以他们可以使用这些哈希值来找出区块中包含哪些交易,并自己重建完整的区块。

但是,这种技巧并不总是能完美解决。如果节点在接收到哈希之前尚未接收到初始事务,则它无法选择相应的事务。此外,在极少数情况下,错误的事务可能会哈希为正确的哈希,从而使节点相信它已接收到正确的事务-直到它尝试重建该块并发现未累加为止。在这两种失败的情况下,节点毕竟只是请求特定的交易数据。即使其中包含一些完整的事务,紧凑块也将通过网络更快地传输并且所需的带宽大大减少。

作为主要区别,Xtreme Thinblocks使用额外的数学技巧来传达事务哈希:Bloom Filters。无需过多介绍此技巧的确切工作原理,布隆过滤器是紧凑的数据结构,某种程度上使“紧凑块”的技巧颠倒了。节点可以使用布隆过滤器找出节点中某个块中缺少哪些事务,并仅请求这些事务。因此,加密货币区块的有效性部分取决于区块头。更具体地,该块头的哈希必须至少以特定数量的零开始,部分地由也包括在块头中的随机数(“ nonce”)引起。具有足够数量的零“证明”已完成所需的工作证明。

所需的零的具体数量由难度决定。因此,举一个实际上并没有转化为现实的例子,假设难度为八。那意味着一个区块头的散列将需要以八个零开始。以六个或七个零开头的散列块标题无效。这也许是“几乎有效的”,但并非完全有效。弱块是一个相对较旧的想法,本质上是“几乎有效”的块。它们在任何方面都是正常的块:它们包括事务以及所有其余部分-只是其标头的哈希值不以足够的零开头。弱块可能很有用。通过在网络上传输弱区块,矿工可以指出他们正在工作的区块以及所包含的交易。

然后,当矿工确实找到某种方式正确地对区块进行哈希处理时,他就拥有了一个有效的区块。而且由于所有其他矿工现在都已经知道该矿工在哪个块上工作,因此他实际上只需要传输少量数据:确认和正确的随机数。因此,尽管实际上通过网络发送的数据总量有所增加(因为始终传输弱块),但要在其之上挖掘的相关数据却受到限制。

好啦,今天的内容小乔就给大家讲到这里啦,下面我们来一起看看数字货币的数据:


最后祝大家天天开心,生活愉快!

—-

编译者/作者:乔辞念安

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...