比特币时间戳是什么?矿工可以更改吗? - 打点钱包

资讯中心

比特币时间戳是什么?矿工可以更改吗?
2019.12.04

比特币引进时间戳服务器来保证不会出现重复支付的情况,那么,什么是时间戳,矿工能否更改时间戳呢?

 

通常情况下,对一个区块里面的一组数据进行哈希算法得出的哈希值以及加上该时间点上交易产生的时间戳,该区块就会对全网进行广播,向大家表明,又有一个新区块生成。而时间戳在这里的作用,就是向大家表明,在这个时间点,这个区块、交易是真实存在的。只有在该时间点存在了这笔交易,才能够获取相对应的哈希值。每一个时间戳都会将前一个交易时间戳纳入哈希算法中,而每一笔交易都会链接到上一笔交易,最后就形成了一条链条。

 

但是,在在比特币区块产生时,实质上涉及两个时间:一个是区块头中的时间,是由矿工放置的,另一个才是区块产生的实际时间。

 

虽然这两个时间理当是几乎相同的,但不排除一些矿工会在时间上面撒谎。为了解决或减轻这种现象,比特币有两个机制防止矿工篡改时间戳。

 

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

 

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

 

规则一确保区块链在时间方面继续向前移动 ,而规则二确保区块链不会向前移动太远。这些规则在防止矿工以恶意方式篡改比特币时间戳方面,已经证明具有合理的有效性。