Nick Szabo:货币,区块链与社会可扩展性(下)
网络安全技术的社会可扩展性
很久以前,我们使用黏土,后来使用纸,如今通过计算机和数据网络上运行的程序和协议来实现大部分商业交易。虽然这种进步极大地改进了交易撮合和信息流动,却导致人类对作恶行为的防御力下降。
随着网络的发展,更多对彼此行为习惯和约束并不了解的人加入进来。基于根信任的访问控制来实现的安全系统只适用于小型办公室,例如,贝尔实验室,里面的工作者互相熟识,收入和支出都通过纸质流程而非办公室计算机上的电子程序控制。然而,随着组织机构变得更加庞大,组织边界更错综复杂,以及更有价值更集中的资源(如货币)被委托给计算机管理时,这种安全系统变得不再高效,也不再安全。
接收越多来自陌生人的电子邮件,就越有可能受到网络钓鱼攻击或收到恶意软件。传统的计算机安全系统并不具备很好的社会扩展性。正如我在《可信任计算的黎明》[7] 中描述的一样:
当我们在蜂窝网络或互联网上使用智能手机或笔记本电脑时,与我们交互的另一端通常运行在其他独立计算机上,例如网络服务器。 实际上,从架构上来说,所有这些机器都是为了方便一个人或一群相互了解信任的人控制而设计的。从远程网络或应用程序用户的角度来看,这些架构建立在对某个未知的 “root”管理员完全信任的基础上。这个管理员可以控制服务器上发生的所有事情:
他们可以任意读取、更改、删除或屏蔽该计算机上的任何数据。即使通过网络加密发送的数据,最终也会被一台受控制的计算机解密和完全掌握。使用网络服务(实际上在这样的网络里我们很容易被攻击)意味着,我们相信计算机(或者某个控制该计算机的人,可能是内部员工或是黑客)会如实执行我们的任何命令并保护我们的付款。如果有人在另一端企图滤掉或者篡改你的网络指令,没有很好的安全措施可以阻止他们,只能依靠一些不靠谱又昂贵的人为制度,而这些制度往往走不出国家的边界。
很多服务器对于内部人员或外部人员来说没有足够的攻击价值。但是也有越来越多的服务器因为包含有利用价值的资源而招致频繁攻击。基于根信任的中心化安全系统难以扩展。随着计算机控制的资源变得越来越有价值且越来越集中,基于根信任的传统安全机制越来越像现实世界中的“有事找警察”。幸运的是,有了区块链技术,我们可以在大部分重要的计算场景中做得更好。
区块链与密码学货币
可扩展的市场和价格需要可扩展的货币。可扩展的货币需要可扩展的安全性,这样更多不同的人可以使用该货币,同时货币不会失效 —— 不能伪造、 不会通胀、也不会被盗。
2009 年,以中本聪为名的某个人或是一群人创造了比特币。中本聪在货币上的突破是通过信任最小化给人们提供了社会可扩展性:减少交易对手风险和第三方风险。中本聪使用计算成本高昂但自动化的安全系统代替计算成本低但制度成本高的传统安全系统,很好地增加了社会扩展性。一组只需部分信任的中间机构取代了原本单一的需要完全信任的中间机构。
-打了“计算兴奋剂”的金融控制:区块链就像由机器人组成的军队,互相检查彼此的工作。-
当我们可以通过计算机科学而不是传统的会计师、监管人员、调查人员、警察和律师来保障金融网络的最重要功能时,我们会趋向于一个自动化、全球化且更安全的系统,而不是人为控制的、局限于本地的且不一致的安全系统。如果我们通过正确的方式在公链上实现密码学货币,就可以使用一大批计算机来替代传统银行业的大量官僚。
“通过使用计算机来维护区块链,我们就能将互联协议中最关键的部分放在一个更加可靠和安全的基础上,让我们以前不敢在全球网络上尝试的信托交互成为可能。”[8]
对于区块链技术,尤其是比特币来说,最有价值的特点包括:
可独立于现有机构运行
可无障碍地跨越国界运行
区块链之所以具备这些特点,是因为它可以在没有人为干预的情况下保持高水准的安全性和可靠性。如果没有高安全性,区块链将只是一种资源利用率极低的分布式数据库技术,依然需要依赖于当地官僚制度来保证其正常运行。
-自 20 世纪中期以来,计算机的效率提高了好几个数量级,但人类的大脑并没有多少变化 。新的计算能力为突破人类的极限创造了许多可能性,而随着人类思维发挥到了极致,基于人类心智设计的制度也已经发挥到了极致。结果就是,人类没有剩余的心智来提升我们现有的制度了。
但如果我们用计算机直接代替人类发挥功能,社会扩展性依然有很大的改进空间。(重要提示:这个结论取决于上图中斜线的斜率,而不是人类能力线的绝对位置。上面显示的能力线位置是任意的,仅仅取决于我们对人类能力的估算)。
一个新的中心化金融实体,一个需要信任的第三方,如果不像传统金融机构那样拥有等效于“人工区块链”的制度,极有可能成为下一个 Mt. Gox。如果没有官僚制度,它就无法成为一个可信的金融中介。
计算机和网络的成本很低。扩展计算能力需要的额外资源成本也很低。若想以安全可靠的方式扩大人类传统制度的管理范围,我们需要更多会计师、律师、监管人员和警察,同时也要面临随之而来的官僚作风、风险和压力。律师费用高昂,监管成本更高。而计算机科学在保障货币安全方面远远优于会计师、警察和律师。
在计算机科学中,安全性与性能之间存在根本的权衡。比特币的自动化可靠性源自其运行和资源使用产生的高昂成本。直到现在,还没有出现既能大幅提高比特币区块链的计算可扩展性(例如交易吞吐量),又能保证这种改进不会影响比特币安全性的办法。
对于比特币来说,很可能不存在两全其美(保持可靠性,同时大幅提高性能)的方法,这也许是无法避免的权衡关系之一。与现有的金融信息技术比较,中本聪做出了一些重要权衡,以牺牲性能为代价提高安全性。在这些权衡中,看似浪费资源的挖矿过程是最明显的一个,但不是唯一一个。
另外一个权衡是消息传递的高度冗余。为实现数学上可证明的可靠性,消息需要在所有节点之间全面广播。比特币无法实现这一点,但即使要达到近似的目的也需要极高的冗余性。因此,1 MB 的区块消耗的资源远比 1 MB 网页消耗的多,因为前者在传输、处理和存储方面需要更高的冗余度,以实现比特币的自动可靠性。
这些必要的权衡都以牺牲性能来实现足以支撑独立运作、全球化和自动化可靠性所必需的安全性。这意味着比特币区块链无法在达到 Visa 的每秒交易处理量水平的同时,保持自动化可靠性,而自动化可靠性才是其相对传统金融系统的独特优势。
相应地,我们只需要一个对信任最小化要求较低的外围支付网络(如 Lightning [9])来承担大量小额比特币交易,而比特币区块链只需要定期对成批的外围网络交易进行结算。
虽然比特币支持的交易吞吐量比 Visa 或 PayPal 都低,但它具有更强的自动化安全性,适用于重要交易。任何满足互联网接入条件并拥有智能手机的人都可以支付 0.20-2 美元的交易费(这远低于当前的汇率手续费),然后在全球任何地方使用比特币服务。而低费用的小额交易可以在比特币的外围网络上处理。
你可以像使用法币一样使用比特币进行日常消费。例如,以比特币计价的信用卡和借记卡具备与法币信用卡或借记卡一样的秒级交易和请求退款 [10] 功能。我们还可以通过其它巧妙的方法来实现外围比特币小额付款,即,将小额付款放到链下处理,只定期在比特币区块链上进行批量结算。随着比特币使用量增加,比特币区块量将发展成为大额结算层,而小额比特币付款将由外围网络处理。
在设计 Bitgold 时,我已经认识到共识无法在保证安全的情况下扩展到高吞吐量的场景中去,所以我把它设计成了两层架构:(1)Bitgold 本身,作为结算层;(2)Chaumian 数字现金,作为拥有高吞吐量和隐私性(通过 Chaumian 盲签名实现)的零售级外围支付网络,但这个外围网络像 VISA 一样是需要信任的第三方,因此需要由会计师等角色组成的“人工区块链”来保证可靠性。
这个外围支付网络只涉及小额交易,因此只需要很少的人力就能避免重蹈 Mt. Gox 的覆辙。
- 拉尔夫·默克尔(Ralph Merkle):公钥密码学的先驱,和层级式哈希树结构(默克尔树)的发明者 -
从设计上来说,货币必须在安全性的基础上具有社会可扩展性。例如,货币必须难以被任何使用者或者中间人伪造(以免稀释供给曲线,进而导致过度的或意想不到的通货膨胀)。黄金在世界上任何地方都具有价值,而且不会受恶性通货膨胀的影响,因为它的价值并不取决于任何一个中央权威机构。比特币在这些方面同样表现突出并且可以运行在网络上,它能让阿尔巴尼亚境内的人无需信任第三方 和/或 支付天价手续费的情况下,安心地向津巴布韦境内的人支付比特币。
现在“区块链”有着各种各样的定义,但几乎所有的定义都是出于营销炒作的目的。我建议给“区块链”一个可以将其内涵传递给外行人的清晰定义。区块链应该既有区块,也有链。链指的是默克尔树或其它具有不可伪造的完整性功能的密码学结构。此外,为了在客观上尽可能容忍最糟糕的情况和恶意参与者,受区块链保护的交易和其他数据应该用合理的方式复制下来(通常情况下,即使有 1/3 到 1/2 的服务器作恶,这个系统依然能正常运行)。
-比特币的社会可扩展型安全性基于计算机科学,而不是警察和律师,所以它支持跨国界支付,例如,非洲的客户可以向中国的供应商无缝付款。私有链要做到这点很难,因为它需要可以在不同行政管辖区之间共享的身份验证、数字证书以及公钥基础设施服务(PKI)。-
因为这个特点,以及(但愿很少)可能出现的会导致历史区块无效的软件更新需求(一种叫做硬分叉的危险情况),区块链还需要一个人工治理层(虽然这一层也会面临政治斗争的风险)。最成功的区块链(比特币)之所以能维持其不可变性,一方面是因为技术专家们之间的去中心化决策,另一方面是因为秉持着不可篡改性原则。这种原则下,只有少数没有任何其它可行方案的重要漏洞修复和设计改进可以使用硬分叉。
在这种治理理念下,会计或法律层面上的决定(例如,更改账户余额或撤销交易)不能成为执行硬分叉的理由,它们应由系统外(或系统上层)的传统治理机制来实现(例如,通过法院禁令强制比特币用户发送一个新的交易,从而起到撤销旧交易的效果,或没收特定用户的密钥,从而没收该密钥所控制的代币)。
所谓的事后不可伪造性和不可变性,指的是一旦数据被提交到区块链上,就无法在不知不觉中被篡改。与一些炒作所说的概念相反,我们没有任何办法保证数据上链之前的来源是否真实,或数据本身是真是假。这需要采取额外的办法,通常涉及高成本的传统制度。
区块链不能保证数据的真实性;它只是把真相和谎言都以无法篡改的方式保留下来,让后来的人客观地分析这些信息,从而更有信心揭露谎言。日常的计算机是一块算力画板;而区块链则是算力琥珀。重要数据应该尽早地封装进区块链琥珀,最好是由生成数据的设备在签名加密后直接提供,最大限度地发挥区块链在保证数据可靠性上的优势。
- 一个包含四笔交易的默克尔树(从 tx 0 到 tx 3)。让交易所组成的区块经由工作量证明机制形成链表结构,再加以适当的传播和复制,默克尔树结构就能依托共识机制,打造出交易数据的事后不可伪造性。在比特币中,这些数据会通过安全的方式计算得出默克尔树的根哈希,用于验证区块中的所有交易是否被篡改。-
我在 1998 年提出的“安全财产证明”架构就使用了默克尔树和数据复制机制来容忍客观上存在的软件错误或恶意行为,但还没有区块的概念。这个架构证明了我的理论,即我们可以保护全球共享数据和交易的完整性,并在此基础上设计一个密码货币(Bitgold)。但 Bitgold 也没有像比特币那样更加高效且具有计算扩展性的区块和记账系统。而且它和今天的私有链一样,以可安全区分和计数的节点为设计前提。
因为一些公有链(如比特币、以太坊)的安全性目标受到了 51% 算力攻击的限制,我们都很关心,怎么分辨大矿工的身份,来推断“有没有可能联合其他人发动 51% 算力攻击”。
区块链的安全性有其客观上限,区块链治理会严重受到 51% 攻击可能性的影响。当然了,攻击者当然不会称之为“攻击”,可能会说成是“开明治理”或者“民主行动”之类的。一些用于修复漏洞或是改善协议的软件更新需要软分叉。另外一些软件更新则需要硬分叉,这会给比特币带来比软分叉更大的安全和连续性风险。
比起其它网络协议,区块链虽然已经极大降低了信任要求,但实际上离免信任性仍然遥远。矿工算是部分可信方。那些不是工程专家或计算机科学家但是投入大量时间学习区块链设计原理和代码的人必须充分信任开发者社区,就像那些想要理解一门专业学科的研究成果的非专业人士对该领域的科学家的态度一样。在硬分叉期间,交易所的影响力也很大,因为它们可以决定自己的市场和交易代号支持哪个分叉。
因此,公有链可以相对(但并不能绝对)地避开身份难题,设法在更高的现实或社会层面确认最有权力的矿工的身份,这可能比试着将身份这样(基于大脑)的天然模糊的概念映射到协议层更合适,公钥基础设施在这方面的艰难尝试正是前车之鉴。
所以我认为有一些“私有链”有资格成为真正的区块链; 其他的则应该归类到更宽泛的“分布式账本”或“共享数据库”等类别下。它们的社会扩展性与免许可型公有链(比特币和以太坊)完全不同。
以下方案都有安全识别(可区分和可计算)服务器身份的要求,而非像公有链一样允许匿名身份。换句话说,他们需要其它一些在社会扩展性上差得多的方案来解决女巫攻击问题:
私有链;
侧链的“联合”模式(唉,现在没有人知道如何在降低信任要求的情况下开发侧链,尽管之前有过那么多憧憬和承诺)。侧链可以是私有链,二者非常匹配,因为它们在架构上和(对公钥基础设施的)外部依赖性上都非常相似;
基于多重签名的方案,即使是通过基于区块链的智能合约完成的;
基于阈值的将链下数据搬到链上的“信息输入机制”。
要识别服务器的身份,主流但社会可扩展性通常较低的方式是基于可信认证机构(CA)的 PKI 体系。为了避免受信任的第三方变成安全漏洞,可靠的 CA 自身就必须是高成本的劳动密集型官僚机构,这些机构通常会自行或是由其它机构来进行广泛的背景调查(例如商业调查公司 Dun&Bradstreet)。(我曾经带领团队设计、打造过这样的 CA)。CA 也充当守门员的角色,保护这些需要许可的系统。CA 可以成为引起全局控制和故障的单点。“公有链是自动化的、安全的、全球化的,但身份认证是劳动密集的、不安全的、局域的。”
基于 PKI 的私有链对于银行和大型企业来说是一个不错的选择,因为它们已经有成熟的内部 PKI 系统,用来认证批准重要交易所涉及的员工、合作伙伴和私有服务器。银行 PKI 相对可靠。我们也为 Web 服务器提供了半可靠的 CA,但这一般来说不包括 Web 客户端,即使人们在 Web 发明后一直在尝试解决客户端证书问题:例如,广告商们会希望有更安全的方式,可以替代电话号码和 Cookie 来追踪客户身份。但这还没有实现。
PKI 可以为少数重要的事情和人员很好地工作,但对于不那么重要的实体来说,它并不那么好或容易使用。它的社会可扩展性受其所依赖的传统身份认证官僚体系的限制。
- 上图是比特币生态系统中出现的一些重大盗窃事件。鉴于比特币区块链可能是现有的最安全的金融网络(事实上比特币在安全性上远远超过传统支付网络,才能保持其低廉的治理成本和点对点跨境转账的能力),基于旧的中心化网络服务器所打造的周边服务并不安全。(来源:作者) -
我们需要通过更具社会可扩展性的方法来统计节点数量,换句话说,需要更健壮的方法来尽可能抵抗腐败,评估节点对区块链完整性的贡献大小。这正是工作量证明和广播复制的关键:大幅度牺牲计算扩展性来提高社会扩展性。
这就是中本聪的天才权衡。它的天才之处在于认识到人比计算机昂贵得多,且这种差距每年都在扩大。它的天才之处在于可以让人们跨越人类的信任边界(例如国界)安全地进行无缝协作,不再像 VISA 或 Paypal 那样依赖于 “有事找警察” 架构,后者昂贵、容易出错,甚至会有腐败问题,仅仅在正常工作时,这些官僚机构才能提供一定程度的可靠性。
结论
随着互联网的兴起,各种网络组织如雨后春笋般崛起,包括社会网络、长尾零售商(例如亚马逊)以及为小型买家卖家提供交易平台的各种服务商(eBay、Uber、AirBnB 等)。这些只是对我们新能力的最初级尝试。由于近几十年来信息技术的巨大进步,限制网络组织参与者人数和类型的已经不再是计算机和网络,而是还没有充分跟上技术进步的人类思维和制度设计。
初期的互联网尝试都是非常中心化的。区块链技术通过计算机科学而不是“有事找警察”来实现数据完整性,使得信任最小化货币(密码货币)成为可能,它也必然为其它金融领域以及主要基于在线数据进行交易的场景带来进步。
这并不意味着,让我们的制度适应我们的新能力是一件容易的事,或在某些特定情况下困难会少一些。乌托邦的想法在区块链社区非常普遍,但它们不是可行的选择。对我们高度发展的传统制度进行逆向工程,甚至以新形式重塑一些旧制度,通常比从零开始、或者高谈宏大计划和博弈理论要好得多。
中本聪向我们展示了这样一种关键策略——牺牲计算效率和可扩展性(消耗相对便宜的计算资源)以减少为了实现陌生人协作所需要的社会制度(例如市场、大公司和政府)中的人力浪费,更好地利用人这种宝贵资源。
[1]:http://whatsupnah.com/2009/02/twitter-vs-the-dunbar-number-and-the-rise-of-weak-ties/
[2]:https://en.wikipedia.org/wiki/Alfred_North_Whitehead
[3]:http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/tradition.html
[4]:http://www.lifewithalacrity.com/previous/2005/10/dunbar_group_co.html
[5]:https://nakamotoinstitute.org/the-playdough-protocols/
[6]:https://www.econlib.org/library/Essays/hykKnw.html?chapter_num=1#book-reader
[7]:https://unenumerated.blogspot.com/2014/12/the-dawn-of-trustworthy-computing.html
[8]:https://unenumerated.blogspot.com/2014/12/the-dawn-of-trustworthy-computing.html
[9]:https://lightning.network/lightning-network-paper.pdf
[10]:https://en.wikipedia.org/wiki/Chargeback
Scan QR code with WeChat