-
一个提交接口,供求解器提交其已填充的输出。该提交接口应接受任意的待验证数据包,然后调用相关的输出结算合约以检查这些有效载荷是否有效。如果 提交 是通过能够证明合约调用、事件或存储而自动完成的,则可以忽略此要求。
预言机实现可以通过
IAttester接口来验证输出是否已被填充: -
实现验证接口,使得已认证(或已填充)的输出能够验证输出是否已被填充:
- 提交或接收接口不必标准化;但需要有文档说明,以便求解器能够实现它。
- 预言机系统可以采用自动中继或手动中继。
- 预言机系统的信任假设需要明确,以便意图签发者和求解器能够做出明智的决策。
已实现的验证接口
有三种类型的验证接口:- 自助式(Self-serve):在此类验证接口中,提交有效载荷会生成一个链下证明,该证明必须被收集并提交到输入链上。
- 自动式(Automatic):在此类验证接口中,提交有效载荷会自动将相关证明送达输入链上。
- 同链式(Same Chain):使用输出结算为其自身生成预言机证明,从而跳过专用的预言机系统。
速度与价格
某些预言机系统比其他预言机系统快得多。虽然速度不影响用户的资产交付,但它对求解器很重要。选择还款速度快的预言机系统能带来更便宜的意图,因为求解器可以更快地周转其资金。
某些预言机系统比其他预言机系统快得多。虽然速度不影响用户的资产交付,但它对求解器很重要。选择还款速度快的预言机系统能带来更便宜的意图,因为求解器可以更快地周转其资金。
OutputSettlerSimple
OutputSettlerSimple 是一个输出结算器,可用作同链意图的预言机。要使用 OutputSettlerSimple,请在填充输出后调用setAttestation。
setAttestation 将会公开已填充的输出,供输入结算进行验证。
Polymer
Polymer 是一个基于事件的系统,以低成本提供实时证明。其安全性基于通过 Polymer 打包的状态,区块头来源于定序器的预确认。- gas 成本低。
- 延迟低,可实现快速结算。
- Polymer 一次只能证明一个输出,因此需要在求解器端实现批量证明以优化效率。
- 广播(Broadcast)
OutputFilled,它在输出被填充时发出。
receivedMessage。
有关获取 Polymer 证明的集成示例,请参阅 lintent.org/polymer 或所进行的 receiveMessage 调用。
Wormhole
Wormhole 是一个基于消息传递的系统,允许合约广播 VAA(Verified Action Approvals,已验证操作批准)。VAA 是由 Wormhole Guardian 网络签名的消息。- 通过去中心化的 guardian 集合来保障安全。
- 支持在单个 VAA 中批量证明多个输出。
- 与替代方案相比速度较慢。
- 广播(Broadcast)
submit 接口提交到 Wormhole Implementation。消息必须被编码为 FillDescription 然后提交:
receiveMessage 来验证其意图。
获取 Wormhole VAA 有很多方式,例如 Wormholescan api 或 Wormhole SPY。
Wormhole 的实现出于节省 gas 的目的,使用了比 Wormhole 的
Implementation.sol 效率高得多的验证算法。Hyperlane
Hyperlane 是一个高度可定制的、基于消息传递的系统,允许合约通过选定的链间安全模块(ISM)发送和接收经过验证的消息。- 高度可定制的安全模块。
- 支持在单条消息中批量证明多个输出。
- 强抗审查保证。
- 自动或手动中继。
dispatch 函数。要配置 Hyperlane 中继,请在调用 submit 时提供相关的 customHook 和 customHookMetadata。
Chainlink CCIP
Chainlink CCIP 是一个基于消息传递的系统,允许合约通过 Chainlink 预言机发送和接收经过验证的消息。- 通过 Chainlink 的预言机网络来保障安全。
- 支持在单条消息中批量证明多个输出。
- 符合 SOC2 和 ISO 27001 标准
EVM2AnyMessage 的 CCIP router ccipSend。要将已填充的输出提交到 CCIP 预言机,首先调用报价端点 getFee 来估算消息传递费用。然后调用 submit,连同所需费用一起将消息发送到输出链。如果使用 ERC20 代币支付费用,请先批准代币转账。
Axelar
Axelar 是一个基于消息传递的系统,允许合约发送和接收由 Axelar 的 Proof of State 网络验证的消息。- 通过 Axelar 的 Proof of State 网络来保障安全。
- 支持在单条消息中批量证明多个输出。
- 自动中继。
callContract 函数。要将已填充的输出提交到 Axelar 预言机,首先使用 gasService 来估算费用。然后调用 submit,连同所需费用一起将消息发送到输出链。
LayerZero
LayerZero 是一个安全性可定制的、基于消息传递的系统,允许合约通过一组选定的去中心化验证网络(DVN)发送和接收经过验证的消息。- 可定制的安全性
- 广受欢迎且链兼容性广泛。
- 支持在单条消息中批量证明多个输出。
- 费用较高
send。要将已填充的输出提交到 LayerZero 预言机,首先使用 quote 函数来估算费用,然后连同所需费用一起调用 submit,将消息发送到输出链。

