区块链本质上是一种去中心化的分布式数据库,可以维护一份连续不断的交易记录档,每一笔资料被称为一个区块【Block】
一个区块分为两大部分:
1.区块头
区块头里面存储着区块的头信息,包含上一个区块的哈希值( PreHash ),本区块体的哈希值(Hash ),以及时间戳(TimeStamp)等等。
2.区块体
区块体存储着这个区块的详细数据(Data ),这个数据包含若干行记录,可以是交易信息,也可以是其他某种信息。
每一个区块可以包含一笔以上的交易,每个区块都会与另一个区块产生连接【Linking】,每个区块都会包含上个区块的hash值,所有被连接在一起的区块被称为链【Chain】。
区块链产生区块的过程会经过复杂的密码学运算【Cryptography】,复杂的密码学运算可杜绝记录篡改与修订,每个区块在成功产生之后是无法修改的。想必大家都听说过MD5,MD5就是典型的哈希算法,可以把一串任意长度的明文转化成一串固定长度(128bit )的字符串,这个字符串就是哈希值。
而在我们的区块链中,采用的是一种更为复杂的哈希算法,叫做SHA256。最新的数据信息(比如交易记录)经过一系列复杂的计算,最终会通过这个哈希算法转化成了长度为256bit的哈希值字符串,也就是区块头当中的Hash,格式如下:
a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0
区块与Hash是一一对应的,Hash可以当做是区块的唯一标识。</