CoW swapの理解を深める 後編

サムネイルの引用元:CoW Swap

はじめに

こんにちは、デフィー伍拾伍号です。本記事ではDEX アグリゲーターとして、名高いCow Swapについてその理解を深めます。前半では、現在、Ethereumエコシステムにおいて、大変な課題となっているMEVの問題について、深掘りをしました。後編の本記事では、CoW swapの概要やその仕組みの詳細について、理解を深めます。

前編でも述べたように、CoW Swapとは、CoW Protocolに基づいて構築されたDEXアグリゲーターであり、ユーザーはEthereumやGnosisチェーン上で、トークンをより良いレートでスワップ出来ます。CoW swapはUniswapやCurveといった従来のDEXと比較して、圧倒的なMEV耐性と最適執行性能を保持していることで知られており、以下では、その詳しい内容を解説します。

CoW Swapの概要


引用元:Cow Swap
さて、前編では、主にMEVについての解説が大半を占めていましたが、後編の本記事ではいよいよ、Cow Swapの詳細について迫っていければと思います。まずCoW swapのCoWとはなんでしょうか。アプリケーションのバナーにはキャッチーな牛が描かれています。では、それが全く意味を成さないものなのかというと、違います。CoWという名称の由来は、Coincidence of Wants、つまり需要の偶然の一致の頭文字をとっています。

この名称は、Cow Swapの仕組みを理解する上で非常に重要な前提知識となります。まずCow Swapでは、流動性が流動性提供者から供給される現在のDEXとは異なり、注文のマッチングにバッチオークションを使用します。CoW Swapは、DEX アグリゲーターであるので、外部DEXを参照し、最良執行が可能であるDEXで取引を行います。しかしCoW Swapでは、その外部流動性を利用する前に、ユーザーの注文を直接マッチングさせることを優先します。

例えば、2人のユーザーがCoW Swapで取引を執行すると仮定します。1人は、1ETHを1000USDCに交換したく、もう1人は、1000USDCを1ETHに交換したいとします。この場合に、CoW Swapではそれぞれの注文をDEXを通じて執行させるのでなく、CoW Swap内で、2人の注文を直接マッチングさせます。この仕組みにより、効率的な注文の執行が可能となるのです。

もちろんこのような状況はまさに偶然の一致なわけです。したがって未決済注文に関しては、外部のDEXを介してマッチングを行います。これで、CoW swapの最適執行性能について理解が深まったかと思います。では上段述べた、CoW swapが圧倒的なMEV耐性を備えているとは、どのような意味でしょうか。ここからはその点について具体的に述べます。

前編の記事でSwapperつまり、DEXで取引を行うユーザーが最も注意すべきなのは、サンドイッチアタックでした。これは、トランザクションの直前と直後に自分のトランザクションを挿入して、その名の通り、サンドイッチする手法です。しかし先ほど述べたように、CoW swapでは、注文のマッチングにバッチオークションを用いるため、直接的なマッチングにより、取引順序が問題とならないのです。そして、残りの未決済注文がDEXを通じて、執行されます。したがって、この場合にはサンドイッチアタックのリスクが生じることとなります。

しかしながら、CoW swapでは残りの未決済注文を単純にDEXで執行するわけではありません。CoW Swapは、この注文の処理に置いて、Solverという主体を利用します。Solverとは昨今大きな潮流となっているIntent-Based-Architectureの先駆け的な存在です。Intentについてここでは詳しく解説することはしませんが、ユーザーが直接トランザクションを執行するのではなく、より効率的な執行を行える第三者が代わりとなって取引を執行するというものです。CoW swapのSolverも概念的には全く変わりません。

引用元:Cow Swap
つまり多くのユーザーは、例え最も良いレートの取引所を発見することができても、最良執行を行うことは極めて難しいのです。Uniswap v3のETH-USDC-0.05%のプールが最もレートの良いプールであることがわかっても、最適なガス代の設定、プライスインパクトを出さずに希望した価格で注文をなるべく短期間に執行することは、ほとんどのSwapperにとって、あまりに大きな負担です。一方Solverは、競争を通じてチェーン上の最適な取引ルートを見つけるのはもちろんのこと、非常に厳しいスリッページ制限を設定し、一般的なユーザーが活用できない高度な技術を用いて注文を執行します。

これにより、彼らは可能な限り最高の価格を得ることができ、サンドイッチボットが利益を得る余地はほとんど残されていません。ちなみにSolverは、注文の執行に応じて手数料収入を受け取ることができます。

実際に2022年、CoWスワップはUniswapを通じて約282000件の取引を執行しました。これらの取引のうち1300件がUniswapプールでサンドイッチ・アタックを受けました。したがって、サンドイッチアタックの割合はおよそ0.05%です。一方、Uniswapでは2022年に3960万件の取引があり、50万件がサンドイッチアタックでしたに晒されています。よってその割合は1.26%です。この数字を踏まえれば、いかにCoW swapがMEV、特にサンドイッチ・アタックに対して高い耐性を誇るかが理解できたかと思います。

CoW swap Hooks

さて、ここまでCoW Swapの具体的な仕組みについてその理解を深めてきましたが、最後にCoW swapが新たに導入するHooksについて解説し、本記事を終えたいと思います。Hooksとは、Uniswap v4での導入で一躍、その名が知れ渡りましたが、機能としては、トランザクションの前後に任意のアクションを挿入できるというものです。CoW swapでは、スワップ注文の前後でHooksを活用することが出来ます。CoW swapのドキュメンテーションには、例として以下が挙げられています。

レンディングとステーキング

CoW Hookを使用して、債務の返済、ポジション自体のクローズ、利回り付きトークンとの交換、トークンのステーキングをなど一度のスワップ注文だけでUI上で、完結させることが出来ます。具体的にはSwap注文の前に、そのアクションとして債務の返済とポジションのクローズに設定し、次に CoW Swap を使用して資産を交換し、最後にスワップ取引後のアクションとして、新しい資産をステーキングvaultに預けます。

まとめ

本記事ではDEX アグリゲーターであるCow Swapについて解説してきまた。前半では、現在、Ethereumエコシステムにおいて、大変な課題となっているMEVの問題について、後編の本記事では、Cow swapの概要やその仕組み、そしてCoW swapのHooksについても解説しました。

関連記事