公众对区块链的几大误解

 

区块链是一种创新的计算模式,数据和应用的安全不由中心化的第三方保障,而是由去中心化的计算机网络保障。由于区块链本身具有无需许可性,因此任何人都可以加入网络,并独立验证计算的真实性。最终,区块链技术在用户和网络节点之间建立了权力制衡机制。

区块链技术为我们带来了创新的数字货币(如比特币),可以将货币政策写入代码中;也实现了可编程的信任最小化应用(如以太坊)。目前,区块链正作为一种全新的数字化基础设施快速进入公众视野,这一发展势头也被称为Web3。尽管许多人认识到了区块链的价值主张,但仍对区块链的底层信任模式存在一些误解。

本文将探讨拥有自主验证能力的全节点可以发挥什么作用,特别是全节点如何监督区块创建者(即矿工或验证者),以及降低验证成本会对区块链的可扩展性产生有哪些关键影响。看完后,你将对区块链与传统计算在信任模式上的不同之处有更深的了解。

传统计算模式的瓶颈

如今大多数应用都采用客户端-服务器的模式,该模式将请求发送到一个中心化的数据库服务器中。传统计算模式中有以下几类参与者:

  • 客户端:终端用户通常会通过个人设备创建请求,请求会通过TCP/IP协议发送到一个中心化的数据服务器上。客户端相信这个数据库服务器会忠实地响应请求。
  • 数据库服务器:这是一台远程计算机,通常是中心化的云服务商,提供数据或具体的服务。后端数据库服务器通常是由传统机构统一管理的一组计算机。
The Traditional Computing Model
在传统计算模式中,尽管中心化的服务器缺乏透明性,但用户也只能信任它。

这种计算模式也被称为Web2,开发者可以根据自身需求快速发布和扩展应用。由于数据中心可以保障计算的低延时性和高吞吐量,因此可以实现非常流畅的用户体验。部署在中心化服务器上的应用为全世界几十亿用户提供了巨大价值,但是它们自身也存在一些瓶颈。

其中最大的瓶颈就是,终端用户无法验证响应请求的计算过程是否可靠,也无法确认数据库录入的数据是否被操控。实际上这类应用是在暗箱中操作的,用户必须充分信任第三方不会损害其利益。

中心化应用的这种信任假设可能会对用户产生负面影响。用户可能会遭遇审查,被社交平台删除账户,个人数据被泄露,被算法推荐内容,对账成本变高,数据被篡改或丢失,甚至整个系统中缺乏问责制。最终,这将导致社会信任崩塌,并推高经济协调成本。

区块链计算模式

区块链摆脱了对中心化实体的盲目信任,并采用以下技术机制,实现信任最小化以及可信的中立

  1. 采用加密技术,认证数据/资产的所有权并验证交易的真实性;
  2. 采用去中心化共识机制,为交易排序并执行协议规则;
  3. 采用经济激励机制,保障网络账本的不可篡改性和运行稳健性。

值得一提的是,区块链是开放的网络,全世界任何人都可以加入,既可以主动地做贡献,也可以被动地监听消息。终端用户可以亲自验证网络输出的结果是否有效,以及账本中的数据是否被篡改。由于区块链具有透明性,因此也降低了信息不透明的风险,消除了信息不对等,并保障了所有参与者都能充分知晓风险。

The Blockchain Computing Model
在区块链计算模式中,终端用户可以选择加入区块链网络,并验证计算结果。

区块链网络中的各个参与者

