CoW:Batch Auctionを導入した取引所


目次

  1. はじめに
  2. CoWの基本
     1. CoWにおける取引の一連の流れ
     2. Signed Message/ Signed Ordersとスマートコントラクトアーキテクチャ
  3. Coincidence of Wants
  4. おわりに
    参考文献

1. はじめに

本レポートでは、DeFi上の暗号資産の取引所もしくはDEXアグリゲーターとして機能するCoW Protocol(以下、CoW)[1]について紹介する。

NFT社が2023年11月までに取り上げてきたDEXアグリゲーターやDEX(以下、総称してDEXサービス)は、オンチェーンの処理で完結するものであった。オンチェーン処理のみを必要とするDEXサービスは長所として情報の透明性の高さや取引の頑健性などが挙げられるが、複雑な取引や処理を実行する場合、手数料(ガス代)の高さが問題となりやすい[2]。一方で、本レポートがテーマとするCoWをはじめ、Hydranet DAO[2]などにはオフチェーンの処理も存在する。オフチェーン処理を利用するDEXサービスの長所として、複雑な取引のコスト(手数料・ガス代)を抑えられるが、取引の情報が不透明となる[2]。CoWはオフチェーンを利用し、ユーザーの発注を即座にブロックチェーン上で執行せずに滞留させることで、同プロトコルである特徴のバッチ処理(バッチ・オークション)を実装している。

バッチ・オークションとは、既存金融の取引所におけるHFT対策として提示された取引所の取引メカニズムである[3]。NYSE、NASDAQやTSE等の既存金融の取引所はLimit Order Book(以下、LOB)の取引メカニズムを採用している。LOBの最大の特徴は、市場において取引が連続的に執行されることである。そのため、トレードを発注する市場参加者のコンピュータや通信機器の性能等によってトレードの結果がある程度左右され、死荷重(welfare-loss)が発生している[4]。また、DEXの多くが採用しているブロックチェーン上のAMMにおいても、取引は連続的に行われるため、取引の順番は重要となる。AMMにおいてトレーダーの注文の価格は、ブロックチェーンのマイナーが承認するまで確定しない。悪質なマイナーがいる場合、MEVといわれる、承認するブロック内の取引の順番を自らの利益のために並び替えることが考えられる。MEVは既存金融におけるフロントランニングと似ており、問題視されている。既存金融とDeFiにおいてフロントランニングの問題が生じているのは、取引が連続的に執行されるからである。そのため、バッチ・オークションは取引を断続的に発注された注文を執行(トレードの注文をバッチ執行)する制度である。また、あるバッチ内の複数注文が同じ銘柄を参照する場合、執行価格は一定となる。DeFiでバッチ・オークションが注目されている理由は、MEV問題[5]の解決になりそうだからだ。

CoWはバッチ・オークション(Batch Auction)を活用することで、任意のバッチ内に集められたトレーダーの注文の効用を最大化し、取引ボットによるMEV[2]の被害を減らすことを目的としている。また、CoWはDeFiのトレード執行を行うdAppsとしては珍しく、オフチェーンを利用するため、指値注文やTWAPなどの注文も可能となる。これらのことを念頭に、2章ではCoWにおける取引の一連の流れと経済主体について解説する。本レポートは主にCoWの紹介が中心の内容となり、続くレポートでは同プロトコルの分析やBatch Auctionの理論を扱う。

2. CoWの基本

本章ではCoWにおける取引の一連の流れに関する概要とSigned Ordersについて説明する。

2.(1) CoWにおける取引の一連の流れ

CoWをトレーダーが利用する際、CoWで行われる処理はトレードの発注の前段階から執行を4段階に分けることができる。取引の一連の流れにおいて、オンチェーンで行われる処理とオフチェーンで行われる処理が発生する。なぜなら、CoWはバッチ・オークションを活用するため、オフチェーン上でトレードの発注が行われるが、執行自体はオンチェーン上で行われるからだ。また、CoWには主体が複数存在するため、取引の一連の流れに入る前に説明をする。

表 1. CoWの取引に参加する経済主体 出所:Next Finance Tech作成

CoWをトレーダーが利用する際、最初に行われる処理はトレーダーがContract Allowance Managerコントラクトにトレード対象となる通貨の活用を通貨ごとに許可することである。本処理はオンチェーン上で行われ、本処理を行うことにより、solverがオフチェーンで問題を解き、settlementコントラクトがオンチェーンで暗号資産の移転をおこなうことができる。

CoWで2番目に行われる処理はオフチェーン上で行われるトレードの発注である。トレーダーはトランザクションをブロックチェーンに送信するのではなく、Signed Messageと呼ばれるトレードの詳細を記述したメッセージをCoWに対して送る。CoWのトレーダーの注文はオフチェーン上で行われるため、発注とキャンセルにガス代はかからない。このようなトレーダーの発注が直接ブロックチェーンに記録されないモデルは、intent-basedモデルと呼ばれる。

CoWで3番目に行われる処理はオフチェーン上でプールされているトランザクションに対して、Solverがバッチ・オークションの最適化問題を解くことである。バッチ・オークションの注文は集められたバッチ内で執行ができない場合、様々なDEXサービスの注文と照合される。2023年10月22日時点においてCoWはDEXであればUniswap v2、Uniswap v3、Balancer、Balancer v2、Sushiswap、DODO、Kyberを参照する。また、DEXアグリゲーターであればParaswap、Matcha、1inch Leverageなどを照合する。

