以太坊的区块空间在过去一年多的时间里基本上一直是 100% 的利用率,供不应求。在此期间,对区块空间的需求也让其他公链快速崛起。当前公链的竞争是扩容之争。

当前的区块链在类型上可划分为单体链模块链

当前主要的单体链包括 Solana、Polygon、BSC。其中 **Polygon PoS 和 BSC 通过更大的区块来增加吞吐量,这种权衡会增加节点的资源需求并牺牲去中心化以提高性能。虽然这种权衡有其市场契合度,但很难作为长期解决方案。**当然,Polygon 认识到了这一点,并正在转向以 rollup 为中心的更可持续的解决方案。

Solana 是对完全可组合的单体链可拓展性三难问题边界的一次推动。 Solana 是使用历史证明 (PoH) 的账本。 PoH 的想法是创建一个全局时间概念——一个全球时钟——所有交易,包括共识投票,都带有发行人附加的可靠时间戳。这些时间戳允许节点在不等待每个块上彼此同步的情况下取得进展。 Solana 通过优化其执行环境来并行处理事务,而不是像 EVM 那样一次处理一个事务,从而进一步补充了这种能力,以实现更高的规模。

**不过虽然 Solana 的吞吐量增益超出了简单的参数调整所能实现的,但在很大程度上仍归功于更密集的硬件和网络带宽使用。**虽然这降低了用户的费用,但它将节点运行限制在数据中心,而以太坊可由一般的积极用户在家运行。

单体链的可扩展性将最终受单个强大节点可以处理的限制,这引发去中心化方面的问题,但只是问题之一;单体链还存在资源定价方面的问题

对于单体链,链上的所有活动将共同竞争其区块空间。当某一活动对区块空间形成极大需求时,就会影响到其他活动,使其他活动使用区块的成本也剧烈提升,甚至在经济上不可用。自 2017 年 CryptoKitties 的火爆造成网络堵塞以来,这种情况在以太坊主链上依然可以看到。

**单体链无法针对具有不同优先级的截然不同的应用程序进行自我优化。**以 Solana 中的 Kin 和 Serum DEX 为例子。 Solana 的低延迟适用于像 Serum DEX 这样的应用程序,但是维持这样的延迟也需要限制状态增长,这是通过为每个账户收取状态租金来强制执行的。而这对像 Kin 这样的账户密集型应用程序产生不利影响,这些应用程序由于高昂的费用而无法向大众提供 Solana 的吞吐量。

**从长远看,期望单体链通过单一资源池(区块空间)能够可靠地支持各种加密商业活动是幼稚的。**虽然增加拥有完全可组合性的单体链的吞吐能力是有必要的,但互联网的经验告诉我们,当新的拓展空间被释放后,总会被新的应用填满。

未来的加密商业活动将覆盖 Metaverse、游戏、DeFi、支付等等,我们需要更广泛的设计空间和更好的资源定价以供主流使用。因此,我们或许正在/将会见证区块链从“可组合性”到“模块化”的趋势转变——可组合性是指应用程序以最小化摩擦的方式相互无缝交互的能力,而模块化是将系统分解为可以剥离和重新构建的多个独立部分(模块)的便利。随意组装。这是模块链发挥作用的地方。

模块链包括 Cosmos、Avalanche、Algorand、Polkadot、Near、Tezos、Ethereum 等,分片、rollup、hub、平行链都是模块链的模块。这些模块中的每一个都处理各自生态系统中总工作负载的一个子集,同时保持交叉通信的能力。

更深入地,可以看到这些模块化设计跨模块处理安全性的方式有很大差异。 Avalanche、Cosmos 和 Algorand 等多链中心最适合独立安全的模块,而 Ethereum、Polkadot、Near 设想模块最终共享或继承彼此的安全性。

对于前者,由于不同的链无法共享或继承彼此的安全性,所以他们需要引导自己的安全性。在这种情况下,目标链需要信任来源链的大多数验证者,因为来源链的代币总能被大多数验证者恶意转移。在当前只有少数链共存的情况下,这种信任假设或许可以很好地工作,但我们面临的可能是一个多链共存、存在大量长尾链的未来,期望这些链/网络信任彼此的验证者以进行通信或共享流动性远是不太可能的。这将我们带到提供交叉通信并提供超越多数信任假设的更强保证的 rollup 和分片。

经过多年的探索,人们普遍认为所有安全共享工作都归结为一个非常微妙的问题,称为数据可用性(Data Availability,DA)。要理解其中的原因,我们必须很快重新审视节点在典型区块链中的运作方式。 在典型的区块链中,全节点下载并验证所有交易,而轻节点只检查区块头(多数验证者提交的区块摘要)。因此,虽然全节点可以独立检测和拒绝无效交易,但轻节点将大多数人提交的任何内容视为有效交易。 为了改进这一点,理想情况下,任何单个完整节点都可以通过发布小体积的证明来保护所有轻节点。**在这样的设计下,轻节点可以像全节点一样以类似的安全保证运行,而无需花费尽可能多的资源。**但是,这引入了一个称为 DA 的新问题。 如果恶意验证者发布了一个区块头,但保留了区块中的部分或全部交易,则全节点将无法判断该区块是否有效,因为丢失的交易可能无效或导致双花。如果没有这些知识,全节点就无法生成对无效交易的欺诈证明来保护轻节点。总之,首先要让保护机制发挥作用,轻节点必须确保验证者已提供所有交易的完整列表。 DA 问题是模块化设计中不可或缺的一部分,在涉及交叉通信时有望超越多数信任假设。 L2 中 rollup 的特殊之处在于它们不会试图解决这个问题。

在 rollup 的情境中,我们可以将主链(以太坊)视为 rollup(Arbitrum)的轻节点。 Rollups 在 L1 上发布他们所有的交易数据,以便任何愿意将资源放在一起的 L1 节点都可以执行它们并从头开始构建 rollup 状态。有了完整的状态,任何人都可以将 rollup 转换为新状态,并通过发布有效性或欺诈证明来证明转换的有效性。在主链上拥有可用数据允许 rollup 在可忽略的单一诚实节点假设下运行,而不是在诚实多数的情况下进行。

rollup 的优势在于: