我对区块链的了解是:
块由散列保护。
交易由markle树保护。
这是否意味着标记树完全不参与保护块?
如果是这样,如果我们知道链中较旧的区块的哈希,是什么阻止我们更改交易?
请注意,我假设我们使用的是只有一个节点的区块链。我想知道在一个节点上破解区块链有多么困难。因为据我了解,仅散列是非常安全的,但是将区块链分布在多个节点上将使其更加安全。
答案 0 :(得分:0)
使用工作证明来保护块。工作量证明是一种与获得等于网络目标值的块哈希值平均需要多少哈希值有关的度量。目标值越低,在该块上完成的工作就越多,而更改或“破解”该块中的数据并仍然保持有效块(因为您必须再次执行该工作)就越难。
merkle根只是一种以单个散列值表示块中所有事务的方法,散列根是为生成块散列而被散列的数据的一部分。如果更改任何交易数据,它将产生不同的Merkle根,这也将使生成的块哈希变得不同,现在必须再次进行工作证明,才能将该块视为有效。
现在,只有一个节点,这无关紧要。如果能够更改块中的数据并使用新的有效哈希(等于或小于网络目标值的哈希)重新哈希该块,则您有一个新块,但是节点将拒绝它,因为它已经有那个块。您还必须在其他任何人之前挖掘下一个区块,因为共识规则之一是,最长的有效链总是获胜。
只有一个节点正在运行意味着运行该节点的人可以更改该节点,而可能没有其他人知道。这可能会删除您认为我们会遵守的某些规则,这可能会撤销您的一笔交易,因此最好运行自己的节点以确保遵守这些规则。