没有理由相信区块链?

转载
2009 天前
10509
蓝狐笔记

文章来源:蓝狐笔记 作者: Bruce Schneier


前言:作为区块链行业的从业者和投资者,我们一直都被区块链技术所感召。那么如果有人对区块链技术不那么感冒,我们应该怎么看待?本文作者Bruce Schneier(哈佛大学肯尼迪学院任教的安全技术专家)就认为没有什么理由应该相信区块链技术能够给人们带来真正的改变。他的主要逻辑是区块链无法彻底解决“信任”的问题,在人类的社会层面,还有很多中心化的方式,给人更多的“信任”。从目前的实践来看,比特币运行了十多年,以太坊智能合约也发挥了无须信任的中介作用,当然,加密货币都有私钥自我保护的问题,智能合约也有代码安全的问题,达成共识的算法和治理也有潜在的中心化的问题。但它为人们提供了一个可替代的选择。除了目前的信任运作模式,还有新型的信任运作模式。不能神话区块链,认为去中心化可以无所不能,这是不符合人性和人类社会运作逻辑的。但也不能否认区块链的作用。

在2008年首次提出的比特币白皮书中, 化名中本聪的人总结道: "我们提出了一个不依赖中介信任的电子交易系统。”他指的是区块链, 比特币加密货币背后的系统。规避信任是一个伟大的承诺, 但事实并非如此。是的, 比特币消除了信用卡等其他支付系统所固有的某些可信的中介。但你仍然要相信比特币——以及它的一切。

关于区块链以及它如何取代、重塑或消除信任, 已经有很多著述。但是, 当你分析区块链和信任时, 你很快就会意识到, 炒作远高于价值。区块链解决方案往往比它们要取代的方案还糟糕。

首先需要提醒的是,我所说的区块链, 是指非常具体的东西: 构成公共区块链的数据结构和协议。它们有三个基本要素。第一个要素是分布式而不是中心化账本 (蓝狐笔记注:分布式有多份副本,中心化则只有一个账本) , 这是记录所发生事情和事情顺序的一种方式。这个账本是公开的, 也就是说任何人都可以阅读, 而且不可变, 也就是说, 没有人可以改变过去发生的事情。

第二个要素是共识算法, 这是一种确保账本的所有副本都相同的方法。这通常被称为挖矿,系统的一个关键部分是任何人都可以参与。它也是分布式的, 这意味着你不必信任共识网络中的任何特定节点。无论是在数据存储还是在维护数据存储所需的能量方面, 它也可能极其昂贵。比特币拥有迄今为止世界上最昂贵的共识算法。

最后, 第三个要素是货币。这是某种有价值的数字代币, 是公开交易的。货币是区块链的一个必要元素, 以协调所有参与者。这些代币的交易存储在账本上。

私有区块链完全没什么意思(我指的是使用区块链数据结构但不具有上述三个要素的系统)。一般来说, 它们对谁可以与区块链及其功能进行交互有一些外部限制。这些都不是什么新鲜事;它们是分布式的仅可附加(append-only)的数据结构, 其中包含授权添加到其中的个人列表。在分布式系统领域共识协议已被研究60多年, 仅可附加的数据结构也是如此。就我所知, 它们只是名义上的区块链, 使用私链的唯一原因就是利用区块链进行炒作。

公共区块链的所有三个要素都结合在一起, 成为一个提供新安全属性的网络。问题是: 这真的有好处吗?这都是关于信任的问题。

信任对社会至关重要。作为一个物种, 人类通过连接实现信任。没有信任, 社会就无法运作, 我们大多数人甚至不怎么深究它, 这也说明当前基于信任的系统运作良好。

"信任" 这个词有许多含义。有亲近的人之间的信任。当我们说我们信任朋友时, 我们的意思是相信他们的意图, 并知道这些意图所带来的行动。还有一种对不太亲密的人的信任——我们可能不认识一个人, 也不知道他们的动机, 但我们可以相信他们未来的行为。区块链使这种信任成为可能,例如我们不知道比特币的矿工, 但我们相信他们将遵循挖矿协议, 并使整个系统正常工作。

