那么到底什么是区块链呢?工业和信息化部指导发布的《中国区块链技术和应用发展白皮书2016》的解释是:狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证和存储数据,利用分布式节点共识算法来生成和更新数据,利用密码学的方式保证数据传输和访问的安全性,利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
区块链(Blockchain)是一种将数据以区块(Block)为单位产生和存储,并按照时间顺序首尾相连形成链式(Chain)结构,同时通过密码学保证不可篡改、不可伪造及数据传输访问安全的去中心化分布式账本。区块链中所谓的账本,其作用和现实生活中的账本基本一致,即按照一定的格式记录流水等交易信息。特别是在各种数字货币中,交易内容就是各种转账信息。只是随着区块链的发展,记录的交易内容由各种转账记录扩展至各个领域的数据。比如,在供应链溯源应用中,区块记录了供应链各个环节中物品所处的责任方、位置等信息。
要探寻区块链的本质,弄清什么是区块、什么是链,要先了解区块链的数据结构,即这些交易以怎样的结构保存在账本中。区块是链式结构的基本数据单元,聚合了所有交易的相关信息,主要包含区块头和区块主体两部分。区块头主要由父区块哈希值(previousHash)、时间戳(timestamp)、默克尔树(Merkle tree)等信息构成;区块主体一般包含一串交易的列表。每个区块中的区块头所保存的父区块哈希值,便唯一地指定了该区块的父区块,在区块间构成了连接关系,从而组成了区块链的基本数据结构。
总的来说,区块链的数据结构示意图如图1-1所示。
图1-1 区块链的数据结构示意图