区块链的架构分层
关于模块化区块链的分层,我们可以从以下方面进行定义:
安全模块: 保证区块链的安全性.
执行层:在执行层中,单笔交易被执行并发生状态更改;对于同批次的交易,计算该批次的状态根。目前主流的执行层解决方案是Rollup,即我们熟知的StarkNet、zkSync、Arbitrum和Optimism等。
结算层:结算出状态承诺,例如主链上的Rollup合约验证状态根的有效性(zkRollup)或欺诈证明(Optimistic Rollup)的过程。
执行环境层: 提供区块链的执行环境.
共识层:共识层是为了在分布式系统中对某件事达成一致,即对状态转换的有效性达成共识。在共识层上,验证者会对交易发生的顺序达成共识,但验证者并不关注交易本身是否有效。
数据可用性层:这一层需要解决的是「数据可用」的问题,即保证在一个新区块产生之后,新区块的所有数据发布在区块链上。如果无法证明区块的数据都发布在了区块链上,则隐藏在区块中恶意交易无法被检测出,区块链也就不具有安全性。
模块化区块链中的最具有代表性的产品是Celestia,一个提供「可插拔的」共识层和数据可用层的POS(Proof of Stake)区块链。在深入理解Celestia之前,我们先了解一下「数据可用性」可能存在的问题。
数据可用性问题
在区块链中,每个区块由两部分组成。
区块头:这是区块的元数据,包括关于区块的一些基本信息,包括交易的Merkle根。
交易数据:这构成了区块的大部分,由实际交易组成。
区块链网络中一般也有两种类型的节点。
完整节点(也被称为完全验证节点):这些是下载并检查区块链中每笔交易是否有效的节点。建立这种节点需要大量的资源和数百GB的磁盘空间,但这些是最安全的节点,因为它们不能被欺骗接受含有无效交易的区块。
轻型客户端:如果你的电脑没有资源来运行一个完整的节点,那么你可以运行一个轻型客户端。轻型客户端不下载或验证任何交易。相反,他们只下载区块头,并假设区块只包含有效的交易,所以轻型客户端的安全性比完整节点要低。
这就提出了一个重要的问题:我们如何让轻客户端拒绝无效区块,让他们不必信任矿工?答案就在于欺诈证明,即证明特定交易无效的证明。
欺诈证明
欺诈和数据可用性证明通过模块化区块链堆栈中的一些关键组件,使轻客户端可以依靠完整的节点来寻找无效的交易,并在检测到任何交易时向他们发送简洁的欺诈证明。欺诈证明基本上只包括有问题的交易本身,前状态根,后状态根,以及该交易的见证者。可以将此发送给轻客户端,轻客户端可以轻松地重新计算该特定交易,并检测到它是无效的,而不需要知道整个区块链的状态。
数据可用性取样(DAS)
这是数据可用性问题发挥作用的地方,为了让全节点生成欺诈证明,所有的基础数据都需要已经发布。如果数据不可用,那么就没有人能够重新计算状态或证明恶意活动。所以,我们真正需要的是一种方法,让轻客户端在检查区块头信息时,检查矿工是否已经将交易数据发布到链上。只要这些数据被公布,并且对全节点可用,那么他们就能产生欺诈证明。这就是为什么需要数据可用性证明。
DAS的关键是,轻客户端可以通过擦除编码将一个区块分割成几块,只对该数据的一个子集进行随机采样,并在这个过程中以统计学上的确定性验证整个区块已经发布。
安全假设
使用DAS允许轻客户端验证一个区块中的所有数据实际上是可以下载的,因此完全验证节点将能够在任何无效交易的情况下产生欺诈证明。结合这些技术,我们能够依赖更弱的安全假设,进而存在以下三种情况:
完整节点:仍然是最安全的方案,完整节点不能被欺骗接受无效的区块。
标准轻客户端:因为他们不验证区块,所以他们假设多数人的共识是诚实的。
轻客户端 + 欺诈证明:我们现在可以用一个更弱的诚实少数人假设来取代状态有效性的诚实多数人假设。你现在只需要最低数量的轻型客户端发出足够多的样本请求,这样他们就能一起重建整个区块。
欺诈证明和数据可用性采样的结合是实现链上区块链扩展的核心(例如,通过分片或增加区块大小),同时保持数据可用性和有效性的有力保证。
Celestia的区块链扩展方案
区块链通常有一个有限的容量,基于终端用户全节点的资源需求。例如,比特币的理论最大容量为4兆字节,这被设定得非常低,以便任何普通用户可以在普通硬件上启动一个节点并验证该区块链。以太坊也有类似的目标,让普通用户验证链,尽管对资源的要求比比特币略高。这种任何人都可以自己检查区块链的能力对于自我主权的概念至关重要,即你不必信任任何第三方来验证网络。对于一组给定的硬件要求和运行一个完整节点的成本,基本上限制了网络的TPS。
Celestia的路线图非常符合这样的理念:使用最小硬件的普通用户应该能够自己验证链,Celestia打算通过使验证更容易来扩大规模。因此,它并不保证容量将总是超过需求,会有一些限制,而且会出现一个收费市场。Celestia提供了比其他当代区块链设计更多的容量,这反过来将带来难以置信的可扩展性和更低的费用。它能做到这一点,是因为它的设计使验证链的计算变得容易(不必担心执行,执行由其他执行层完成)。
Celestia扩展的关键在于,在验证链的过程中,工作量与区块大小呈亚线性。更具体地说,客户只需要下载他们要检查的数据量的平方根。例如,假设你在一个有10,000个块的区块上做DAS。你只需要下载和检查其中的100个。你现在从一个节点需要下载和执行区块中的每一个交易的模式变成了一个你只需要下载和检查区块中数据的平方根量的可用性的模式。让这种验证如此简单是扩展的关键,因为你需要采样的块的数量与区块大小基本无关,所以无论区块大小如何,检查区块的成本都是大致不变的。这允许你增加区块(或分片)的大小,从而增加TPS,而不增加终端用户验证链的成本。然而,区块越大,你需要在网络中下载随机样本的用户越多,以确保用户已经集体采样了区块中的所有内容。因此,安全地托管更多数据的限制只是拥有更多的节点。
总结一下,Celestia创建了一个区块链,它的规模与它的用户(轻客户端)的数量呈线性关系,而且做到这一点非常容易。随着更多的节点(轻客户端)加入网络,你可以安全地增加区块大小而不牺牲安全或去中心化。在传统区块链上增加区块大小会增加验证的硬件要求,反过来牺牲了去中心化和安全性。在Celestia之上的Rollups依赖于它的数据可用性,所以通过增加基础层的数据可用性,这将转化为他们自己执行环境中的扩展性;这就是Celestia提供大规模可扩展性的方式。
全模块化堆栈 --- Cevmos和递归Rollups
Celestia目前正与Evmos团队合作,建立Cevmos(Celestia/EVMos/CosmOS),这是一个令人难以置信的全模块化堆栈,用于托管基于EVM的Rollups。
就背景而言,Evmos是一个与应用无关的链,将与以太坊主网、EVM兼容环境和其他BFT链通过IBC进行互操作。Evmos旨在成为Cosmos的EVM中心,使其能够轻松地部署智能合约并在Cosmos生态系统内进行交流。
在这个新的堆栈中,Cevmos将作为一个优化的结算层,建立在Cosmos SDK上,运行一个受限的EVM。它将以Evmos为基础,并在其之上承载EVM的递归Rollup(Rollup中的Rollup)。这个结算层本身将是一个Rollup,因此我们可以把它称为 "结算Rollup"。Cevmos结算Rollup将使用Optimint(Optimistic Tendermint)而不是现有Cosmos链上使用的Tendermint核心共识引擎来构建。Optimint是Tendermint BFT的替代品,使开发者能够使用现有的共识和数据可用性层(如Celestia)部署新链。
在它的核心,任何为Rollup构建的结算层都是一个与Rollup有信任最小化的双向桥梁的区块链,在结算层上使用某种争端解决合约。这允许代币在两者之间转移,或通过结算层从一个Rollup转移到另一个Rollup,以信任最小化的方式在任何方向转移。
目前的问题是,以太坊主链并没有只为Rollup结算而优化,因此Rollup结算必须始终与其他应用程序竞争,这变得昂贵且不可扩展。Cevmos的结算Rollup将反而受到更大的限制,只允许:
Rollup智能合约:它必须处理有效性证明的验证和必要的争端,以便在其之上托管ZK和乐观Rollups合约
Rollups之间的简单转移
因为Cevmos结算Rollup将完全等同于EVM,你将能够很容易地移植并在它上面运行你最喜欢的EVM Rollups(Fuel, Optimism, Arbitrum, StarkNet, 等等)。
简而言之,完整的Cevmos堆栈可以包括:
Celestia - 在底部提供数据可用性。
Cevmos结算Rollup - 这个基于Evmos的链将位于Celestia的顶部。它将被完全优化为基于EVM的Rollup的结算层,并置于其上。
基于EVM的Rollup - 处理执行,潜在的大量的执行Rollups将位于堆栈的顶部。
总结
Celestia与传统的解决方案相比具有多种优势:
可扩展性:通过将执行与共识和数据可用性解耦,Celestia能够随着网络上节点数量的增加而实现专业化和线性扩展,执行环境可以自由地在上面进行优化。
简单性:Celestia是一个可插拔的解决方案,目标是能像点击按钮一样轻松部署特定应用的区块链。潜在的许多区块链将在Celestia的顶部有一个自然的家。
共享安全:不再需要作为一个单独的链来启动自己的安全和验证器集。无论这是为原本独立的链,还是为需要启动数据可用性委员会的Validium,这些选择都要困难得多,而且安全问题也很分散。
主权:Celestia简单的设计之美在于它为那些建立在它之上的应用程序提供了极大的自由。不再受执行环境和你所处的链的管理决定的严格约束。
3.新一代隐私公链
Aztec
AZTEC协议(The Anonymous Zero-knowledge Transactions with Efficient Communication)描述了一组定义交易机密处理的零知识证明算法,设计用于支持图灵完备通用计算的区块链协议中。
该协议与Sigma零知识证明协议相结合,创建的新型的通用零知识证明方案——Plonk可以有效地验证加密交易。AZTEC协议在以太坊公链上应用于创建现有数字资产交易的加密显示。目前AZTEC协议在以太坊主网上验证成本约为840,000wei。
AZTEC协议的动机
以比特币网络为代表的公链将隐私性为代价,将任何一笔交易的双方地址,验证算法以及交易资产均进行公开。为抓住市场参与者对隐私性的要求,AZTEC开发团队旨在强调交易的机密性,即通过AZTEC协议外界可以看到交易对手,但不能看到具体的交易额。
隐私:交易双方及交易价值均被隐藏
机密:交易价值被隐藏,但外界知晓交易双方
匿名:交易双方被隐藏,但外界知晓交易价值