大多数区块链爱好者对信任的定义有一种不自然的狭隘。他们喜欢用一些流行语, 比如 "我们信任代码"(In code we trust)、"我们信任数学"(In math we trust) 和"我们信任加密货币"(In crypto we trust)。这里的信任(trust)其实是作为验证(verification)存在。但验证与信任并不一样。

2012年, 我写了一本关于信任和安全的书, 叫《骗子和局外人》。在其中, 我列出了四种非常通用的系统,它们是人类用来激励值得信赖的行为的系统。前两者是道德和声誉。问题是, 它们只在一定规模的人群内有效。原始系统对小型社区来说已经足够好, 但较大的社区则需要委托, 以及更多的形式主义。

第三是机构。机构有规则和法律, 诱导人们按照群体规范行事, 对不这样做的人实施制裁。从某种意义上说, 法律使声誉正式化。最后, 第四个是安全系统。这些都是我们采用的多种安全技术: 门锁和高大的围栏、报警系统和警卫、取证和审计系统等。

这四个要素协同工作, 以实现信任。以银行业为例, 金融机构、商家和个人都关心自己的声誉, 这可以防止盗窃和欺诈。围绕银行业各个方面的法律法规让每个人都遵纪守法, 包括在欺诈的情况下控制风险的备用方案。从防伪技术到互联网安全技术,人们有很多安全系统。

在他2018年的著作《区块链和信任的新架构》中, Kevin werbach 概述了四种不同的 "信任架构"。首先是对等信任。这基本上相当于我提到的“道德和声誉体系”: 一对彼此信任的人。他说的第二个是利维坦( “蓝狐笔记”的Cipher”注:leviathan, 神话中的巨大怪兽, 这里指大型组织)信任, 这与我提到的机构信任相对应。你可以从人类的合同系统中看到这一点, 合同系统使得彼此不相信的各方能够签订协议,因为他们都相信政府系统将有助于解决纠纷。他提到的第三个是中介信任。一个很好的例子是信用卡系统, 它允许彼此不信任的买卖双方从事商业活动。他说的第四个信任体系结构是分布式信任。这是新兴的信任类型,尤其在特定安全系统中,它就是区块链。

区块链所做的是将对人和机构的一些信任转移到对技术的信任上。你需要信任密码学、协议、软件、计算机和网络。你需要绝对信任他们, 因为他们往往是单点失败(蓝狐笔记cipher注:这里是指一个环节的失败导致整个系统失败)。

当这种信任被证明是错误时, 就没有追索权了。如果你的比特币交易被黑客攻击, 你可能损失所有资金。如果你的比特币钱包被黑客入侵, 你将损失所有资金。如果你忘记了你的登录凭据, 你将损失所有资金。如果你的智能合约代码中存在错误, 你将损失所有资金。如果有人成功地破解区块链安全, 你将损失所有资金。在许多方面, 信任技术比信任人更困难。你是相信人类的法律系统还是相信计算机代码的细节(而你没有专业审计这些代码)?

区块链爱好者指出, 更传统的信任形式成本很高——比如银行手续费。但区块链信任的成本也很高;只不过这种成本被隐藏了。对于比特币来说, 这种成本就是挖矿的成本、交易费用和巨大的资源浪费。

区块链并不能消除人类对信任机构的需要。总会有一个巨大的范围,它光靠技术是无法解决的。人们仍然需要掌控, 总是需要在系统之外进行治理。这一点在关于比特币区块大小的争论中, 或者在修复针对以太坊的DAO攻击中, 都是显而易见的。我们总是需要有在特定条件下推翻规则的能力, 也总是需要有能力对永久性规则进行修改。只要硬分叉存在可能——当系统外部的人试图改变它时——人们就需要掌控。

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

