比特币区块时间戳保护规则!比特币如何防止矿工篡改时间戳?

  发布时间:2023-08-01 19:02:02   作者:手工客  
比特币的时间问题,人们可能认为时间对于比特币网络并不是一项重要的考虑因素,因为每个区块都引用前一个区块的哈希值,所以这些区块已经有先后顺序。比特币区块还包含交易(输入、输出和值)、推导区块头的默克尔树(Merkle Tree)和区块哈希值本身,用于证明工作量

比特币的时间问题,人们可能认为时间对于比特币网络并不是一项重要的考虑因素,因为每个区块都引用前一个区块的哈希值,所以这些区块已经有先后顺序。比特币区块还包含交易(输入、输出和值)、推导区块头的默克尔树(Merkle Tree)和区块哈希值本身,用于证明工作量。从表面上看,这对于交易和一致性系统也许已经足够。但是,存在调整难度的问题如果太多的矿工加入网络,区块时间可能变得太快,又或者如果太多的矿工离开,区块时间可能变得太慢,使得网络不可靠。

为了解决这个问题,每两星期调整一次采矿难度,以实现区块之间十分钟的目标时间。遗憾的是,为了对两星期的时间进行计算,需要将时间概念引入区块链并成为一致性系统的一部分。因此区块必须含有时间戳,人们可以将比特币看作世界上第一个分布式电子时钟。

比特币区块时间戳保护规则!比特币如何防止矿工篡改时间戳?

区块时间戳安全规则

在比特币区块产生时,实质上涉及两个时间:

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

2. 区块产生的实际时间。

当然,这两个时间应当几乎相同。毕竟,矿工们肯定有合理准确的时钟,他们为什么会在时间上撒谎呢?

矿工的确存在在时间上撒谎的诱因。比如,不法矿工可能会添加一个将来的时间戳。举例,如果生产一个区块要 10 分钟,矿工可以通过向将来添加 5 分钟的时间戳来声称花了 15 分钟。如果这种增加 5 分钟的做法在整个两星期的难度调整周期都持续 ,平均区块时间会看起来像是 15 分钟,而实际上比这要短。那么下一个周期的难度可能会向下调整,由于区块时间加快,增加采矿收入。当然,这种方法的问题在于,比特币时钟的移动继续与真实时间越来越远。

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

1. 过去时间中值(MPT)规则 - 时间戳必须比过去 11 个区块的中值更靠前。11 个区块的中值意味着可以对6 个区块进行重组并且时间仍不会向后移动,有人可能认为这与 Meni Rosenfeld 的 2012年报告中提供的例子是一致的,即对于拥有 10% 网络算力的攻击者,必须进行六次确认才能将攻击的成功概率降低到 0.1% 以下。

2. 未来区块时间规则根据 -MAX_FUTURE_BLOCK_TIME 常量,相比来自同等节点的中值时间,时间戳不能出现在未来 2 小时以上。节点提供的时间与当地系统时钟之间的最大允许差是 90 分钟(又一个安全保障措施)。需要注意的是,不同于上面的 MPT 规则,这不是一个完全达成共识的规则。具有在未来太远时间点的时间戳的区块是无效的,但随着时间向前移动它们可能变得有效。

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

比特币区块时间戳保护规则!比特币如何防止矿工篡改时间戳?

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

据我们判断 ,这些规则在防止矿工以恶意方式篡改比特币时间戳方面,已经证明具有合理的有效性。

比特币现金的理论区块时间问题

如我们最先在 2017 年 9 月所提及,比特币现金是 2017 年 8 月从比特币分叉出来的一种替代货币,它的主要目的是提高区块大小限制 。当时比特币现金开发者的担忧之一, 就是很多矿工不会开采比特币现金,因此区块之间的时间 差可能太大。因此实施了所谓的 “紧急难度调整”(EDA),以减轻这种担忧 。我们在此不会进行详细 讨论,但足以说明此机制非常复杂并且证明存在根本的瑕疵。这种算法意味着,如果在特定时期内没有找到特定数量的区块,难度将会降低。此政策尤其激进,因为它意味着区块之间的时间差越长,难度向下调整的幅度就越大。矿工可以故意留下大的时间差操纵网络,导致难度大幅变动,随后出现以非常高频率生成区块的低难度期。然后网络变得不可靠。

由于这种瑕疵 ,生成的比特币现金区块超过预期,并且矿工在此期间的收入增加。比特币现金建立了基于比特币的大约 5,000 条区块引线,一条引线至今依然存在。几个月后,在 2017 年 11 月,最终进行了修复 。EDA 被移除并且被一个新的难度调整系统(更简单的 24 小时滚动系统)取代。但是,这仍然与比特币的两星期窗口系统不同。比特币现金的系统更加动态并且调整速度更快。 虽然这意味着比特币现金可能在短期拥有更波动的难度,但此货币对变化的调整速度更快,而比特币中的时间差纠正可能需要花费更长时间。

比特币区块时间戳保护规则!比特币如何防止矿工篡改时间戳?

(来源: BitMEX Research)

在比特币现金的新难度调整算法中很多人可能忽略了一件事情 ,就是它与两小时时间保护规则的相互关系。 据我们所知,比特币现金保留了 2 小时常数。

比特币区块时间戳保护规则!比特币如何防止矿工篡改时间戳?

