在基于工作证明的区块链中,每个区块都包含对其父区块的引用,因此修改一个区块而不必再次挖掘其所有子区块是不可能的。
现在,在权益证明算法中,由于每个块都没有复杂的哈希计算,如何防止出现这种情况?块甚至链接到其父块吗?
在以太坊中,有不止一种树结构:Transaction Trie
、World State Trie
和Transaction Receipts Trie
。这些树一起形成以证明块的有效性。如果矿工想确定区块是否有效,他们会检查这些树。
以太坊中的每个块头都包含以下内容:
•状态根:状态根字段包含状态trie的根节点。它是一次性计算的交易已经处理完毕。
•事务根:事务根是Keccak 256位哈希事务trie的根节点的。事务trie表示块中包含的事务的列表。
•收据根:收据根是事务接收trie的根节点。此trie由包括在块中的所有交易的收据。交易收据是在每笔交易处理后生成的,包含有用的交易后信息。有关交易的更多详细信息收据将在下一节中提供。
权益证明不会改变区块链的区块结构,它确实会改变区块的验证过程。我举了以太坊作为POS的例子,但Merkle树结构(或不同的变体(在区块链中被广泛使用,因为它们对大型数据集的验证既高效又快速。