区块链技术往往是中心化的。比特币理论上可能基于分布式信任, 但实际上, 这是不正确的。几乎所有使用比特币的人都必须信任为数不多的钱包, 并使用为数不多的可用交易所。人们必须信任软件和操作系统以及计算机, 一切使用比特币所需要运行的服务。我们看到了对钱包和交易所的攻击。我们已经看到了木马、网络钓鱼和密码猜测。犯罪分子甚至利用人们修复手机系统缺陷的机会来窃取比特币。

此外, 在任何分布式信任系统中, 都有后门方法,被中心化用来潜入系统。在比特币系统中, 只有少数几个矿工控制大多数算力,且只有一家公司提供大部分挖矿硬件,以及只有少数几家交易所占据了绝大多数交易量。就大多数人而言,与比特币互动就是通过这些中心化系统。这也使对区块链系统发起攻击成为可能。

这些问题不是当前区块链应用中的错误, 它们来自区块链行业固有的运行方式。对其系统安全性的任何评估都必须考虑整个社会技术系统。太多的区块链爱好者专注于区块链自身的技术, 而忽略了其他的社会技术系统。

在某种程度上,人们不使用比特币, 是因为他们不信任比特币。这与密码学或协议无关。事实上, 在这个系统中, 如果你忘记了私钥或偶然下载了恶意软件就会失去一辈子的储蓄, 那么也许这个系统并不特别值得信赖。而这时再怎么解释SHA-256 是如何防止双花的, 也无济于事。

同样, 在某种程度上,人们使用区块链,是因为他们信任区块链。人们根据比特币的声誉决定是否拥有比特币; 即使是那些拥有比特币的投机者也是如此, 他们拥有比特币是因为他们认为比特币会让他们一夜暴富。人们根据声誉选择加密货币钱包, 或交易所。我们甚至基于算法声誉来评估和信任支撑区块链的密码学。

要了解这可能会失败, 请看看使用区块链的各种供应链安全系统。区块链并不是其中任何一个的必要特征。他们之所以成功, 是因为每个人都有一个单一的软件平台来输入他们的数据。尽管区块链系统建立在分布式信任的基础上, 但人们不一定接受这一点。例如, 一些公司不信任 IBM/ maersk 系统,因为它不是公司自己的区块链。

不理性?也许吧, 但信任就是这样运作的。它不能被算法和协议所取代。它还含有很多社会层面的复杂因素。

尽管如此, 区块链能在某种程度上消除对信任的需求,这种想法依然存在。最近, 我收到了一家公司的电子邮件, 该公司使用区块链实现了安全消息传递。邮件中上说: "像我们所做的那样, 使用区块链消除了对信任的需求。"这种情绪表明, 作者误解了区块链的作用和信任的运作方式。

你需要一个公链吗?答案几乎可以肯定是不, 你不需要。区块链可能无法解决你认为可以解决的安全问题。它解决的安全问题可能不是你遇到的问题(操纵审核数据可能不是你的主要安全风险)。对区块链的错误信任本身可能就是一种安全风险。低效率, 特别是在规模扩展方面, 可能不值得。我已经研究了许多区块链应用, 它们都可以在不使用区块链的情况下实现相同的安全属性——当然, 这样它们就不会有很酷的名字了。

老实说, 加密货币用处不大。它们只是被投机者用来寻求快速致富、以及不喜欢法币的人和进行黑市交易的人所利用。

要回答我们是否需要区块链的问题, 问问自己: 区块链是以任何有意义的方式改变了信任体系, 还是只是将其转移?它是否只是试图用验证来取代信任?它是加强现有的信任关系, 还是试图与之对立?信任如何在新系统中被滥用, 这是否比在旧系统被滥用更好或是更糟?最后: 如果你完全不使用区块链, 你的系统会是什么样子?

如果你问自己这些问题, 很可能会选择不使用公共区块链的解决方案。这将是一件好事——尤其是当炒作消散的时候。