比特币中的假链如何处理?

时间:2018-10-24 19:54:23

标签: hash blockchain bitcoin mining

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

此节点将如何处理?我想知道,如果邪恶矿工制造的链证明错误或正确,那么必须将块1000下载到95才能最终看到块95是伪造的。

这是正确的还是节点处理它的另一种方式?

1 个答案:

答案 0 :(得分:1)

您所说的情况将永远不会发生。

  1. 如果要使链条最长,则需要拥有超过50%的采矿能力,这样将来将来某个时候,您将最终赶上主链并超越主链。追赶的速度将取决于您拥有超过50%的速度。这种攻击之所以起作用,是因为这样一来,您在生产新区块的速度上击败了任何其他潜在的矿工,因此,您生产区块的速度总是比网络上其他任何人都要快,从而确保您的链条最长。

    < / li>
  2. 因此,鉴于您的邪恶矿工拥有10%的采矿能力,他永远无法将他的链条长度扩展到主链之外。唯一可能的方法是使用较低难度的随机数来加快块的生产,但是这种块将被网络中的任何其他节点视为无效的节点拒绝。

因此,简而言之,邪恶矿工使其他节点接受他的区块的唯一方法就是使他的链最长,而只有当他拥有超过50%的网络挖掘能力时才能这样做。

编辑1: 考虑网络中每个参与者的计算能力,并假设将它们相加,您将得到100。现在,如果您拥有总数的10%,则意味着您发现新块的可能性比计算量较小的其他人更高力量比你强。但是,这不能保证您一定会首先找到随机数。

找到满足难度的哈希取决于概率。您会用蛮力遍历大量数字,直到哈希满足难度为止。可能只有总计算能力的0.5%的人会首先找到随机数。但是,您可以更快地处理这些数字,则首先找到随机数的机会就越大。

因此,如果您某种程度上拥有超过50%的总计算能力,则意味着您处理这些哈希值的速度比其他任何人都快,因此,这增加了您在大多数情况下首先发现随机数的可能性。

此外,对每个块重复此查找随机数的过程。因此,必须对每个块重新进行一次工作。