Skip to main content
LI.FI 意图系统将意图流程中的三个组件模块化:
  1. 输入结算器 – 处理源链资金。
  2. 输出结算器 – 处理目标链资金。
  3. 预言机系统 – 使输出结算声明可用于输入结算器。
LI.FI Intent Calls Diagram 从历史上看,这些组件一直交织在一起,这带来了扩展方面的挑战。组件化的方法带来了更大的灵活性和可扩展性,使得不同的输入和输出结算方案以及验证层能够混合搭配。

输入结算

输入结算方案管理用户存款,并在意图完成后将资金释放给求解器。LI.FI Intents 目前支持两种输入结算方案: 意图系统对输入结算的实现没有任何限制。输入结算可以通过调用 efficientRequireProven 经由验证层访问已证明的输出。如果一个订单包含多个输出,且这些输出由不同的求解器填充,则订单规范中第一个输出的填充者被视为规范求解器。 了解有关输入结算的更多信息 →

输出结算

输出结算方案处理目标链上资产的交付。它不强制要求任何接口、订单结构或订单类型,只要求必须提供一个用于验证有效载荷的接口
这使得输出结算方案极为灵活;只要已填充的订单能够表示为一个不透明的字节数组,它就可以支持任何虚拟机上的任何订单类型。 意图系统的初始版本使用 MandateOutput,其编码方式由 MandateOutputEncodingLib.sol 描述。 如果输入结算能够验证此调用,就可以将输入相应地支付给求解器。然而,这些信息仅存在于输出链上的输出结算中。 了解有关输出结算的更多信息 →

预言机系统

预言机系统将有效载荷从输出链传递到输入链。它充当确认输出交付已发生的桥梁。 只要验证层支持验证来自远程链的有效载荷,任何验证层都可以被添加。目前可用的验证层包括: 在发出消息之前,预言机应检查一个或多个有效载荷是否有效,然后将它们发送到输入链:
预言机可以使用自定义的消息编码、自定义的中继属性、自定义的接口或其他特殊的集成事项。预言机内部的消息传递未做标准化。 在输入链上,预言机系统应通过虚拟机本地哈希来验证有效载荷:
仅使用有效载荷哈希使系统更高效,因为传递的数据更少。系统未尝试对有效载荷进行标准化。因此,输入和输出结算层之间可能存在不兼容的情况。 了解有关验证层的更多信息 →

安全假设

意图系统包含资源锁,这在关键参与者之间建立了信任边界: 没有任何单一参与者能够独立获取资金,从而为跨链交易创造了一个安全的环境。 有关安全性和意图验证的更多信息,请参阅 order-validation →

集成点

LI.FI intent 被设计为高度可组合,不同组件可以根据需要进行替换:
  • 输入结算:可以集成新的资源锁标准和标准意图接口。
  • 输出结算:可以添加新的订单类型和履约机制。
  • 预言机系统:可以支持不同的跨链消息传递协议和证明层。
集成商(Integrators)可以自由选择在哪些交换中使用哪些组件。这为意图签发者提供了最大的灵活性,以描述他们所期望的最终状态。

同链意图

LI.FI Intents 专为可组合的跨链交换而设计,同时也在兼容的封装中支持同链意图。在同链模式下,输出结算器可以充当预言机路径。 要将 LI.FI Intents 用于同链交换,请将输出结算器同时配置为输入预言机和输出预言机。填充同链意图的求解器可以选择使用回调,在交付输出之前接收输入。
Same Chain Intent without Callback

Same Chain Intent

Same Chain intent with Callback

Same Chain Intent with callback

要在交付输出之前接收输入,你的求解器必须支持 orderFinalised。当使用回调接收输入时,重要的是在回调内部对意图输出执行 fillsetAttestations
有关同链回调的更多信息,请参阅同链测试用例 有关同链意图的更多信息,请参阅将输出结算器用作预言机

智能合约

目前维护中的 LI.FI Intent 部署如下所列。在 EVM 链上,合约部署到相同的地址(通过无密钥的 CREATE2 factory),并且可以无需许可地部署到新的 EVM 链上。

EVM

  • Input Settler Escrow: 0x000025c3226C00B2Cdc200005a1600509f4e00C0
  • Output Settler: 0x0000000000eC36B683C2E6AC89e9A75989C22a2e
  • Polymer Oracle Mainnet: 0x0000003E06000007A224AeE90052fA6bb46d43C9
  • Polymer Oracle Testnet: 0xC401b53377b8A71A7cEB820e6a4dC53832343a90

Tron

  • Input Settler Escrow: TXmVLCXzrhzmeCfchDPTmFF6Qe7rg3H7Kk
  • Output Settler: THWDD3umarircbqo8jXxVazbpJnE25VjhN
  • Polymer Oracle: TCeNWukZUoTSrgWZEMpn9X8C5NtV8Rsy6c