区块链是一种通过点对点网络管理的分布式账本技术,它利用分布式处理和加密技术,使得网络参与者能够在没有第三方中介的情况下建立信任并进行价值交换。比特币作为首个广泛应用的区块链项目,已经证明了区块链可以作为一种有效的价值存储和交换手段。以太坊则通过引入智能合约的概念,进一步拓展了区块链的应用范围,为去中心化应用的开发提供了平台。
区块链技术面临着所谓的“三难困境”,即难以同时实现安全性、去中心化和可扩展性。尽管区块链技术在去中心化和安全性方面表现优异,但其可扩展性较差,这成为了区块链技术向更广泛应用普及的主要障碍。
以太坊作为最流行的智能合约平台之一,同样面临着可扩展性的挑战。当用户数量增加时,网络拥堵会导致交易成本(gas费用)显著上升,这限制了以太坊平台的广泛采用。为了解决这一问题,社区探索了多种解决方案,如分片、侧链、状态通道、Plasma、Validium 和 Rollups 等。
Rollups 是一种在不影响安全性和去中心化的基础上提升以太坊可扩展性的方案。Rollups 通过将多笔链下交易打包成一笔链上交易来减少交易成本,同时保持以太坊主网的安全性。根据其验证方法的不同,Rollups 可以分为 Optimistic Rollups (ORU) 和 Zero-Knowledge Rollups (ZKR)。
Optimistic Rollups:假定所有交易都是有效的,只有在发现错误时才会启动争议解决机制。这种方式允许快速确认交易,但提款可能需要较长时间。
ZK Rollups:使用零知识证明技术来验证交易的有效性,可以在没有争议期的情况下快速完成交易和提款,但生成证明的技术难度较高。
Kroma 是一个基于 Rollup 技术的以太坊第二层 (L2) 区块链项目,旨在提供更好的用户体验和更高的可扩展性。Kroma 的团队专注于研究和开发能够增强 L2 稳定性和性能的技术,并计划采取逐步过渡的方式,从 Optimistic Rollup 开始,最终过渡到 EVM 等效的 ZK Rollup。
Kroma 的特点包括:
EVM 兼容性:为了方便现有以太坊开发者迁移,Kroma 努力实现与以太坊虚拟机 (EVM) 的兼容。
逐步迁移:Kroma 计划首先部署 Optimistic Rollup,然后随着 zkEVM 技术的成熟,逐步迁移到 ZK Rollup。
去中心化:Kroma 致力于推动去中心化 Sequencer 的研究,以增强网络的去中心化程度。
社区导向:Kroma 强调社区驱动的文化,鼓励知识共享和技术合作,以促进 ZK 生态系统的健康发展。
通过这些措施,Kroma 旨在为用户提供更加流畅、低成本的区块链体验,同时为以太坊生态系统的长远发展贡献力量。
Kroma 架构概述
随着 Kroma 公共测试网的发布,Kroma 作为一个可扩展以太坊的 EVM 等效零知识汇总 (ZKR) 项目,已经引起了广泛关注。本文将概述 Kroma 的整体架构,特别关注其测试网阶段的特点、参与者角色、以及汇总和派生 L2 块的工作流程。
Kroma 当前的测试网阶段采用了 Optimistic Rollup (ORU) 的架构,但引入了 ZK Fault Proof(ZK 故障证明)。这意味着 Kroma 使用 zkEVM 实现故障证明,从而为未来的 ZK Rollup (ZKR) 过渡打下了基础。Kroma 的底层协议规范受到了 Optimism(最大的 ORU 项目之一)的启发,同时设计和实现了可以轻松分散排序器和验证器节点的功能。
Kroma 的架构中有三种主要的参与者:
用户:
用户可以通过将数据发送到第 1 层(L1)上的合约来在第 2 层(L2)上存入或提取交易。
用户也可以直接向 L2 上的排序器提交任意交易。
排序器:
排序器在 L2 上接受用户的链下交易,并在 L1 上观察链上交易(通常是存款事件)。
排序器将两种交易合并到具有特定顺序的 L2 区块中,然后将 L2 区块汇总到 L1。
验证器:
验证器通过读取排序器提交给 L1 链的数据来派生 L2 链。
验证器验证派生的 L2 区块的完整性,并通过向 L1 提交检查点输出来断言它们。
如果有任何无效断言,验证器可以对无效断言提交争议挑战,并通过向 L1 提交 ZK 故障证明来证明断言无效。
Kroma 的 Rollup 如何运作?
Rollup
L2 区块的创建频率高于 L1 区块。目前,L2 区块每 2 秒创建一次,而 L1 区块每 12 秒创建一次。每个 L1 区块对应的 L2 区块的连续范围称为一个提议时期。L1 存款存储在每个时期的第一个 L2 区块中。使用来自内存池的 L2 交易构建 L2 区块。这些在 L2 上构建和排序但尚未汇总到 L1 的区块称为不安全的 L2 区块。为了将 L2 块卷入 L1,需要对多个块进行编码并压缩到一个通道中,以降低数据可用性成本。然后,将 L2 通道拆分为多个通道帧,序列器以帧的形式将 L2 块卷入 L1。
Derivation
验证者从 L1 区块读取通道框架,然后从这些框架重建通道。从通道派生出 L2 区块,包括用户在 L1 上调用的存款事件。这些完全从 L1 派生的区块称为安全的 L2 区块。排序器和验证者以相同的方式派生出安全的 L2 区块。排序器可以直接构建不安全的区块,也可以通过派生来构建安全的区块。
排序器和验证器
Rollup和Derivation过程由多个组件管理。排序器由汇总节点、执行引擎和批处理器组成。与 L1 一样,执行引擎管理内存池、构建区块、管理状态并处理 RPC 请求。汇总节点请求执行引擎构建具有适当有效负载的区块。批处理器管理通道和通道帧,并将帧提交给 L1。
与序列器不同,验证器有一个验证器组件,而不是批处理器。(图中未显示)验证器的汇总节点从 L1 块读取通道帧并请求执行引擎构建块。执行引擎扮演的角色与序列器中的角色相同。
存款、取款和 L2 交易
存款和 L2 交易
用户向 L1 提交存款交易。排序器中的 rollup 节点监视存款事件并使用存款交易创建有效载荷属性,然后调用引擎 API 以创建区块。用户也可以直接向执行引擎提交 L2 交易,当 rollup 节点调用引擎 API 时,提交的交易将包含在区块中。
批处理程序组装多个区块并将它们提交到 L1 上的 BatchInBox。验证器从 BatchInBox 获取 L2 区块数据,并从相应的 L1 区块存入事件,派生 L2 区块。
取款
用户向 L2 合约发起提现交易。排序器将包含提现交易数据的区块发布到 BatchInBox。验证器获取区块并声明包含提现承诺的输出根。用户请求 KromaPortal 合约证明提款,并等待 KromaPortal 通过检查输出根中的提款存储根是否包含提款承诺来证明提款。
在提款得到证明并且包含提款交易的区块被最终确定后,用户可以请求 KromaPortal 最终确定提款。如果提款既得到证明又得到最终确定,用户最终将取回其资产。
挑战:ORU 的 ZK 故障证明
验证者可以对另一个验证者提交的无效断言提出争议挑战。扮演这种角色的验证者称为挑战者。
挑战者从 BatchInBox 获取 L2 区块数据,从 KromaPortal 获取存款事件数据,然后将数据转换为执行有效负载。
挑战者使用有效负载调用引擎 API,然后执行引擎构建区块并更新状态。验证器组件从 L2OutputOracle 读取输出根,并从执行引擎读取相应的本地输出根,然后进行比较。如果不同,则向 L1 上的 Colosseum 合约提交争议挑战。
为了解决这一挑战,验证器组件首先需要在单个区块级别找到差异的起始位置。找到第一个不同的区块后,验证器组件请求 ZK 证明器生成 ZK 故障证明。
ZK 证明器从执行引擎获取区块的执行轨迹并生成 ZK 故障证明。验证器组件将证明提交给 Colosseum。Colosseum 请求 ZKVerifier 验证提交的证明,如果证明通过验证,挑战者获胜,获得断言者的质押资产;如果证明未通过验证,挑战者失败,质押资产转移给断言者。
总体架构
Kroma 的整体架构包括挑战过程。目前,Kroma 使用经过修改的 go-ethereum 作为执行引擎,geth 内置的点对点 (P2P) 网络和交易池用于在多个执行引擎之间传播交易。同一网络还用于传播安全的 L2 区块并支持 snap-sync。另一方面,不安全的 L2 区块则通过 rollup 节点的另一个 P2P 网络进行传播。
从 ORU 过渡到 ZKR
Kroma 计划逐步将 ORU 过渡到 ZK Rollup (ZKR)。一旦创建了区块,证明者就会为该区块生成一个 ZK 证明。虽然每两秒就会生成一个区块,但生成一个 ZK 证明通常需要更多时间。因此,需要多个证明者同时生成证明。
为了有效利用资源,Kroma 设计了使用 PoW 类似共识算法的机制,避免集中协调者。例如,创建的证明可以通过汇总节点的 P2P 网络在证明者之间传播。
如果生成 ZK 证明的时间足够减少,Kroma 就可以转向 ZK Rollup。
过渡期间必须有一个协调者。从某个区块开始,检查点输出通过 ZK 证明进行验证。对于之前的区块,它们将在挑战期后完成。之后的区块可以立即完成,因为检查点输出通过 ZK 证明进行验证。
因此,在挑战期之后,网络可以被视为 ZK rollup,而无需任何繁重的迁移过程。
Kroma 采用模块化设计,可以无缝采用 ZK Proof 功能。ORU 和 ZKR 均使用 ZKVerifier、ZK Prover 等 ZK Proof 组件。精心设计的模块化架构使过渡更加无缝和轻松。
Kroma 的去中心化路线图
Kroma 正在基于 Optimistic Rollup (ORU) 技术并通过 OP Stack 实现其 rollup 解决方案。项目团队正致力于调整 Scroll 的 zkEVM,以适应每区块生成有效性证明的需求。然而,由于生成这些证明所需的高规格硬件和高昂成本,以及长时间的证明生成周期(超过一小时),Kroma 采取了一个分阶段的方法来实现最终目标——ZK Rollup (ZKR)。
当前阶段:Kroma 正处于 ORU 阶段,这是为了在技术成熟前确保系统的可操作性和安全性。在此期间,团队将不断优化 ZKProof 技术。
未来阶段:一旦技术准备就绪,Kroma 将转向 ZKR,提供更高的安全性和效率。
ORU 阶段:验证者负责提交争议挑战,以及检查点输出,这与传统的 Optimism 设计有所不同,后者由排序者承担这两项任务。
ZKR 阶段:验证者将通过提交区块的有效性证明来验证区块,这是一个更加高效和安全的过程。
ORU 阶段验证者去中心化:通过引入激励机制鼓励诚实行为,同时对提交无效检查点输出的行为进行处罚。
ZKR 阶段验证者去中心化:要求验证者操作 ZK 证明器,可能需要一个分布式网络来处理大规模的证明生成。
排序器去中心化:计划采用基于可信执行环境(TEE)的提议者构建者分离(PBS)策略,以增强网络的抗审查能力和防止 MEV 滥用。
Kroma 当前的重点是 ORU 阶段验证者的去中心化,这涉及到为验证者设计合理的激励和惩罚机制,以促进网络的安全和健康运行。团队认识到,为了实现长期的去中心化目标,必须先确保当前阶段的稳定性和可靠性。
对于 ZKR 阶段验证者去中心化和排序器去中心化的具体计划,Kroma 团队表示将会在未来的文章中进一步阐述。这表明,尽管已经制定了明确的路线图,但项目的实际进展将是一个持续迭代和优化的过程。
网址:https://kroma.network/
声明:本网站所有相关资料如有侵权请联系站长删除,资料仅供用户学习及研究之用,不构成任何投资建议!