1.哈希指针(Hash pointer):
Blockchain is a linked list using hash pointers.
H(x)在比特币区块链中的产生是把上一个区块中的所有数据连同该区块链中的H(x)一同进行hash运算得到。
这样的话如果某一个区块中的数据被篡改,则会影响下一个区块的哈希指针,进而影响之后的所有区块。
牵一发而动全身
2.默克尔树(Merkle tree):
默克尔树的构建过程如下:
- 对每笔交易应用哈希函数,生成每笔交易的哈希值。
- 将每两个相邻的交易哈希值进行哈希运算,得到它们的父节点。
- 重复步骤2,直到生成树的根节点,这个根节点就是默克尔树的根哈希值。
在区块链中,默克尔树的根哈希值通常被包含在区块头中。 这个根哈希值可以被用来有效地验证一系列交易是否被篡改过。 当一个节点需要验证交易数据时,它可以通过比较接收到的根哈希值与区块头中的根哈希值是否一致来验证交易数据的完整性。 如果一致,那么所有交易数据都可以被视为未被篡改过的。