DODO 文档中心

🚌 SmartTrade

DODO的智能路由算法

SmartTrade是DODO的去中心化流动性聚合服务,可路由和比较各种流动性来源,以报价两个任意代币之间的最佳兑换率。该服务使得在同一网络上两个任意代币之间的交易成为可能。在DODO上执行交易的用户还可以选择参与交易挖矿,以获取DODO代币作为奖励。

如果您发现SmartTrade在整个网络上报价不是最优的,请发送报告至[email protected],您将获得NFT奖励!

聚合算法#

DODO协议既充当流动性提供者,也充当流动性分配者。通过在交易侧提供聚合功能,实现在同一网络上两个任意代币之间的交易。智能地从流动性来源中找到最佳的订单路径,为交易者提供最佳价格和最低滑点的代币交换。

DODO的内部路由算法通过聚合链上各个交易所的流动性,计算为用户找到最佳的交易路径。它支持在同一协议内部分割交易,也支持在不同协议之间分割交易。在获得路径之后,链上的智能合约将为用户执行交易操作。智能合约中的安全验证确保用户资金的安全性和报价的有效性。

DODO的路由策略有两种,一种是线性路由,另一种是分割订单路由。

线性路由#

线性路由意味着在找到交易路径的过程中,所有正在交易的币都通过同一个池子,从而找到目标代币的最佳价格路径(类似于Uniswap V2的路由算法)。这个算法具有低复杂度,计算速度快,与合约的交互较少,使用的gas较少。

例如,如果用户需要交易ETH-USDC,线性路由找到的最佳路径可能是ETH-USDT-USDC,最终路径只经过两个池子,一次一个。这两个池子可能来自不同的协议,例如ETH-USDT是Uniswap V3的池子,USDT-USDC是DODO的池子。线性路由算法从每个协议中涉及输入代币、目标代币和通用中间代币的所有池子中收集信息,然后递归找到最佳路径。

分割订单路由#

分割订单路由是指将用户的资金同时分配到不同的交易池中,找到交易路径的过程。这些代币在这些池子之间按照特定比例分割,以获得这些代币的最佳价格。这个算法具有较高的复杂度,计算速度较慢,与线性路由相比,交互的路径合约较多。这使得它消耗更多的gas,但价格要比线性路由更好。

同样以ETH-USDC为例,交易路径经过的代币可能是ETH-USDT-USDC。ETH和USDT的交易可能会经过两个池子:用户的30%的ETH通过Uniswap V3转换为USDT,用户的70%的ETH通过DODO V2转换为USDT。对于交易路径中的下一笔交易USDT-USDC,初始的USDT是上述两个来源的USDT的总和,然后在几个USDT-USDC交易池中最优地分割,得到最终的USDC数量。

为了控制gas的消耗并增加交易的成功率,每对交易只经过不超过三个池子。

支持的链和流动性源列表#

DODO已支持11个链,DODO在各个网络中聚合的流动性来源可以在这里找到。

结论#

DODO内部的SmartTrade路由算法还有更多的优化空间,我们将继续优化交易路径和代币的分割,以获得更好的报价。 DODO将继续努力为用户提供更好的价格。