加密生态系统不得不适应新的现实——Initia 就是在这种情况下诞生的。
作为一个行业,我们不得不接受这样一个事实,即单个状态机无法扩展到与加密的野心相匹配。在为用户和运营商保持低成本的同时扩大吞吐量,同时保持可接受的去中心化水平,这是一场几乎不可能用单一方法取胜的战斗。
现实情况是,纯单片链的成功已经成为一种反向观点。今年早些时候,模块化与单片链的争论成为了焦点。但最重要的是:根本没有争论。未来不是其中之一,而是两者的融合。一个快速的、可编程的 L1,搭配一套特定于应用程序的 rollup,这些 rollup 可以与 L1 一起扩展执行。
比如 Solana 网络,混合(或者我们喜欢称之为“Interwoven”)方法的优点就变得显而易见了。在过去的六个月里,团队已经开始构建他们自己的定制“网络扩展”,并成功地在 Solana 进行。但是等等,Solana 不是应该自己处理扩展吗?这不是他们的全部品牌吗?
你看,rollup 不仅仅是扩大执行规模,还关乎于主权——让构建者完全控制他们的执行环境。更高的 TPS、更低的 Gas 费(或者零 Gas)、对 tx 排序和处理的控制,以及对其业务的整个经济堆栈的所有权等等。
很明显,rollup 是不可避免的,且会一直存在。
Initia 的存在就是围绕这一论题建立起来的。它的目的是承载一个繁荣的生态 Interwoven rollup,被称为 Minitia。
未来属于 Interwoven
Initia 通过设计 Interwoven 的凝聚力体验提供多样化、强大和独特的应用程序。
到目前为止,存在两种生态系统。一种是专门为互联区块链链世界打造的(Cosmos),另一种是早已存在的押注 rollup 的(以太坊,现在是 Solana)。每种方法都取得了一定程度的成功,但并非没有失败,这些都是构建 L1 新模型时值得借鉴的宝贵经验。
Initia 连接了这两个种生态,它是一个 L1,旨在支持相互连接的 L2 网络,确保 Minitia 建设者拥有成功所需的一切。最初开始,Initia 坚持己见和提出问题来避免混乱的中间地带——L2 到底想从一个 hub 中获得什么?
在 Initia 上,rollup 是理所当然的。通过 Initia VIP ,L1 和 L2 之间实现了完全的经济协调,产品套件清晰,技术专门用于确保 Minitia 从一开始就拥有预言机、桥梁、流动性、互操作性、原生稳定性等。Interwoven Stack 让团队可以很轻松地使用他们选择的任何 VM(无论是 EVM、MoveVM 还是 CosmWasm)部署 Minitia。
现在,实现 Initia 上的 rollup 最重要的组件是什么?Interwoven Stack —— 一个为 Cosmos SDK 从头构建的 Optimistic rollup 框架。让我们深入了解这个框架。
The Interwoven Stack(交织栈)
Initia 上的 Optimistic rollup 框架由三个组件组成,分别是:OPHost, OPChild 和 OPinit Bots;三个部分拼图式地聚集在一起,形成一个整体,为 Minita 提供支持。
OPHost 和 OPChild 是构成 Stack 核心的 Cosmos SDK 模块,是存于链上的部分。由于 OPinit Stack 是在链级别而不是特定 VM 智能合约级别实现的,因此它允许构建者构建对多个 VM 的支持,并为 Minitia 构建者提供自由选择。
在 Initia 上,rollup 是直接内置于链中的一等公民,允许我们灵活地微调实施并提供更好的体验。
OPHost 模块存于 Initia (L1)上。它负责为所有在 Initia 的 minitia 提供基础设施服务,其主要任务包括:
管理 Optimistic 桥(L1 和 L2 之间)和其资产;
监督 Minitia 输出提案的最终确定;
处理挑战者和提议者辩论案件。
另一方面,OPChild 存在于每个 Minitia 上,就像每个 rollup 的心跳,OPChild 负责:
管理 rollup 操作者;
执行从 L1 接收到的消息;
更新预言机价格信息;
L1 的代币提取。
OPHost 和 OPChild 共同构成每个 Minitia 的 Optimistic 桥。Initia 上的一个 OPHost 充当多个 Minitia 上的多个 OPChild 模块的 L1 端点。
需要注意的是,对于 rollup 来说原生桥的作用不仅仅是消息传输,它还充当 L1 上 rollup 总部。两个不同的共识系统彼此都不知道对方的状态机,但 rollup 的桥接器通过提交状态根或类似的输出充当 L1 上 rollup 的真实来源,这些输出可以根据 rollup 的状态进行验证以确保正确性。这就是为什么 L1 通常被称为结算层。
现在你可能会想:“连接 OPHost 和 OPChild 是什么呢?” 中继器? 不是,是 OPinit Bots,作为上述内容的扩展,两个不同的共识系统如果没有链下流程作为其独立状态机之间的物理链接,就无法进行本地通信。
OPinit Bots 是处理 Initia 和 Minitias 之间关键操作的链下进程。有两个不同的机器人:执行者和挑战者。简而言之,这两个机器人共同负责:
执行令牌传输;
向 Initia L1 提交输出提案;
将交易批次提交给 Celestia 以实现数据可用性 (DA);
将预言机价格反馈更新转发给 Minitias。
在本文的其余部分,我们将深入研究如何在 Interwoven Stack 中实现特定的功能,这应该会让您更清楚地了解所有部分是如何协同工作的。
Optimistic Bridge 上的代币跨桥
rollup 的一个最重要的方面是它继承了所依赖 L1 的安全性。
L1 和 rollup 间的原生桥通常是在两者之间转移资产的最安全方式。这是因为使用原生桥不会引入任何额外的信任假设, 只需信任所涉及的两条链。
在我们深入研究跨桥是如何进行之前,让我们先解决一个不容忽视的问题。
为什么不是 IBC?
那么,Interwoven Stack 上的所有链都是使用 Cosmos SDK 构建的,为什么原生桥不能使用 IBC 协议呢?
因为 IBC 转账本质上是即时的,这与我们协议的信任假设不符。某天一个恶意的 Minitia 运营商可能会醒来并决定恶意插入交易,将 L2 上的 INIT 余额转移并将 Minitia 上的所有 INIT 提取回 L1。我们不希望发生这种情况,这失误将是灾难性的
然而,通过 Optimistic 桥向 Initia 提款有 7 天的延迟,在此期间,如果检测到它是恶意提款,挑战者可以提出质疑并取消提款。
在 Initia 上,我们仍然希望确保 Mintia 和 Initia L1 之间有一个无缝的用户体验(转移资产)。为了实现从 L2 到 L1 的快速转账,我们构建了一个名为 Minitswap 的安全定制解决方案,更多信息参考:(Minitswap—在几秒钟内从 L2 提款到 L1,而不是几天)
代币存款(L1—L2)
将代币从 Initia 存入 Minitia 几乎是即时的。存款工作原理如下:
1.用户在 Initia 上提交存款交易,该交易会将其代币锁定在 L1 上并从 OPHost 模块触发存款事件;
2.执行器 OPinit Bot 不断监听 Initia 上的新事件,当它看到 initial_token_deposit 事件时:
2.a—执行器构造相应的 FinalizeTokenDeposit 消息并将其提交给 Minitia。
3.收到消息后,Minitia 会在 L2 上铸造相应的代币并将其发送给用户。
既能完成工作,又不会影响安全性!
代币提取(L2—L1)
代币提取时有点复杂,虽然从 L1 到 L2 的存款很简单,但 “Minitia 总是可以信任 L1”的假设并不适用于其他情况。
原因如下:Initia 由一组具有经济权益的去中心化验证者保护,但 Minitia 通常由单个或一小部分操作员运营,他们没有经济权益。所以当 Minitia 向 L1 发起提款时,它需要证明自己不是恶意行为。
提款过程如下:
用户在 Minitia 上提交提款交易,导致 OPChild 模块销毁他们的代币并发起 initial_token_withdrawal 事件;
执行者监听 L2 上的所有区块,它接收事件并存储提款请求,但不会立即转发,Bot 会等待提交检查点。
一旦到达提交检查点,执行者:
3.a—获取间隔内的所有提款请求;
3.b—生成提款的排序后的 Merkle 树;
3.c—使用该树的 Merkle 根创建 L2 输出;
3.d—将输出提交给 L1 上的 OPHost;
然后提款将进入提款期,如果检测到任何可疑情况,挑战者 OPinit Bot 可以提出质疑并取消提款。
如果提款期过去而没有任何挑战,用户可以在 Initia 上调用 finalize_withdrawal 来解锁他们的代币。
5.a—该功能接受提款请求及其证明;
5.b—验证提交的证明;
5.c—如果一切顺利,就将代币发送给用户。
为了确保安全,取款需要一些时间。但是,为了给 Interwoven 的用户提供更好的用户体验,Initia 还构建了 Minitswap——通过利用 IBC 和 OPinit Bridge,它允许即时取款,并提供相当程度的安全保证。
虽然知道了取款过程的工作原理,但是挑战机制仍然是一个黑匣子,接下来让我们深入了解它。
当 Minitia 作假时会发生什么?
我们在前一节中已经了解到,Minitia 可能会撒谎作假,存在提现期就是为了防止欺诈行为窃取 OPinit 桥上的代币。
但谁来负责阻止欺诈性取款呢?这是挑战者 OPinit Bot 的工作。
1.挑战者实时监控 L2 输出被提交到 L1;
2.在每次提交时,它都从 Initia 获取输出,并根据 Minitia 的状态独立计算输出;
3.如果 Initia 上提交的输出与挑战者计算的输出不匹配,那么挑战者将通过发送 DeleteOutput 指令删除输出提议,只有挑战和被允许调用这个函数。
使用 Celestia 进行 Rollback 状态同步
当你删除一个无效的提案时,意味着 rollup 的当前状态现在是无效的,这就是为什么我们有一个 Rollback 机制的原因。
在一次成功挑战后,Minitia 节点可以根据先前发布到 Celestia 的数据同步状态,因为 rollup 所有交易批次都已发布到 Celestia 进行 DA,在需要 Rollback 时非常方便。
为了确保 Minitia 状态的完整性,并确保执行者没有恶意行为,两个 Bot (执行者和挑战者)被设计为独立的实体。
为了挑战者权力过大,包括恶意操作并删除有效输出等情况,Initia 通过 L1 治理来处理制衡系统。
如果挑战者和提议者(提交输出的人)恶意行事,则可以通过治理提议替换它们。对于挑战者来说,恶意行为意味着删除有效输出。对于提议者来说意味着提交无效输出。
当一个提议被创建时,Initia 的 L1 验证者通过运行 L2 节点来对其进行投票,以验证谁对谁错。该系统确保没有任何单一实体可以审查交易或破坏提取流程。
更多合理的设计
如果我们只是满足于现状而不采取额外措施,那么这就不是 Initia 前行该有的成果。
Initia 使得构建自己的 rollup 变得非常简单。现在,建立一个 rollup 除了托管还有很多事情要做。作为创建者,还需要构建很多基础设施,比如索引器、预言器、桥梁等。Interwoven Stack 已做好了一切。
Skip Connect—神圣的预言机
通过 Skip, Initia 能够为 Initia 和每一个基于 Interwoven Stack 的 Minitia 提供快速和即时的资产价格数据。
Connect 是一个由 Initia 验证器运行的 oracle sidecar 服务,用于在链上推送价格更新。该执行过程利用了 Cosmos SDK 版本 0.50 中引入的两个新功能:ABCI++ 和 Vote Extensions,它们允许验证者自己提交任意数据,然后将其存储在链上,以消除价格更新被恶意方通过用垃圾邮件填充区块来审查的可能性。
一旦价格更新上链,开发人员就可以通过 CLI、API 或智能合约级别进行查询。
但事实并非如此。Connect 的价格会传递到 Interwoven Stack 上的每个 Minitia,确保它们在第一天就可以很容易获得最新价格。
这样,Minitia 就无需承担运行必要基础设施的负担,也无需寻找第三方预言机提供商、与他们达成协议并投入资源进行集成,一切都由他们处理。
跨链合约调用
为了实现真正的 Interwoven Stack,Initia 上必须有安全高效的跨链通信方式。有几种方法可以做到这一点,其中之一是通过 Optimistic Bridge 上的 Bridge hooks。Bridge hooks 在功能上类似于 IBC Hooks,用于允许代币传输启动合约调用。OPinit Bridge Hooks 用于启动合约调用,同时通过 OPinit 桥接资产进行转移。
OPHost 上的 Bridge Hooks 更新桥的元数据,OPChild 上的 Hooks 允许在 FinalizeTokenDeposit 上任意执行交易。
我们以支持多个虚拟机的方式构建了它,因此无论是 EVM、MoveVM 还是 CosmWasm,Bridge Hooks 都可以根据消息中的数据字段执行任意交易。
例如:EVM 链的数据格式
神圣的索引器
minitia 还带有内置索引器,可以自动索引和存储链上的所有相关数据。然后通过可用于查询历史数据的 REST API 公开数据。
按账户分类的代币,NFT 信息,交易信息等,这些都是内置其中的。
在构建链上应用程序时,索引是最大的痛点之一,这确实需要做很多繁重的工作,运行自己的索引器既昂贵又麻烦。借助 Enshaled 索引器,开发人员可以显示令牌余额、NFT、交易历史等等,而无需运行自己的索引器或获得第三方索引器的支持。
Enshrined 索引器还支持 Initia Scan(Initia 为 L1 和每个 L2 提供的区块浏览器)。
结论
Interwoven Stack 是一项精心设计的技术,为 Initia Interwoven 愿景提供了支持。通过将 Interwoven Stack 构建为 Cosmos SDK 模块,Initia 将 SDK 重新用于构建 Optimistic rollup 的堆栈,同时仍保留了 Cosmos SDK 的所有优势。
关于 The Interwoven Stack 还有很多没有探索的内容,建议大家看看代码库,以及 Bot 代码库,可以更深入地理解它。
总而言之,事实是,Initia 才是 Rollup 的真正归属。从一开始,Initia 就是为 Minitia 发展而打造的。其生态系统已经激发了像 Blackwing, control, MilkyWay, Inertia 这样的 Minitias 的创新应用,这些都是应用程序专用 rollup,将从 Initia 上线第一天时可供使用,所有这些都由 Interwoven Stack 实现。