鉴于信息的可塑性,为数字文档添加时间戳成了一个非常复杂的过程。直觉的解决方案根本不起作用。以文本文档为例,只是简单地在文档末尾加上一个日期是根本没用的,因为任何人(包括你自己)都可以轻而易举地修改日期。更何况,你一开始就可以伪造日期。 时间是一条因果链极端一点,整个世界无非就是一张关系网而已。 ——Tim Berners-Lee,《编织万维网》(1999) 伪造日期是一个普遍问题,并不仅仅存在于数字世界。例如,在绑架案中,绑匪就需要一种办法来证实绑票发生的时间。 时间证明 这个方法之所以可行,是因为报纸很难伪造,而且易于验证。由于报纸头版报道的都是前一天的事件,绑匪是不可能提前预知头版新闻、并提前几周就伪造好人质照片的。因此,照片中人质手持的报纸的发行日期就是人质在世的证明。 这个方法凸显了一个重要概念:因果关系。时间箭头反映了事件的因果关系。没有因果关系,就无所谓时间。在赛博世界,哈希函数对于解决时间戳问题来说至关重要,因为它引入了因果关系。如果没有某份文档,我们就无法生成对应的密码学哈希值,因此文档和哈希值之间存在因果关系:先要有数据,而后才能生成(该数据对应的)哈希值。换言之,如果没有单向函数的计算不可逆性,赛博世界中就不会存在因果关系。 先有 A,才有 B 有了因果关系,我们就可以创建出一连串环环相扣的事件。因此,安全的数字时间戳方案得以为原本不存在时间的数字世界谱写历史。 因果关系决定了事件的时间顺序。如果一个事件由之前的某些事件引发,并且引发了之后的某些事件,则该事件在历史上的位置得以确定,不会再更改。 ——Bayer,Haber,Stornetta (1992) 毋庸置疑的是,因果关系对于经济计算而言至关重要。鉴于账本其实是多个合作方之间经济计算的具象化,因果关系对于每个账本而言同样至关重要。 我们需要一个能让所有参与者就唯一历史记录达成共识的系统 …… 我们提出的解决方案基于时间戳服务器。 —— 中本聪(2009) 有趣的是,让比特币得以运作的所有组件其实早已存在。早在 1991 年,Haber 和 Stornetta 就介绍了两种 「可以有效防止时间戳造假」 的方案。一个是依赖于可信第三方的方案,另一个是更为复杂的 「分布式信任」 方案,无需依赖于可信第三方。两位作者甚至发现了信任事件因果链背后的固有问题,以及重写历史所需的条件。换言之,「有可能成功做恶的唯一方法是,准备好一条足够长的时间戳链,长到连最疑心最重的挑战者都怀疑不了的地步。」如今,比特币也存在一个类似的攻击向量,即 51% 攻击(详见下一节)。 (责任编辑:admin) |