Layer2
Layer 2 简介
Layer分层
- Layer 0 是数据传输层,指的就是区块链最基础的底层协议,也就是节点之间传递讯息的通讯层,负责基础的数据传递及建立共识达成效率。
- Layer 1 是底层区块链。比特币(BTC)、以太坊(ETH)、币安智能链(BNB)和Solana都属于Layer-1协议。
- Layer2 又称链下扩容,指不改变区块链底层协议和基础规则,通过状态通道、侧链等方案提高交易处理速度。
- Layer3 指的是应用层。
Layer 0
Layer 0 数据传输层
L0是数据传输层,指的就是区块链最基础的底层协议,也就是节点之间传递讯息的通讯层,负责基础的数据传递及建立共识达成效率。
第0层赋能了以下三方面:
1、允许不同区块链交互
- 一个很好的例子是Cosmos,它它通过其"TendermintIBC”(区块链间通信协议)创建了一个可互操作的区块链生态系统。希望打造一套区块链通用的开发框架并解决跨链问题,使多链宇宙成为可能。有意思的是,Cosmos生态中的项目Terra,其市值超过了Cosmos。基于 Cosmos SDK 开发的区块链还有 LUNA、CRO、OSMO 等市值超过 10 亿美金的项目。
- 对于开发人员来说,这是巨大的进步。如果一个Dapp可以在一个区块链上运行,它也可以在其他区块链上自动运行,只要它们使用相同的第0层构建。无需投入更多时间和资源在另一条链上构建相同的应用程序。
2、交易更快、成本更低
- 过IBC,PoS共识可以跨多个链实现,导致最终确定时间几乎在瞬间发生(最终确定=块被批准、不能回滚且被认为是不可逆的)。这样的结果是让跨链交易所的交易更快、更便宜。
3、开发人员的基础设施
- 开发人员不需要从头开始,从头开始构建他们的区块链。许多功能都是预先构建的,可以立即实施。
实例:
Polkadot、Cosmos、Avalanche、Cardano
Layer 1
L1 底层区块链
第1层是区块链(比特币和以太坊),它们在自己的区块链上处理和完成交易。这是处理共识(PoW、PoS)和所有技术细节(如区块时间和争议解决)的地方。
区块链最重要的三个方面是克服区块链三难困境:去中心化、安全性和可扩展性。到目前,仍然没有一个区块链能够解决这三个问题。
Solana支持每秒71万次交易,可以说当之无愧的高性能公链。使用的是时间历史证明机制(PoH)和可验证的延迟机制,允许节点通过本地生成时间戳,无需在整个网络上进行广播时间戳信息,最大化的提高了公链数据的传输线程,提高传输效率,但Solana区块链在不到一年的时间里遭遇了一系列的中断,其安全性备受社区成员的质疑。
比特币的稳定性和安全性毋庸置疑,但可扩展性太差。
以太坊升级到2.0后,采用分片来解决扩展性问题
Celo采用PoS权益共识,交易速度能达到5秒的速度,而Gas费低至0.00004美元。它能使用稳定币支付Gas费,规避了加密货币的波动性问题,很适合跨国汇款,在非洲应用较为广泛。
实例:
Ethereum、Celo、Binance、Solana
Layer 2
L2链下扩容
L2又称链下扩容,指不改变区块链底层协议和基础规则,通过状态通道、侧链等方案提高交易处理速度。
第2层是与第1层结合使用的第三方集成,以提高可扩展性和每秒事务(系统吞吐量)。Polygon是一个去中心化的以太坊扩展平台,使开发人员能够以低交易费用构建可扩展的用户友好 dApp,而无需牺牲安全性。
除此之外,还有很多的以太坊 L2,比如所谓的"四大Rollups",包括 Optimistic Rollups (ORU)和 Arbitrum,它们已上线并拥有快速增长的用户和开发人员基础。还包括 zk-rollups(ZKRs)和 StarkNet。
如零撸(zk)、侧链或任何与加快事务吞吐量有关的技术,都属于第2层。
实例:
Optimism、Polygon、Starknet、Arbitrum
Layer 3
L3应用层
第3层是应用层。这是作为消费者实际与之交互的用户界面。
比如有人认为使用以太坊Layer2,交易吞吐量仍然有限,而且Gas不够便宜,无法执行以订单簿为中心的CEX(中心化交易所,如币安)所需的所需交易,就需要依靠第三层分流。
目前在Layer1和Layer2 之间使用的跨链通道非常低效且昂贵。所以将层级间与同层间的组合操作平移至Layer3可能是一个不错的选择,而且更易于实施。因为定制化的 Layer3 是通过Layer2 而不是Layer1 进行互操作,这显然会更便宜。
L3的应用程序,包括DEX(去中心化交易所,如UniSwap)、DeFi(去中心化金融,如Maker)、NFT(非同质化代币,如CryptoKities)、DAO(去中心化自治组织)、GameFi (Decentraland)等。
还有一种分法,从L3 中再分出L4,也就是区块链技术应用于现实世界的解决方案。可能是为了方便人们操作的,体验更好的用户界面。
为什么需要 Layer 2
Layer 1 是指区块链的基础层,也称为主链或基础协议层,比特币和以太坊就是典型的 Layer 1 区块链。
因为在 Layer 1 上进行交易和智能合约执行需要全网节点的参与,所以会面临一些挑战,如低吞吐量、高交易费用和延迟较高。这些挑战对于一些需要高性能和低成本的应用场景来说是不利的,比如支付、游戏和去中心化交易所等。
Layer 2 技术的出现就是为了解决 Layer 1 的这些瓶颈和挑战,Layer 2 技术通过将一部分交易或计算迁移到 Layer 2,可以大大提高系统的吞吐量和性能。同时,由于 Layer 2 不需要全网节点的参与,所以可以降低交易的成本和延迟。这使得区块链技术更加适用于各种实际应用,并能够满足更多用户的需求。
Layer 2 - 状态通道
一种 Layer 2 的实现方式,叫做状态通道。
问题
因为 Alice 的公司在与其他公司做跨境交易,每一笔订单交易的金额其实不是很大,平均数在 100 美元。
Alice 和客户是在 Bitcoin 一层网络做交易结算的,随着时间流逝她发现有如下问题:
1.为了防止货物发出去了但是没有收到款项,Alice 和别的公司交易都是一笔订单结算完成才进行下一笔(一般为 100 美元),毕竟只有一笔被违约的话还是可以承受的,两笔交易都被对方违约的风险就无法承受了。由于每一笔交易在 Bitcoin 一层网络结算完成一般都要等待 10 分钟,每一天的交易量就不能很多,Alice 本可以赚更多钱的。
2.由于 Bitcoin 一层网络的交易手续费太贵了,所以 Alice 这边每一笔交易其实都少赚了一些钱,所以她更希望订单的价值大一些,这样更容易摊平这些手续费损失。
解决方案
因为这些问题的存在,Alice 就去找 Bob 请教,Bob 告诉了她一种方法叫做状态通道。具体的方案如下:
- 每天上午 9 点上班的时候,Alice 和客户一起创建一个多签名钱包(多个私钥控制),将一定数量的资金锁定在这个钱包中,并将该交易记录在区块链上。这个交易作为开启通道的证据。
- 通道建立之后,Alice 和客户就可以在通道内进行频繁的交易了,这些交易并不会立即被提交到 Bitcoin 一层网络上,而仅仅是双方都将交易的状态变化记录在本地,并相互交换更新后的状态。
- 每一天下午 6 点下班前,Alice 和客户希望关闭通道时,他们可以将最终的状态提交到 Bitcoin 一层网络上,并由 Bitcoin 一层网络验证和执行这个状态更新,最终状态包含了通道运行期间内的所有交易信息。
如此一来,
- Alice 和客户每天的交易就可以无限多了,因为在通道内完成交易是非常快的,可能每秒钟都可以完成 10 笔交易了,完全够用了。
- 另外 Alice 每天只要下班前统一付一次 Bitcoin 一层网络的手续费就行了,省下了很多钱。
但是由于 Alice 和客户都在各自的本地记录交易状态变化,难免有时候会出现不一致的时候,她们需要制定出争议解决的方案,方案如下:
- 如果 Alice 和客户之间发生争议,例如一方欺诈或拒绝合作,她们可以选择将争议提交到 Bitcoin 一层网络上进行解决,在争议解决阶段,Bitcoin 一层网络将验证这个争议,以确定最终的状态。
- 其中一种常用的验证机制是简化支付验证(Simplified Payment Verification,SPV)
- SPV 验证过程中的关键步骤是验证交易在区块链中的位置和有效性。参与者可以使用 Merkle 树结构来验证交易是否包含在特定的区块中。Merkle 树是一种二叉树结构,其中每个叶子节点代表一个交易,而每个非叶子节点的值是其子节点值的哈希。通过比较交易的哈希与 Merkle 树的根哈希,参与者就可以确认该交易是否包含在区块中了。
- 一层网络验证之后,争议解决了,双方的钱款就会按照正确的值返回到各自的钱包里了。
如此一来,Alice 的问题解决了,她非常开心,打算明天就试试这个方案。
Layer 2 - 侧链
问题
Alice 开始与客户们采取状态通道的方式来进行交易,但是 Alice 的客户们太多了,遍布全球,每个客户都需要开一个单独的状态通道让 Alice 一个人有些难以管理。因为状态通道里面的交易需要双方都进行签名,以证明其参与和同意了这一笔交易,当 Alice 的公司停电或者她去上厕所的时候其实交易就无法继续进行下去了。
状态通道里面其实 Alice 只能与客户们进行简单的转账交易,但其实有的时候她们还想做一些活动比如打折,升级之类的,这些东西状态通道做不了。
解决方案
因为这些问题的存在,Alice 就去找 Bob 请教,Bob 告诉了她一种方法叫做侧链。具体的方案如下:
- Alice 和客户们一起创建一个新的区块链 X,这个区块链有自己独立的共识机制和规则,节点就是 Alice 和她的客户们以及一些知名的跨境电商机构在运行。
- Alice 和客户们都分别将一定数量的 BTC 在 Bitcoin 一层网络进行锁定,然后在这个新的区块链 X 上生成相同数量侧链版的 BTC(SideBTC)。
在侧链上,Alice 就可以和客户们进行各种交易和操作,包括代币转移、智能合约执行等。
当 Alice 或者客户们希望将侧链资产转移到 Bitcoin 一层网络时,他们就将相应数量的侧链资产锁定,并在 Bitcoin 一层网络上生成相应的解锁交易,解锁交易被确认后,相应数量的 BTC 就在 Bitcoin 一层网络上解锁并可用了。
如此一来,Alice 的问题解决了,她非常开心,打算明天就试试这个方案。
小结
侧链这种方案,它的技术原理如下:
- 创建侧链:参与者们一起创建一个独立的区块链X,该区块链具有自己的共识机制和规则。
- 锁定资产:参与者们在比特币一层网络上锁定一定数量的BTC,并在侧链X上生成相同数量的侧链版BTC(SideBTC)。
- 侧链交易:在侧链X上,参与者们可以进行各种交易和操作,包括代币转移和智能合约执行等。
- 转移资产:当参与者们希望将侧链资产转移到比特币一层网络时,他们将相应数量的侧链资产锁定,并在比特币一层网络上生成相应的解锁交易。
- 解锁资产:解锁交易在比特币一层网络上确认后,相应数量的BTC就在比特币一层网络上解锁并可用。
- 案例应用:一个著名的侧链项目例子是Liquid Network,它是比特币的一个侧链,专注于提高交易速度和隐私性,主要服务于需要高频交易和即时结算的机构用户。另一例子是Polygon(前身为Matic Network),它作为以太坊的侧链,旨在解决以太坊网络的拥堵和高Gas费用问题,提供更快、成本更低的交易环境。
Layer 2 - OP Rollup
问题
- Alice 开始与客户们采取侧链的方式来进行交易,但是侧链的节点运行者是 Alice 的客户们和一些知名的跨境机构。因为 Alice 的公司赚钱过多,平常会有一些品牌溢价,赚的盆满钵满,这招来了同行们的嫉妒。于是同行们联合起来去找她的客户们,他们商量好说一起在节点运行逻辑里面作恶,把 Alice 的钱全部转走。因为侧链具备独立的共识机制和规则,只要恶意节点个数达到一定的比例,就可以发起攻击。
- 但是这个事情被 Alice 知道了,因为其中有一个客户是她三舅妈的好朋友。Alice 必须要及时解决这个问题,否则不但生意做不下去了,连本钱都保不住了。
解决方案
乐观卷积(Optimistic Rollups):这是一种二层(Layer 2)扩展解决方案,允许大量交易在链下处理,并且只将最终结果提交到以太坊主链上。这样大大减轻了以太坊主链的负担。
因为这些问题的存在,Alice 就去找 Bob 请教,Bob 告诉了她一种方法叫做 Optimistic Rollup。具体的方案如下:
- Alice 跟客户们说,以后不让你们当节点了,因为你们可能联合起来作恶。我一个人独立当节点,批量打包压缩所有的交易到 Bitcoin 一层网络上去。
- 但是其他客户们说,那这样风险其实不就转嫁到我们自己身上了吗?他们强烈反对。
- 最终 Alice 和客户们想出了一个办法,就是创造出一种挑战机制,让任何人都可以去挑战提交到一层网络的最终交易状态,然后一层网络会做验证,只要真的发现 Alice 作恶,那么系统就会惩罚 Alice,例如将她的钱分给大家。
- 可是这样的挑战机制在原来的 Bitcoin 一层网络上非常难实现,因为 Bitcoin 的可编程性比较差。而这时候他们发现有一个新的 Layer1 叫做 Ethereum,它原生支持智能合约,可以写非常复杂的业务逻辑,这个挑战机制在它上面可以很容易实现。Alice 再次咨询了 Bob,确认这个方法是具备技术可行性的。
- Alice 和客户们花了一些钱将这个方案外包了出去,一个月后他们开始开心地用起来新的系统 Optimistic Rollup。
小结
Optimistic Rollup 这种方案,它的技术原理如下:
- 构建侧链:首先,创建一个独立的侧链,通常基于以太坊虚拟机(EVM)的兼容链。这个侧链可以是一个独立的区块链,也可以是一个分区(rollup)。
- 执行和验证:在侧链上执行智能合约的交易,并验证其执行结果。验证过程通常是通过在侧链上运行一些验证节点来完成的。
- 状态提交:在侧链上执行和验证完交易后,只需将状态的提交信息发送到以太坊主链上。这个提交信息通常包括侧链上的状态根哈希和一些证明数据,用于证明侧链上的计算是正确的。
- 争议解决:一旦状态提交到以太坊主链上,就进入了一个争议解决期。在这个期间,任何人都可以提出对状态提交的争议,并提供相关的证据。争议解决机制通常是基于可选的仲裁者或社区投票来决定提交是否有效。
- 回滚和奖励:如果没有争议或争议被解决并确认为无效,侧链上的状态转移将被视为有效。在这种情况下,侧链上的交易将被批准,并且参与者将获得相应的奖励。如果争议被解决并确认为有效,那么侧链上的状态转移将被回滚,并可能导致相关参与者的处罚。
- 案例应用:
- Optimism 是最知名的 Optimistic Rollup 解决方案之一,它直接以项目名称体现了技术类型。Optimism 为以太坊上的去中心化应用(DApps)提供了扩容解决方案,支持 EVM 兼容性,意味着开发者可以无缝地将他们的智能合约从以太坊主链迁移过来。Optimism 通过欺诈证明(Fraud Proofs)机制确保了安全性,即如果有人质疑某个交易的有效性,可以通过提交欺诈证明到主链上来挑战并解决争议。
- Arbitrum 是另一种流行的 Optimistic Rollup 平台,由 Offchain Labs 开发。Arbitrum One 是其主网,同样致力于提高以太坊交易的效率和降低成本。Arbitrum 提供了与以太坊虚拟机(EVM)几乎完全兼容的环境,使得开发者可以轻松迁移现有的智能合约。它也采用了 Optimistic Rollup 的欺诈证明机制来处理潜在的争议。
它解决了纯粹的侧链容易被节点联合作恶的问题。
Layer 2 - ZK Rollup
零知识证明(Zero-Knowledge Proofs)是一种密码学技术,允许一方(证明者)向另一方(验证者)证明某个声明是真实的,而无需透露声明本身的具体内容。在 ZK Rollup 中,零知识证明用于验证交易的有效性。
问题
- Alice 开始与客户们采取 Optimistic Rollup 的方式来进行交易,且存在挑战机制导致 Alice 不敢作假,因为作假会被惩罚。
- 但是客户们里面有一个非常有钱的人,他之前追求 Alice 不成,于是恼羞成怒,决定疯狂攻击 Alice 的这个系统。于是他每天都去申请挑战 Alice 提交的交易,虽然 Alice 没有作假,他挑战不成功会遭到金钱上的惩罚,但是他很有钱根本就无所谓。每一次挑战都会耽误一些时间,主链长期处于争议解决期,Alice 客户们都不太敢在这里做交易了,因为动不动就争议,他们觉得提心吊胆的。
- 另外一方面,Alice 的客户们每一次想从 Layer2 提出资金到主链的时候,都需要等待完整个的挑战期,一般为 7 天,他们觉得资金的流转效率不是很高。关于这一点,客户们跟 Alice 已经闹过好几次意见了。
解决方案
因为这些问题的存在,Alice 就去找 Bob 请教,Bob 告诉了她一种方法叫做 Zero-knowledge (ZK) Rollup。具体的方案如下:
- Alice 跟客户们说,以后我们不搞挑战期了,我们用数学的方式来证明我提交到主链的交易一定是正确且没有作假的。
- 但是其他客户们说,我们凭什么相信你呢?Alice 说,现在数学上面有一种方法,可以让我不用提交所有交易的细节,只需要提交一个 commitment,通过这个 commitment 你们就可以验证我绝对没有作假。
看到客户们还是一脸懵逼,Alice 打了个比方说,
- 假设我是一个数学家,我知道一个公式,但是我不想透露这个公式,可是我想证明我知道这个公式。
只要你给我一个输入,我绝对在有限的时间就能给你返回一个输出,你有能力验证这个输出是正确的,你问我一万次都正确的话,在数学概率上我基本 100% 是知道这个公式的,所以你可以相信我。
这就是零知识证明的原理。
- 客户们找到了一些教授,发现这个东西还真的存在,于是他们同意了,说那我们开始用这个方式吧。
- Alice 和客户们花了一些钱将这个方案外包了出去,一个月后他们开始开心地用起来新的系统 ZK Rollup,且每一次提交交易都不需要挑战了,因为从数学上证明了这玩意是绝对无法造假的。
如此一来,Alice 的问题解决了,她非常开心,打算继续使用这个方案。
小结
- 构建侧链:首先,创建一个独立的侧链,通常基于以太坊虚拟机(EVM)的兼容链。这个侧链可以是一个独立的区块链,也可以是一个分区(rollup)。
- 执行和批量提交:在侧链上执行智能合约的交易,并将这些交易按照一定的规则进行批量提交。每个批次通常包含多个交易。
- 状态转移和合并:在每个批次提交时,侧链上的状态转移被记录,并与之前的状态进行合并。这样,侧链的状态会逐步更新和累积,反映所有已提交的批次的状态转移。
- 零知识证明:在每个批次提交时,为了确保侧链上的状态转移的正确性和可验证性,使用零知识证明来证明每个批次的交易执行是正确的,而无需公开详细的交易内容。这样可以保护交易的隐私。
- 主链提交:定期(通常是每个批次或一定的时间间隔)将侧链上的状态根哈希和相应的零知识证明提交到以太坊主链上。这个提交信息作为一个摘要,证明了侧链上的状态转移是有效的,并且可以在主链上进行验证。
- 主链验证:在以太坊主链上,验证人(validators)可以验证提交的状态根哈希和零知识证明,以确保侧链上的状态转移是正确的。验证人可以根据需要进行验证,并有机会参与主链上的共识机制。
案例应用:
- zkSync: zkSync 是由 Matter Labs 开发的 zkRollup 解决方案,它提供了一个可扩展的支付网络,支持以太坊上的 ERC-20 代币和原生 ETH 的转账。zkSync 的目标是提供接近即时的交易确认和显著降低的交易费用,同时保持以太坊的安全性。
- StarkEx: 由 StarkWare 创建的 StarkEx 是一个通用的 zkRollup 平台,它已被用于多个项目,包括 DeFi 应用 dYdX 和 NFT 市场 OpenSea。StarkEx 使用名为 STARK 的高效零知识证明,允许在 Layer 2 上处理复杂的智能合约操作。
- Aztec Protocol: Aztec 是一个隐私保护的 zkRollup 解决方案,它不仅提供扩容服务,还通过零知识证明技术实现了交易的匿名性。Aztec 的 zkRollup 解决方案允许用户在以太坊上进行隐私交易,同时保持 Layer 2 的效率。
- Celer Network: 虽然 Celer Network 提供多种扩容解决方案,包括状态通道和路由优化,但它也支持 zkRollup 技术,尤其是针对需要快速、低成本交易的场景。
- Loopring: Loopring 是一个去中心化的交易所(DEX)协议,它利用 zkRollup 技术来提高交易处理速度和降低成本。Loopring 的 zkRollup 解决方案允许用户在 DEX 上进行快速的资产兑换,同时保持以太坊的安全性。
零知识证明
零知识证明(Zero-Knowledge Proof, ZKP)是一种加密协议,它允许一方(证明者)向另一方(验证者)证明自己知道某个信息或拥有某个陈述的真实性,而无需实际透露该信息本身。这个过程保证了证明的完整性,同时确保了信息的机密性,即验证者除了知道证明者确实知道该秘密之外,得不到任何其他有用信息。
零知识证明的关键特性包括:
- 完整性(Completeness):如果证明者知道秘密并且按照协议进行,那么诚实的验证者将接受证明。
- 声音性(Soundness):如果证明者不知道秘密,无论其行为如何,没有恶意的验证者能够被错误地诱导接受证明的概率非常小。
- 零知识性(Zero-Knowledge):即使证明完成了,验证者除了知道证明者对于声明的了解外,没有学习到任何其他有关秘密的信息。
零知识证明的应用广泛,特别是在密码学和区块链领域,例如:
- 隐私保护:在不泄露个人身份或具体信息的前提下,验证个人是否满足特定条件,如年龄、信用评分或账户余额。
- 区块链扩容:如ZK-Rollups技术,使用零知识证明在链下批量处理交易,然后将交易证明上传至区块链,以此提高交易速度并减少费用,同时保持交易的安全性。
- 密钥交换:在密码协议中安全地验证对方的身份,而不暴露用于加密通信的密钥。
一个经典的零知识证明示例是“洞穴探宝问题”:假设证明者知道通往宝藏的路径,验证者不知道。证明者可以在不展示具体路径的情况下,多次与验证者交换位置,最终让验证者相信确实存在这样一条路径,而不会泄露路径的细节。