比特币的数据结构
这里着重研究一下hash pointers(哈希指针)
首先普通指针只保存地址,hash指针不仅有保存地址的功能,还有保存哈希值的功能。
这里保存哈希值可以用来检测数据是否被篡改。
比特币中基本的数据结构是区块链(一个个块用链表练起来,而且用的是哈希指针)
block chain is a linked list with hash pointers
例子:第一个块是genesis block 创世纪块,最后一个块是most recent block
每一个区块都存有前面计算出来的hash值,可以进行纠错。
这个功能可以实现tamper-evident log 防干扰,防篡改日志。
而且区块计算出来的hash值往往只保存最后一个,且最后一个保存再系统之中。
图1
所以只需要记住系统之中的哈希值,那么就可以检测原来的数据是否被更改。
如果某人篡改以下某一个块中的指针,那么后面的h()哈希指针都需要修改。