1inch

Fusion掉期解析器:链下组件


我们系列中解释 Fusion 模式的第二篇文章重点介绍掉期解析的链下组件。

在本系列的第一篇文章中,我们介绍了解析器的概念 - 一种完全自动化的算法,由一个服务器应用程序(确定要执行哪些订单以及何时执行)、一组执行交易的智能合约和一个外部拥有的帐户(或多账户)来建立合约,来组成的。

要进行 Fusion 掉期交易,用户需要在交易表单中输入订单详细信息。 随后,前端应用程序将向后端发送请求并立即显示估计的交易结果。

让我们看一个例子。

假设用户想要将 1000 DAI 兑换成 WETH,并在 1inch dApp 中输入相应的详细信息。用户界面立即评估此交易并提供以下信息:

  • 在最佳情况下,用户将获得 (0.579608 WETH) + 乐观汇率(预计 WETH 买入价) - 这将比当前市场回报率高出 +1%
  • 在最坏情况下,用户将获得 (0.571922 WETH) + 悲观汇率(最低 WETH 买入价) - 这将比当前市场回报低 -1.33%
  • 拍卖的最长时间(10 分钟)

用户有多种选择:

  • 信任 1inch 后端根据要交易的加密货币和交易金额,确定最佳预设值,然后选择“自动”
  • 选择“公平”或“竞价”预设以增加竞价时间
  • 手动输入最高和最低回报金额并调整竞价时间。无论如何,应用程序如何获得估计的交易结果?

如上所述,前端应用程序(=用户界面)将订单参数发送到后端,特别是 1inch 报价服务。在我们的例子中,它发送 DAI 作为源加密货币,WETH 作为目标加密货,1,000 DAI 作为交易金额。

在"魔法的背后 ",有 3 种预设值: 快速、公平和竞价。如果选择 "自动 "预设,报价器将 "决定 "3 种预设中哪种最适合该特定交易,并返回相应的值。如果选择 "自定义预设",用户则为报价器设置工作参数。

报价器是一项复杂的后端服务,旨在最大限度地提高交易产出,使用户受益。它的目标是根据报价器从 Pathfinder 请求的当前市场价格,定义适当的限价曲线。

看看下面的图表。它显示的是快速预设报价器服务生成的价格曲线。

  • 紫色线是价格曲线。 它决定了用户在某个区块中收到的金额。 随着拍卖时间的推移,价格会慢慢下降。
  • 顶部的水平虚线标记了公平预设中的拍卖起始金额 - 192万USDC。
  • 中间的水平虚线代表用户根据从 Pathfinder(pf)收到的市场价格可以获得的市场金额 - 约181.7万USDC。
  • 底部的水平虚线显示拍卖结束时收到的最低金额(公平的最低回报金额) - 约179.7 万USDC。
  • 曲线上的紫色菱形是区块时间戳。 拍卖持续15个区块,从0 到15,大约持续180秒(3分钟),因为以太坊的平均区块验证时间为12秒。 在每个区块中,解析器必须返还给用户的金额是不同的。 无论解析器收到多少,他们都可以将其作为利润保存起来。
  • 粉红钻石是重点。这些是价格曲线改变角度的点,代表价格下跌的速度。 一开始,价格下降的速度很快,然后在第2个区块,有一个关键点,价格下降的速度随之减慢,依此类推。 第2、4、6、8、10、12、14个区块都有关键点。

总结一下:

  • 报价器从用户界面(UI)接收订单参数,从Pathfinder接收当前市场价格。
  • 根据上述内容,报价器返回一条曲线,该曲线确定解析器在每个给定区块中必须发送给用户的金额。
  • 曲线及其关键点由订单参数和用户界面(UI)中选择的预设值决定。

随着我们从订单填写历史中获得越来越多的大数据,1inch后端团队会不断对报价器的逻辑进行微调。

您可能会问,解析器如何从中获利:收益逻辑由解析器的后端来调优。 简而言之,有一些套利策略可以最大化解析器和用户的收入,创造双赢的局面。

用户根据订单参数估算自己的回报金额,前端应用程序则每隔12秒从报价器接收一次估算值,并将其显示给用户。

在某个时刻,用户决定签署订单后,在用户界面将其发送到后端,随后由解析器填写。 整个过程如下:

  1. 用户在用户界面(UI)中对订单进行估算。
  2. UI将订单参数发送到报价服务。
  3. 报价者请求Pathfinder提供市场价格(和返还金额)。
  4. Pathfinder向报价者提供市场价格。
  5. 报价器计算价格(返还金额)曲线并将其返回前端。
  6. 用户用自己的钱包(账户)签署订单。
  7. UI将已签署的订单发送到后端的中继器服务。
  8. 解析器的后端介入并轮询中继器以获取订单,或订阅来自中继器的websocket更新。
  9. 中继器向解析器后台发送所有可用订单。
  10. 解析器的后端决定在哪个区块填写哪个订单,并向其Worker发出相应指令。

值得注意的是,在第5步和第6步之间有一个非常明确的时间范围,以涵盖签署订单所需的时间。用户点击 "确认交换 "后,只有24秒的时间在钱包中签名。为什么正好是24秒?根据我们收集的数据,24秒涵盖了95%的签署订单延迟情况。

如果用户没有签署订单会发生什么?中继器不会接受,因为市场价格变化非常快。超过两个区块前估算的价格曲线可能就失效了:如果市场价格过于有利于用户,解析器就不会接受。如果市场价格与用户的价格相差太大,解析器会很乐意执行订单,但用户会很失望。因此,尽快签署提交订单,至关重要。

现在,让我们来总结一下上面提到的关于解决订单的链下部分:

  • UI 用于获取用户关于代币、金额和拍卖预设的输入。
  • Pathfinder 用于估算当前市场价格。
  • 报价器用于根据上述两个值确定价格曲线,进而确定解析器必须发送给用户的返还金额(逐块缓慢递减)。
  • 中继器用于存储订单,并根据解析器的要求将订单发送到解析器的后端。

分享这篇文章

Copy icon Copy done!
top-bg top-bg-mobile