查看原文
其他

比特币史话·85 | 压缩(3): 植树造林

刘教链 刘教链 2023-01-30

(斯图尔特·哈伯。图片来源于网络)
前情回顾:
比特币史话·80 | 有容乃大(4): SWIFT
比特币史话·81 | 有容乃大(5): 1比特币300万美元?
比特币史话·82 | 有容乃大(6): 二层支付网络
比特币史话·83 | 压缩(1): 默克尔树
比特币史话·84 | 压缩(2): 装到手机里

正文:

在1980年拉尔夫·默克尔发明了默克尔树之后,美国密码学家、企业家斯图尔特·哈伯(Stuart Haber)于1991年在“密码学期刊”(Journal of Cryptology)联合发表了一篇题为《如果给数字文档加盖时间戳》(How to time-stamp a digital document)的论文[1]。在这篇论文中,哈伯提出了一种给数据加盖时间戳的方法,使得用户无法向前或向后篡改文档时间,即使在时间戳服务器合谋的情况下也不能。同时,在论文中,他指出,能够对于输入的“种子”产生无法与随机序列分辨开的数字序列的“安全的伪随机数生成器”(secure pseudorandom generator)对于实现分布式信任是很关键的。而且可以证明,只要单向函数(比如哈希函数)存在,那么这样的伪随机数生成器就是存在的。而所谓安全的伪随机数生成器,是指除了随机选择之外,没有更快的方法来找到一个“种子”。

在论文中,哈伯提出了由一群节点共同把一个伪随机数种子作为加盖到文档的时间戳,并以此防范节点合谋篡改时间戳。从哈伯的“种子”里,我们就能看到比特币工作量证明的影子。同时,哈伯在论文中给出了每个时间戳相关信息中都要包含上一个时间戳相关信息的哈希,从而形成了哈希的链条。这被认为是最早的区块链链式结构的雏形。

1993年,斯图尔特·哈伯又在“系列II:通信、安全和计算机科学中的方法”发表论文《改善数字时戳的有效性和可靠性》(Improving the Efficiency and Reliability of Digital Time-Stramping)[2]。在这篇论文中,斯图尔特·哈伯创造性地引入默克尔树,并把一棵棵的树“种”到一个个区块头,实现了默克尔树的“上链”。

1997年,斯图尔特·哈伯的论文《比特信息串的安全命名》(Secure Names for Bit-Strings)被“ACM计算和通信安全第4届会议论文集”收录[3]。在该论文中,哈伯提出了给任意比特币信息串(包括任何数字文档)“命名”的方法,使用可验证的密码学哈希函数,组织成一个持续增长的无环图,每一个比特信息串所在的位置都是永恒不变的,并且独立于任意给定的哈希函数的使用寿命(因为随着时间流逝,哈希函数会遭遇被破解的黑天鹅)。这已经非常接近后来比特币区块链的数据结构了。

在中本聪发表于2008年的比特币白皮书仅有的8篇参考文献,斯图尔特·哈伯的上述三篇论文独占3个席位。哈伯成为被中本聪引用最多的论文作者。

(H. Massias论文中设计的数据结构。图片来源于网络)

在此之外,中本聪在比特币白皮书中还引用了1999年H. Massias等人发表在“比荷卢经济联盟第20届信息理论研讨会”(20th Symposium on Information Theory in the Benelux)上的《一个最小化信任需求的安全时间戳服务的设计》[4]。在这篇论文中,比特币所用的区块链的“哈希链条+默克尔树”的数据结构骨架已经完全被设计出来了。

【未完待续】(公众号:刘教链)

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存