在解释分布式网络之前,我们先讲一个小故事,了解一下去中心化:
菜鸟集市里有好多商贩,张三是卖蔬菜的,李四的卖肉制品的,王五是卖水产品的,城管不来的时候,没有摊位是处于中心位置的,也没有哪个摊位会对别的摊位有管理的权限。大家都是各自卖各自的东西,互不干涉。
有一天城管来了,赶走所有的商贩,政府在这片地上建了菜市场,规定每个人都在固定的区域买卖,而且摊位是收费的。
去中心化像没有城管的集市。只要城管不来,就没有哪一个摊位(用户)是处在中心地位的,也没有哪个摊位(用户)会对别的摊位(用户)有管理的权限。
为什么要解释去中心化呢?这是因为分布式网络就是由分布在不同地点的计算机系统互连而成,网中无中心节点。它的作用在于减低以往网路传输中的节点,以降低数据遗失的风险。
网中任一点均至少与两条线路相连,当任意一条线路发生故障时,通信可转经其他链路完成,具有较高的可靠性。同时,分布式网络还具有易于扩展的特点。
以下,我们将通过图文解说的方式,演示区块生成、在分布式网络中传播并通过简单的机制选择区块分支的全过程。
首先,我们假设最开始,区块链网络正好处于一个时间节点,其所有节点的区块链拥有完全相同的数据,即区块链的末尾为白色五星区块。
随着时间推移,位于左侧的节点X和位于右侧的节点Y在同一时间成功的产生了新的区块,但左侧节点X产生了白色三角形的新区块,而右侧节点Y则产生了橙色倒三角形,并同时开始向与其连接的其他节点广播其新区块。如下图左。
网络传播需要时间,但是一段时间过后,会出现如上图右所示,所有节点上的纯区块链数据又是相同的了——通过一个分叉将两个节点产生的区块均临时的包含在区块链上,所有节点均会以最先收到的那个分叉区块作为当前节点的区块链尾部区块,并以此尾部区块,去试图通过工作量证明的方式延伸这一条分支。
随着时间推移,其中某一个节点在优先收到的尾部节点的基础上进行计算,并成功的计算出了一个新的区块,随即它便向它周围的节点进行广播它的成果,凡是接收到它的新区块的节点,都会因为它广播的这个区块使得这个分支比其他分支更长,而将尾部区块更新到这个分支上来。如下图左。
如上图右,随着区块信息在区块链网络中的传播,很快便使得整个区块链网络回到了所有节点均为同样数据的状态。
*文章内容节选于网络