主页 > imtoken里的ht > 比特币的时机问题

比特币的时机问题

imtoken里的ht 2023-04-13 06:17:40

比特币系统的区块时间戳保护规则

本文发表于 2019 年 11 月,旨在帮助读者了解区块链的时间戳保护机制,为区块链的设计和应用提供思路。

摘要:我们研究了两条鲜为人知的比特币规则,这些规则可防止流氓矿工操纵区块时间戳以获得不公平的高额挖矿奖励。我们讨论了为什么可以选择像 2 小时 MAX_FUTURE_BLOCK_TIME 值这样的常数,以及该值如何具体影响比特币现金。我们得出的结论是,考虑到在实施规则时缺乏功能网络,比特币的时间保护规则似乎非常有效,令人钦佩。

比特币的时机问题

有人可能认为时间对比特币网络来说不是一个重要的考虑因素,因为每个区块都引用了前一个区块的哈希值,所以这些区块已经是有序的。比特币区块还包含交易(输入、输出和值)、从中派生出区块头的默克尔树,以及用于证明工作量的区块哈希本身。从表面上看,这对于交易和共识系统来说可能已经足够了。但是,存在调整难度的问题。如果太多矿工加入网络,出块时间可能会变得太快,或者如果太多矿工离开,出块时间可能会变得太慢,从而导致网络不可靠。为了解决这个问题,挖矿难度每两周调整一次,以达到块之间十分钟的目标时间。不幸的是,为了计算两周的时间,时间的概念需要引入区块链,成为共识系统的一部分。所以区块必须包含时间戳,可以将比特币视为世界上第一个分布式电子时钟。

阻止时间戳安全规则

生成比特币区块时,基本上涉及两次:

区块头中的时间,由矿工放置

生成块的实际时间。

当然,两次应该差不多。毕竟,矿工必须有相当准确的时钟,那他们为什么要在时间上撒谎呢?

矿工确实有对时间撒谎的动机。例如,流氓矿工可能会添加未来时间戳。例如,如果生产一个块需要 10 分钟,矿工可以通过在未来添加一个 5 分钟的时间戳来声称它需要 15 分钟。如果在整个两周的难度调整期间继续增加这 5 分钟,平均出块时间将看起来像 15 分钟,而实际上它更短。那么下一个周期的难度可能会因为更快的出块时间而向下调整,增加挖矿收益。当然,这种方法的问题在于比特币时钟继续远离实时。

为了解决或缓解上述问题,比特币有两种机制来防止矿工篡改时间戳。

过去时间中位数 (MPT) 规则 - 时间戳必须早于过去 11 个区块的中位数。11 个区块的中位数意味着可以重组 6 个区块并且时间仍然不会倒退,这可能与 Meni Rosenfeld 2012 年报告中提供的示例一致,即对于 10% 的网络计算能力的攻击者必须执行 6 个确认将攻击的成功概率降低到 0.1%。

未来区块时间规则根据 - MAX_FUTURE_BLOCK_TIME 常数,与来自同行的中位时间相比,未来的时间戳不能出现超过 2 小时。节点提供的时间与本地系统时钟之间的最大允许差异为 90 分钟(另一种保障措施)。请注意,与上述 MPT 规则不同,这不是完整的共识规则。时间戳太远的块是无效的,但随着时间的推移它们可能会变得有效。

规则一确保区块链继续及时向前移动,而规则二确保区块链不会向前移动太远。这些时间守卫规则并不完美,例如,矿工仍然可以通过在两周内生成未来的时间戳来将时间戳向前移动,但这种操作的影响是有限的。

如上述比率所示,由于两小时只是两周的一小部分,因此此操作可能对网络可靠性和采矿盈利能力的影响有限。这相当于在难度调整后的两周内,将区块之间的时间从 10 分钟减少到 9 分 54 秒。而且,这只是一次改变,因为一旦发生了两个小时的时移,就不能再向前移动,除非先向后移动。同时,矿工可能会考虑安全边际,以降低在前进两小时之前区块被网络拒绝的风险。

根据我们的判断,这些规则已被证明在防止矿工恶意篡改比特币时间戳方面相当有效。

比特币现金的理论阻塞时间问题

正如我们在 2017 年 9 月首次提到的,比特币现金是 2017 年 8 月从比特币分叉出来的替代货币,其主要目的是增加区块大小限制。当时比特币现金开发者的担忧之一是很多矿工不会挖比特币现金,因此区块之间的时间差可能太大。因此实施了所谓的“紧急难度调整”(EDA)来缓解这种担忧。我们不会在这里详细介绍,但可以说这种机制非常复杂并且被证明存在根本缺陷。该算法意味着如果在一定时期内没有找到一定数量的块,难度就会降低。这个政策特别激进,因为它意味着区块之间的时间间隔越长,难度向下调整越大。矿工可以故意留下很大的时间滞后来操纵网络,从而导致难度发生巨大变化,随后出现以非常高的频率产生块的低难度时期。然后网络变得不可靠。

由于这个缺陷,产生了比预期更多的比特币现金块,并且在此期间矿工的收入增加了。比特币现金基于比特币建立了大约 5,000 个区块线索,并且今天仍然存在一个线索。几个月后,也就是 2017 年 11 月,终于进行了修复。EDA 被移除,取而代之的是一个新的难度调整系统(更简单的 24 小时滚动系统)。不过,这与比特币的两周窗口制还是有区别的。比特币现金的系统更具动态性,调整速度更快。虽然这意味着比特币现金在短期内可能会面临更大的波动,但该货币对会更快地适应变化比特币4小时白色的线,而比特币的时间滞后修正可能需要更长的时间。

许多人在比特币现金的新难度调整算法中可能忽略的一件事是它与两小时时间保护规则的关系。据我们所知,比特币现金保持 2 小时不变。(来源:BitMEX 研究)

两小时现在是计算周期的 8.3%。这相当于将块之间的时间从 10 分钟减少到 9 分 10 秒。这似乎确实具有潜在的重要意义,如果被利用,可能会导致矿工盈利能力发生变化。因此,比特币现金可能在某种程度上容易受到矿工篡改时间戳的影响,或者至少比比特币更容易受到攻击。另一方面比特币4小时白色的线,虽然比特币现金比比特币更容易受到矿工时间戳篡改攻击,但问题得到了更快的解决。

综上所述

比特币现金的时间保护规则显然很脆弱,可能不会被利用,这表明比特币的时间保护规则是经过深思熟虑的。据我们所知,这些时间守卫规则自 2009 年比特币推出以来就存在。在设计系统时,中本聪必须在至少三个层次上进行创新:

工作系统验证→难度调整系统→完善的时间保护规则

虽然这在今天对我们来说似乎不是特别复杂,但我们已经有 10 年的使用这些系统的经验。我们认为,中本聪在这样的网络出现之前就考虑到了这一点是非常了不起的。