如果您在新闻报道中读到过关于比特币的文章,并且对密码学领域的学术研究有所了解,您可能会得出以下合理的印象:关于数字现金的数十年研究,始于 David Chaum10,12,但并未取得商业上的成功,因为它需要一个中心化的、类似银行的服务器来控制系统,而且没有银行愿意加入。比特币的出现,是一种完全不同的去中心化加密货币方案,它不需要银行,数字现金最终获得了成功。它的发明者,神秘的中本聪(Satoshi Nakamoto),是一位学术界之外的人士,比特币与早期的学术提案毫无相似之处。
本文挑战了这种观点,通过展示比特币几乎所有的技术组成部分都起源于 20 世纪 80 年代和 90 年代的学术文献(见图 1)。这并非要贬低中本聪的成就,而是要指出他是站在巨人的肩膀上。事实上,通过追溯比特币中思想的起源,我们可以聚焦于中本聪真正的洞察力飞跃——将底层组件以特定的、复杂的方式组合在一起。这有助于解释为什么比特币花了这么长时间才被发明出来。已经熟悉比特币工作原理的读者可能会从这份历史性的介绍中获得更深入的理解。(如需入门介绍,请参阅 Arvind Narayanan 等人撰写的Bitcoin and Cryptocurrency Technologies36)比特币的知识产权历史也作为一个案例研究,展示了学术界、外部研究人员和从业者之间的关系,并提供了关于这些群体如何能够互惠互利的经验教训。
如果您有一个安全的账本,那么将其转化为数字支付系统的过程就很简单。例如,如果 Alice 通过 PayPal 向 Bob 发送 100 美元,那么 PayPal 会从 Alice 的账户中扣除 100 美元,并向 Bob 的账户中存入 100 美元。这与传统银行业务中发生的情况大致相同,尽管银行之间缺乏共享的单一账本使事情变得复杂。
账本的概念是理解比特币的起点。它是一个记录系统中发生的所有交易的地方,并且对所有系统参与者开放并受到信任。比特币将这个记录支付的系统转化为一种货币。在银行业务中,账户余额代表可以从银行提取的现金,那么一个单位的比特币代表什么呢?目前,假设交易物本身就具有价值。
如何在像互联网这样参与者可能互不信任的环境中构建账本?让我们从简单的部分开始:数据结构的选择。有一些理想的属性。账本应该是不可变的,或者更准确地说,是仅附加的:您应该能够添加新的交易,但不能删除、修改或重新排序现有的交易。还应该有一种方法可以随时获得账本状态的简洁密码学摘要。摘要是一个短字符串,它可以避免存储整个账本,因为知道如果账本以任何方式被篡改,生成的摘要会发生变化,从而检测到篡改。这些属性的原因是,与存储在单台机器上的常规数据结构不同,账本是一个全局数据结构,由一组互不信任的参与者共同维护。这与另一种去中心化数字账本的方法7,13,21形成对比,在另一种方法中,许多参与者维护本地账本,并且由查询这组账本的用户来解决任何冲突。
比特币的账本数据结构借鉴于 Stuart Haber 和 Scott Stornetta 在 1990 年至 1997 年间撰写的一系列论文,并进行了最少的修改(他们 1991 年的论文还有另一位合著者 Dave Bayer)5,22,23。我们知道这一点,因为中本聪在他的比特币白皮书中这样说过34。Haber 和 Stornetta 的工作解决了文档时间戳问题——他们的目标是构建一个“数字公证人”服务。对于专利、商业合同和其他文档,人们可能希望确定文档是在某个时间点创建的,而不是更晚。他们对文档的概念非常广泛,可以是任何类型的数据。他们确实顺便提到了金融交易作为潜在的应用,但这并不是他们的重点。
在 Haber 和 Stornetta 提案的简化版本中,文档不断被创建和广播。每个文档的创建者声明创建时间,并签署文档、其时间戳和先前广播的文档。先前的文档已经签署了它自己的前身,因此文档形成了一条长链,其中指针向后指向时间。外部用户无法更改带有时间戳的消息,因为它是由创建者签名的,并且创建者也无法更改消息,除非同时更改随后的整个消息链。因此,如果您从可信来源(例如,另一个用户或专门的时间戳服务)获得链中的单个项目,则直到该点的整个链都被锁定、不可变且按时间顺序排列。此外,如果您假设系统拒绝创建时间不正确的文档,您可以合理地确信文档至少与它们声称的创建时间一样早。无论如何,比特币仅从 Haber 和 Stornetta 的工作中借用了数据结构,并通过添加本文后面描述的工作量证明方案重新设计了其安全属性。
在他们的后续论文中,Haber 和 Stornetta 介绍了其他使这种数据结构更有效和高效的想法(其中一些在他们的第一篇论文中有所暗示)。首先,可以使用哈希而不是签名来创建文档之间的链接;哈希计算起来更简单、更快。这种链接称为哈希指针。其次,与其单独串联文档——如果在大致相同的时间创建了许多文档,这可能会效率低下——不如将它们分组到批次或区块中,每个区块中的文档基本上具有相同的时间戳。第三,在每个区块内,文档可以使用哈希指针的二叉树(称为 Merkle 树)而不是线性链链接在一起。顺便说一下,Josh Benaloh 和 Michael de Mare 在 1991 年独立提出了所有这三个想法6,紧随 Haber 和 Stornetta 的第一篇论文之后。
比特币基本上使用了 Haber 和 Stornetta 1991 年和 1997 年论文中的数据结构,如图 2 的简化形式所示(据推测中本聪并不知道 Benaloh 和 de Mare 的工作)。当然,在比特币中,交易取代了文档的位置。在每个区块的 Merkle 树中,叶节点是交易,每个内部节点基本上由两个指针组成。这种数据结构具有两个重要的属性。首先,最新区块的哈希充当摘要。对任何交易(叶节点)的更改都将导致更改一直传播到区块的根,以及所有后续区块的根。因此,如果您知道最新的哈希,您可以从不受信任的来源下载账本的其余部分,并验证它是否没有更改。类似的论证确立了数据结构的另一个重要属性——也就是说,有人可以有效地向您证明特定交易包含在账本中。该用户只需向您发送该交易区块中的少量节点(这是 Merkle 树的重点),以及每个后续区块的少量信息。有效证明交易包含的能力对于性能和可扩展性非常理想。
顺便说一下,Merkle 树是以非对称密码学的先驱 Ralph Merkle 的名字命名的,他在 1980 年的论文中提出了这个想法33。他最初的意图是为数字证书的公共目录生成摘要。例如,当网站向您展示证书时,它也可以提供一个简短的证明,证明该证书出现在全局目录中。只要您知道目录中证书的 Merkle 树的根哈希,您就可以有效地验证该证明。按照密码学标准,这个想法很古老,但它的力量直到最近才被人们认识到。它是最近实施的证书透明度系统的核心30。2015 年的一篇论文提出了 CONIKS,它将这个想法应用于端到端加密电子邮件的公钥目录32。有效验证全局状态的各个部分是以太坊(一种新的加密货币)中账本提供的关键功能之一。
比特币可能是 Haber 和 Stornetta 数据结构最著名的现实世界实例,但它不是第一个。至少有两家公司——始于 90 年代中期的 Surety 和始于 2007 年的 Guardtime——提供文档时间戳服务。这两个服务中都存在一个有趣的转变,即 Bayer、Haber 和 Stornetta5 提到的一个想法,即通过在报纸上刊登广告来定期发布 Merkle 根。图 3 显示了 Guardtime 发布的 Merkle 根。
当然,对于没有中央机构的互联网货币,要求更加严格。分布式账本不可避免地会出现分叉,这意味着一些节点会认为区块 A 是最新的区块,而另一些节点会认为区块 B 是最新的区块。这可能是因为对手试图破坏账本的运行,或者仅仅是因为网络延迟,导致区块偶尔由不同的节点近乎同时生成,而这些节点彼此不知道对方的区块。仅靠链接时间戳不足以解决分叉问题,正如 Mike Just 在 1998 年26 证明的那样。
另一个研究领域,容错分布式计算,已经研究了这个问题,它有不同的名称,包括状态复制。解决这个问题的一种方案是使一组节点能够以相同的顺序应用相同的状态转换——通常,精确的顺序并不重要,重要的是所有节点都保持一致。对于数字货币,要复制的状态是余额的集合,而交易是状态转换。早期的解决方案,包括图灵奖获得者 Leslie Lamport 在 1989 年28,29 提出的 Paxos,考虑了在通信信道不可靠以及少数节点可能表现出某些“现实”故障(例如永远离线或重新启动并发送首次离线时的过时消息)时进行状态复制。随后出现了大量的文献,涉及更不利的设置和效率权衡。
一个相关的工作方向研究了网络大多可靠(消息在有限延迟内传递)的情况,但“故障”的定义被扩展为处理任何偏离协议的行为。这种拜占庭故障既包括自然发生的故障,也包括恶意设计的行为。它们最早是在 Lamport 于 1982 年与 Robert Shostak 和 Marshall Pease 合写的论文中研究的27。很久以后,在 1999 年,Miguel Castro 和 Barbara Liskov 的一篇里程碑式的论文介绍了 PBFT(实用拜占庭容错),它既适应了拜占庭故障,也适应了不可靠的网络8。与链接时间戳相比,容错文献数量庞大,包括 Paxos、PBFT 和其他开创性协议的数百种变体和优化。
在中本聪最初的白皮书中,他没有引用这些文献或使用其语言。他使用了一些概念,将他的协议称为共识机制,并考虑了攻击者以及节点加入和离开网络形式的故障。这与他明确依赖链接时间戳(以及接下来讨论的工作量证明)文献形成对比。当在邮件列表讨论中被问及比特币与拜占庭将军问题(需要 BFT 解决的思想实验)的关系时,中本聪断言工作量证明链解决了这个问题35。
在随后的几年里,其他学者从分布式系统的角度研究了中本聪共识。这仍然是一项正在进行的工作。一些人表明比特币的属性非常弱43,而另一些人则认为 BFT 的视角并不能充分体现比特币的一致性属性40。另一种方法是定义经过充分研究的属性的变体,并证明比特币满足这些属性19。最近,这些定义得到了极大的改进,以提供更标准的、在更现实的消息传递假设下成立的一致性定义37。然而,所有这些工作都对一部分参与者中的“诚实”,即符合协议的行为做出了假设,而中本聪认为,诚实的行为不必盲目假设,因为它受到了激励。对考虑激励作用的中本聪共识进行更丰富的分析,并不能完全融入过去容错系统的模型中。
几乎所有的容错系统都假设系统中严格的大多数或超大多数(例如,超过一半或三分之二)节点都是诚实和可靠的。在开放的对等网络中,节点无需注册,它们可以自由加入和离开。因此,攻击者可以创建足够的女巫或傀儡节点,以克服系统的共识保证。女巫攻击在 2002 年被 John Douceur14 正式化,他转向一种称为工作量证明的密码学构造来缓解它。
为了理解工作量证明,让我们追溯其起源。今天被称为工作量证明的第一个提案是由 Cynthia Dwork 和 Moni Naor 于 1992 年提出的15。他们的目标是阻止垃圾邮件。请注意,垃圾邮件、女巫攻击和拒绝服务都是大致相似的问题,在这些问题中,与普通用户相比,攻击者放大了其在网络中的影响力;工作量证明可以用作防御这三者的手段。在 Dwork 和 Naor 的设计中,电子邮件接收者只会处理那些附带证明发送者已执行适量计算工作的电子邮件——因此,称为“工作量证明”。在普通计算机上计算证明可能需要几秒钟。因此,这对普通用户来说不会造成任何困难,但一个希望发送一百万封电子邮件的垃圾邮件发送者将需要数周时间,使用同等硬件。
请注意,工作量证明实例(也称为谜题)必须特定于电子邮件以及接收者。否则,垃圾邮件发送者将能够以发送给一个接收者的消息成本向同一接收者发送多条消息(或向多个接收者发送同一消息)。第二个关键属性是它应该对接收者造成最小的计算负担;谜题解决方案应该很容易验证,无论它们计算起来有多难。此外,Dwork 和 Naor 考虑了具有后门的函数,后门是中央机构知道的秘密,它将允许该机构在不进行工作的情况下解决谜题。后门的一个可能的应用是,授权机构可以批准发布到邮件列表而无需承担成本。Dwork 和 Naor 的提案包括三个满足其属性的候选谜题,它开启了一个全新的研究领域,我们稍后将回到这个领域。
一个非常相似的想法,称为哈希现金,是由 Adam Back 于 1997 年独立发明的,当时他是一名博士后研究员,也是密码朋克社区的一员。密码朋克是反对政府和中心化机构权力的活动家,并试图通过密码学创造社会和政治变革。Back 具有实践导向:他首先以软件的形式发布了哈希现金2,五年后,在 2002 年发布了互联网草案(标准化文档)和一篇论文4。
哈希现金比 Dwork 和 Naor 的想法简单得多:它没有后门,没有中央机构,并且只使用哈希函数而不是数字签名。它基于一个简单的原则:哈希函数在某些实际用途中表现得像一个随机函数,这意味着找到一个哈希到特定输出的输入的唯一方法是尝试各种输入,直到一个产生所需的输出。此外,找到一个哈希到任意集合的输出的输入的唯一方法是再次逐个尝试哈希不同的输入。因此,如果我挑战您找到一个(二进制)哈希值以 10 个零开头的输入,您将不得不尝试大量输入,并且您会发现每个输出都有 1/210 的概率以 10 个零开头,这意味着您将不得不尝试大约 210 个输入,或大约 1,000 次哈希计算。
顾名思义,在哈希现金中,Back 将工作量证明视为一种现金形式。在他的网页上,他将其定位为 David Chaum 的 DigiCash 的替代品,DigiCash 是一个从银行向用户发行不可追踪数字现金的系统3。他甚至对技术设计做出了妥协,使其看起来更像现金。后来,Back 发表评论,暗示比特币是哈希现金的直接扩展。然而,哈希现金根本不是现金,因为它没有防止双重支出的保护措施。哈希现金代币不能在对等方之间交换。
与此同时,在学术界,研究人员发现了工作量证明的许多应用,除了垃圾邮件之外,例如防止拒绝服务攻击25、确保网络分析的完整性17以及限制在线密码猜测的速率38。顺便说一句,工作量证明这个术语直到 1999 年才在 Markus Jakobsson 和 Ari Juels 的一篇论文中被创造出来,该论文还包括对当时为止的工作的精彩综述24。值得注意的是,这些研究人员似乎并不知道哈希现金,但独立地开始趋同于基于哈希的工作量证明,这在 Eran Gabber 等人18 以及 Juels 和 Brainard25 的论文中有所介绍。(本段中使用的许多术语直到相关论文发表很久之后才成为标准术语。)
您可能知道工作量证明在其最初作为反垃圾邮件措施的应用中并未成功。一个可能的原因是不同设备的谜题解决速度差异巨大。这意味着垃圾邮件发送者将能够对定制硬件进行少量投资,以将他们的垃圾邮件发送率提高几个数量级。在经济学中,对生产成本不对称的自然反应是贸易——即,工作量证明解决方案的市场。但这带来了一个两难困境,因为这将需要一种可用的数字货币。事实上,缺乏这种货币是最初工作量证明的主要动机之一。解决这个问题的一个粗略方法是声明谜题解决方案是现金,正如哈希现金试图做的那样。
将谜题解决方案视为现金的更连贯的方法可以在比特币之前的两篇文章中找到,分别描述了称为 b-money13 和 bit gold42 的思想。这些提案提供时间戳服务,对货币的创建(通过工作量证明)进行签名,一旦货币被创建,它们就会对转移进行签名。然而,如果服务器或节点之间对账本发生分歧,则没有明确的解决方法。让多数人决定似乎隐含在两位作者的著作中,但由于女巫问题,这些机制不是很安全,除非有一个看门人控制进入网络,或者女巫抵抗本身是通过工作量证明实现的。
理解所有这些包含比特币设计片段的前身,可以让人欣赏中本聪创新的真正天才之处。在比特币中,谜题解决方案首次本身并不构成现金。相反,它们仅仅用于保护账本的安全。解决工作量证明是由称为矿工的专门实体执行的(尽管中本聪低估了挖矿的专业化程度)。
矿工们不断地相互竞争以找到下一个谜题解决方案;每个矿工解决略有不同的谜题变体,因此成功的机会与矿工控制的全球挖矿算力的比例成正比。解决谜题的矿工可以将下一批或区块的交易贡献到基于链接时间戳的账本中。为了换取维护账本的服务,贡献区块的矿工将获得新铸造的货币单位作为奖励。在很大概率上,如果矿工贡献无效的交易或区块,它将被贡献后续区块的大多数其他矿工拒绝,这也将使坏区块的区块奖励失效。通过这种方式,由于货币激励,矿工们确保彼此遵守协议。
比特币巧妙地避免了困扰工作量证明即现金方案的双重支出问题,因为它避免了谜题解决方案本身具有价值。事实上,谜题解决方案与经济价值两次脱钩:生成一个区块所需的工作量是一个浮动参数(与全球挖矿算力成正比),而且,每个区块发行的比特币数量也不是固定的。区块奖励(即新比特币的铸造方式)设置为每四年减半(2017 年,奖励为 12.5 比特币/区块,低于 50 比特币/区块)。比特币纳入了额外的奖励计划——即,交易发送者向矿工支付费用,以换取将交易包含在他们的区块中的服务。预计市场将决定交易费用和矿工的奖励。
那么,中本聪的天才之处,不是比特币的任何单个组件,而是它们精巧地组合在一起,为系统注入活力的方式。时间戳和拜占庭共识研究人员没有想到激励节点诚实的想法,也没有想到在 2005 年之前使用工作量证明来消除身份。相反,哈希现金、b-money 和 bit gold 的作者并没有纳入共识算法来防止双重支出的想法。在比特币中,安全的账本是防止双重支出并因此确保货币具有价值的必要条件。有价值的货币是奖励矿工的必要条件。反过来,强大的挖矿算力是保护账本安全的必要条件。如果没有它,对手可能会积累超过 50% 的全球挖矿算力,从而能够比网络其余部分更快地生成区块、双重支出交易并有效地重写历史,从而压垮系统。因此,比特币是自举的,这三个组件之间存在循环依赖关系。中本聪的挑战不仅在于设计,还在于说服最初的用户和矿工社区一起迈向未知——那时,一个披萨价值 10,000 比特币,而网络的挖矿算力还不到今天的万亿分之一。
本文以一个理解开始,即安全的账本使创建数字货币变得简单。让我们重新审视这个说法。当 Alice 希望向 Bob 付款时,她会将交易广播到所有比特币节点。交易只是一个字符串:一条声明,编码了 Alice 向 Bob 支付一定价值的意愿,并由她签名。矿工最终将这个签名声明包含到账本中,这使得交易成为现实。请注意,这不需要 Bob 的任何参与。但让我们关注交易中没有什么:明显缺席的是 Alice 和 Bob 的身份;相反,交易仅包含他们各自的公钥。这是比特币中的一个重要概念:公钥是系统中唯一的身份类型。交易将价值从公钥转移到公钥,这些公钥称为地址。
为了“代表”一个身份,您必须知道相应的私钥。您可以随时通过生成新的密钥对来创建新的身份,无需中央机构或注册表。您无需获取用户名或告知他人您已选择特定名称。这就是去中心化身份管理的概念。比特币没有指定 Alice 如何告诉 Bob 她的化名是什么——这在系统之外。
尽管与当今大多数其他支付系统截然不同,但这些想法非常古老,可以追溯到数字现金之父 David Chaum。事实上,Chaum 也为匿名网络做出了开创性的贡献,正是在这种背景下,他发明了这个想法。在他 1981 年的论文《不可追踪的电子邮件、返回地址和数字假名》9 中,他指出:“数字假名”是一个用于验证相应私钥的匿名持有者所做签名的公钥。”
现在,让消息接收者仅通过公钥为人所知,这提出了一个明显的问题:没有办法将消息路由到正确的计算机。这导致了 Chaum 提案中的巨大低效,这种低效可以与匿名级别进行权衡,但无法消除。与中心化支付系统相比,比特币同样非常低效:包含每笔交易的账本由系统中的每个节点维护。比特币无论如何都出于安全原因而产生了这种低效,因此“免费”实现了假名性(即,公钥作为身份)。Chaum 在 1985 年的一篇论文11 中进一步发展了这些想法,他在其中提出了基于普遍存在的假名以及“盲签名”(他的数字现金背后的关键技术思想)的隐私保护电子商务愿景。
公钥作为身份的想法也可以在 b-money 和 bit gold 中看到,这是之前讨论过的比特币的两个前身文章。然而,许多建立在 Chaum 基础之上的工作,以及 Chaum 自己后来的 ecash 工作,都背离了这个想法。密码朋克对隐私保护的通信和商业非常感兴趣,他们接受了假名,他们称之为 nyms。但对他们来说,nyms 不仅仅是密码学身份(即公钥),而通常是链接到公钥的电子邮件地址。同样,Ian Goldberg 的论文成为未来匿名通信方面许多工作的基础,它认可了 Chaum 的想法,但建议 nyms 应该是人类可记忆的昵称,并带有证书来绑定它们20。因此,比特币被证明是 Chaum 想法最成功的实例化。
到目前为止,本文尚未讨论区块链,如果您相信炒作,区块链是比特币的主要发明。您可能会惊讶地发现中本聪根本没有提到这个术语。事实上,区块链这个术语没有标准的术语定义,而是一个松散的总称,被各方用来指代与比特币及其账本具有不同程度相似性的系统。
讨论从区块链中受益的示例应用程序将有助于阐明该术语的不同用法。首先,考虑一个用于银行联盟之间交易的数据库后端,其中交易在每天结束时进行净额结算,账户由中央银行结算。这样的系统只有少量明确识别的参与者,因此中本聪共识将是多余的。也不需要链上货币,因为账户以传统货币计价。另一方面,链接时间戳显然是有用的,至少可以确保在面对网络延迟时交易的全局排序一致。状态复制也很有用:银行会知道其数据的本地副本与中央银行将用于结算其账户的数据相同。这使银行摆脱了他们目前必须执行的昂贵的对账流程。
其次,考虑资产管理应用程序,例如跟踪金融证券、房地产或任何其他资产所有权的文档注册表。使用区块链将提高互操作性并降低进入门槛。我们想要一个安全、全球的文档注册表,理想情况下是允许公众参与的注册表。这基本上是 1990 年代和 2000 年代的时间戳服务试图提供的。公共区块链为今天实现这一目标提供了一种特别有效的方式(数据本身可以存储在链下,只有元数据存储在链上)。其他应用程序也受益于时间戳或“公共公告板”抽象,最值得注意的是电子投票。
让我们以资产管理示例为基础。假设您想通过区块链执行资产交易,而不仅仅是在那里记录它们。如果资产本身在区块链上以数字方式发行,并且区块链支持智能合约,则这是可能的。在这种情况下,智能合约解决了“公平交换”问题,即确保只有在资产转移时才进行付款。更一般而言,智能合约可以编码复杂的业务逻辑,前提是所有必要的输入数据(资产、其价格等)都表示在区块链上。
这种将区块链属性映射到应用程序的方法不仅使我们能够欣赏它们的潜力,而且还注入了非常需要的怀疑态度。首先,许多提议的区块链应用程序,尤其是在银行业中,不使用中本聪共识。相反,他们使用账本数据结构和拜占庭共识,如前所示,它们可以追溯到 90 年代。这掩盖了区块链是一种新的革命性技术的说法。相反,围绕区块链的热议帮助银行发起集体行动以部署共享账本技术,就像“石头汤”的寓言一样。比特币也已成为去中心化账本有效的非常明显的概念证明,比特币核心项目提供了一个方便的代码库,可以根据需要进行调整。
其次,区块链经常被认为比传统注册表更安全——这是一种误导性的说法。要了解原因,系统的整体稳定性或平台必须与端点安全性分开——即用户和设备的安全性。诚然,区块链的系统性风险可能低于许多中心化机构,但区块链的端点安全风险远比传统机构的相应风险更糟糕。区块链交易几乎是即时的、不可逆转的,并且在公共区块链中,设计上是匿名的。对于基于区块链的股票注册表,如果用户(或经纪人或代理人)失去对其私钥的控制——这仅仅需要丢失手机或在计算机上感染恶意软件——用户就会失去其资产。比特币黑客攻击、盗窃和诈骗的非凡历史并没有激发太多信心——据估计,至少有百分之六的流通比特币至少被盗过一次39。
这里描述的历史为从业者和学者提供了丰富(且互补)的教训。从业者应该对革命性技术的说法持怀疑态度。正如本文所示,比特币中大多数在企业界引起兴奋的想法,例如分布式账本和拜占庭共识,实际上可以追溯到 20 年或更久以前。认识到您的问题可能不需要任何突破——研究论文中可能存在长期被遗忘的解决方案。
至少在这个例子中,学术界似乎有相反的问题:对激进的、外在的想法的抵制。比特币白皮书,尽管其许多想法都有渊源,但它比大多数学术研究更具新颖性。此外,中本聪并不在意学术同行评审,也没有将其与历史完全联系起来。结果,学者们基本上忽略了比特币好几年。许多学术界非正式地认为比特币行不通,基于理论模型或过去系统的经验,尽管事实上它确实在实践中有效。
我们已经反复看到,研究文献中的想法可能会逐渐被遗忘或不被重视,尤其是在它们超前于时代的情况下,即使在流行的研究领域也是如此。从业者和学者都应该重新审视旧的想法,以便为当前的系统汲取见解。比特币之所以与众不同且成功,并不是因为它处于任何组件研究的最前沿,而是因为它结合了许多以前不相关领域的旧想法。这并不容易做到,因为它需要弥合不同的术语、假设等,但它是创新的宝贵蓝图。
从业者将受益于能够识别过度炒作的技术。一些炒作的指标:难以识别技术创新;难以确定所谓的术语的含义,因为公司急于将自己的产品附加到潮流中;难以识别正在解决的问题;最后,声称技术可以解决社会问题或造成经济/政治剧变的说法。
相比之下,学术界难以推销其发明。例如,不幸的是,最初的工作量证明研究人员没有因比特币获得任何赞誉,可能是因为这项工作在学术界之外并不为人所知。诸如发布代码和与从业者合作之类的活动在学术界没有得到充分的回报。事实上,学术工作量证明文献的原始分支今天仍在继续,但没有承认比特币的存在!与现实世界互动不仅有助于获得赞誉,还将减少重复发明,并且是新思想的来源。
在他的关于女巫攻击的论文中,约翰·杜瑟尔提出,参与 BFT 协议的所有节点都需要解决哈希现金谜题。如果一个节点伪装成 N 个节点,它将无法及时解决 N 个谜题,并且虚假身份将被清除。然而,一个恶意节点仍然可以获得相对于诚实节点的适度优势,后者只声明一个身份。2005 年的一篇后续论文1 建议,诚实节点应该模仿恶意节点的行为,并声明尽可能多的虚拟身份,只要它们在计算上能够负担得起。通过这些执行 BFT 协议的虚拟身份,假设“最多有 f 比例的节点是故障的”可以被替换为假设“故障节点控制的总计算能力比例最多为 f”。因此,不再需要验证身份,并且开放的点对点网络可以运行 BFT 协议。比特币正是使用了这个想法。但中本聪提出了一个更深层次的问题:是什么激励节点执行计算成本高昂的工作量证明?答案需要进一步的飞跃:数字货币。
智能合约将 数据 放入安全账本的想法扩展到 计算 。换句话说,它是一个针对公开指定的程序正确执行的共识协议。用户可以调用这些智能合约程序中的函数,但要受到程序指定的任何限制,并且函数代码由矿工并行执行。用户可以信任输出,而无需重新进行计算,并且可以编写自己的程序来对其他程序的输出进行操作。当与加密货币平台结合使用时,智能合约尤其强大,因为所讨论的程序可以处理金钱——拥有它、转移它、销毁它,并且在某些情况下,甚至可以印刷它。
比特币为智能合约实现了一种限制性的编程语言。“标准”交易(即,将货币从一个地址转移到另一个地址的交易)以这种语言中的简短脚本指定。以太坊提供了一种更宽松和更强大的语言。
智能合约的想法由尼克·萨博在 1994 年41 提出,并因此命名,因为他认为它们类似于法律合同,但具有自动化执行。(卡伦·列维31 和埃德·费尔滕16 对此观点提出了批评。)具有先见之明的是,萨博将智能合约视为数字现金协议的扩展,并认识到拜占庭协议和数字签名(以及其他)可以用作构建块。加密货币的成功使智能合约变得实用,并且对该主题的研究也蓬勃发展。例如,编程语言研究人员已经调整了他们的方法和工具,以自动发现智能合约中的错误并编写可验证的正确合约。
虽然本文强调了私有或许可区块链省略了比特币的大部分创新,但这并非旨在贬低在这个领域中正在进行的有趣工作。许可区块链对谁可以加入网络、写入交易或挖掘区块施加了限制。特别是,如果矿工被限制为一组值得信赖的参与者,则可以放弃工作量证明,而采用更传统的 BFT 方法。因此,大部分研究是 BFT 的重生,提出了诸如以下问题:我们能否使用哈希树来简化共识算法?如果网络只能以某些方式失败怎么办?
此外,围绕身份和公钥基础设施、访问控制以及区块链上存储的数据的机密性,存在重要的考虑因素。这些问题在公共区块链设置中基本上不会出现,也未在传统的 BFT 文献中进行研究。
最后,还有为高吞吐量扩展区块链并将其适应各种应用(如供应链管理和金融科技)的工程工作。
作者感谢 Adam Back、Andrew Miller、Edward Felten、Harry Kalodner、Ian Goldberg、Ian Grigg、Joseph Bonneau、Malte Möser、Mike Just、Neha Narula、Steven Goldfeder 和 Stuart Haber 对草稿提供的宝贵反馈。
1. Aspnes, J., et al. 2005. Exposing computationally challenged Byzantine imposters. Yale University Department of Computer Science; http://cs.yale.edu/publications/techreports/tr1332.pdf.
2. Back, A. 1997. A partial hash collision based postage scheme; http://www.hashcash.org/papers/announce.txt.
3. Back, A. 2001. Hash cash; https://web.archive.org/web/20010614013848/http://cypherspace.org/hashcash/.
4. Back, A. 2002. Hashcash—a denial of service counter measure; http://www.hashcash.org/papers/hashcash.pdf.
5. Bayer, D., Haber, S., Stornetta, W. S. Improving the efficiency and reliability of digital time-stamping. Proceedings of Sequences 1991; https://link.springer.com/chapter/10.1007/978-1-4613-9323-8_24.
6. Benaloh, J., de Mare, M. 1991. Efficient broadcast timestamping; http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.38.9199.
7. Boyle, T. F. 1997. GLT and GLR: Component architecture for general ledgers; https://linas.org/mirrors/www.gldialtone.com/2001.07.14/GLT-GLR.htm.
8. Castro, M., Liskov, B. 1999. Practical Byzantine fault tolerance. Proceedings of the Third Symposium on Operating Systems Design and Implementation; http://pmg.csail.mit.edu/papers/osdi99.pdf.
9. Chaum, D. 1981. Untraceable electronic mail, return addresses, and digital pseudonyms. Communications of the 24(2): 84-90; https://dl.acm.org/citation.cfm?id=358563.
10. Chaum, D. 1983. Blind signatures for untraceable payments. Advances in Cryptology: 199-203.
11. Chaum, D. 1985. Security without identification: transaction systems to make Big Brother obsolete. Communications of the 28(10): 1030-1044; https://dl.acm.org/citation.cfm?id=4373.
12. Chaum, D., et al. 1988. Untraceable electronic cash. Advances in Cryptology: 319-327; https://dl.acm.org/citation.cfm?id=88969.
13. Dai, W. 1998; http://www.weidai.com/bmoney.txt.
14. Douceur, J. R. 2002. The Sybil attack; https://dl.acm.org/citation.cfm?id=687813.
15. Dwork, C., Naor, M. 1992. Pricing via processing or combatting junk mail; https://dl.acm.org/citation.cfm?id=705669.
16. Felten, E. 2017. Smart contracts: neither smart nor contracts? Freedom to Tinker; https://freedom-to-tinker.com/2017/02/20/smart-contracts-neither-smart-not-contracts/.
17. Franklin, M. K., Malkhi, D. 1997. Auditable metering and lightweight security; http://www.hashcash.org/papers/auditable-metering.pdf.
18. Gabber, E., et al. 1998. Curbing Junk E-Mail via Secure Classiffication. http://www.hashcash.org/papers/secure-classification.pdf.
19. Garay, J. A., et al. 2015. The bitcoin backbone protocol: analysis and applications. Advances in Cryptology: 281-310; https://eprint.iacr.org/2014/765.pdf.
20. Goldberg, I. 2000. A pseudonymous communications infrastructure for the Internet. Ph.D. dissertation, University of California Berkeley; http://moria.freehaven.net/anonbib/cache/ian-thesis.pdf.
21. Grigg, I. 2005. Triple entry accounting; http://iang.org/papers/triple_entry.html.
22. Haber, S., Stornetta, W. S. 1991. How to timestamp a digital document. Journal of Cryptology 3(2): 99-111; https://link.springer.com/chapter/10.1007/3-540-38424-3_32.
23. Haber, S., Stornetta, W. S. 1997. Secure names for bit-strings. In Proceedings of the 4th Conference on Computer and Communications Security: 28-35; http://dl.acm.org/citation.cfm?id=266430.
24. Jakobsson, M., Juels, A. 1999. Proofs of work and bread pudding protocols; http://www.hashcash.org/papers/bread-pudding.pdf.
25. Juels, A., Brainard, J. 1999. Client puzzles: a cryptographic countermeasure against connection completion attacks. Proceedings of Networks and Distributed Security Systems: 151-165; https://www.isoc.org/isoc/conferences/ndss/99/proceedings/papers/juels.pdf.
26. Just, M. 1998. Some timestamping protocol failures; http://www.isoc.org/isoc/conferences/ndss/98/just.pdf.
27. Lamport, L., et al. 1982. The Byzantine Generals Problem. Transactions on Programming Languages and Systems 4(3): 382-401; https://dl.acm.org/citation.cfm?id=357176 .
28. Lamport, L. 1989. The part-time parliament. Digital Equipment Corporation; https://computerarchive.org/files/mirror/www.bitsavers.org/pdf/dec/tech_reports/SRC-RR-49.pdf.
29. Lamport, L. 2001. Paxos made simple; http://lamport.azurewebsites.net/pubs/paxos-simple.pdf.
30. Laurie, B. 2014. Certificate Transparency. acmqueue 12(8); https://queue.org.cn/detail.cfm?id=2668154.
31. Levy, K. E. C. 2017. Book-smart, not street-smart: blockchain-based smart contracts and the social workings of law. Engaging Science, Technology, and Society 3: 1-15; http://estsjournal.org/article/view/107.
32. Melara, M., et al. 2015. CONIKS: bringing key transparency to end users. Proceedings of the 24th Usenix Security Symposium; https://www.usenix.org/system/files/conference/usenixsecurity15/sec15-paper-melara.pdf.
33. Merkle, R. C. 1980. Protocols for public key cryptosystems. IEEE Symposium on Security and Privacy; http://www.merkle.com/papers/Protocols.pdf.
34. Nakamoto, S. 2008. Bitcoin: a peer-to-peer electronic cash system; https://bitcoin.org/bitcoin.pdf.
35. Nakamoto, S. 2008. Re: Bitcoin P2P e-cash paper; http://satoshi.nakamotoinstitute.org/emails/cryptography/11/.
36. Narayanan, A., et al. 2016. Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction. Princeton University Press; http://bitcoinbook.cs.princeton.edu/.
37. Pass, R., et al. 2017. Analysis of the blockchain protocol in asynchronous networks. Annual International Conference on the Theory and Applications of Cryptographic Techniques; https://link.springer.com/chapter/10.1007/978-3-319-56614-6_22.
38. Pinkas, B., Sander, T. 2002. Securing passwords against dictionary attacks. Proceedings of the Ninth Conference on Computer and Communications Security: 161-170; https://dl.acm.org/citation.cfm?id=586133.
39. Reuters. 2014. Mind your wallet: why the underworld loves bitcoin; http://www.cnbc.com/2014/03/14/mind-your-wallet-why-the-underworld-loves-bitcoin.html.
40. Sirer, E. G. 2016. Bitcoin guarantees strong, not eventual, consistency. Hacking, Distributed; http://hackingdistributed.com/2016/03/01/bitcoin-guarantees-strong-not-eventual-consistency/.
41. Szabo, N. 1994. Smart contracts; http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html.
42. Szabo, N. 2008. Bit gold. Unenumerated; https://unenumerated.blogspot.com/2005/12/bit-gold.html.
43. Wattenhofer, R. 2016. The Science of the Blockchain. Inverted Forest Publishing.
44. Rivest, R. L., Shamir, A. 1996. PayWord and MicroMint: Two simple micropayment schemes. International Workshop on Security Protocols.
Arvind Narayanan 是普林斯顿大学计算机科学助理教授。他领导普林斯顿网络透明度和问责制项目,旨在揭示公司如何收集和使用我们的个人信息。Narayanan 还领导一个研究团队,调查加密货币的安全性、匿名性和稳定性,以及区块链的新颖应用。他共同创建了一个大型开放式在线课程,以及一本关于比特币和加密货币技术的教科书。他的博士研究展示了去识别化的基本限制,为此他获得了隐私增强技术奖。Narayanan 是普林斯顿信息技术政策中心的附属教员,也是斯坦福大学法学院互联网与社会中心的附属学者。您可以在 Twitter 上关注他 @random_walker。
Jeremy Clark 是康考迪亚信息系统工程研究所的助理教授。他从滑铁卢大学获得博士学位,他的金牌论文是关于设计和部署安全的投票系统,包括 Scantegrity——第一个在公共部门选举中使用的密码学可验证系统。他撰写了最早的关于比特币的学术论文之一,完成了该领域的多个研究项目,并为第一本教科书做出了贡献。除了研究之外,他还与多个市政当局合作开展投票技术,并就比特币问题向加拿大参议院作证。您可以在 Twitter 上关注他 @PulpSpy。
版权所有 © 2017 归所有者/作者所有。出版权已许可给 。
最初发表于 Queue vol. 15, no. 4—
在 数字图书馆 中评论这篇文章
Jinnan Guo, Peter Pietzuch, Andrew Paverd, Kapil Vaswani - 使用保密联邦学习的可信 AI
安全性、隐私性、问责制、透明度和公平性原则是现代人工智能法规的基石。经典的 FL 在设计时非常强调安全性和隐私性,但以牺牲透明度和问责制为代价。CFL 通过将 FL 与 TEE 和承诺相结合,弥补了这一差距。此外,CFL 还带来了其他理想的安全属性,例如基于代码的访问控制、模型机密性和推理期间的模型保护。保密计算的最新进展,如保密容器和保密 GPU,意味着现有的 FL 框架可以无缝扩展,以低开销支持 CFL。
Raluca Ada Popa - 保密计算还是密码学计算?
通过 MPC/同态加密与硬件 enclave 进行安全计算,在部署、安全性和性能方面存在权衡。关于性能,您心中想的是哪种工作负载非常重要。对于简单的求和、低阶多项式或简单的机器学习任务等简单工作负载,这两种方法都可以在实践中使用,但对于复杂的 SQL 分析或训练大型机器学习模型等丰富的计算,目前只有硬件 enclave 方法在许多实际部署场景中足够实用。
Matthew A. Johnson, Stavros Volos, Ken Gordon, Sean T. Allen, Christoph M. Wintersteiger, Sylvan Clebsch, John Starks, Manuel Costa - 保密容器组
此处展示的实验表明,Parma(在 Azure 容器实例上驱动保密容器的架构)增加的额外性能开销不到底层 TEE 增加的额外性能开销的百分之一。重要的是,Parma 确保了容器组所有可达状态的安全不变性,这根植于证明报告中。这允许外部第三方与容器安全地通信,从而实现需要机密访问安全数据的各种容器化工作流程。公司获得了在云中运行最机密工作流程的优势,而无需在其安全要求上妥协。
Charles Garcia-Tobin, Mark Knight - 使用 Arm CCA 提升安全性
保密计算有很大的潜力通过将监管系统从 TCB 中移除来提高通用计算平台的安全性,从而减小 TCB 的大小、攻击面以及安全架构师必须考虑的攻击向量。保密计算需要平台硬件和软件方面的创新,但这些创新有可能在计算中实现更大的信任,尤其是在由第三方拥有或控制的设备上。保密计算的早期消费者将需要就他们选择信任的平台做出自己的决定。