区块链为了确保能够正常运行,需要不同类型的网络参与者,一个参与者常常会扮演多个角色,而且每个角色都会发挥关键的作用。

  • 区块创建者(BP):负责为交易排序,并打包成区块(注:这是一种特殊的数据结构),然后将区块提交到网络进行验证。如果在同一区块高度创建了两个有效区块,那么区块创建者就要决定哪个版本的区块链是“具有正统性的”(即遵循最长链原则)。过程中会采用共识机制来决定让哪个区块创建者来创建下一个区块,其中最受欢迎的两种共识机制分别是PoW(矿工)和PoS(验证者)。
  • 全节点:全节点是区块链网络的核心。这类节点负责下载并验证区块创建者提交的每个区块。如果区块被验证为有效(即遵守了协议规则),那么就会被添加到全节点的个人账本中,并执行状态变更。不符合协议规则的无效区块会被无视并丢弃,不会执行任何状态变更。
  • 归档节点:归档节点不仅会储存全节点中的所有信息,还会计算并储存区块链之前的状态。归档节点可以用来请求任意历史数据,比如在过去某一区块高度的用户账户余额。这里要注意一点,那就是全节点可以随时转换成归档节点,无需从网络中下载任何其他数据。归档节点对硬件的要求通常非常高,而且一般由服务提供方(比如区块浏览器)负责运行。
  • 轻客户端:轻客户端是在功能上受限的全节点,只下载区块头(即独特的加密指纹)。轻客户端可以验证区块中是否包含某笔交易,但由于其不会下载或执行区块中的所有交易,因此在本质上需要相信大部分区块创建者是诚实的。轻客户端也称为“简易支付验证”(SPV)客户端,最初由《比特币白皮书》提出。
  • RPC服务商:RPC服务商也是全节点,可以将其他网络参与者连接至区块链,并读写数据。RPC(远程过程调用)服务的用户往往没有能力或意愿来自己运行全节点或轻客户端,因此可以通过这项服务大幅降低访问区块链的门槛。用户必须相信RPC服务商能够诚实地提供服务,因为用户自己无法对结果进行验证。
  • 终端用户:终端用户就是想要在区块链网络中展开交易的普通用户。这类参与者有可能会运行全节点或轻节点,也可能会接入RPC服务商。区块链的唯一目的就是为终端用户提供服务。

虽然每类参与者都对区块链生态的良好运行发挥着关键作用,但全节点毋庸置疑是区块链网络的核心,因为它们负责维护网络账本的完整副本。而其他参与者,比如区块创建者和轻客户端,都会连接到全节点,以随时了解网络的状态。因此,区块链网络的拓扑结构如下图所示。

Full nodes, light clients, and block producers in a blockchain network
区块链网络的拓扑结构示意图,其中轻客户端和区块创建者都连接到全节点。

区块创建者的权力是有限的

对于区块链的一个普遍误解是:由于区块创建者负责将交易添加到新区块中,因此他们能够单方面控制区块链。换句话说,这些人认为,如果大多数区块创建者都被收买或者共谋(注:这通常也称为“51%攻击”),那么网络就会沦陷,一切有价值到的东西都会被彻底毁灭。实际上,区块创建者的权力是受到限制的,因此只会发生几类恶意攻击事件。

区块创建者拥有以下权力:

  • 审查交易:区块创建者可以自行决定将哪些交易放到自己的区块中,也可以选择性地忽略某些交易。区块创建者如果出现共谋,确实有可能将某些交易剔除出去,但实际上只需要有一个诚实的区块创建者,就可以把交易放到有效的区块中。
  • 重新改写区块链:如果大多数区块创建者出现共谋(如:51%攻击),那么之前创建的有效区块就有可能由于区块重组(reorg)而出现分叉,并会出现一条新的区块链成为主链。这里要注意的是,一些区块链会建立checkpoint机制来实现“经济终局”(economic finality)的概念。在checkpoint之前的区块一旦重组会导致区块链暂停,而这需要在链下达成社会共识才能解决。
A blockchain block reorganization
区块重组会回滚之前被接受的有效区块,并用新的一组有效区块代替。

区块创建者不拥有以下能力:

  • 更改协议规则:区块创建者不能随意修改协议规则,比如添加/删除功能(如:opcode);提高/降低区块空间上限或出块频率;以及增加/减少出块奖励。
  • 盗取用户资金:不持有钱包私钥的区块创建者是不能花钱包中的通证的,因为交易的加密签名将是无效的。这里要注意的是,区块链重组会导致双花攻击,这类攻击会删除区块链帐本中由私钥持有者签名过的交易,而不是伪造交易签名。

要理解区块创建者能力受限的原因,就必须先搞清楚区块创建者和负责验证的全节点之间的关系。

全节点如何对区块创建者进行监督

区块创建者的职责是提交新区块,以保障区块链能够平稳运行。不过区块创建者无权代表整个区块链网络决定区块是否有效。负责决定区块有效性的是全节点。全节点储存了区块链账本,负责独立验证每个区块,并执行区块中的所有交易,以确认区块是否遵守了协议规则。

