“区块链作为去信任的解决方案,往往比它所要取代的对象要糟糕得多。”

写过《应用密码学》(Applied Cryptography)等教科书等级著作、任教于哈佛大学甘迺迪学院的美国著名信息安全大师 Bruce Schneier,近日在《连线》杂志发表一篇长文,从信任与安全的角度,强烈质疑区块链技术的价值。此文引起各方广泛热议。

在这篇原题 There's No Good Reason to Trust Blockchain Technology 的文章中,Bruce Schneier 指出区块链号称可以用技术取代人类社会的信任,但实际上验证(verification)并不等于信任(trust)

他呼吁大家勿盲目相信区块链,批评需要准入机制的私有区块链毫无意思,也说如比特币、以太坊这类开放的公有区块链亦毫无用处。若问“你需要一个公有区块链吗?”,“答案几乎是不。”因为区块链可能无法解决任何你认为可用它来解决的安全问题。而它所解决的安全问题则可能并非你所需解决的。

图|Bruce Schneier(来源:harvard.edu)

Bruce Schneier 所言是否有理?DT 君将其文编译如下。

我们没有任何好的理由去信任区块链技术

在他首次提出比特币的2008年的白皮书中,匿名的中本聪总结道:“我们已经提出了一个无需依靠信任的电子交易系统。”他所指的便是区块链——支撑比特币的系统。规避信任是一个伟大的承诺,然而事与愿违。诚然,比特币去除了特定的中介——就像内嵌于其它交易系统,如信用卡中的那样的。但是你仍然必须去信任比特币,以及关乎它的一切事物。

很多人已经撰写过关于区块链本身及其对信任的替代,重塑或者去除。但当你分析区块链与信任的关系时,你很快就会意识到那些文章所言,炒作意味远高于其价值。区块链作为去信任的解决方案,往往比它所要取代的对象要糟糕得多。

首先要给出一个警告(caveat),当本文提及区块链时,是指一些非常具体的东西:构成公有区块链的数据结构和协议。它们有三个基本要素。第一个是分布式(有多个备份)但又中心化(只有一个总的)账本,这是一种记录发生了什么事情和事情以怎样次序发生的方式。这份账本是公共的,意味着任何人都可以读取它,以及不可篡改的,意味着没有人可以改变其上所记录的过往事宜。

第二个要素是共识算法,即确保所有的账本都是相同的机制。其通常被称作挖矿;该系统的一个重要部分是任何人都可以参与其中。共识算法同样是分布式的,意味着在共识网络中,你无需信任任一特定节点。在维护这套系统正常运行所需的能源及数据容量方面,共识算法的成本是比较高的。比特币有截至目前全球成本最高的共识算法。

最后,第三个要素是货币。这是某种具有价值并可被公开交易的数字令牌。货币是区块链的必要元素,它可以激励所有人参与其中。包含这些令牌的交易则被记录在账本上。

私有区块链则毫无意思。(此处私有区块链是指运用区块链数据结构但并无以上三要素的系统。)通常来说,私有区块链对使用者有外部的准入限制。这些并非什么新奇的东西;私有区块链是分布式的附加数据结构,其中包含一个有权加入其中的个人的列表。在分布式系统领域,共识机制已经被研究了超过60年的时间。附加数据结构的研究时间也大致如此。它们只是名义上的区块链,并且据我所知去做区块链的唯一原因是借着区块链炒作。

公有区块链的所有三个元素作为一个单独的网络组合在一起,提供新的安全属性。问题是:它真的有什么用吗?这完全是一个信任的问题。

人类社会的信任含义复杂,勿把验证等同信任

信任之于社会至关重要。作为一个物种,人类相互信任。脱离信任,社会无法运转,事实上我们大多数时候甚至不会去想,这是衡量信任如何运作的一个指标。

