一本书读懂区块链
上QQ阅读APP看书,第一时间看更新

1.4 生成一个区块链

为了对区块链的结构和特性有一个直观的认识,可以自己动手生成一个区块链。登录以下网址:https://blockchain.adesso.ch/#,可以在线生成一个模拟的区块链。该模拟网站首页如图1-5所示,单击“Blockchain Demo”链接进入模拟生成区块链的页面,可生成一个简化版本的模拟区块链。

图1-5 模拟生成区块链

进入Blockchain Demo面后,显示的区块为该区块链的“创世区块”,如图1-6示。这是一个极简版本的区块,区块头中只包括区块的索引值(ID)、前一区块的哈希值、本区块的哈希值,区块体中Data本区块所包含的数据。作为创世区块,它没有前一个区块,所以前一区块的哈希值为0(64字符)。此时它本身也没有根据区块体中的数据生成的本区块的哈希值,所以本区块的哈希值为空。

图1-6 创世区块

单击“Mine”按钮,会生成根据区块体中的数据生成的本区块的哈希值,如图1-7所示。此时区块从橙色变为绿色,说明已经可用。

图1-7 生成了创世区块的哈希值

接下来生成下一个区块。单击图1-7的“Add Block”按钮生成了第二个区块,如图1-8所示。此时前一区块链的哈希值与创世区块的哈希值是一样的,区块之间就是凭借这个哈希值相互链接在一起。接下来单击该区块的“Mine”按钮,会生成本区块的哈希值,如图1-9所示。

图1-8 添加第二个区块

图1-9 生成第二个区块的哈希值

依照上述操作类推,可以生成含有4个区块的一个模拟的区块链。如图1-10示。它们之间都是后一个区块通过前一个区块的哈希值两两相连而成。

图1-10 包含4个区块的区块链

此时重新生成创世区块的哈希值,可见后边的第二个区块变为无效的橙色状态,因为它与之前的、旧的创世区块的链接断了,如图1-11所示。不仅如此,与第二个区块相链接的两个区块也都成为无效状态。这说明,如果要修改1个区块的信息,则与之相链接的所有区块信息都要修改,这在实际中难度极高。

图1-11 哈希值变化后区块失效

此时单击图1-11第二个区块的“更新”按钮,然后再单击该区块的“Mine”按钮,则可以恢复该区块与创世区块的链接,如图1-12所示。

图1-12 区块重新恢复链接

通过上述操作,可以比较直观地认识区块链的结构和特性。除了这个模拟生成区块链的网站之外,另外再为大家推荐一个模拟区块链生成网站:https://blockchaindemo.io/,该站点不仅可以可视化地生成一个模拟区块链,并且还可以生成多个节点形成一个区块链网络,也非常有趣,如图1-13示。有兴趣的朋友也可以去这个网站体验一下,加深对区块链概念和特性的认识。

图1-13 另一个模拟生成区块链网络的网站