什么是Milkman?CoW Swap针对延迟执行交易的解决方案。

  • CowSwap
  • 发布于 2023-11-23 21:23
  • 阅读 53

Milkman是一个智能合约解决方案,专为CoW协议内的延迟执行交易而设计,使dao等用户能够为未来计划的交易设置动态价格支持。

Milkman 是一个简单的合约,它允许 DAO 和其他智能合约钱包用户为未来将执行的订单设置动态价格回溯!

在 CoW Protocol 上,用户可以提交签名的 intent-to-trade messages,而不是发送带有预定义交换指令的链上交易。这些消息包含了一些订单细节,比如要交易哪些资产及其数量,但将其他细节留给 solvers 优化。

这些意图的一个重要参数是 min_out——用户愿意为其卖出代币接收的最低购买代币数量(或购买数量减去用户设置的最大滑点)。当交易旨在立即或近乎立即执行时,min_out 工作得非常好,因为它允许 solvers 在保护用户免受不利价格变动的同时改善价格。然而,当价格波动较大时,min_out 可能会过于限制。

什么是延迟执行交易?

简单来说,延迟执行交易是指那些打算在不久的将来某一时点执行的交易。

许多智能合约钱包用户,例如 DAO,常常需要创建这种类型的订购。以下是一些例子:

  • 需要在通过治理流程后执行交易的 DAO
  • 需要数小时收集签名以从多重签名钱包执行交易的组织
  • 处理多年后的自动化交换的应用程序(例如,用于工资或国库管理)

有了额外的时间,价格可能会剧烈波动——这为交易者创造了一个困境:

如果购买代币价格下跌而 min_out 设置得过高,订单可能不会执行。但如果 min_out 设置得过低,交易者可能会面临不必要的差价执行风险。(CoW Protocol 的 solvers 彼此竞争,以提供更好的价格,但对非常高交易量的交易者而言,对 solvers 带有如此高的信任可能是不可取的。)

如果用户签署了一份意图将 1 ETH 兑换成 2000 USDC 的合同,那么交易将不会低于 2000 USDC。

但设置过低的“min out”可能会导致错失盈利。

什么是 Milkman?

Milkman 是一个智能合约,它为智能合约钱包解决了上述困境。

它通过允许智能合约指定一个链上数据源(例如,预言机)作为 min_out 的参考,从而有效地将 min_out 转变为其交易的动态价格回溯。

假设你想以 USDC 出售 1000 ETH,但希望在未来的某个时候进行交易。为了保护自己免受价格波动的影响,你可以提供 Milkman 来基于 Chainlink 的 ETH/USDC 价格馈送来创建订单,而 Milkman 在下单时会根据该价格馈送动态调整你将接收的最低金额。

当执行交易的时机到来时,CoW Protocol 将以准确反映当时价格的 min_out 接收该交易;而 solvers 将继续在此基础上竞争以改善价格,就像他们一直以来所做的那样。

Milkman 为 DAO 量身定制

Milkman 特别适合许多与 DAO 相关的用例,因为 DAO 的治理流程常常会延迟交易,并且 DAO 的交易金额可能非常大。

许多知名 DAO,包括 AaveENS,已经使用 Milkman 完成了超过 2000 万美元的代币交易。除了让这些 DAO 指望可靠的价格外,Milkman 还使他们减少了整体治理投票的数量,并给予他们标准的 CoW Swap 福利,如最佳价格执行和 顶级 MEV 保护——这对于大型交易至关重要。

Milkman 还在广泛使用的 DAO 管理平台 Tally 作为一个 recipe 原生集成——为 DAO 消除了更多的交易摩擦。

技术细节

Milkman 遵循 UniV2 风格的接口。要与 Milkman 交互,智能合约只需调用以下函数:

function requestSwapExactTokensForTokens(

uint256 amountIn,

IERC20 fromToken,

IERC20 toToken,

address to,

address priceChecker,

bytes calldata priceCheckerData

)

priceChecker 是数据馈送提供者,而 priceCheckerData 是一个任意字节的数组,该函数将其传递给价格检查器(例如,所需的滑点容忍度)。

价格检查器已针对 Chainlink、Curve、SushiSwap、Uniswap V2、Uniswap V3 及这些组合进行了部署。部署地址可以在 这里 找到,核心 Milkman 代码可以在 这里 找到。任何人都可以运行一个 Milkman bot,它 simplemente 作为一个钩子,监视新的交换请求并将其显示给 CoW Protocol。如果你有一个 Kubernetes 集群,运行一个 bot 是相当简单的;说明在仓库中。

Milkman 由 Yearn Finance 与 CoW Protocol 合作开发,通过 CoW Grants Program 实现。

Milkman 万岁!愿你从中受益,以获得良好的价格!

  • 原文链接: blog.cow.fi/what-is-milk...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,在这里修改,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
CowSwap
CowSwap
江湖只有他的大名,没有他的介绍。