信任一词具有很多的含义。有私人与亲密的信任。当我们说我们信任一位朋友的时候,我们是指我们信任他们的行事动机,并知晓他们的动机将怎样影响他们的行动。还有较不亲密,不太私人的信任——我们可能不认识某人,也不知道他们的动机,但可以信任他们未来的行动。区块链使这样的信任变得可能:比如我们不认识任何一位矿工,但我们信任他们将遵循挖矿协议并使整个系统运转。

关于信任,绝大多数区块链的拥趸有一个不自然地狭隘的定义。他们喜欢这样的口头禅“我们信任代码”,“我们信任数学”,“我们信任加密货币”。这是验证意义上的信任,但验证本身同信任并不相同。

在2012年,我写了一本关于信任和安全的书,《骗子与局外人》(Liars and Outliers)。在这本书中,我罗列了四类我们人类用于激励值得信赖行为的系统。前两类是道德与声誉。问题是它们只能适用于一定数量的人口。对于小的社区来说原始系统即信任与声誉是足够的,但更大的社区则需要委托代理,以及更多的形式主义。

第三类是机构。机构有规则与法律来促使人们依据组织标准行事,并制裁那些违规者。某种意义上,法律使声誉正式化。最后,第四类是安全系统。这些是我们采用的各种安全技术:门锁和高栅栏,报警系统和警卫,取证和审计系统等。

这四样要素协同工作进而促成信任。以银行业为例。金融机构,商人,以及个人均会在意其声誉,这防止了偷窃与欺骗。围绕银行业各方面的法律与规则,包括在欺诈情况下限制风险的应急方案,使每个人都在界限内行事。 此外还有很多安全系统在运行,从防伪技术到网络安全技术。

Kevin Werbach 在2018年的新书,《区块链与新的信任结构》(Blockchain and the New Architecture of Trust)中, 总结了四种不同的“信任结构”。第一种是点对点的信任。这基本对应着我所说的道德和声誉系统:成对的互信的人们。他的第二种是利维坦式(leviathan)信任,同机构信任相对应。你可以在合约系统中看到它的作用,这使互不信任的几方可以达成协议,因为他们相信政府会帮忙处理纠纷。Kevin 的第三种是中介信任。一个好的例子是信用卡系统,后者允许不互信的买卖双方达成交易。他的第四种信任结构是分布式信任。这是对特定安全系统即区块链的新兴的信任结构。

区块链的作用是使人们对他人或机构的信任转移到技术上来。你需要相信加密学,一众协议、软件、电脑与网络。并且你需要绝对信任它们,因为它们通常是单节点故障。

当这种信任被证明是错位的时,人们是无法追索其损失的。如果你的比特币交易所被黑客攻击,你会损失掉你所有的资产。如果你的比特币钱包被黑客攻击,你会损失掉你所有的资产。如果你忘记了登录信息,你会丢失你所有的资产。如果你智能合约的代码中有漏洞,你会损失掉你所有的资产。如果某人成功破解了区块链的安全性,你会损失你所有的资产。在许多层面,信任技术比信任人更加困难。你愿意去信任人类的法律系统,还是一些你没有专业能力审计的计算机代码?

区块链拥趸指出更加传统形式的信任很昂贵,例如银行手续费。但区块链信任同样成本高昂;只是该成本是隐性的。对于比特币来说,成本包含挖矿费用、交易手续费,以及巨大的资源浪费。

区块链必须与其它传统系统共存

区块链没有移除信任人类机构的需求。在信任方面总会存在一个鸿沟,是单靠技术难以消弭的。人们仍然需要掌控局面,并且总有在系统之外进行治理的需求。这在关于改变比特币区块大小,或是修复针对以太坊的DAO攻击的持续辩论中是显而易见的。总是会存在覆盖规则的需求,并且始终有永久性的规则更改能力的需求。只要硬分叉有发生的可能性(即掌控区块链的人置身系统之外去改变它 ),人们就需要掌控它。

任何区块链系统都必须同其它更加传统的系统共存。举例来说,现代银行业的设计是可逆的。比特币并不是。这使得两者难以兼容,结果通常是不安全的。Steve Wozniak被骗走了7万美元的比特币,因为他忘记了这一点。