因此就形成了一种权力制衡机制:全节点只接受有效的区块,并会无视不遵守协议规则的区块,以此来对区块创建者进行监督和问责。而区块创建者则受到经济激励,只创建有效的区块。因为如果他们创建无效区块,就会白白浪费大量经济资源,而且还要放弃所有区块奖励和交易费收入。即使其他区块创建者在一个无效区块上继续创建有效区块,这些区块都会被全节点无视,而这些区块创建者最后会分叉离开网络。

全节点由区块链生态中的关键经济实体运行,其中包括cryptocurrency交易平台、stablecoin发行方、预言机、L2验证者、RPC服务商、托管钱包服务提供商、巨鲸和普通用户等。这些关键的经济实体自主验证区块链账本,因此不会受骗接受无效区块。全节点在确认区块有效性时也无需互相协调沟通。这些节点在验证区块时只需遵守协议规则,就可以对区块有效性达成共识。

Full nodes reject invalid blocks
无效的区块会被全节点拒绝,全节点会持续追踪有效的区块链。

许多区块链的协议规则都是由社区在链下决定的,这个过程也称为“社会共识”。达成社会共识通常需要经过正式的流程(如以太坊改进提议或EIP),社区会在各个社交平台上讨论协议规则变更的好处。一旦在链下初步达成了共识,区块链的核心开发者就会开发新版本的区块链客户端来执行这些变更。全节点和区块创建者可以自行选择是否运行新版本的软件,通过硬分叉(非向后兼容更新)或软分叉(向后兼容更新)来升级网络。

如果硬分叉升级出现争议,那么区块链网络可能会分化成两个不同的版本,并且这两个版本会各自运行。一旦这种情况发生,每个区块链都会共享从创世区块到分叉前某一区块高度之间的所有历史。2017年比特币和Bitcoin Bash的硬分叉就是如此,当时大家对于如何提升交易吞吐量产生了分歧。2016年的以太坊和以太经典(Ethereum Classic)的硬分叉也是这样,当时社区对于如何处理DAO黑客攻击事件出现了分歧。

