基于区块链的系统如何保证区块的不变性?
How could a blockchain based system guarantee the immutability of a block?
阅读完 Grokking Bitcoin 我现在对比特币的工作原理有了一个大致的了解,但我仍然怀疑,一般来说,基于区块链的系统如何保证不变性一个随机块?我知道每个块都有一个存储的前一个块内容的哈希值加上一些随机数。
假设这个区块链(为简单起见,我们使用链表样式而不是Merkle树样式)有1000个区块,黑客刚刚更改了第10个区块内的内容。当然,如果我们重新计算第 10 个块的哈希并将其与存储在第 11 个块中的哈希进行比较,很可能会有所不同。
我的问题是,基于区块链的系统是否应该定期检查每个块内部的哈希值以检测块的内容是否被更改?在这种情况下,如果系统没有定期重新计算第 10 个区块的哈希值的功能,它就无法检测到变化,对吧?换句话说,我的问题是基于区块链的系统如何检测区块的变化?
谢谢
当您更改第 10 个区块的内容时,您必须找到满足该区块难度的哈希值。这称为 "mining",需要 time/energy。当您最终找到该块的哈希值时,您可以将新块传播到区块链到所有其他节点。
然而,他们会忽略这个块,它会在第 9 个块创建一个新的区块链分支,因为它比当前区块链落后 991 个块(在区块链中大约落后 7 天)。矿工将只在最长的新区块链上工作,而不是在最近收到的链上工作。因此,您新的第 10 个区块将不会被保存或使用。您计算哈希的努力被浪费了。此外,最初的第 10 个区块仍在每个其他节点都知道的区块链中,并且没有被更改。你刚刚开采了一个不同的第 10 个区块,没有其他节点关心。
阅读完 Grokking Bitcoin 我现在对比特币的工作原理有了一个大致的了解,但我仍然怀疑,一般来说,基于区块链的系统如何保证不变性一个随机块?我知道每个块都有一个存储的前一个块内容的哈希值加上一些随机数。
假设这个区块链(为简单起见,我们使用链表样式而不是Merkle树样式)有1000个区块,黑客刚刚更改了第10个区块内的内容。当然,如果我们重新计算第 10 个块的哈希并将其与存储在第 11 个块中的哈希进行比较,很可能会有所不同。
我的问题是,基于区块链的系统是否应该定期检查每个块内部的哈希值以检测块的内容是否被更改?在这种情况下,如果系统没有定期重新计算第 10 个区块的哈希值的功能,它就无法检测到变化,对吧?换句话说,我的问题是基于区块链的系统如何检测区块的变化?
谢谢
当您更改第 10 个区块的内容时,您必须找到满足该区块难度的哈希值。这称为 "mining",需要 time/energy。当您最终找到该块的哈希值时,您可以将新块传播到区块链到所有其他节点。
然而,他们会忽略这个块,它会在第 9 个块创建一个新的区块链分支,因为它比当前区块链落后 991 个块(在区块链中大约落后 7 天)。矿工将只在最长的新区块链上工作,而不是在最近收到的链上工作。因此,您新的第 10 个区块将不会被保存或使用。您计算哈希的努力被浪费了。此外,最初的第 10 个区块仍在每个其他节点都知道的区块链中,并且没有被更改。你刚刚开采了一个不同的第 10 个区块,没有其他节点关心。