区块链火遍大江南北,通过几个月的学习,我也算是入门了。我想通过自己的理解,把学习的区块链知识记录下来,也算是对自己的一个交代。
区块链是一个加秘的分布式计算账本,数据结构是由包含交易信息的区块按照从远及近的顺序有序链接起来的,在区块链上,每个区块都指向前一个区块。
一.区块结构
区块由区块头和区块体组成。区块头由三组区块元数据组成。首先是一组引用父区块哈希值的数据,这组元数据用于将该区块与区块链中前一区块相连接。第二组元数据,即难度目标值,时间戳和随机值(nonce),与挖矿竞争相关,这个我们会在后面详细介绍。第三组元数据是Merkle树根(一种用来有效地总结区块中所有交易的数据结构),同样的,我们会在后面详细介绍。
区块体包括一段时间内,网络中的所有交易,这些交易在打包进区块时,都需要节点进行验证。具体验证过程,我们会在后面详细介绍。
二.区块标识符
1)区块头哈希值
区块主标识符是它的加密哈希值,一个通过SHA256算法对区块头进行二次哈希计算而得到的数字指纹,产生的32字节哈希值被称为区块哈希值,更准确的名称是:区块头哈希值,因为只有区块头被用于计算。区块哈希值可以唯一,明确地标识一个区块,并且任何节点通过简单地对区块头进行哈希计算都可以独立地获取该区块哈希值。
2)区块高度
第二种识别区块的方式是通过该区块在区块链中的位置,即区块高度。第一个创世区块的高度为0,每一个随后被存储在第一个区块之上的区块,在区块链中都比前一区块高出一个位置,就像箱子一样,一个接一个堆叠在其他箱子之上。
和区块哈希值不同的是,区块高度并不是唯一的标识符。虽然一个单一的区块总是会有一个明确的,固定的高度,但反过来却不成立,一个区块高度并不总是识别一个单一的区块。两个或两个以上的区块可能有相同的区块高度,在区块链里争夺同一个位置。
三.区块链接成区块链
我们假如A通过挖矿获得了记账权,并且通过其他节点验证。对于这一个新的区块,节点会在“父区块哈希值”字段里找出包含它的父区块的哈希值,这是前一区块的哈希。然后这个新区块被添加到区块链上,成为这个链条里的最后的一个区块,区块链比之前变长了。区块链就是这样形成的。
文章参考区块链研习社-精通比特币
网友评论