Bitcoin Cash hard fork
Bitcoin Cash是比特币区块链的分叉链,之所以会出现是因为当时大家对如何提升交易吞吐量出现了意见分歧。(资料来源

也有的区块链不采取链下共识机制,而是选择通过链上治理的方式来处理升级,由通证持有者来治理一个去中心化自治组织(DAO),并决定协议规则变更事项。无论哪种协议升级方式都有其独特的优势和挑战,采用哪种方案要取决于社区的具体需求。

降低对全节点的硬件要求

如果对全节点的硬件要求过高(比如必须使用工业级硬件),那么就不会有那么多实体有能力或意愿运行全节点,他们可能会选择中心化的解决方案来向区块链读写数据。这将使区块链网络更容易受到区块创建者的操纵。

为了建立健康的全节点网络,许多区块链都会故意限制网络的交易吞吐量,兼容社区中配置最低的验证节点硬件。降低对硬件的要求不仅能够让全节点在正常情况下正常运行,还能在区块链被一组共谋的区块创建者攻击时迅速搭建新的验证全节点。每条区块链对硬件的具体要求都有所不同,不过它们基本上都兼容普通的消费级硬件

Bitcoin full node on a Raspberry Pi
树莓派上运行的比特币区块链全节点,树莓派是一个低配置的微型计算机。(资料来源

以下逻辑说明了降低硬件要求将如何提升区块链的核心价值主张:

降低硬件要求降低区块的验证成本更多实体可以运行全节点能够更好地抵御区块创建者发起攻击提升网络安全更好地实现可靠的中立性提升用量

虽然区块链协议中并没有明确规定对全节点的硬件要求(因为硬件软件的运行效率在不断提升),但却会规定交易吞吐量(注:交易吞吐量通常取决于区块大小和出块频率),以专门针对某一类硬件配置。

虽然大多数区块链都可以兼容普通的消费级硬件,但也有一些区块链会要求验证节点的硬件至少达到服务器级别,以提高交易吞吐量。这些区块链意识到,虽然这样做会减少参与验证的自建节点数量,但仍然有足够多的关键经济实体有充足的资源来运行全节点。

降低区块链的验证成本

一种理想的情景是全世界所有人都运行自己的全节点来验证区块链交易。然而实际上,搭建全节点需要耗费大量时间和资源,而且可能会影响许多终端用户的使用体验。随着区块链越来越普及,习惯使用中心化服务提供商的用户可能会觉得自建全节点太麻烦了,它们更希望能立刻与链上应用交互。

因此,目前主流区块链上的大多数终端用户都没有自建节点,而是接入了RPC服务商,并信任这些服务商能够提供可靠的服务,将用户交易发送到区块链网络,并向用户同步区块链的当前状态。这些用户可能并不在乎区块链自主验证的种种好处,而且区块链网络的安全性也没有达到最理想的状态。然而,相比传统计算模式,区块链在信任最小化方面仍拥有巨大优势。

 

End-users rely upon RPC Providers
如今许多终端用户都不亲自运行全节点,而是接入可信的RPC服务商。(资料来源

这个问题有一个折衷的解决方案,那就是将轻客户端集成至区块链钱包。虽然集成轻客户端可以降低对RPC服务商的依赖程度,因此可以在一定程度上改善现状,但轻客户端模式在根本上仍然需要相信大多数区块创建者创建的是有效区块,而且区块中的所有交易数据都是公开的。

为了使轻客户端不用下载并执行整个区块(即运行全节点)就可以验证区块创建者的区块,轻客户端需要在技术上实现优化,以提升信任最小化水平,并成为“信任最小化的轻客户端”。可以在以下方面进行技术优化:

  • 欺诈证明:全节点生成一份加密证明,发送给轻客户端,证明区块是无效的且违反了协议规则。与此同时,轻客户端无需重新执行一遍区块中的所有交易。
  • 有效性证明:除了欺诈证明之外,还会生成一份零知识证明,区块创建者可以直接向轻客户端证明区块是有效的且遵守了协议规则。
  • 数据可用性采样(DAS):这是概率性的采样技术,可以验证区块中的所有数据都已提交至网络,无需轻客户端下载整个区块。
Trust-minimized light clients
信任最小化的轻客户端无需下载或执行整个区块就可以验证区块创建者的区块。(资料来源

随着新的信任最小化技术不断发布,验证者可以更轻松地验证区块创建者的区块,无需下载并执行整个区块,而且验证成本更低。这将有助于提升整个区块链网络的安全性。值得一提的是,创建信任最小化轻客户端可以进一步催生出更多可扩展的区块链网络

在维持自主验证的前提下扩展区块链

通常我们会将区块链扩容和交易吞吐量提升划上等号。然而更全面的理解应该是:区块链扩容既需要提升交易吞吐量,又需要维持较低的验证成本。好在现在出现了信任最小化的轻客户端,区块链网络的吞吐量得以提升(如扩大区块容量或缩短出块时间)的同时,仍将区块验证成本保持在较低水平。

另外,rollup等L2扩容方案也利用了跟信任最小化轻客户端类似的技术,采用加密证明技术来证明交易的有效性,而且底层区块链网络无需执行每一笔交易。底层区块链对于L2 rollup来说就是公认的信任最小化轻客户端。另外,交易被打包并储存在区块链上以保障数据可用性,这样做可以大幅提升交易吞吐量,并且几乎不会增加任何底层区块链上的验证成本。

 

Layer-2 rollups
L2 rollup将底层区块链作为公认的信任最小化轻客户端,以提升交易吞吐量。(资料来源

总结

区块链是append-only形式的账本,非常安全、可信和中立,为我们带来了全新的计算范式。区块链在区块创建者和全节点之间建立了权力制衡机制,可以为社区提供服务,不断升级迭代,并同时保持其不可篡改的属性。虽然我们还需继续努力进一步降低区块链的验证成本,但目前区块链在信任最小化方面已经比传统计算模式拥有巨大优势。

——

本文内容仅代表作者本人观点,不代表Chainlink基金会或Chainlink Labs的观点。

Need Integration Support?
Talk to an expert
Faucets
Get testnet tokens
Read the Docs
Technical documentation