当前位置: 首页 > 币圈资讯 > 文章正文

UniswapX真的能实现零Gas无MEV交易吗 UniswapX交易解读

作者: 投资币 时间: 2024-10-30 21:26 阅读: 1167

UniswapX正式上线!UniswapX交易机详解!4 月 7 日,据官方公告,Uniswap 网页版已正式上线 UniswapX,次日 Uniswap Labs 官方推特发文表示,用户已经可以在 Uniswap 网页应用上体验到 UniswapX 带来的「零 Gas」「防 MEV」链上交易体验。自去年 7 月上线测试网版本以来,备受市场期待的 UniswapX 在历时八个月后终于与用户见面了。UniswapX正式上线后真的能实现「零 Gas」、「无 MEV」交易吗?下面我们来一起看看UniswapX的详细解析吧!

去年 7 月 17 日,Uniswap 宣布推出非托管的、基于荷兰式拍卖的协议 UniswapX,它将帮助用户逐步实现聚合流动性、防 MEV、无 Gas 交易等比肩 CEX 的链上交易体验。随后,UniswapX 便进入紧锣密鼓的产品研发阶段。同年 9 月,Uniswap Labs 又推出了漏洞赏金计划,悬赏范围包括 Router、V3、UniswapX 等合约,奖励最高达 225 万美元。

今年 2 月,Uniswap Labs 宣布推出限价订单功能,该功能由 UniswapX 提供支持,利用链上和链下流动性,无需 GAS 费用,并且可以为任何交换规模设置,没有最低要求。如果市场达到用户指定的价格,并且 UniswapX 的「填充者」(Fillers)接受了用户的交换请求,订单将自动执行,而且没有任何 GAS 费用。如果订单在用户设定的时间内没有被满足,则订单会过期,过期订单不会产生任何费用。

根据 Uniswap官方详解文档,UniswapX 将路由复杂性外包给第三方填充者的开放网络。然后,填充者使用链上流动性(如 Uniswap v2 或 v3)或他们自己的私人库存来竞争填补交易,任何人都可以成为 UniswapX 交易的第三方填充者。目前,UniswapX 仅在以太坊主网的 Uniswap 网页应用上可用,并会在未来扩展到 Uniswap 钱包等其他产品。

用户如希望体验 UniswapX,只需在 Uniswap 网页应用的右上角设置按钮中开启「UniswapX」开关后即可。BlockBeats 对产品进行实测后发现,目前仅有 DAI、UNI、1INCH、APE 等较少数币种才能够通过 UniswapX 路由实现免 Gas 交易,而诸如 AAVE、ARB、USDT 等币种则时常无法使用 UniswapX 的路由。这是因为,当用户开启 UniswapX 路由后,Uniswap 网页端应用会自动根据最优交易费用来为用户筛选最佳交易路径,即当 V2 或 V3 的交易滑点要低于 UniswapX 时,则 Uniswap 会自动为用户跳转至前两者交易路径。

另外,由于产品处于早期阶段,市场上对 UniswapX 的讨论热度和使用强度均不高。甚至还有用户在社交媒体上表示,自己在使用 UniswapX 交易后,仍旧遭到了 MEV 攻击,不过该用户反应的情况并未得到进一步的证实。

不管怎么说,作为 DeFi 领域备受关注的创新产品,UniswapX 的到来继续推动了 DEX 追赶 CEX 交易体验的进程,毫无疑问的是,随着更多市场参与者和用户的参与,UniswapX 将覆盖更多代币交易对。UniswapX 的到来,能否开启加密世界的「零 Gas」「无 MEV」交易呢?我们拭目以待。

UniswapX 交易流程

工作原理

首先,假设 Alice(交换者)想要将 1 ETH 交换为 USDC。Alice 向(潜在的填充者)Bob、Charlie 和 Danielle 请求报价:

  • Bob 提出以 1,000 USDC 购买 Alice 的 ETH
  • Charlie 现有 999 USDC
  • Danielle 现有 998 USDC
  • Alice 还可以直接通过 Uniswap v3 将她的 1 ETH 兑换成 997 USDC

