一. 什么是 Layer2
Layer 2(第二层)是指在区块链技术和网络协议中用于扩展基础区块链(Layer 1)的解决方案。其目的是提高交易速度、降低交易费用,并增强网络的可扩展性和效率。Layer 2 通过在主链之外处理大量交易,然后将结果批量提交到主链,从而减轻主链的负担。以下是 Layer 2 的一些关键特点和技术:
-
扩展性:Layer 2 解决方案可以处理更多的交易量,从而缓解 Layer 1(如以太坊和比特币)上的拥堵问题。
-
成本降低:通过在链下处理交易,Layer 2 可以显著降低用户的交易费用。
-
提高速度:由于交易不需要在主链上逐一确认,Layer 2 可以大幅提高交易处理速度。
-
安全性:尽管交易在链下处理,但 Layer 2 解决方案仍依赖于主链的安全性来保证最终的交易结果是可信和不可篡改的。
二. 常见的 Layer 2 解决方案
状态通道(State Channels)
-
这种方法允许两方或多方在链下进行多次交易,只在交易结束时将最终状态提交到区块链。一个典型的例子是闪电网络(Lightning Network),主要用于比特币。
侧链(Sidechains)
-
侧链是一条独立的区块链,使用其自身的共识机制,但通过双向锚定与主链(母链)连接。侧链可以自由地实现不同的功能和优化,同时主链依旧保持其主要的安全和稳定性。
Rollups
Rollups 通过将大量交易打包到一个单一交易中,并将其提交到主链。这种方法可以分为两种类型:乐观 Rollups(Optimistic Rollups)和零知识 Rollups(zk-Rollups)。
-
Op Rollups:假设交易是有效的,只有在有争议时才进行验证
-
Zk Rollups:通过零知识证明技术,在提交交易数据的同时,保证其正确性。
Plasma
-
Plasma 是一种框架,允许创建多层的子链结构,每层都可以处理大量的交易。尽管其理论基础较强,但在实际应用中面临一定的挑战。
但在 l2beat 网站上,除了 rollups 之外,其他的解决方案都全部定义为侧链
三. Layer2 相关的术语解释
模块化
目前的 L2 区块链项目中,模块化已然成为标配;我们都知道,模块化这个词源于Mustafa Albasan 和 Vitalik 在 2018 年共同撰写的,题为《数据可用性采样和欺诈证明》,后经 Celestia 发扬光大。模块化,可组合落到 Layer2 上是非常合适的,但是在 Layer3 上又是怎样表现的呢,我们如何理解模块化可组合的 Layer3 呢?模块化能行得通主要源于区块链公链架构的可组合特性,一个成熟的公链包括:
-
结算层(Settlement layer)负责资产的交易状态转移和确定;
-
DA层(Data Availability)负责交易数据的状态变数据可用性,以供交易验证:
-
执行层(Execution layer)负责处理交易的执行逻辑,包括智能合约的调用和执行;
-
共识层(Consensus Layer)负责所有节点就某一版本的交易历史达成一致性;
-
跨链通信层(Interoperability Layer)负责不同区块链网络的消息通信和状态管理。
以上各个区块链组件分工明确,各司其职构成了区块链的可信和去中心化特性
数据可用层(DA)
数据可用层(Data Availability Layer)是指处理和保证数据可用性的一层。数据可用性是指数据在需要时可以被访问、验证和使用,这对于区块链系统中的数据完整性和安全性至关重要。数据可用层的设计目标是确保所有参与者能够访问和验证区块链上发布的数据,从而保证整个系统的透明性和可靠性。
数据可用层的关键功能
-
数据存储和分发:数据可用层负责存储区块链生成的数据,并确保这些数据可以被所有节点访问。它提供一种分布式数据存储机制,以确保数据的持久性和冗余性。
-
数据验证:该层还提供验证机制,允许节点快速验证数据的完整性和正确性。数据验证是确保数据没有被篡改或损坏的关键步骤。
-
数据检索:数据可用层需要确保数据在需要时可以被高效地检索和访问。无论是进行交易验证、智能合约执行,还是数据分析,都依赖于快速的数据检索能力。
-
冗余和容错:为了防止数据丢失或损坏,数据可用层通常会实现数据冗余和容错机制,例如通过分布式哈希表(DHT)或复制数据到多个节点。
数据可用层在区块链架构中的位置
在分层的区块链架构中,数据可用层通常与其他层(如结算层和执行层)相互配合,以确保整个系统的高效运行。具体来说,数据可用层为结算层和执行层提供了可靠的数据存储和访问服务。
数据可用层的实现方式
-
链上数据可用性:在传统区块链系统中,所有数据都存储在链上(如比特币和以太坊),这确保了数据的可用性。然而,这种方式可能导致区块链膨胀和性能问题。
-
链下数据可用性:一些现代区块链系统采用链下数据存储来解决链上数据膨胀的问题。例如,Rollup技术将大部分交易数据存储在链下,并仅在链上存储数据的摘要或证明。
-
分片技术:分片技术将区块链分割成多个小片,每个小片存储一部分数据。这种方法提高了系统的可扩展性和数据处理能力,但需要有效的数据可用性方案来保证每个小片的数据可访问性和完整性。
数据可用层的挑战
-
数据可用性攻击:数据可用性攻击是指恶意节点在不提供全部数据的情况下发布区块,使其他节点无法验证数据的完整性。解决这一问题需要设计有效的数据可用性证明机制。
-
存储和带宽限制:随着区块链数据量的增加,存储和带宽需求也会显著增加。数据可用层需要高效的存储和分发机制,以应对不断增长的数据需求。
-
隐私和安全:确保数据的隐私和安全也是数据可用层的重要挑战之一。需要设计加密和访问控制机制来保护敏感数据。
数据可用到的算法
数据可用性证明(Data Availability Proofs )
数据可用性证明是一种方法,用于验证发布的数据是否实际存在且可访问。这些证明对于防止数据可用性攻击(例如,区块发布者声称发布了数据但实际上没有)非常重要。
-
Kate Commitments:
-
一种基于多项式承诺的方案,可以高效地验证大数据集的可用性。它使用KZG(Kate-Zaverucha-Goldberg)承诺来证明特定数据块已被正确发布。
-
Data Availability Sampling:
-
一种随机抽样技术,节点通过随机抽取和验证少量数据片段来确定整个数据集的可用性。此方法降低了验证成本,使得即使资源有限的轻节点也能参与验证。
纠删码(Erasure Coding)
纠删码是一种数据编码技术,用于提高数据存储的冗余性和可靠性。通过将数据分成多个片段并添加冗余信息,即使部分片段丢失或损坏,数据仍然可以恢复。
-
Reed-Solomon Codes:
-
一种广泛使用的纠删码,能够从任意 k 个有效片段中恢复出原始数据,其中 k 是编码参数。这种编码在存储和分布式系统中被广泛应用。
-
LDPC Codes(Low-Density Parity-Check Codes):
-
一种高效的纠删码,使用稀疏矩阵进行编码和解码,适用于需要高冗余和低延迟的系统。
分布式哈希表(DHT)
DHT是一种分布式存储系统,节点通过哈希函数确定数据的位置,并在网络中存储和检索数据。
-
Kademlia:
-
一种常见的DHT实现,使用XOR距离度量来确定节点之间的距离并高效地路由数据请求。Kademlia的分布式特性使其适用于去中心化网络中的数据存储和检索。
**密码学技术 **
加密和哈希算法在确保数据的完整性和安全性方面发挥关键作用。
-
Merkle Trees:
-
Merkle树是一种哈希树结构,用于高效和安全地验证大数据集的完整性。通过根哈希(Merkle Root),节点可以快速验证任何数据片段是否属于数据集的一部分。
-
零知识证明(ZKP):
-
零知识证明允许一方在不透露具体数据的情况下,证明其拥有某些数据的知识。ZKP在数据可用性和隐私保护方面有广泛应用,例如zk-SNARKs(零知识简洁非交互知识论证)。
数据分片(Data Sharding)
数据分片将大数据集分割成更小的片段,并分布在不同的节点上,以提高系统的可扩展性和数据可用性。
以太坊2.0 分片(Ethereum 2.0 Sharding):以太坊2.0采用分片技术,将区块链状态和交易负载分割成多个平行运行的分片链。每个分片链独立处理交易和状态,但通过信标链(Beacon Chain)实现统一的共识和数据可用性。
**数据可用层实例 **
-
以太坊 2.0:在以太坊 2.0 的分片设计中,信标链和分片链需要协同工作,数据可用层在保证每个分片链数据的可用性方面发挥重要作用。
-
Celestia:Celestia 专注于构建一个专门的数据可用层,通过分离共识和数据可用性来提高区块链的可扩展性和效率。
-
EigenDa: 是一种新兴的数据可用性(Data Availability, DA)解决方案,专注于通过创新的技术方法来确保区块链和去中心化应用中的数据可用性。EigenDA 结合了多种先进的密码学和数据分发技术,以实现高效、可靠和可扩展的数据可用性。
**中心化存储网络 **
去中心化存储网络利用分布式存储技术来提高数据的可用性和抗审查性。
-
IPFS(InterPlanetary File System):IPFS是一种分布式文件系统,使用内容寻址和DHT来存储和检索数据。通过分布式存储,IPFS确保数据在网络中具有高可用性和冗余性。
-
Filecoin:基于IPFS的去中心化存储网络,Filecoin通过经济激励机制确保数据存储的可靠性和持久性。存储节点通过提供存储空间和检索服务获得代币奖励。
跨链通信层
跨链通信层(Cross-Chain Communication Layer)是指在不同区块链网络之间实现信息和价值互操作的技术和协议。由于各区块链网络独立运行且通常不兼容,实现跨链通信能够打破区块链之间的隔离,促进去中心化应用(dApps)的互操作性和更广泛的生态系统整合。
跨链通信层的关键功能
-
互操作性:跨链通信层允许不同区块链之间的数据和资产互操作。这可以包括转移代币、共享数据、调用跨链智能合约等。
-
信任和安全:确保跨链通信的安全性和信任性是关键。跨链通信层需要防范各种攻击,如双花攻击和中间人攻击,确保跨链操作的安全和完整性。
-
兼容性:跨链通信层需要支持不同区块链的共识机制和数据结构,确保在异构区块链之间的无缝通信。
跨链通信的实现方式
中继(Relay):中继是一种桥接机制,通过中继链或中继节点在不同区块链之间传递信息。中继负责监控源链上的事件,并将这些事件提交到目标链上进行处理。例子:Polkadot的中继链(Relay Chain)连接了不同的平行链(Parachains),实现了跨链通信和共享安全。
原子交换(Atomic Swaps):原子交换是一种去信任的跨链交易方式,利用哈希时间锁定合约(HTLC)确保交易双方在不同链上的资产交换同步完成。例子:Bitcoin和Ethereum之间的原子交换可以通过HTLC实现,确保两链之间的代币交换。
侧链(Sidechain):侧链是一种独立的区块链,与主链(主网)平行运行,通过双向锚定(two-way peg)机制实现与主链之间的资产转移和数据通信。例子:Liquid Network作为比特币的侧链,实现了更快的交易和更高的隐私性。
跨链桥(Cross-Chain Bridges):跨链桥是一种专门的协议或平台,通过桥接合约或中继器在不同区块链之间传递资产和信息。例子:ChainBridge 和 RenBridge 是实现不同区块链之间资产跨链转移的桥接工具。
去中心化中继器(Decentralized Relayers):去中心化中继器网络是一种无需信任的跨链解决方案,通过去中心化的节点网络来验证和传递跨链交易。例子:Cosmos的IBC(Inter-Blockchain Communication)协议通过去中心化中继器实现跨链通信。
具体例子
-
Polkadot:Polkadot的中继链和平行链架构实现了高效的跨链通信。中继链负责管理和验证平行链之间的跨链交易,确保跨链操作的安全和一致性。
-
Cosmos:Cosmos通过其IBC协议实现了跨链通信。IBC允许独立的区块链通过标准化协议互操作,节点可以安全地传递消息和资产。
-
DappLink 跨链互操作协议:一个基于 zkp 的资产,数据跨链互操作协议
-
Chainlink:Chainlink提供了跨链数据和资产的互操作性解决方案,通过去中心化预言机网络实现链上和链下数据的安全传输。
跨链通信的挑战
-
安全性:跨链通信需要解决各种安全问题,包括双花攻击、重放攻击和中间人攻击。需要设计强大的验证机制和加密协议。
-
性能和可扩展性:跨链操作可能增加延迟和复杂性,需要优化性能和可扩展性以支持大规模应用。
-
标准化和互操作性:不同区块链的协议和数据结构各异,需要标准化协议和通用框架来实现互操作性。
四. 主流的 Layer2 项目分析
Ethereum 生态
以太坊主流的 Layer2 解决方案包括 Optimistic Rollups 和 zk-Rollups。这两种解决方案都旨在提高以太坊网络的吞吐量和降低交易成本,同时保持去中心化的特性和安全性。
Optimistic Rollups
Optimistic Rollups 是一种基于承诺链(commit chain)和执行链(execution chain)的 Layer2 扩展方案。它将大量交易数据存储在链外的执行链上,并定期将执行结果提交到链上的承诺链中。通过链外计算和链上争议解决机制,Optimistic Rollups 实现了高性能的智能合约执行,同时保留了以太坊的去中心化特性。
Optimistic Rollups 主流的项目
-
Arbitrum
-
Optimism
-
基于 OpStack 改造的 Layer2
OP 老版本 OVM 代码架构
ZK-Rollups
zk-Rollups 是一种基于零知识证明(Zero-Knowledge Proofs)的 Layer2 扩展方案。它通过将大量交易数据压缩成证明,并在链上发布摘要来实现高吞吐量和低成本的交易。zk-Rollups 提供了更高的隐私保护和交易验证效率,但相对来说实现和部署的技术门槛较高。
-
ZK-Rollups 主流的项目
-
PolygonZkEVM
-
Scroll
-
Starknet
-
ZksyncEra
-
Linea
-
基于 Polygon CDK, Scroll 和 ZkSyncEra 等改造的项目
Bitcoin 生态(侧链)
-
Stacks(之前称为Blockstack)是一个构建去中心化应用(dApps)和数字资产的平台,旨在通过区块链技术赋予用户更大的数据控制权和隐私保护。Stacks 提供了一种基于比特币区块链的智能合约平台,使开发者能够构建安全、私密的去中心化应用,并允许用户拥有和控制自己的数据。
-
Nervos: 基于 RGB++ 协议处理跨链互操作的 Layer2 网络,目前上面无法运行智能合约,这也是 Nervos 未来发展最大的挑战。