原文来自IOHK Fernando Sanchez,由卡尔达诺大使陈哲Anson翻译
在我们讨论区块链架构时,经常提到术语“第 1 层”和“第 2 层”。这些重要概念有两个目的:解释区块链网络是如何构建的,并提供区块链网络的易于理解的可视化表达。让我们对此展开层层分解。
第 1 层:定义
想象一个婚礼蛋糕,有不同的层次(层),如果你愿意的话——顶部也可以加一对夫妇的小雕像。那个漂亮的蛋糕放在坚固的底座上。出于所有意图和目的,坚固而强大的蛋糕架是支持蛋糕基础设施的第一层(第 1 层)。在区块链中,第 1 层是第 2 层解决方案的基础网络。
第 1 层:功能
考虑到这个视觉示意图,Cardano 是第 1 层(基础网络),它本身包括三个独立的层:
• 网络层
• 共识层
• 分类帐层
网络层
该层维护 Cardano 网络中所有分布式节点之间的连接,在区块生产节点产生新区块时从网络获取新区块,将新铸造的交易构建成区块,并在节点之间传输区块。
共识层
该层执行两个基本功能:
• 运行Ouroboros 共识协议。这一层做出决策,例如采用区块、在竞争链之间进行选择(如果有的话)以及决定何时产生自己的区块;和
• 维护在共识层做出决策所需的所有状态。
账本层
该层指定:
• 账本的状态是什么样的;和
• 必须如何为每个新区块更新分类帐。
账本层完全由纯函数组成,这些纯函数指定连续账本状态之间的转换,从正式的账本规则中派生出来,使用扩展的 UTxO (EUTxO) 会计模型。状态转换由 Cardano 块中包含的一组交易以及诸如纪元边界转换等重大事件驱动。
共识层不需要知道账本状态的确切性质,也不需要知道区块的内容,除了运行共识协议所需的一些头字段。
总体而言,这三层构成了 Cardano 的第 1 层解决方案。
第 1 层:可扩展性
再看看那个结婚蛋糕。它很大,不是吗,所有这些层都堆叠在一起。但看看底座,蛋糕架。第一层有一定的尺寸,不能再大了。同样,它需要足够大以支持位于其上方的层。放在上面的东西只能有一定的大小,这正是婚礼蛋糕有多层的原因。每一层(思考层)都在基础上增加了一些东西。新的填充物、糖霜、装饰等。换句话说,每一层都将基础层向上扩展。
去中心化的公共网络也面临着类似的问题。正如蛋糕架只能容纳有限数量的切片一样,基础(第 1 层)也只能处理一定数量的交易。如果您尝试添加比立式蛋糕更多的切片,它们将开始从边缘脱落,并且一团糟会毁掉某人的大喜之日。同样,在发生拥塞之前,第 1 层网络中的节点只能处理这么多交易。随着用户群的增长,需要更多节点来处理交易。为了解决这个问题,网络需要扩展,否则交易将开始从边缘下降,可以这么说。
有多种方法可以扩展第 1 层网络。例如,增加块大小,以便块携带更多交易数据。块大小最近增加了 8KB 至 72KB(增加了 12.5%)。这是卡尔达诺将在 2022 年扩展的方式之一。
回到我们的婚礼蛋糕视觉效果,添加层不仅使蛋糕变大,还引入了一个非常有用的功能:使每一层都与基层不同的能力。我们可以独立于第一层添加不同的口味、馅料、设计等等。迎合不同的“客人”和不同的喜好。在区块链中,添加一个新层(第 2 层)不仅允许第 1 层扩展,还可以使交易和流程独立于主链(第 1 层)发生。
Cardano 中的第 1 层可扩展性解决方案
卡尔达诺现在进入了 Basho 的开发阶段,这完全是关于扩展和优化的。虽然网络目前正在非常有效地管理需求,但去中心化应用程序 (DApp) 生态系统正在快速增长,并将继续对系统提出越来越高的需求。为了解决这个问题,卡尔达诺正在部署多种可扩展性方法(包括第 1 层和第 2 层解决方案),首先是数十万,然后是数百万新用户。
块大小增加
区块越大,它可以承载越多的交易越。Cardano 上铸造的第一个区块大小为 665 字节(0.665KB)。今天,块的大小为 72KB。增幅超过 10,000%!随着时间的推移,将根据持续的系统监控和整体网络健康状况进一步增加。
Pipelining
它通过合并验证和传播来改进块传播时间。目标是通过减少块之间的“死时间”(块传播开销),在 5 秒内将块传播到至少 95% 的对等节点。这为进行更激进的缩放更改提供了空间,例如增加块大小/增加 Plutus 参数限制。
输入背书者
更进一步来说,输入背书者将通过允许将交易分成预先构建的块来改善块传播时间和吞吐量。这提高了块传播时间的一致性并允许更高的交易率。
Plutus 的内存/CPU 参数
整个链的内存使用效率更高。具体来说,在未使用交易输出 (UTXO) 处理、权益分配、实时权益分配和池以及哈希表示方面有内存改进。
Plutus 脚本增强功能
通过智能合约优化更有效地使用强大的 EUTxO 模型,包括:
• 参考输入 (CIP-0031) – Plutus 脚本可以检查交易输入,而无需花费它们。这意味着没有必要仅仅为了检查输入所持有的信息而创建 UTXO。
• Plutus Datums (CIP-0032) – 可以将基准直接附加到输出而不是基准哈希。这简化了数据的使用方式,因为用户可以看到实际数据,而不必提供与给定哈希匹配的数据。
• 脚本共享 (CIP-0033) – Plutus 脚本引用可以与交易输出相关联,这意味着它们可以记录在链上以供后续重用。无需为每笔交易提供脚本副本,从而极大地减少了开发人员的摩擦。在多个交易中重用脚本可显着减少交易大小,提高吞吐量并降低脚本执行成本。
节点增强
对节点的改进将有助于在各个时期均匀分配权益和奖励计算,从而为块大小的增加提供更大的空间。此外,内存使用现在更加高效。内存压缩减少了 RSS 占用,内存共享意味着我们需要更少的数据实例化。从 2022 年 3 月开始,节点版本 1.34.1 减少了关键点的峰值负载,包括时代边界。
磁盘存储
通过将部分协议状态存储在磁盘上,节点将需要在内存中保持更少,这意味着 RAM 受限的系统将能够运行节点,只要它们有足够的存储空间,并且内存不会成为可扩展性的瓶颈。这将使区块链状态显着增长。
插曲:区块链三难困境
分布式系统(例如区块链)的可扩展性是一个复杂的难题。
人们普遍认为,一个“合适的”区块链系统必须具备三个属性:可扩展性、安全性和去中心化。但同样普遍的信念是所谓的三难困境,即去中心化系统只能提供其中两个属性,而牺牲第三个属性。三难困境首先由以太坊创建者 Vitalik Buterin 提出,表明开发人员在设计区块链网络时必须始终接受妥协或权衡。这种妥协意味着一个财产必须“受苦”,其他两个才有可能。
例如,一个网络拥有的节点越多,它就变得越去中心化,但这也意味着需要更多的节点是值得信赖的以维护安全性。为了维护安全,必须引入费用,这会使潜在攻击的成本高得令人望而却步。然而,网络必须激励参与,因此每个节点的成本必须相对较低。此外,不变性的特性意味着只要区块链存在,区块链数据就会被添加,但永远不会被删除,这意味着区块链将继续增长。更大的网络意味着维持性能所需的计算资源更多。更好的性能需要更好的硬件,这意味着奖励必须足以使投资物有所值。等等。
垂直和水平性的扩展
解决这个三难困境需要谨慎和平衡的方法,以使所有三个要素保持平衡。
理论上,区块链系统将无限增长。随着越来越多的节点成为系统的一部分,更多的数据和资产将流动,更多的交易将需要处理。所有这些都需要计算能力和存储。随着时间的推移,需求将继续增长,因此底层系统将需要相应地扩展以防止性能急剧下降。
这里存在两种扩展选项:垂直和水平性拓展。
垂直性扩展
该技术涉及扩展通过添加更多内存和更好的组件来提高单个节点的计算能力。换句话说,升级网络的硬件以获得更好的整体性能。
例如,拥有包含高性能节点的网络支持更大的块和更快的块扩散。但不利的一面是,鉴于高昂的运营成本,去中心化将受到限制,这将使新的节点运营商在加入时三思而后行,从而限制网络的扩张。此外,这样的网络将为验证节点带来更高的成本。
水平性扩展
与垂直扩展相比,水平扩展可以通过两种方式实现。一,只需向现有网络添加更多计算机(节点)。这里的基本原理是,通过添加额外的节点,网络能够处理更多的交易。
第二,通过使用侧链,这将减轻主链的一些计算负载,并且作为一个额外的优势,可以以不同的共识协议或治理模型的形式进行定制,例如,以适应特定的项目或行业。从安全的角度来看,侧链可以通过隔离对主链的潜在威胁来创建一个更安全的生态系统。如果侧链以任何方式受到损害,风险将包含在该侧链中,从而保护网络的其余部分。
第 2 层:解决可扩展性难题
从广义上讲,第 2 层解决方案解决了第 1 层链固有的可扩展性问题。建立在现有区块链之上(就像为婚礼蛋糕添加新层一样),第 2 层协议执行大量处理工作,否则这些工作将发生在主链上。这增加了主链的吞吐量。一个额外的好处是,虽然第 2 层解决方案做了艰苦的工作,但第 1 层保留了它的安全性。
第 2 层:定义
在第 1 层区块链之上运行的附加链下协议。各方可以安全地将资金从区块链转移到链下协议中,独立于底层链在该协议中结算交易,并根据需要将资金安全地转回底层链。第 2 层协议提高了整体吞吐量和可扩展性,因为它们减少了网络拥塞。
Cardano 中的第 2 层可扩展性解决方案
侧链
侧链,定义为使多个区块链能够相互通信并让一个对另一个事件做出反应的一种方式,是连接到主区块链(“主”链,也称为父链)的单独区块链,通过一种双向机制(“桥梁”),使一个链中的代币和其他数字资产能够在另一个链中使用,并将结果返回到原始链。资产可以根据需要在链之间移动。一条母链可以连接多个可互操作的侧链,它们可能以完全不同的方式运行。 Cardano 上的 EVM 侧链包括 dcSpark 的 Milkomeda 和 IOG 的 EVM 侧链项目。
Hydra
Hydra 是 Cardano 的第 2 层可扩展性解决方案,旨在通过低延迟和高吞吐量来提高交易速度,并最大限度地降低交易成本。
Hydra Head 是 Hydra 家族的第一个协议,它体现了依赖同构、多方状态通道的更高级部署场景的基础。通过为一组用户提供更高效的链下处理交易方式,同时使用主链账本作为安全结算层,Hydra Head 在保持安全保证的同时保持与主链的松散耦合。不需要全球共识,它可以适应广泛的应用。此外,Hydra Head 允许根据用例的需要将 Tx 费用、脚本执行预算和其他协议参数配置为低或高。例如,这对于启用微交易至关重要。
此外,Hydra Head 引入了同构状态通道的概念:也就是说,重用相同的账本表示来产生统一的链下账本兄弟,我们称之为 Heads(因此 Hydra 名称)。特别是对于 Cardano,这意味着每个 Hydra Head 中都可以使用原生资产、不可替代代币 (NFT) 和 Plutus 脚本。同构允许系统的自然扩展,而不是螺栓固定的。
Hydra Heads 擅长在 Head 内实现近乎即时的终结。设置和关闭 Head 的过程可能需要几个块,但一旦建立,交易可以在协作参与者之间快速流动。由于 Hydra Heads 是同构的并且也使用 EUTXO 模型,因此它们可以同时处理非冲突交易,再加上良好的网络,可以优化使用可用资源。
其他可扩展性解决方案
链下计算
卸载一些计算,例如使用异步合同执行 (ACE),可以提高核心网络的效率。交易发生在区块链本身之外,但可以通过信任模型提供快速、廉价的交易。
Mithril
为了实现更大的可扩展性,有必要解决与参与者数量成对数关系的关键操作的复杂性。 Mithril 是 IOG 开发的协议,作为基于权益的阈值签名方案,允许透明、安全和轻量级的权益利用。Mithril将在保持信任的同时改善链同步。结果是在不影响安全功能的情况下实现快速高效的多重签名聚合。
结论
区块链网络以神秘的方式运作,围绕去中心化账本生态系统的一些概念可能难以让人理解。
然而如果您使用蛋糕层的可视化表达来理解第 1 层和第 2 层网络的概念,那么它们就不难理解。
• 第 1 层(蛋糕架)= 强大且安全的基础网络,第 2 层解决方案是基于该网络的
• 第 2 层(蛋糕层)= 建立在第 1 层基础之上的解决方案,以解决固有的可扩展性问题
这是可视化和理解第 1 层和第 2 层是什么的最简单方法。
关键要点
• Cardano 是第 1 层(基础网络)
• 第 2 层解决方案是建立在第 1 层链之上的结构,用于解决后者的可扩展性和交易速度问题。比特币的闪电网络是第 2 层解决方案的一个例子,Cardano 的 Hydra 也是如此
• 有两种扩展解决方案选项:垂直和水平性的扩展
• 垂直扩展涉及通过添加更多内存和更好的组件来扩展单个节点的计算能力。
• 水平扩展可以通过两种方式实现。一,简单地向现有网络添加更多计算机(节点),二,通过使用侧链减轻主链的一些计算负载。
• 卡尔达诺将在 2022/2023 年实施一系列可扩展性方法