Alice 接受 Bob 的 1,000 USDC 报价,并签署订单。该订单包括最大值(由 Bob 的报价 1,000 USDC 设置)和最小值 997 USDC(由 Uniswap 智能订单路由器 API 设置)。Bob 可以使用他自己的 USDC 或将 Alice 的 1 个 ETH 路由到各种链上流动性场所(Uniswap 协议、Sushiswap 等)来填写 Alice 的订单。Bob 决定使用自己的 USDC 来满足 Alice 的订单,并向 Alice 发送 1,000 USDC 以换取她的 1 ETH。如果 Bob 决定放弃他的提议,Alice 不需要提交新的订单和签名。相反,她现有的订单会自动更新,向任何能给她 999 USDC 作为回报的人提供 1 ETH。一个区块已经过去,现在 Charlie 和 Danielle(以及参与 UniswapX 系统的任何其他填充者)都不愿意以 999 USDC 的价格填写 Alice 的订单。另一个以太坊区块(12 秒)到期后,Alice 的 1 ETH 可兑换 998 USDC。突然,Danielle 意识到,通过将 Alice 的交易发送到 Uniswap v3 和 Sushiswap 的组合,她可以以 998 USDC 的价格填写 Alice 的 1 ETH 卖单,同时仍然为自己赚取 1 USDC 的利润。Danielle 代表 Alice 将 Alice 的 1 ETH 发送到 Uniswap v3 和 Sushiswap,将 998 USDC 返还给 Alice,并为自己保留剩余的 1 USDC 输出。

交易流程

