作者:Initia
编译:深潮TechFlow
加密货币生态系统已经不得不适应新的发展现实,Initia 正是在这种环境下诞生的。
我们这个行业必须承认,单一的状态机无法满足加密货币的宏大目标。在提高交易吞吐量的同时,还要保持用户和运营者的低成本,并维持合理的去中心化水平,这几乎无法通过单一化的方法来实现。
实际上,认为单一链可以成功的观点已经不再主流。今年早些时候,关于模块化与单一化的讨论成为热点。但关键在于:这并不是非此即彼的选择。未来的方向是两者的结合:一个快速、可编程的一级区块链 (L1),配合一系列特定应用的 rollup,能够与 L1 协同扩展执行能力。
当我们观察 Solana 时,可以清楚地看到混合(我们称之为交织)方法的优势。在过去的半年里,许多团队开始在 Solana 上开发他们自己的定制“网络扩展”。然而,Solana 不正是以其自有的扩展能力而闻名吗?这不是他们品牌的核心吗?
实际上,rollup 的意义远不止于扩展执行能力。它们还涉及主权——让开发者对其执行环境拥有完全的控制权。比如说,更高的 TPS、更低甚至没有的 gas 费用、对交易顺序和处理过程的掌控,以及对其业务经济模型的全面所有权。
显然,rollup 已经成为不可或缺的一部分,并将继续存在。
Initia 的存在基于这样一个理念:它专门为支持一个名为 Minitias 的繁荣交织 rollup 生态系统而构建。
未来是交织的
Initia 的设计目标是成为成千上万 Minitias 的家园,这些 Minitias 协同合作,通过有机的设计体验提供多样化、强大且独特的应用。 目前,有两种类型的生态系统。一种是专为互联链世界打造的(如 Cosmos),另一种是在后期押注 rollup 的(如 Ethereum 和现在的 Solano)。每种方法都取得了一定的成功,但也存在不足,这些经验教训在构建新的 L1 模型时非常宝贵。
Initia 在这两种极端之间架起了桥接梁,它是一个 L1 设计,用于支持一个互联的 L2 网络,确保 Minitia 开发者拥有成功所需的一切资源。自一开始,Initia 就通过明确的设计思路避免了中间的混乱,并提出了一个简单的问题:L2 实际上需要从一个枢纽中获得什么?
在 Initia 上,rollup 自然而然地融入其中。通过 Initia VIP,L1 和 L2 之间实现了经济上的完全一致,产品套件简洁明了,技术上专门设计以确保 Minitias 从一开始就具备预言机、桥接梁、流动性、互操作性以及本地稳定币等功能。交织堆栈使团队可以轻松地使用他们选择的任何虚拟机 (VM) 来部署一个 Minitia,无论是 EVM、MoveVM 还是 CosmWasm。
那么,是什么关键组件让 Initia 上的 rollup 成为可能呢?答案是交织堆栈(Interweld Stack),这是一个专为 Cosmos SDK 从零开始构建的 Optimistic Rollup 框架。 想了解这个框架的奥秘吗?让我们深入探讨一下。
交织堆栈(Interweld Stack)
Initia 的 Optimistic Rollup 框架由三个紧密结合的组件组成:OPHost、OPChild 和 OPinit Bots。
这三者如同拼图的三块完美契合,形成一个整体,为每一个 Minita 提供强大的支持。
OPHost 和 OPChild 是 Cosmos SDK 的模块,构成了交织堆栈的核心部分,它们运行在链上。由于 OPinit 堆栈是在链级别实现的,而不是依赖于特定虚拟机 (VM) 的智能合约级别,这使得我们能够支持多种 VM,给予 Minitia 开发者更多的选择自由。
在 Initia 上,rollup 被视为链上的一等公民。这为我们提供了调整实现细节的灵活性,从而带来更优质的用户体验。
OPHost 模块位于 Initia (即 L1) 上,负责作为所有在 Initia 上运行的 Minitias 的基地。OPHost 的主要任务包括:
-
管理 optimistic 桥接(连接 L1 和 L2)及其涉及的资产。
-
负责确认来自 Minitias 的输出提案。
-
担任挑战者和提议者之间的仲裁角色,解决争议。
而 OPChild 则存在于每个 Minitia 中,犹如每个 rollup 的心跳。它的职责包括:
-
管理 rollup 的操作员
-
执行来自 L1 的消息
-
更新预言机的价格数据
-
管理 L1 的代币提现
OPHost 和 OPChild 共同组成了每个 Minitia 的 optimistic 桥接。Initia 上的一个 OPHost 作为 L1 的端点,连接着多个 Minitia 中的 OPChild 模块。
需要注意的是,对于 rollup 而言,本地桥接不仅仅是用于消息传递,它实际上是 L1 上 rollup 的总部。由于两种不同的共识系统无法了解彼此的状态机,rollup 的桥接通过提交状态根或类似的可验证输出,成为 L1 上 rollup 的真实依据,以确保其正确性。这也是为什么 L1 通常被称为结算层。
你可能会问:“是什么连接了 OPHost 和 OPChild?是中继器吗?”其实不然,这正是 OPinit Bots 的作用!作为前述内容的延伸,两种不同的共识系统无法在没有链下过程协助的情况下直接通信,因为链下过程充当了它们各自独立的状态机之间的物理连接。
OPinit Bots 是负责处理 Initia 与 Minitias 之间关键操作的链下流程。它们分为两种类型:Executor 和 Challenger。简而言之,这两个 Bots 共同负责以下任务:
-
执行 Token 转移
-
向 Initia L1 提交输出提案
-
将交易批次提交给 Celestia 以确保数据可用性(DA)
-
向 Minitias 传递预言机价格更新。
在本文的其余部分,我们将深入探讨 The Interwoven Stack 中特定功能的实现方式,这将帮助大家更清楚地了解各个部分如何协同运作!
optimistic 桥上的代币转移
Rollup 技术最关键的特点之一在于,它能够继承其结算所在 L1 的安全性。
你知道吗?L1 和 rollup 之间的本地桥接通常是最安全的资产转移方式。这是因为使用本地桥接不会引入额外的信任假设——只需信任这两个链即可。
在探讨转移机制之前,我们先来解决一个明显的问题:
为什么不使用跨链通信协议 (Inter-Blockchain Communication, IBC)?
虽然 The Interwoven Stack 上的所有链都是基于 Cosmos SDK 构建的,但本地桥接并不能简单地作为 IBC 通道。这是因为 IBC 转移的即时特性与我们协议的信任假设不符。假设某天,一个恶意的 Minitia 操作员决定插入恶意交易,篡改 L2 上 INIT 的余额,并将其 Minitia 上的所有 INIT 撤回到 L1。我们无法接受这种情况,因为这样的错误将是灾难性的。
通过 optimistic 桥接进行到 Initia 的提款有一个 7 天的延迟期。在此期间,Challenger 可以对可疑的提款进行挑战并取消,以防发现恶意行为。
在 Initia 上,我们希望在 Mintia 和 Initia L1 之间的资产移动过程中提供流畅的用户体验。为此,我们开发了一种名为 Minitswap 的安全定制解决方案,以实现从 L2 的快速转移。你可以在这里了解更多:Minitswap — L2 到 L1 的提款在几秒钟内完成,而不是几天。
代币存款(L1 → L2)
从 Initia 到 Minitia 的代币存款几乎是即时完成的。其过程如下:
1. 用户在 Initia 上提交存款交易,这会锁定他们在 L1 上的 Token,并从 OPHost 模块触发一个存款事件。
2. Executor OPinit Bot 持续监听 Initia 上的新事件,当检测到 initiate_token_deposit 事件时:
2.a — Executor 会构建一个 FinalizeTokenDeposit 消息并提交给 Minitia。
3. Minitia 收到消息后,会在 L2 上铸造相应的 Token 并将其发送给用户。
这个过程既简单又安全,确保了工作的顺利完成!
接下来是代币提款(L2 → L1)。
提款操作稍显复杂。虽然从 L1 到 L2 的存款过程相对简单,但反过来,L1 对 Minitias 的信任却不能轻易建立。
原因在于:Initia 由一群拥有经济权益的去中心化验证者保障,而 Minitias 通常由单个或少数没有经济权益的操作员管理。因此,当 Minitia 向 L1 发起提款请求时,它需要证明自己没有恶意行为。
提款的具体流程如下:
1. 用户在 Minitia 上提交提款交易,导致 OPChild 模块销毁他们的 Token,并触发 initiate_token_withdrawal 事件。与此同时,Executor 会监听 L2 上的所有区块。当捕捉到该事件时,它会存储提款请求,但不会立即传递,而是等待提交检查点。
3. 当达到提交检查点时,Executor 会执行以下操作:
3.a — 收集该时间段内所有的提款请求。
3.b — 生成一个排序后的默克尔树(Merkle Tree),用于组织这些提款请求。
3.c — 创建一个包含该默克尔树根的 L2 输出。
3.d — 将这个输出提交给 L1 上的 OPHost。
4. 之后,提款进入一个审核期。在此期间,如果 Challenger OPinit Bot 发现任何可疑情况,它可以对提款提出挑战并取消该操作。
5. 如果审核期内没有挑战发生,用户可以在 Initia 上调用 finalize_withdrawal 函数来解锁他们的 Token。
5.a — 该函数接收提款请求及其相应的证明。
5.b — 验证提交的证明是否有效。
5.c — 如果验证通过,Token 将被发送给用户!
虽然提款过程需要一些时间,但这是为了确保安全性而付出的必要代价。不过,为了提升 Interwoven 用户的体验,Initia 开发了 Minitswap。通过利用 IBC 和 OPinit Bridge,Minitswap 能够实现即时提款,同时提供相当高的安全保障。
现在你已经了解了提款的运作方式,但挑战机制仍然不太清楚——接下来我们将深入探讨这一点。
当 Minitia 试图欺骗时会发生什么?
在之前的部分中,我们提到 Minitia 可能存在欺骗行为。这正是设立提款期的原因,以防止通过 OPinit Bridge 的欺诈行为盗取 Token。
那么,谁来负责阻止欺诈性提款呢?这项任务由 Challenger OPinit Bot 承担。
1. Challenger 持续监控提交到 L1 的 L2 输出。
2. 在每次提交时,它会从 Initia 获取输出,并根据 Minitia 的状态自行计算输出。
3. 如果 Initia 上提交的输出与 Challenger 计算的结果不一致,Challenger 就会通过发送 DeleteOutput 消息来删除该输出提案。这个功能只有 Challenger 可以调用。
此外,还可以使用 Celestia 进行状态同步回滚。
是的,当删除一个无效的提案时,是否意味着汇总的当前状态变得无效?确实如此,这正是我们设计完善的回滚机制的原因。
在成功挑战后,Minitia 节点可以从之前发布到 Celestia 的数据中同步状态,因为所有汇总的交易批次都发布到 Celestia 进行数据可用性 (DA),这在需要回滚时非常有用。
为了确保 Minitia 状态的完整性,并防止 Executor 进行恶意操作,Executor 和 Challenger 这两个 Bot 被设计为独立的实体。
然而,这是否会赋予 Challenger 过多的权力?如果 Challenger 恶意操作并开始删除有效的输出,该怎么办?
为防止这种情况,Initia 通过 L1 的治理系统建立了一个制衡机制。
如果 Challenger 和 Proposer(负责提交输出的实体)出现恶意行为,他们可以通过治理提案被替换。对于 Challenger,恶意行为指的是删除有效输出;而对于 Proposer,则是提交无效输出。
当治理提案被创建时,Initia 的 L1 验证者会通过运行 L2 节点进行投票,以确认谁的行为不当。这一系统确保没有任何单一实体能够审查交易或干扰提款流程。
锦上添花的功能
如果我们仅仅满足于常规而不更进一步,那就不能称之为 Initia 的作品。
Initia 使得构建自己的 rollup 变得异常简单。许多人可能知道,构建 rollup 不仅仅是托管它,作为开发者,你需要搭建许多外围基础设施,比如索引器、预言机和桥接接器等。
你知道吗?Interwoven Stack 提供了所有你所需的功能。
Skip Connect——内置的预言机服务
通过 Skip,Initia 能够为自身及所有基于 Interwoven Stack 构建的 Minitia 提供快速且最新的资产价格数据。
Connect 是一个由 Initia 验证者运行的内置预言机边车服务,负责将价格更新推送到链上。这个实现利用了 Cosmos SDK 版本 0.50 引入的两个新功能:ABCI++ 和 投票扩展。这些功能允许验证者提交任意数据并将其存储在链上,从而防止恶意方通过垃圾信息填充区块来阻止价格更新。
价格更新一旦上链,开发者可以通过命令行接口 (CLI)、应用程序接口 (API) 或在智能合约层进行查询。
此外,Connect 的价格会被传递到 Interwoven Stack 上的每个 Minitia,确保他们从第一天起就能方便地获取最新价格。
这样一来,Minitia 无需承担运行必要基础设施的负担,也不必寻找第三方预言机提供商、与其达成协议或投入资源进行集成。这一切都已为他们妥善安排!
跨链合约调用
为了实现真正的互联互通,Initia 需要安全高效的跨链通信方式。开发者可以选择多种方法,其中一种是通过 Optimistic Bridge 上的桥接接钩子实现。桥接接钩子的功能类似于 IBC 钩子,允许在进行 Token 转移时触发合约调用。OPinit 桥接接钩子则用于在通过 OPinit Bridge 进行资产转移的同时,触发合约调用。
在 OPHost 上,桥接接钩子负责更新桥接接的元数据;而在 OPChild 上,钩子则允许在 FinalizeTokenDeposit 阶段任意执行交易。
我们设计的系统支持多种虚拟机,因此无论是 EVM、MoveVM 还是 CosmWasm,桥接接钩子都能够根据消息中的数据字段执行任意交易。
例如,这是适用于 EVM 链的数据格式。
内置索引器
Minitia 自带一个内置索引器,能够自动索引并存储链上的所有相关数据。通过 REST API,这些数据可以被访问,用于查询历史记录。
无论是账户的 Token、NFT 信息,还是交易记录,所有这些功能都已经内置。
索引是构建链上应用时的一大难点,而这个内置索引器大大简化了这一过程!运行自己的索引器通常既昂贵又麻烦。有了这个内置索引器,开发者无需自建或依赖第三方索引器,就能展示 Token 余额、NFT 和交易历史等信息。
这个内置索引器还为 Initia Scan 提供了即开即用的支持,Initia Scan 是用于 L1 和每个 L2 的区块浏览器。
结论
深入探讨 The Interwoven Stack 是一次非常愉快的体验。这项技术设计精美,支撑着 Initia 的 Interwoven 愿景。通过将 The Interwoven Stack 构建为 Cosmos SDK 模块,Initia 成功地将 SDK 转变为用于构建 optimistic 汇总的技术栈,同时保留了 Cosmos SDK 的所有优势,这是非常出色的。
The Interwoven Stack 还有许多内容我们今天未能深入探讨,我强烈建议你查看其代码库以及相关的机器人代码库,以便更深入地理解这项技术。
最终,有一个不变的事实,那就是 Initia 是汇总技术的真正归属地。Initia 从一开始就为 Minitias 的发展而设计。Interwoven 生态系统已经激发了创新,像 Blackwing、Contro、MilkyWay 和 Inertia 这样的 Minitias 都是新颖的特定应用汇总,它们将在上线第一天就可供使用!所有这些创新都得益于 The Interwoven Stack 的支持。
免责声明:本文提供的信息不是交易建议。BlockWeeks.com不对根据本文提供的信息所做的任何投资承担责任。我们强烈建议在做出任何投资决策之前进行独立研究或咨询合格的专业人士。