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 另一个模拟生成区块链网络的网站