UniswapX 是一个去中心化交易协议,利用 Permit2 代币授权合约引入了基于签名的授权和转账功能,适用于任何 ERC20 代币。此外,UniswapX 还使用 Reactor 合约进行链上结算。Reactor 合约负责验证交易是否符合用户指定的参数,并可以撤销不符合条件的交易。要参与 UniswapX 的交易,兑换者首先必须授权 Permit2 合约。兑换者无需手动创建和提交交易,而是对交易订单签名,指定以下参数:

  • 输入代币(支付代币)
  • 输出代币(获取代币)
  • 输入(输出)数量
  • 初始输出(输入)金额
  • 最低输出(输入)数量
  • 衰减函数
  • 兑换期限
  • 授权 UniswapX Reactor 合约代表其使用代币
  • 这些订单由 MEV 搜索者、做市商和 / 或其他链上代理(统称为填单者)接收,并将其发送到 Reactor 合约。通过在链上提交兑换者的订单,填单者代表兑换者支付 Gas 费用。这些费用会反映在执行价格中,以补偿 Gas 成本。Reactor 合约调用填单者的 Executor 合约,其中包含特定的订单执行逻辑。一旦确定资产来源,Executor 合约将资产发送到兑换者的地址,并从兑换者地址提取资金。最后,Reactor 合约验证订单是否满足条件。UniswapX 没有规定填单者如何填充兑换者的订单。流动性可以来自 Uniswap 或其他去中心化交易所的链上流动性池、链下流动性源或其他 UniswapX 订单。多个订单可以捆绑到同一笔交易中,并且其他操作可以在链上原子执行。

    交易流程说明

    链上路由(Onchain routing )是一个日益重要和复杂的问题。链上交易的创新导致了流动性池的爆炸式增长。新的费用等级、新的 L2 和更多的链上协议会分散流动性。Uniswap 预计将在 Uniswap v4 版本上构建数千个定制池设计,这使得路由变得更具挑战性。但随着流动性来源的增长,继续提供有竞争力的价格需要手动集成以及大量的持续维护和工作。

    UniswapX,旨在通过将路由复杂性外包给开放的第三方构建者网络来解决这个问题,这些构建者则利用基于链上流动性(如 AMM 池或其自有库存)进行竞争来完成交换。

    借助 UniswapX,交易者将能够使用 Uniswap 界面,而不必担心自己是否获得最佳价格,并且交易将始终在链上透明地记录和结算。所有订单均由 Uniswap 智能订单路由支持,这迫使构建者与 Uniswap v1、v2、v3 以及一旦启动后的 v4 竞争。

    通过 UniswapX,交易者签署一个独特的链下订单,然后由代表交易者支付 Gas 的构建者在链上提交该订单。因为交易者不需要支付 Gas,所以他们不需要链的本地网络代币(例如 ETH、MATIC)来进行交易或为失败的交易支付任何费用。构建者将 Gas 费计入掉期价格,但可以通过批量多个订单来竞争最佳价格来降低交易成本。

    在特定情况下,用户仍然需要支付 gas,例如 Permit 2 的初始代币批准。此外,原生网络代币在出售时需要打包,这会消耗 Gas 费用。

    MEV 是当今链上交换面临的最大问题之一,导致交易成本变高。

    借助 UniswapX,原本可以通过套利交易捕获的 MEV 会通过提高价格返还给交换者。UniswapX 还帮助用户避免更明确的 MEV 提取形式:使用构建者库存执行的订单不能夹在中间,并且在将订单路由到链上流动性场所时,构建者被激励使用私人交易中继。

    预计将在今年晚些时候推出 UniswapX 的跨链版本,它将交换和桥接结合到一个无缝操作中。通过跨链 UniswapX,交易者将能够在几秒钟内在链之间进行交换。交易者还可以选择在目标链上接收哪些资产,而不是特定于桥的代币。

    UniswapX 是一种不可变的智能合约,完全无需许可。包括 Uniswap Labs 在内的任何人都无法修改或暂停合约。最早的构建者随时待命,以确保适当的拍卖起始价格和快速的订单执行,预计构建者网络将随着用户的采用而迅速扩大。目前,ABDK 对 UniswapX 代码进行了广泛的测试和审核,并且 Uniswap 提供了漏洞赏金。交换者始终保持其资金的自我托管。只有在订单执行并且他们收到交易收益后,资产才会从他们的账户中转出。

    就像 Uniswap 协议一样,UniswapX 包含一个协议费用开关,只能由 Uniswap 治理激活(Uniswap Labs 不参与该过程)。

    UniswapX 源码分析

    设计原理

    UniswapX 旨在通过将路由复杂性外包给第三方填充者的开放网络来解决,然后第三方填充者竞争使用 AMM 矿池或自己的私人库存等链上流动性来填充掉期。借助 UniswapX,交换者将能够使用 Uniswap 界面,而不必担心自己是否获得最佳价格,并且交易将始终在链上透明地记录和结算。所有订单均由 Uniswap 智能订单路由器支持,这迫使填充者与 Uniswap v1、v2、v3 以及一旦启动后的 v4 竞争。

    优势

    • 通过聚合流动性来源获得更好的价格
    • 无 gas 交换
    • 防止 MEV(最大可提取值)
    • 交易失败无需支付任何费用
    • 在接下来的几个月中,UniswapX 将扩展到无 Gas 跨链交换。

    关键源码解析

    由于填充者需要代替交换者提交 gas,所以可以通过批量执行订单的方式来减少一次交易带来的手续费损耗。

    _fill 函数中处理具体订单的执行逻辑,这里存在两种情况,如果填充者使用自己个人持仓来完成用户的兑换,则不需要使用回调合约,直接进行资金对换;否则需要在回调合约中来处理具体逻辑,例如到其他交易池中进行兑换等。

    合约使用 validate 函数来验证填充者是否是订单的指定填充者。

    合约使用了 permit2 库来完成签名的校验和代币的转账,以此保证交换者的钱不会被随意转走。

    若填充者选择使用个人持仓完成订单,则会直接将代币从填充者地址转移到交换者地址。

    在回调合约的回调函数执行完成后,调用 check 函数校验用户是否收到了足够的代币,若不满足足够的代币,则交易整个回退。总结,合约中涉及到的只有关于链上的逻辑,由于用户并不需要支付 gas 费来完成这一笔交易,所以前期的多数操作选择在链下进行,包括用户的交换请求发送和对交易进行签名等。uniswapX 选择在链下将用户的交换请求发送给填充者,而一旦填充者接受了填充请求,则由填充者将交易发送到链上,并从中赚取差值作为利润。

    以上就是投资币小编给大家分享的UniswapX正式上线后的详细介绍了,希望UniswapX正式上线能给大家带来跟多的便利!