区块链技术往往是中心化的。比特币理论上是一个基于分布式的信任机制,但实践中这并非事实。几乎所有使用比特币的人都必须相信少数可用钱包中的一个,并使用少数几个可用的交易所之一。人们必须相信软件和操作系统以及运行的所有计算机。我们看到了对钱包和交易所的攻击。我们已经看到了特洛伊木马(Trojans),网络钓鱼(phishing)和密码猜测(password guessing)。犯罪分子甚至在系统中使用了用于修复手机的漏洞来窃取比特币。

此外,在任何分布式信任系统中,都有一些后门方法可以让集中化悄悄回归。对于比特币来说,只有少数几个矿工是举足轻重的。有一家公司提供大部分的采矿硬件。只有少数几个占主导地位的交易所。从某种程度上说,大多数人都是通过这些集中的系统进行比特币交易的。这也允许黑客攻击基于区块链的系统。

这些问题并非是现有区块链应用的漏洞,它们根植于区块链的原理中。任何对区块链系统安全性的评估都必须将整个社会技术系统考虑在内。太多的区块链拥趸只关注技术而忽略了其他因素。

某种意义上,人们不使用比特币是因为人们不信任比特币。这同加密网络或者共识协议都毫无关系。事实上,一个如果你丢失私钥或下载恶意软件就会导致你丢失生平积蓄的系统,并不值得信任。再多地去解释SHA-256如何防止双花也无济于事。

类似的,某种意义上,那些使用区块链的人是因为其信任区块链。人们是否持有比特币是基于声誉;甚至对于那些谋图快钱的投机者也是如此。人们基于声誉,为自己的加密货币挑选钱包,为其交易挑选交易所。我们甚至基于算法的声誉来评估与信任支持区块链的加密网络。

要了解这是如何失败的,请看看使用区块链的各种供应链安全系统。区块链并非它们的必要功能。他们成功的原因是每个人都有一个单独的软件来录入数据。尽管区块链系统搭建在分布式的信任之上,人们并非必须接受它。例如,有些公司并不信任 IBM/Maersk 的系统,因为那并不是他们的区块链。

你会觉得这不理智?或许是吧,但这就是信任如何运转的样子。它无法被算法与协议所取代。信任远比后两者更具社会属性

尽管如此,认为区块链可以某种程度上去除对信任的需求这一想法仍存。最近,我收到了一封邮件,其来自一家用区块链技术实现消息安全的公司。邮件中写道:“凭借区块链技术,正如我们已做的——去除了对信任的需求。”这种观点表明作者误解了区块链的作用以及信任的原理。

你需要一个公有区块链吗?答案几乎是不。区块链可能无法解决任何你认为它可解决的安全问题。而它所解决的安全问题可能并非你所需解决的。(操纵审计数据可能并非你的主要安全风险。)对区块链的错误信任本身就是一个安全风险。区块链的低效,尤其是在扩展性方面,使得它可能不是一个有价值的方案。我看过很多区块链应用,它们都能达到同等的安全属性而不借助区块链——当然,它们也无法有区块链这个酷名头。

坦诚地说,加密货币毫无用处。它们只被那些谋求快钱的投机者、不喜欢政府支持的货币的人以及想要通过黑市换钱的犯罪分子。

为了回答区块链是否被需要的问题,问问你自己:区块链有以任何有意义的方式改变了信任系统吗,还是只是围绕信任系统打转?它是否只是试图通过验证来取代信任?它是强化现存的信任关系,还是悖离之?在新的系统中,信任是如何被滥用的,相比旧系统中潜在的滥用,前者是更好还是更糟糕?最后,如果你一点都不使用区块链技术,你的系统又是怎样的?

如果你问问你自己这些问题,可能你不会选择公有区块链的解决方案。并且这会是一件好事——尤其是当炒作消退之时。

声明:本文来自DeepTech深科技,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。