1. 首页
  2. 资讯
  3. 比特币

以Hashcash之名:Adam Back是如何驱动比特币诞生的

[公告]hash cash邮资计划正式实施

日期定格在了1997年3月28日,大约2000名Cypherpunks(密码朋克)邮件列表的订阅者在他们的收件箱里收到了一封带有上述标题的邮件。该邮件的发件人是英国埃克塞特大学的一名26岁的博士后,它是一位年轻的密码学家,同时也是也是邮件列表Dr. Adam Back的一位多产贡献者。这封电子邮件包含了他所描述的“基于部分哈希碰撞的邮资计划”的描述和早期实现,这是一种基于精妙的加密技巧的电子邮件邮票。

Adam Back and Pindar Wong

(Adam Back)

他在解释这个系统的优点时写道:

使用部分哈希的想法是它们可以被任意地设置为昂贵的计算成本,但是可以对其立即进行验证。

这位后来成为Blockstream首席执行官的密码学家所提出的建议,并没有立即在电子邮件列表中获得太多人的关注;最初只有一个读者对其进行了回应,该读者对哈希算法的选择进行了技术性的询问。然而,Hashcash背后的技术——工作量证明——将在未来十多年里影响人们对数字货币的研究。

“通过处理或打击垃圾邮件进行收费”

事实上,Back的Hashcash并不是这种类型的第一个解决方案。

在20世纪90年代初,互联网的前景,尤其是电子邮件系统的优势对于关注它们的技术人员来说已经变得显而易见。尽管如此,当时的互联网先驱们开始意识到电子邮件系统本身也面临着挑战。

1992年,IBM的研究员Cynthia Dwork和Dr. Moni Naor在他们的白皮书“通过处理或打击垃圾邮件进行收费”中解释道:

特别是由于发送电子邮件的便捷性和低成本,以及向多方发送相同信息的简便性,都可能会导致滥用的现象。

的确,随着电子邮件的流行,垃圾邮件也越来越流行。

早期的互联网用户都同意对此问题需要有人提供一个解决方案——而解决方案就是Dwork和Naor的论文所提出的方法。

这两人共同提出了一个系统,在该系统中发件人必须在发送的任何电子邮件中附加一些数据,而这个数据将会是一个数学问题的解决方案,这对于所讨论电子邮件来说是独一无二的。具体来说,Dwork和Naor提出了三个可用于此目的的候选谜题,它们全部都基于公钥加密和签名方案。

在电子邮件中添加一个解决方案不会太困难,理想情况下者只需要普通计算机几秒钟的处理能力,而收件人就可以轻松检查其有效性。但是,这个设计非常精妙,因为即使每封电子邮件的处理能力微不足道的,广告商、骗子和黑客们都试图一次发送数千条甚至数百万条信息。但从理论上讲,发送垃圾邮件的代价是很昂贵的,因此这种行为是无利可图的。

Dwork和Naor解释说道:

我们的主要想法是要求用户计算一个中等难度但并不棘手的函数以获得对相关资源的访问,从而避免不必要的使用。

尽管Dwork和Naor没有提出这个术语,但他们引入的解决方案类型将被称为“工作量证明”系统。用户必须真正地显示他们的计算机执行了相关工作,以证明他们花费了真实世界的资源。

这是一个很好的解决方案,但它在当年已经遥遥领先于绝大多数人的认知。因此这一提议仅仅只是在一个相对较小的计算机科学家圈子中进行讨论。

Adam Back和密码朋克

大约在Dwork和Naor发表他们的白皮书的同时,一群具有自由意志主义倾向的专业人士开始认识到互联网的巨大潜力。受意识形态驱使这这群人开始通过以提高隐私技术为中心的邮件列表来进行组织。与Dwork和Naor一样,这些密码朋克利用了相对较新的密码学科学来实现他们的目标。

1996年获得博士学位的Adam Back多年以来确立了自己是这份名单上最活跃的参与者之一,他有时在一个月内就会发送数十封电子邮件。和大多数密码朋克一样,密码学家对隐私、言论自由和自由意志等话题充满热情,同时他们参与了与匿名重邮者、加密文件系统、Dr. David Chaum介绍的电子现金等相关的技术讨论。

