区块链正作为一种全新的数字化基础设施快速进入公众视野,这一发展势头也被称为Web3。尽管许多人认识到了区块链的价值主张,但仍对区块链的底层信任模式存在一些误解。本文将剖析这些误解,让您对区块链与传统计算在信任模式上的不同有更深的了解。
区块链是一种创新的计算模式,数据和应用的安全不由中心化的第三方保障,而是由去中心化的计算机网络保障。由于区块链本身具有无需许可性,因此任何人都可以加入网络,并独立验证计算的真实性。最终,区块链技术在用户和网络节点之间建立了权力制衡机制。
区块链技术为我们带来了创新的数字货币(如比特币),可以将货币政策写入代码中;也实现了可编程的信任最小化应用(如以太坊)。目前,区块链正作为一种全新的数字化基础设施快速进入公众视野,这一发展势头也被称为Web3。尽管许多人认识到了区块链的价值主张,但仍对区块链的底层信任模式存在一些误解。
本文将探讨拥有自主验证能力的全节点可以发挥什么作用,特别是全节点如何监督区块创建者(即miner或验证者),以及降低验证成本会对区块链的可扩展性产生有哪些关键影响。看完后,你将对区块链与传统计算在信任模式上的不同之处有更深的了解。
如今大多数应用都采用客户端-服务器的模式,该模式将请求发送到一个中心化的数据库服务器中。传统计算模式中有以下几类参与者:
在传统计算模式中,尽管中心化的服务器缺乏透明性,但用户也只能信任它。
这种计算模式也被称为Web2,开发者可以根据自身需求快速发布和扩展应用。由于数据中心可以保障计算的低延时性和高吞吐量,因此可以实现非常流畅的用户体验。部署在中心化服务器上的应用为全世界几十亿用户提供了巨大价值,但是它们自身也存在一些瓶颈。
其中最大的瓶颈就是,终端用户无法验证响应请求的计算过程是否可靠,也无法确认数据库录入的数据是否被操控。实际上这类应用是在暗箱中操作的,用户必须充分信任第三方不会损害其利益。
中心化应用的这种信任假设可能会对用户产生负面影响。用户可能会遭遇审查,被社交平台删除账户,个人数据被泄露,被算法推荐内容,对账成本变高,数据被篡改或丢失,甚至整个系统中缺乏问责制。最终,这将导致社会信任崩塌,并推高经济协调成本。
区块链摆脱了对中心化实体的盲目信任,并采用以下技术机制,实现信任最小化以及可信的中立。
值得一提的是,区块链是开放的网络,全世界任何人都可以加入,既可以主动地做贡献,也可以被动地监听消息。终端用户可以亲自验证网络输出的结果是否有效,以及账本中的数据是否被篡改。由于区块链具有透明性,因此也降低了信息不透明的风险,消除了信息不对等,并保障了所有参与者都能充分知晓风险。
在区块链计算模式中,终端用户可以选择加入区块链网络,并验证计算结果。
区块链为了确保能够正常运行,需要不同类型的网络参与者,一个参与者常常会扮演多个角色,而且每个角色都会发挥关键的作用。
虽然每类参与者都对区块链生态的良好运行发挥着关键作用,但全节点毋庸置疑是区块链网络的核心,因为它们负责维护网络账本的完整副本。而其他参与者,比如区块创建者和轻客户端,都会连接到全节点,以随时了解网络的状态。因此,区块链网络的拓扑结构如下图所示。
区块链网络的拓扑结构示意图,其中轻客户端和区块创建者都连接到全节点。
对于区块链的一个普遍误解是:由于区块创建者负责将交易添加到新区块中,因此他们能够单方面控制区块链。换句话说,这些人认为,如果大多数区块创建者都被收买或者共谋(注:这通常也称为“51%攻击”),那么网络就会沦陷,一切有价值到的东西都会被彻底毁灭。实际上,区块创建者的权力是受到限制的,因此只会发生几类恶意攻击事件。
区块创建者拥有以下权力:
区块重组会回滚之前被接受的有效区块,并用新的一组有效区块代替。
区块创建者不拥有以下能力:
要理解区块创建者能力受限的原因,就必须先搞清楚区块创建者和负责验证的全节点之间的关系。
区块创建者的职责是提交新区块,以保障区块链能够平稳运行。不过区块创建者无权代表整个区块链网络决定区块是否有效。负责决定区块有效性的是全节点。全节点储存了区块链账本,负责独立验证每个区块,并执行区块中的所有交易,以确认区块是否遵守了协议规则。
因此就形成了一种权力制衡机制:全节点只接受有效的区块,并会无视不遵守协议规则的区块,以此来对区块创建者进行监督和问责。而区块创建者则受到经济激励,只创建有效的区块。因为如果他们创建无效区块,就会白白浪费大量经济资源,而且还要放弃所有区块奖励和交易费收入。即使其他区块创建者在一个无效区块上继续创建有效区块,这些区块都会被全节点无视,而这些区块创建者最后会分叉离开网络。
全节点由区块链生态中的关键经济实体运行,其中包括cryptocurrency交易平台、stablecoin发行方、预言机、L2验证者、RPC服务商、托管钱包服务提供商、巨鲸和普通用户等。这些关键的经济实体自主验证区块链账本,因此不会受骗接受无效区块。全节点在确认区块有效性时也无需互相协调沟通。这些节点在验证区块时只需遵守协议规则,就可以对区块有效性达成共识。
无效的区块会被全节点拒绝,全节点会持续追踪有效的区块链。
许多区块链的协议规则都是由社区在链下决定的,这个过程也称为“社会共识”。达成社会共识通常需要经过正式的流程(如以太坊改进提议或EIP),社区会在各个社交平台上讨论协议规则变更的好处。一旦在链下初步达成了共识,区块链的核心开发者就会开发新版本的区块链客户端来执行这些变更。全节点和区块创建者可以自行选择是否运行新版本的软件,通过硬分叉(非向后兼容更新)或软分叉(向后兼容更新)来升级网络。
如果硬分叉升级出现争议,那么区块链网络可能会分化成两个不同的版本,并且这两个版本会各自运行。一旦这种情况发生,每个区块链都会共享从创世区块到分叉前某一区块高度之间的所有历史。2017年比特币和Bitcoin Bash的硬分叉就是如此,当时大家对于如何提升交易吞吐量产生了分歧。2016年的以太坊和以太经典(Ethereum Classic)的硬分叉也是这样,当时社区对于如何处理DAO黑客攻击事件出现了分歧。
Bitcoin Cash是比特币区块链的分叉链,之所以会出现是因为当时大家对如何提升交易吞吐量出现了意见分歧。(资料来源)
也有的区块链不采取链下共识机制,而是选择通过链上治理的方式来处理升级,由通证持有者来治理一个去中心化自治组织(DAO),并决定协议规则变更事项。无论哪种协议升级方式都有其独特的优势和挑战,采用哪种方案要取决于社区的具体需求。
如果对全节点的硬件要求过高(比如必须使用工业级硬件),那么就不会有那么多实体有能力或意愿运行全节点,他们可能会选择中心化的解决方案来向区块链读写数据。这将使区块链网络更容易受到区块创建者的操纵。
为了建立健康的全节点网络,许多区块链都会故意限制网络的交易吞吐量,兼容社区中配置最低的验证节点硬件。降低对硬件的要求不仅能够让全节点在正常情况下正常运行,还能在区块链被一组共谋的区块创建者攻击时迅速搭建新的验证全节点。每条区块链对硬件的具体要求都有所不同,不过它们基本上都兼容普通的消费级硬件。
在树莓派上运行的比特币区块链全节点,树莓派是一个低配置的微型计算机。(资料来源)
以下逻辑说明了降低硬件要求将如何提升区块链的核心价值主张:
降低硬件要求→降低区块的验证成本→更多实体可以运行全节点→能够更好地抵御区块创建者发起攻击→提升网络安全→更好地实现可靠的中立性→提升用量
虽然区块链协议中并没有明确规定对全节点的硬件要求(因为硬件软件的运行效率在不断提升),但却会规定交易吞吐量(注:交易吞吐量通常取决于区块大小和出块频率),以专门针对某一类硬件配置。
虽然大多数区块链都可以兼容普通的消费级硬件,但也有一些区块链会要求验证节点的硬件至少达到服务器级别,以提高交易吞吐量。这些区块链意识到,虽然这样做会减少参与验证的自建节点数量,但仍然有足够多的关键经济实体有充足的资源来运行全节点。
一种理想的情景是全世界所有人都运行自己的全节点来验证区块链交易。然而实际上,搭建全节点需要耗费大量时间和资源,而且可能会影响许多终端用户的使用体验。随着区块链越来越普及,习惯使用中心化服务提供商的用户可能会觉得自建全节点太麻烦了,它们更希望能立刻与链上应用交互。
因此,目前主流区块链上的大多数终端用户都没有自建节点,而是接入了RPC服务商,并信任这些服务商能够提供可靠的服务,将用户交易发送到区块链网络,并向用户同步区块链的当前状态。这些用户可能并不在乎区块链自主验证的种种好处,而且区块链网络的安全性也没有达到最理想的状态。然而,相比传统计算模式,区块链在信任最小化方面仍拥有巨大优势。
如今许多终端用户都不亲自运行全节点,而是接入可信的RPC服务商。(资料来源)
这个问题有一个折衷的解决方案,那就是将轻客户端集成至区块链钱包。虽然集成轻客户端可以降低对RPC服务商的依赖程度,因此可以在一定程度上改善现状,但轻客户端模式在根本上仍然需要相信大多数区块创建者创建的是有效区块,而且区块中的所有交易数据都是公开的。
为了使轻客户端不用下载并执行整个区块(即运行全节点)就可以验证区块创建者的区块,轻客户端需要在技术上实现优化,以提升信任最小化水平,并成为“信任最小化的轻客户端”。可以在以下方面进行技术优化:
信任最小化的轻客户端无需下载或执行整个区块就可以验证区块创建者的区块。(资料来源)
随着新的信任最小化技术不断发布,验证者可以更轻松地验证区块创建者的区块,无需下载并执行整个区块,而且验证成本更低。这将有助于提升整个区块链网络的安全性。值得一提的是,创建信任最小化轻客户端可以进一步催生出更多可扩展的区块链网络。
通常我们会将区块链扩容和交易吞吐量提升划上等号。然而更全面的理解应该是:区块链扩容既需要提升交易吞吐量,又需要维持较低的验证成本。好在现在出现了信任最小化的轻客户端,区块链网络的吞吐量得以提升(如扩大区块容量或缩短出块时间)的同时,仍将区块验证成本保持在较低水平。
另外,rollup等L2扩容方案也利用了跟信任最小化轻客户端类似的技术,采用加密证明技术来证明交易的有效性,而且底层区块链网络无需执行每一笔交易。底层区块链对于L2 rollup来说就是公认的信任最小化轻客户端。另外,交易被打包并储存在区块链上以保障数据可用性,这样做可以大幅提升交易吞吐量,并且几乎不会增加任何底层区块链上的验证成本。
L2 rollup将底层区块链作为公认的信任最小化轻客户端,以提升交易吞吐量。(资料来源)
区块链是append-only形式的账本,非常安全、可信和中立,为我们带来了全新的计算范式。区块链在区块创建者和全节点之间建立了权力制衡机制,可以为社区提供服务,不断升级迭代,并同时保持其不可篡改的属性。虽然我们还需继续努力进一步降低区块链的验证成本,但目前区块链在信任最小化方面已经比传统计算模式拥有巨大优势。
——
本文内容仅代表作者本人观点,不代表Chainlink基金会或Chainlink Labs的观点。