两小时时间现在是计算期的 8.3% 。这相当于将区块之间的时间从 10 分钟减少至9 分 10 秒。这确实似乎具有潜在的重要意义,并且如果加以利用,可能导致矿工盈利能力的变化。因此比特币现金在矿工篡改时间戳方面可能具有一定脆弱性,或者至少比比特币更加脆弱。另一方面,虽然比特币现金面对矿工时间戳篡改攻击时比比特币更加脆弱,但对问题的解决速度更快。

结论

比特币现金的时间保护规则的明显脆弱性,可能未被利用,显示出比特币的时间保护规则的思考是如此完善。据我们所知,这些时间保护规则自 2009 年比特币推出时就已经存在。在设计系统时,中本聪必须至少在三个深度层面进行创新:工作系统的验证 →难度调整系统 →完善的时间保护规则

虽然这在今天我们看来可能不是特别精巧,但我们对这些系统已经有了 10 年经验。我们认为,中本聪在没有任何此类网络之前对此进行了全面思考,是非常了不起的。

相关文章

  • 挖矿是什么(如何挖掘比特币)

    挖矿是什么(如何挖掘比特币)

    挖矿是什么(如何挖掘比特币)
    03-11
  • 比特币如何获取?升值空间还有多大?

    比特币如何获取?升值空间还有多大?

    第一种是挖矿:比如在阿寺家财务制度中,大家手动在自己的账本上记账从而获得奖励。在比特币网络中,负责记录比特币交易信息的角色称为矿工 每隔十分钟,矿工们都会将交易记录打包存储到新的区块中并获得奖励。这个过程就是挖矿。随着比特币余量越来越少,参与挖矿的人却日见增多,目前挖矿的难度非常高,人力和设备的资本投入也非常庞大。
    12-08
  • 如何快速挖比特币(比特币挖矿技巧,加速挖掘速度的方法详解)

    如何快速挖比特币(比特币挖矿技巧,加速挖掘速度的方法详解)

    如何快速挖比特币(比特币挖矿技巧,加速挖掘速度的方法详解)
    11-12
  • 比特币还能挖多少个币

    比特币还能挖多少个币

    比特币还能挖多少个币?比特币的挖掘总量是有上限的,由其核心协议所规定。根据比特币的设计,总计将会有2100万个比特币被挖掘出来。然而,这并不意味着所有的比特币都已经被挖掘
    12-23
  • 怎么样挖比特币(入门级干货如何挖矿赚比特币)

    怎么样挖比特币(入门级干货如何挖矿赚比特币)

    怎么样挖比特币准备矿机-下载软件-注册账户-开启自动挖矿一枚比特币要挖多久1、现在的速度,如果24小时开着电脑,需要三个月左右才能挖到一个比特币。也就是说一台电脑一个月最
    07-06
  • 比特币挖矿是什么:该如何进行正确的挖矿

    比特币挖矿是什么:该如何进行正确的挖矿

    比特币挖矿是什么:该如何进行正确的挖矿?每10分钟,全网的 矿工 一起计算一道算术题,如果谁可以又快有准的答出这道题的话,就相当于获得了记账权,与此同时也就相当于挖到了这个区块,这个矿工便能获得由系统新生的比特币奖励
    06-28
  • 挖矿收益分析:比特币挖矿收益如何

    挖矿收益分析:比特币挖矿收益如何

    比特币挖矿收益如何?现在问这个问题的人一定还不了解这个领域。随着比特币的一路下跌,直接导致的结果是大矿场艰难支撑,小矿场纷纷关门。因为付不起电费了。而且国家政策也不倾向于这些矿主,电费的优惠政策没有了,无论是
    09-14
  • 比特币如何挖矿?常用的挖矿方法是什么?

    比特币如何挖矿?常用的挖矿方法是什么?

    比特币如何挖矿?常用的挖矿方法是什么?比特币越来越被大家熟知,所以越来越多的人加入到开采比特币的行列中。可能很多人要问,比特币如何挖矿?常用的挖矿方法是什么? 比特币挖矿一般都是采用比特币挖矿机的哦。 比特币挖
    04-22
  • 比特币网络如何产生新的比特币?

    比特币网络如何产生新的比特币?

    ​自比特币诞生以来一直都备受投资者关注,虽然在发行初期并没有很多投资者追捧它,但它的发展趋势依旧十分广阔,并且比特币是一种加密货币,这也使它的安全性得到了一定的保障,比特币也与其他数字货币不同,它不受任何机构或个人掌控,具有特定的算法
    03-16
  • 现在如何挖矿赚取比特币比较快?

    现在如何挖矿赚取比特币比较快?

    现在如何挖矿赚取比特币比较快?随着各大媒体纷纷哄炸,好像不聊比特币就不懂经济,慢慢比特币也进入了大家的视线。熟悉比特币的人相信都知道比特币挖矿,但到底什么是比特币挖矿机?通过挖矿机,真的可以挖到比特币致富赚钱吗?
    03-22
  • 比特币浏览器如何挖

    比特币浏览器如何挖

    比特币挖矿是一种通过计算机处理复杂的数学问题来创建新的比特币和验证交易的过程。为了了解比特币挖矿的运作原理,我们需要了解比特币区块链和相关的网络结构。比特币浏览器
    04-21
微信 投稿 脚本任务 在线工具