- 输入结算器 – 处理源链资金。
- 输出结算器 – 处理目标链资金。
- 预言机系统 – 使输出结算声明可用于输入结算器。

输入结算
输入结算方案管理用户存款,并在意图完成后将资金释放给求解器。LI.FI 意图目前实现了两种输入结算方案:- 托管 通过
InputSettlerEscrow.sol
- TheCompact 通过
InputSettlerCompact.sol
。Compact 支持先填充流程和普通流程。
efficientRequireProven
通过验证层访问已证明的输出。如果订单包含多个输出,并且输出由不同的求解器填充,则订单规范中第一个输出的填充者被视为规范求解器。
了解有关输入结算的更多信息 →
输出结算
输出结算方案处理目标链上的资产交付。它不施加接口要求、订单结构或订单类型,除了必须提供验证有效负载的接口:MandateOutput
,编码由 MandateOutputEncodingLib.sol
描述。
如果输入结算可以验证此调用,则可以将输入适当地支付给求解器。但是,此信息仅存在于输出链上的输出结算中。
了解有关输出结算的更多信息 →
预言机系统
预言机系统将有效负载从输出链传送到输入链。它充当确认输出交付已发生的桥梁。 只要支持验证来自远程链的有效负载,就可以添加任何验证层。当前可用的验证层包括: 在发出消息之前,预言机应检查一个或多个有效负载是否有效,然后将它们发送到输入链:安全假设
意图系统包括资源锁,它在关键参与者之间创建信任边界: 没有单个参与者可以独立访问资金,为跨链交易创建了安全的环境。 有关安全性和意图验证的更多信息,请参阅订单验证 →集成点
LI.FI 意图旨在高度可组合,不同的组件能够根据需要进行交换:- 输入结算:可以集成新的资源锁标准和标准意图接口。
- 输出结算:可以添加新的订单类型和履行机制。
- 预言机系统:可以支持不同的跨链消息传递协议和证明层。
未解决的问题
虽然初始版本在标准化意图堆栈方面比竞争解决方案有了显著改进,但标准内仍存在互操作性问题。为了透明起见,下面列出了已知的规范问题。标准化消息格式
目前,输入结算方案和输出结算方案必须就订单类型特定的有效负载达成一致。如果新的订单类型或结算系统需要超出已实现消息有效负载的更多功能,则需要重新部署这些组件。这破坏了这些层之间的可组合性。 假设输出描述可以表示为:不对验证层如何在它们之间传递消息做出假设。它们可以随意打包填充描述。打包有效负载的示例。
原子交换和 HTLC 作为验证层
HTLC 的工作方式与普通意图方案非常不同,因为它们需要一轮强承诺。这预先烘焙了某些系统假设,这些假设无法通过 OIF 意图系统抽象掉。因此,不考虑这些。集成开销
由于接口和验证层未标准化,每个新的订单类型、验证层或结算方案都会带来额外的集成开销。但是,由于组件被急切地重用,系统复杂性以O(n)
而不是 O(n^3)
的速度扩展,其中 n
大致是组件的数量。