CoWで4番目に行われる処理はバッチ・オークションの最適化問題でSolverが解いたとおりにオンチェーン上でトレードが執行されることである。このとき、CoW上ではトレードの処理がバッチ単位で行われ、バッチに発注を行った無数のトレーダーからSolverに手数料が支払われ、決済が行われる。下記は、トレーダーがContract Allowance ManagerコントラクトにCoWによるトレードの執行許可を行った後のトレードの発注から執行までの一連の流れの図である。図1では、Contract Allowance Managerコントラクトによるトレーダーがトークンを利用することに対して承認済みであり、この処理は抜かれている。

図1. CoWのトレードの取引の一連の流れ 出所:CoW Protocol

2.(2) Signed Message/ Signed Ordersとスマートコントラクトアーキテクチャ

本節ではトレーダーがオンチェーンでトレードの注文を発注せず、オフチェーンでの発注を可能としているSigned Message(CoWではSigned Ordersとも呼ばれている)について説明する。Signed Messageとは、トレーダーがCoWにオフチェーンで発注する際に出す注文のことであり、有効期限が存在する(有効期限は明記されていない)。

補足としてCoWのスマートコントラクトアーキテクチャについて説明をする。CoWのスマートコントラクトはallowance manager(vault relayer contractともいわれる)とsettlementに分かれている。allowance managerの役割は、 Signed Messageをトレーダーの代わりにCoWが執行することを許可することである。また、allowance managerは、CoWの悪質なSolverがバッチ・オークションの最適化問題を解くときにCoWのトレーダーの流動性にアクセスできないようにするために必要だ。Settlementにはsolverが解いたバッチ・オークションに解答が送られ、allowance managerとSigned Messageの執行が許されているトレーダーであるのか否かの照合が行われてから決済される。

3. Coincidence of Wants

本章では、Coincidence of WantsというCoWの概念を説明する。

Oxford Reference[3]によると、下記のようにCoincidences of Wantsは説明される。

When two parties each hold goods that the other party wishes to have.

This is the condition for a barter transaction to be agreed upon. In the absence of money, if an agent wants to trade good A for good B, they have to find another agent willing to trade good B for good A. This is achieved when there is a coincidence of wants. The inconvenience of this led to the rise of professional traders, acquiring goods they did not want for themselves but could exchange again, and to the use of money as a medium of exchange.

つまり、Coincidence of Wantsとは、ある市場においてお互いに所有したい財をお互いが持っており、それぞれの主体のもとにない状態である。その結果として、お互いが欲しい財の交換がなされる。CoWでは、バッチ・オークションを活用し、Solverに流動性損失最小化問題を解かせ、トレーダー同士のCoincidence of Wantsをそれぞれ突合させることを原則としている。CoWでは、Coincidence of Wantsによって執行できないSigned Messageがある場合、DEXやDEXアグリゲーターを利用し、外部の流動性を頼ることとしている。

実際に、CoWのドキュメントページにある例でCoincidence of Wantsの実例を紹介する。CoWのCoincidence of Wantsのデータを分析する際は、CoW Explorer[5]のページから分析したい対象のBatch Auction IDやユーザーIDを検索する必要がある。CoW Explorerのページは、CoWのBatch Auctionはオフチェーンで解決策が提供されるため、各主体とトレードの関係はオフチェーンデータで関係が追いやすい点で利用するメリットがある。

図2. Batch Auctionの各主体とトレードを可視化したグラフ 出所:CoW Explorer

上図は、Cow ExplorerにてBatch Auctionをグラフ化したものであり、12個のSigned Messageがトレード(ユーザーIDの個数)の執行に利用されている。また、当該Batch Auctionにおいてラベル「UniswapV2Pair」と2種類の色に注目した際、外部の2種類のオンチェーンAMMがトレードの執行に利用されていることが示唆される。

4.おわりに

本レポートでは、CoW Protocolの基本構造と、オンチェーンとオフチェーンを組み合わせたアーキテクチャの特徴について説明した。後続するレポートでは、Batch Auctionを行うことによるスリッページの抑制効果に関する実証分析やSolverが解く流動性の損失最小化問題に関する理論の説明、並びにSolverのアルゴリズムの解説を扱いたい。

参考文献

[1]:CoW Protocol. “CoW Protocol Overview”. CoW Protocol Overview. 2023. https://docs.cow.fi/, (参照:2023年11月21日)
[2]:Hydranet. “OFF-CHAIN VS ON-CHAIN DEX”. Hydranet Blog. 2023. https://hydranet.ai/blog/off-chain-vs-on-chain-dex, (参照:2023年11月3日)
[3]:Eric-Budish, Peter-Cramton et al. The High-Frequency Trading Arms Race: Frequent Batch Auctionns as a Market Design Response. The Quarterly Journal of Economics. 2015, 130(4), p.1547-1621, doi: 10.1093/qje/qjv027 https://academic.oup.com/qje/article/130/4/1547/1916146, (参照:2023年11月3日)
[4]:Higashi Kazuyuki. High-Frequency Trading Arms Race under National Market System : Welfare Analysis under CLOB and FBA. The University of Tokyo, 2018. Master Thesis.
[5]:Cow Protocol. “CoW Protocol Explorer”. Cow Protocol. 2023. https://explorer.cow.fi/, (参照:11月21日)