但是Back有一段时间可能最擅长的是制作和销售“军火”衬衫:这是一件印有加密协议的体恤衫,其旨在帮助指出美国政府将Phil Zimmermann的PGP加密程序在美国出口法规中定义为”军火“的荒唐决定。如果你穿上Back的衬衫走出美国边境的话,那么从技术角度来看你就是一个“军火走私商”。

munitions_tshirt.original

像许多人一样,Back不知道Dwork和Naor的工作量证明提案。但到了20世纪90年代中期,他开始考虑类似的想法来对付垃圾邮件,有时他也会在Cypherpunks邮件列表中畅谈自己的想法。

使用PGP的附带好处是,PGP加密应该会给垃圾邮件发送者增加一些额外的开销——它可能与通过T3链接发送垃圾邮件相比,每秒加密更少的邮件。

Back评论说道,比如在增加更多的隐私保护的背景下;这有点类似于Dwork和Naor的想法。

Cypherpunks邮件列表的订阅者在大约5年的时间里显著增长。一开始它是一群来自于旧金山湾区初创公司的一群人的在线讨论平台,后来它开始成为一个拥有数千用户的小型互联网现象——通常这个邮件列表一天收到的电子邮件数比任何人能合理最终到的邮件数目都要多。

大约在1997年的年中,它接近了历史上最受欢迎的顶峰——也就是在这时,Back提了Hashcash的建议。

Hashcash

Hashcah类似于Dwork和Naor的反垃圾邮件建议,尽管Back提出了一些额外的用例,如反对匿名重邮件滥用,但是它们还是具有相同的目的。顾名思义,Hashcash并不是基于Dwork和Naor之类的密码谜题;它基于的是哈希。

哈希是一种加密技巧,它可以获取任何数据——无论是单个字母还是一整本书——并将其转换为一个预定长度的随机数。

例如,“This is a sentence produces this hexadecimal number”这个句子的SHA-256哈希值为:

Screen_Shot_2018-06-04_at_9.08.15_AM.original

它也可以被“翻译”为十进制数字:

Screen_Shot_2018-06-04_at_8.55.03_AM.original

或二进制数字:

Screen_Shot_2018-06-04_at_8.55.16_AM.original

与此同时,“This,is a sentence produces this hexadecimal number”这个句子的SHA-256哈希值为:

Screen_Shot_2018-06-04_at_9.06.43_AM.original

正如你所看到的,仅仅在句子中插入一个逗号就完全改变了哈希值。而且重要的是,这两个句子的哈希值是完全不可预测的;即使在第一个句子被散列后,我们也没有办法去计算第二个句子的哈希值。要想找到答案,唯一的办法就是把这两个句子都进行散列才行。

Hashcash以一种巧妙的方式应用了这个数学技巧。

通过Hashcash,电子邮件的元数据(“from”地址、“to”地址、时间等)被正式化为协议。此外,电子邮件的发件人必须在元数据中添加一个随机数:“nonce”。所有这些元数据,包括nonce随后被散列化,因此结果的哈希值看起来有点像上面的随机数之一。

这里有个技巧:并不是每个哈希值都被认为是“有效的”。相反,哈希的二进制版本必须以预定的多个0作为开始。例如:以20个0作为开始。发件人可以生成一个以20个0为开头的哈希值,包括一个随机相加的nonce,但是发送方不能事先知道nonce是什么。

因此要生成有效的哈希值,发件人只有一个选择:那就是试误(“最笨的方法“)。他必须不断地尝试不同的方法,直到找到一个有效的组合;否则他的电子邮件将被收件人的电子邮件客户端所拒绝。与Dwork和Naor的解决方案一样,这种系统需要计算资源:它是一个工作量证明系统。

Back在Cypherpunks的邮件列表上解释道:

如果没有得到20比特的哈希的话[…],那么你要有一个程序可以弹出一个通知来解释所需的邮资,以及从哪里获取软件。这将会在一夜之间使垃圾邮件发送者停止发送垃圾邮件,因为1,000,000×20 = 100MIP年,这将比他们所具备的算力要更多。

值得注意的是,Back的工作量证明系统比Dwork和Naor要更具随机性。后者的解决方案需要解决一个难题,这意味着一台速度更快的电脑每次都比一台速度慢的电脑解决问题的速度要快。但从统计学上讲,Hashcash仍然允许速度较慢的计算机在某些时候更快地找到正确的解决方案。

