单体区块链的定义、发展、优缺点和解决方案
3 z% P6 v6 D" k9 k+ g比特币的诞生,标志着一种去中心化电子现金系统的到来,人们通过它认识到了区块链技术的概念和工作量证明的共识机制。随后,以太坊的出现,作为一个世界计算机和智能合约平台,其强大的可编程性在金融、社交和游戏等领域展现了广阔的前景。尽管十多年的发展历程中,区块链在普及程度和技术沉淀方面都处于起步阶段,但毫无疑问,其潜力依然是巨大无穷的。
通常情况下,我们现在所接触的公链都可以被统称为单体区块链。它们以每笔交易为载体,通过区块存储合法有效的交易记录,并通过特定的共识机制实现去中心化、无需信任、不可篡改的分布式账本网络。
: z% D+ q) [: }+ ?/ E8 z1 `! A单体区块链的特点是,它可以从钱包、应用、中间件到基础设施,全方位独立地建立完整的生态系统,并且各方之间维持紧密的关系,但是随着生态发展和繁荣,它又会出现交易阻塞,交易成本上升,网络参与门槛过高以及维护全网状态的成本增加等问题。当遇到高并发使用情况时,由于交易吞吐量的限制,单体区块链通常会变得昂贵且难以使用,用户体验也会受到很大影响。此外,随着区块链的不断增长,整个网络会出现状态爆炸,维护网络的门槛不仅提高,成本也不断增加。
; K: j- z: F; a3 D. q* @+ T为了解决单体区块链存在的问题,业内人士多年来,在扩容、状态修剪等方面都进行了广泛研究和探索,其中包括但不仅限于状态通道、侧链、Rollup、轻节点、分片、模块化等技术。这些技术的研究和开发,不断地优化区块链的技术栈,并且提高区块链技术的普及程度。
模块化区块链的定义及产品:
, o' p& B0 _4 }' _, T4 F本质上,模块化区块链是通过聚合和组合的思想,重新定义和划分区块链的分层架构,并将其划分为不同的模块。这些模块互相独立,可以根据需求进行修改和扩展,并可以相互组合。这种组合而成的模块化区块链不仅可以提升各方面性能,还可以满足多样化的应用场景。
过去,站在单体区块链的架构进行思考,我们习惯对其的拆分结果为:承载去中心化应用的应用层,负责执行去中心化应用智能合约逻辑的执行层,处理交易有效性、交易顺序和区块构成的共识层,维护、存储交易和区块的数据层以及进行点对点广播通信的网络层。
: h9 ^* c2 L+ a: T: k5 C对于模块化区块链的分层理解,极易以单体区块链的思维先入为主,由此会造成不少混淆。此时,可以从用户的视角通过正在运行的以太坊乐观Rollup的二层网络Arbitrum直观和深入的了解。通过Arbitrum白皮书关于二层网络交易流的阐述:可以知道,用户提交的交易不再直接与一层网络进行交互,转由二层网络的定序器进行收集和批量处理,定序器将批量处理的多笔交易原始数据压缩发送到一层网络,与此同时,也会对批量处理的交易进行排序,计算用户和网络状态转变,然后将状态结果发送到一层网络进行结算。
2 W6 k2 \8 k6 K% _二层网络的定序器对交易进行收集和批量处理(执行层)
二层网络压缩处理交易以后发送到一层网络(数据可用层)* k2 {/ b, R: e3 t( J+ _
至于结算的交易Arbitrum的区块浏览器并没有做很好的一一对联,此处我们直接通Arbitrum官网部署在以太坊的智能合约入手,分析Delayed Inbox合约涉及到结算相关的函数:sendL1FundedContractTransaction,当结算出现分歧的时候调用;当结算没有分歧的时候调用Outbox合约的updateSendRoot。相关合约地址请查阅:https://developer.arbitrum.io/useful-addresses。
! @1 K; ?' i! c( s) D现在,我们对于执行层、数据可用层、共识层和结算层各自的功能和作用有了明确直观的认识。执行层是定序器对于交易的批量处理、包括原始交易数据压缩和状态的转变计算。结算层负责确认状态转变的最终性。数据可用层是一层网络对于执行层收集压缩的交易数据的存储和维护。至于共识层,保障的是执行层在数据可用层和结算层方面依赖的安全性。
. W1 ]/ ]$ E' G& ]; F6 w按照从上而下的定义,模块化区块链的层次结构如下图:
; w3 `, H5 Z/ P; \/ A- C3 [( F ) S- q9 K: ?( _$ r由于结算层涉及到不同执行层的交易有效性证明设计,例如乐观欺诈证明和零知识证明,为此,我们暂不做进一步的理解。下面,我们将直接了解模块化区块链常说的执行层、数据可用层、共识层这三个模块,着重在它们发展的背景,解决的问题,以及它们当前的发展情况和面临的挑战。
+ n+ r7 B" g. L7 ]* u# a- s1 _执行层产品及项目
: Q: ?% B `2 U6 m! G" \在没有真正提出执行层产品之前,我们经常听到一个词:以太坊杀手。这说明区块链用户对于交易吞吐量、交易速度和交易成本等方面的性能需求和以太坊提供的现状存在明显的不匹配情况。为此,不少新公链尝试从单体区块链本身的交易结构、区块设计、共识机制和网络广播机制进行探索和研究,构造全新的高性能公链,去实现海量交易吞吐量、快速交易速度和便宜的交易成本。与此同时,以太坊的生态对于各种各样的技术和产品方案都进行探索研发。时至今日,以Rollup为主体方案Layer2路线占据主导地位,其中欺诈证明的乐观Rollup的Optimism和Arbitrum不管在项目构建、用户吸引和留存都陆续超越其他EVM兼容的新公链,此外,以零知识证明为主的ZKRollup(Starknet、Hermez、zkSync、Scroll、Taiko等)、以并行交易为主的Fuel,AltLayer、Smooth等也在各自的方案领域继续前进。
! O$ H6 h v; P& f* C4 L 7 _/ Y# N' B, l; H6 }3 n# ~随着Rollup等Layer2的茁壮发展,泛指这些Rollup和并行交易产品的执行层概念正式提出。当然,不仅是以太坊,抑或是在优化了TPS和交易成本的Solana、BNBChain、Cosmos、Aptos等公链,各自的官方或社区都提出自己的Rollup和执行层产品。由此,我们不仅进入多链并存的时代,也进入多类执行层并存的场景。这也为开发者、用户和生态带来不一样的问题:各自的执行层产品独立封闭,生态难以共享,用户在彼此之间操作成本繁重,开发者构建和运营时间周期和成本昂贵。为此,以Rollup作为服务的产品同样面世。例如Sovereigen Labs,Stackr Labs,Eclipse Builders,Dymension等。这些产品类比于执行层的Hub,将原本定位于二层网络的Rollup转变为Layer3,由此构造单Hub多Rollup的树枝型执行层。
2 }5 l' R4 G) m1 ?8 i: m- Q8 e由于扩容场景的历史需求,执行层的产品探索和研发多年,各自的方案在这么多年都有获得重大突破。在未来的周期里,执行层的产品依然有不少尚未解决正在探索的问题:如去中心化定序器、zkEVM和并行交易等。
. J5 z* p' u$ g% A) i- n5 l: R3 G数据可用层产品及项目
大数据时代和云时代的到来,作为现代社会基础资源的数据,可以在各种决策场景提供帮忙和支撑,其战略地位如同过去的石油一般。当我们提到区块链的数据时,通常指的是链上存储的各种交易数据和智能合约数据。这些数据存储方式和传统的数据库有所不同,从某种角度而言,区块链的数据存储方式是分布式的,即每个节点都要存储一份完整的数据副本。当下,随着链上用户交易数据的活跃以及智能合约的繁荣,区块链数据在线性增长的基础上面,出现指数级增加的迹象。比特币网络从2016年55G的全网大小,一直按照每年50G增长,但是在2020年开始,其网络大小的年增长量开始跃迁为60G,截至当下2023年2月,全网数据大小是459G。
" c; L$ A! y5 Shttps://www.blockchain.com/explorer/charts/blocks-size6 r7 w; m! O; R1 E, o! ]
作为世界计算机和智能合约平台,以太坊的全网数据远比聚焦在支付领域的比特币要大得多。通过Etherscan可以看到,现在成为以太坊默认全节点至少需要800多G空间,成为以太坊Archive全节点至少需要13000G存储空间。
: \# l1 p) c% Z: w4 [3 N1 V不仅整体的数据量庞大,并且大部分数据都是以非格式化的形式存储的,由此造成区块链数据的处理、索引和查询难度极大。为此,站在单体区块链的角度思考,如何高效地、廉价地存储、快捷地处理和支持海量访问区块链数据成为极其重要的研究方向。
) B0 s5 _. b: `1 f1 e5 P- w早在比特币白皮书提出之时,中本聪对于网络的状态爆炸做了预先的解决方案:分别是Reclaiming Disk Space和Simple Payment Verification(SPV)。Reclaiming Disk Space是允许节点对于耗费的历史数据进行修剪从而降低全网数据大小,此方案在一定程度可以降低维护成本和参与门槛,但是由于全网数据体量的庞大,以及账户模型的单体区块链,例如以太坊,维护的数据维度和UTXO模型不一样,直接适用程度会比较有限,但基于Reclaiming Disk Space的思路,以太坊社区延申和追求的方案是将账户状态从区块链分离出去的Stateless Ethereum方案,。SPV主要是提倡轻节点Merkle树验证区块链交易数据的方案,在实现网络的低参与门槛之外,保证交易数据的有效性。由于SPV的轻节点单纯下载区块头信息进行验证,所以可能会收到欺诈性证明攻击。为此,现在Celestia的联创Mustafa Al-Bassam、Mysten Labs的Alberto Sonnino和Vitalik曾在2018年发表《Fraud and Data Availability Proofs:Maximising Light Client Security and Scaling Blockchains with DishonestMajorities》提出欺诈性证明攻击的解决方案,在此,单体区块链的数据可用性可以被理解为轻节点在不完全同步区块数据的前提之下,仅通过交易Merkle树对于交易数据的有效性验证。
# ]( H1 Q- C' U. O对于模块化区块链的执行层而言,单体区块链的数据转变成为链上数据,执行层的交易数据通过压缩存储成为链上数据其上的链下数据。链上数据对于链上数据不仅有常规的存储查询等性能和成本的直接要求,还会依赖链上数据伴随的共识机制进行安全性保证。如此,正是执行层产品的发展,丰富了单体区块链的数据可用性,并扩展了数据可用层概念对应的上下文。
在继续往下之前,我们必须明白,数据可用层和数据存储层是不能混淆的概念。数据可用层强调的是可用性,是以数据的有效性角度进行思考。数据存储层更多是站在计算机存储器的角度去定义数据的存储和使用性能,更多的关注是链上存储的成本费用、读写效率等。数据可用性必然是基于数据存储层延展出来的概念,此处延展的正是共识机制带来的可用性。换一种说法,Don’t Trust,Verify,此处的Verify对应的即是数据可用性。
% G, j$ W8 D! i* Z以太坊,作为现在执行层产品首选的数据可用层,由于其自身的Gas模型和Calldata结构,存在以下明显的缺点:1,数据的操作和存储成本高;2,数据的存储容量有限;3,网络资源分配不均。为此,以太坊通过EIP-4844的Proto-Danksharding、Data AvailabilitySampling(DAS)、Erasure Coding和Proposer/Builder Separation等提出自身的数据分片和状态扩容方案。未来,以太坊将引入新的Blob交易类型和额外数据层,在保证数据可用性的前提之下,降低当前链上的动态存储成本。至于其他专门的DA产品,不仅在数据可用采样性、Erasure Coding等技术方案探索,也增加各自对于数据可用性领域的研究突破,例如Polygon Avail的Fast Sync技术和Celestia的主权性和互操作性。除了数据可用层的产品,在现有数据存储层方面,我们也可以看到有BNB生态新推出的存储侧链Greenfield,以及Kvye和Arweave等组合类产品。
共识层产品及项目
- q: A& o! `5 C3 z! hNot your keys, not your crypto。在区块链网络,秘钥代表着数字资产的所有权。为了确保秘钥与数字资产对应的所有权,区块链网络必须实现强大的共识机制,以保证足够的去中心化程度和安全性。共识机制保障的是符合单体区块链交易格式的数据,例如比特币保障的是其上的交易以及交易内置的脚本逻辑,以太坊保障的是EVM可以执行和验证的交易。不仅如此,由于区块链世界存在两类具有明显差异的共识机制(PoW和PoS),不同单体区块链之间的不同共识,是难以进行互操作结合和使用的。另外,即使是原生支持多链互操作性的单体区块链,例如Cosmos和Polkadot,尽管已经在交易格式,抑或是共识机制方面可以实现兼容,但仍然存在共识机制难以共享使用的情况。
6 Q" g, b- A5 {2 K% M1 }% Z; |' T$ z进入共识层产品之前,让我们先了解和熟悉PoW和PoS的发展和当下状况。
6 m5 V7 p, P0 Y4 G$ V4 g5 W+ H% ^' lPoW可以粗略地理解为用物理世界的算力保证区块链网络的安全,其面临的最常见攻击是51%算力攻击和双花攻击,因此,只有网络的算力足够庞大,网络的安全性才可以得以保障。很多新型的PoW公链,在冷启动阶段,由于早期算力的不够,网络很容易遇到安全问题。为此它们要么通过长时间高成本的算力积累,要么考虑借助比特币等传统PoW网络的挖矿算力采用同样的PoW算法进行联合挖矿。由于区块链的算力本质是随着区块高度的增加而逐渐增加的,联合挖矿/合并挖矿是通过加密经济激励机制租用算力,当两条公链利益重合匹配的时候,联合挖矿/合并挖矿对于矿工而言是有吸引力的,但是,当新PoW公链和比特币网络利益出现冲突的时候,由于比特币网络并没有办法在协议层面制裁矿工,所以,矿工一般会采取不利于其他新PoW公链的行为。例如,在很早以前Namecoin就通过和比特币网络的算力进行联合挖矿,由于联合挖矿方案在某些场景会造成两个网络的利益不匹配,所以造成了Namecoin的潜在风险。对于实现了智能合约功能的比特网侧链RSK而言,尽管RSK在与比特币网络的利益层面做了优化,但是其自身的迭代开发都受限于比特网的非图灵完备性,故而在联合挖矿方面的突破是有限的。另外,对于Quai Network此类从设计之初,原生地提出多链联合PoW,在算力层面进行抱团取暖。即便如此,Quai Network也仅仅是将共识的冷启动成本进行均摊而已,也无法做到PoW共识机制的复用和组合。
PoS共识机制的核心是利用权益保护网络,权益的价值将决定网络的总体价值,只有足够高价值的权益才能保障高价值的网络。现在流行的PoS机制是基于PBFT改良的,本质依然是权益的证明。常见的PoS网络有知名的Cosmos和Polkadot。秉承着最小化信任的机制,Cosmos作为Hub,是不会主动干预生态应用链的共识机制。Cosmos生态的应用链可以复用整个生态完善的开发栈,但是,在维护对应应用链网络的时候,网络验证者集的成立和维护是需要极高的门槛和成本,这也是信任和安全的成本。不少应用链一般会用空投吸引Cosmos验证者,提供高额的通胀奖励鼓励验证者进行质押保护网络。为减少共识机制的建立成本和提高应用链的安全,Cosmos 2.0提出各种改进方案,例如,可以借用Cosmos为应用链进行安全共享ICS,可以为应用链进行共识共享的Space Mesh等。除此之外,Cosmos生态的Babylon也尝试将比特币网络的PoW共识安全引入Cosmos生态用于保障应用链的安全。对于波卡而言,我们都知道其结合了极强的链上治理模型和前沿的共识理念。可以这么理解,波卡通过平行链卡槽拍卖的机制,直接将共识机制的保障边界扩展到其他链的交易。不可否认,这些机制在复用共识方面,是具有超前的理念,然后由于链上治理的效率和共识的强需求存在不匹配,由此造成波卡平行链的淡出视野。
现在,让我们回到合并之后PoS共识机制的以太坊。以太坊是极佳的共识层产品资源,多年的PoW沉淀发展促使以太坊积累高额的价值,探索和迭代多年的PoS机制,配上以太坊完善的智能合约平台,以及蓬勃发展的以太坊执行层产品,促使将PoS以太坊作为新一代共识层产品的前提条件已经成熟。我们可以在现有以太坊质押的逻辑基础上面,通过设计合理有效的激励和惩罚机制,复用质押的以太坊,将此部分的以太坊保护其他类型的网络,例如预言机网络、跨链桥网络等。这其中,EigenLayer在此赛道进行了多年的研究,其最近也发布对应的白皮书,正式提出Restaking的概念,并从slashing机制描述自身网络的功能和设计。除此之外,近期火热的以太坊流动性质押衍生品赛道产品,本质上面拥有大量质押的以太坊,一旦出现合适的共识层产品,流动性质押衍生品赛道的产品都将可以无缝地作为共识提供者参与进来。
* K; C7 p1 N+ B3 R$ P- W: M结语
现代软件开发流行面向服务的微服务架构,通过将应用程序拆分成为功能和特性独立的服务,让每个服务自主地开发、部署和运行,各个服务之间通过通信和数据共享的方式进行灵活组合,以此实现更高的扩展性、灵活性和可维护性。微服务架构的发展正在逐步成熟和完善,尽管在实践中还存在一些挑战和问题,如分布式事务、服务治理、安全性等方面,但随着技术的进一步成熟和经验的积累,这些问题都逐渐得到解决。
模块化区块链,和微服务架构有不少相似之处,随着区块链的不断发展,也将会成为区块链技术的重要方向。当前,执行层产品,正不断承担更多交易计算的职能,在用户数据、交易数据等各项指标都取得卓越的效果,数据可用层和共识层在各自的方案领域不断前行,结算层的功能有待开发,各自之间潜在的灵活组合将会带来更多无限的潜力。未来,我们有理由相信,模块化区块链将会带来更多创新和机遇,为推动区块链技术的应用和发展做出重要贡献。