区块 block
BTC中的区块结构大致如下:

其中,一个完整的区块由块头(block header)和块体(block body组成),下面将对其中的数据结构进行说明。
全节点与轻节点
全节点:保存区块的全部内容,包括header和body,在本地硬盘维护完整的区块链信息。
轻节点:只保存区块的header。
区块链系统中,轻节点的数量要多于全节点,轻节点的使用限制也相对更少。
哈希指针 hash pointers
哈希指针是应用在区块链技术中的一种数据结构。普通的指针储存了一段数据的内存位置,而哈希指针除了储存数据位置之外,还储存了这段数据的哈希值。
区块链即为哈希指针组成的链表(Block chain is a linked list using hash pointers)。每个区块的header都包含指向下一个区块的哈希指针,走到底的区块是系统中产生的第一个区块,叫创世纪块(genesis block),而开头的区块是系统中最近产生的区块(most recent block),最近产生的区块前面没有别的区块,但是也会有一个哈希指针,保存在系统里。由此,哈希指针组成的链表应为无环链表,否则将产生循环依赖。

通过后一个区块的哈希指针,不仅能找到前一个区块,而且能够防止有人篡改数据,具有防篡改日志(tamper-evident log)属性。如果有人妄想修改某个区块的数据,那么它后面的那个区块的哈希指针,不能够和篡改数据后的区块生成的哈希指针匹配。

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