(打个比方,如果一个人比另一个人跑得快的话,那么跑的快的人每次在冲刺时都能获胜。但如果一个人比另一个人买了更多的彩票,买彩票少的人在统计概率上仍然会偶尔获奖——只是不那么经常罢了。)

数字的稀缺性

就像Dwork和Naor的提议一样,在2002年的一份白皮书中详细阐述的Hashcash——从未有过非常大的发展。它是在Apache的开源垃圾邮件杀手平台上实现的,而微软则在不兼容的“电子邮戳”格式中对工作量证明进行了重新演绎。多年来,Back和其他学者一起为解决方案提出了各种不同的应用,但大多数应用都没有得到多少关注。对于大多数潜在的应用程序来说,网络效应的缺乏可能是难以克服的。

尽管如此,Dwork、Naor以及Back确实引入了一些新的东西。数字产品最强大的功能之一就是能够轻松复制数字产品,而工作量证明本质上是类似于虚拟稀缺的第一个概念(它不依赖于中心化的团体):它将数字数据与现实世界中有限的计算能力资源绑定在一起。

当然,稀缺是金钱的先决条件。事实上,Back在他的Cypherpunks邮件列表和白皮书中明确地把Hashcash放在了货币的类别中,并将它与当时世界上唯一的一笔数字现金,DigiCash的Ecash进行了对比。

Back在邮件列表上表示:

在digicash得到更广泛的应用之前,Hashcash可能会提供一个临时的应急措施。Hashcash是免费的,你所要做的就是在你的电脑上去跑一些循环。这与言论自由的网络文化相一致,在这种文化中那些贫穷的人可以与百万富翁、退休的政府官员等平等地进行竞争。如果digicash出了问题(被禁止或要求代管用户身份),那么Hashcash可能会为我们提供一种控制垃圾邮件的回退(fallback)方法。

然而,尽管它的名字中带有现金两个字,但Hashcash本身并不能作为一种成熟的现金(对Dwork和Naor的提议来说也一样)。也许最重要的是,任何“收到”的工作量证明对接受者来说都是无用的。Hashcash不像钱那样能在其他地方重新使用。同时随着计算机的速度逐年提高以及时间的推移,它们可以以更低的成本生产越来越多的证明,而且Hashcash可能会受到(超通胀)的影响。

对于数字货币领域的研究来说,重点是工作量证明提供了一个新的基础。接下来的几个最著名的数字货币提议都是建立在Hashcash的基础上的,通常允许重复使用工作量证明(比如Hal Finney可重复使用的工作量证明——RPOW——就是最明显的例子)。

比特币

当然,工作量证明最终成为了比特币的基石,Hashcash是比特币白皮书中为数不多的引用之一。

然而,在比特币中Hashcash(或者,更确切地说,它的一个版本)的使用方式与许多人事先猜测的截然不同。与Hashcash和其他基于Hashcash的提议不同,它所提供的稀缺性本身并没有被用作货币。相反,Hashcash支持一场竞赛。不管哪个矿工是第一个找出有效工作量证明的人——一个比特币块的哈希值——他就可以决定哪些交易可以通过。至少在理论上,任何人都可以进行平等的竞争:就像买彩票一样,从统计学上讲,即使是小型矿工也会经常第一个找到有效的工作量证明。

此外,一旦挖出一个新的区块并确认了一组交易的话,这些交易就不太可能被逆转。一个攻击者至少要在找到区块的第一时间进行更多的计算,并且还要多做挖出之前每一各区块的工作,在正常情况下,随着时间的推移,这种情况会变得更加困难。为了作弊而必须花费的真实世界资源通常超过了作弊可能带来的潜在利润,让比特币交易的接受者相信这些交易是最终的。

在比特币中,Hashcash就是这样一箭双雕的。它以一种去中心化的方式解决了双重支付问题,同时它提供了一种在没有中央发行机构的情况下让新币种进入流通的窍门。

Hashcash并没有实现第一个电子现金系统(Ecash是第一个电子现金系统),同时工作证明并不能真正起到货币的作用。但是如果没有它的话,一个去中心化的电子现金系统是不可能实现的。

声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。

发表评论

登录后才能评论