Hash 比特币如何处理假链?

Hash 比特币如何处理假链?,hash,blockchain,bitcoin,mining,Hash,Blockchain,Bitcoin,Mining,我想知道比特币/加密是如何处理以下情况的: 比如说,邪恶矿工拥有硬币10%的开采能力,他秘密开采区块,而真正的链条正从区块高度900增长到1000。他从一个伪造的995街区开始,停在1005街区。在Blockheight 1000(real chain)上,他发布了他的假链。节点现在将请求/获取下一个块。现在它将从Evilliminer获得1001号区块 这个节点将如何处理它?我想,要知道邪恶矿工制作的链是否证明错误或正确,就必须下载block 1000到95,才能最终看到block 95是假的

我想知道比特币/加密是如何处理以下情况的: 比如说,邪恶矿工拥有硬币10%的开采能力,他秘密开采区块,而真正的链条正从区块高度900增长到1000。他从一个伪造的995街区开始,停在1005街区。在Blockheight 1000(real chain)上,他发布了他的假链。节点现在将请求/获取下一个块。现在它将从Evilliminer获得1001号区块

这个节点将如何处理它?我想,要知道邪恶矿工制作的链是否证明错误或正确,就必须下载block 1000到95,才能最终看到block 95是假的


这是正确的还是节点有其他处理方法?

您所述的情况永远不会出现

  • 如果你想让你的链条最长,那么你需要拥有50%以上的采矿能力,这样在将来的某个时候你最终会赶上并超越主链。追赶的速度将取决于你有多少超过50%。这种攻击之所以有效,是因为通过这种方式,您在生产新区块的速度上击败了任何其他潜在矿工,因此您生产区块的速度始终比网络上的任何其他人都快,从而确保您的链将变得最长

  • 因此,你的邪恶矿工,鉴于他拥有10%的采矿能力,将永远无法将他的链条长度提升到主链条之外。唯一其他可能的方法是使用较低难度的临时值来加速块的生成,但是这样的块将被网络中认为无效的任何其他节点拒绝

  • 因此,简言之,evilminer让其他节点接受其块的唯一方法是使其链最长,并且只有当他拥有网络50%以上的挖掘能力时才能做到这一点

    编辑1: 考虑网络的每个参与者的计算能力,假设当你总结这些时,你得到100。现在如果你有这个总数的10%,这意味着你找到一个新块的可能性比其他计算能力比你小的块要高。但是,这并不保证您一定会首先找到nonce

    找到满足难度的散列依赖于概率。你用蛮力通过一大组数字,直到你的散列满足难度。有可能只有0.5%总计算能力的人首先找到了nonce。然而,你处理这些数字的速度越快,你就越有可能首先找到那个临时数字

    因此,如果您的计算能力超过总计算能力的50%,这意味着您处理这些散列的速度比其他任何人都快,因此这增加了您在大多数情况下首先找到nonce的可能性


    此外,查找nonce的过程将对每个块重复。因此,必须对每个区块重新进行工作。

    好的,但如何证明链条的最小功率?对于区块,我知道每个2016区块都会设置难度,但对于链???@user3776738,区块的难度决定了所需的采矿功率。您在为块查找哈希时投入的计算能力是您挖掘能力的度量。拥有51%意味着你的计算能力超过了整个网络的总和。检查相同的信息图表解释。但是如果他使用与主链相同的难度,那么他的10个区块具有与其他区块相同的合法计算能力。每个区块中必须有计算所有区块组合难度的内容。因此,第n个块必须具有所有先前块+第n个块的难度和。我不知道blockheader中有多少这样的字段。@user3776738您似乎不知道比特币是如何工作的。你看过我链接的文章了吗?我只是不明白,blockheight怎么能被篡改。如果有人声称它是1001号区块。你怎么能证明他错了,因为可能是你的链是错误的链,所以你必须检查它,对吗?这个问题与编程无关。您可以在我们的姐妹网站上获得帮助。