Uniswap v4:自由なカスタマイズを可能にするフック活用案3選
目次
- はじめに
- 出来高・IL依存の動的手数料率
- 自己裁定取引機能
- 仕組債プール
- おわりに
参考文献
1. はじめに
Uniswap はDeFi市場を主導する最大規模のDEXであり、急速に発展する市場動向を把握する上でその動向を追うことは不可欠である。2018年に発足したUniswapは3つのバージョンを経て、2023年6月にUniswap v4 の開発計画を発表した [1, 2]。現行のUniswap v3へのアップデートは、一定価格帯に集中した流動性供給を行う機構を持たせることでプールの効率化を図った、AMMの根幹となるスワップ価格を決定する枠組自体のアップデートであった。これに対してUniswap v4へのアップデートではAMMの価格決定方法はv3から変更は無いものの、フックの導入によるカスタマイズ性の拡張とアーキテクチャの改良によるガス効率の向上を目的としたものである。特にフックの導入とはAMMの4つのライフサイクルイベント、Initialize・ModifyPosition・Swap・Donateの前後で様々な処理を割り込ませる余地を与えるものであり、プールの効率性や取引の利便性を向上させる様々なアイデアが考案され実装されていくことが期待される。例えばUniswap v4 のビジョン [1] では既存金融における指値取引や時間加重平均価格(TWAP)取引と同等の取引がオンチェーンで実現できることを紹介しており、こういった機能はユーザーが市場に張り付いて逐一具体的な指示を出す必要性から解放し、ユーザー所望の取引内容の実現をAMM側が対処してくれる点でUXの劇的な向上をもたらすだろう。これは単純な事例に過ぎないが、このようにユーザーは望ましい結果を宣言し、具体的達成方法はオンチェーンでサードパーティに委託できるUXに優れた設計を Intent-Based Architecture と呼び、今日のEthereumコミュニティの主要な関心事となっている [3]。
このような背景を踏まえて、Uniswap v4は命令型から宣言型のパラダイムへの過渡期として、フックの機能を実装する構想に至ったと推察できるだろう。
本レポートでは、Uniswap v4 のフック活用に関して当社内でなされたディスカッションを元に、フック活用方法の3つのアイデアを後続の3章にて紹介する。2章、3章はプールの効率性向上の観点からの発案で、2章では出来高とIL発生状況に応じた動的手数料率を導入することによるLPの活性化を議論し、3章ではAMMの自己裁定取引機能を持たせることで従前であればアービトラージャーによって外部に持ち出された余剰価値を流動性供給者(以下、LPer)やトレーダーに還元する仕組みを議論する。4章では利便性の観点から、新たな取引機会として仕組債のように振る舞うプールをフックの機能により実現することを議論する。最後に、5章にて総括を行う。
2. 出来高・IL依存の動的手数料率
この章では、動的手数料率の導入によるLPの活性化案を紹介する。Uniswap v3では同一の取引通貨ペアに対して複数の手数料プールが用意されており、LPerはマーケット状況に応じて手数料を選択することが可能である。しかし、手数料プールの変更は容易でなく、また、価格変動時のILによる損失が収益を圧迫し、純損失が生じることも少なくない。この環境ではLPの魅力が低下し利用者が減少、さらに流動性供給のインセンティブも低下する悪循環が生じる。近年Predy, PanopticなどのILヘッジプロダクトが登場し期待を集めているように、大きなILが発生する局面においてもILを軽減する仕組みがありLPerが神経質にILを意識しなくて済む環境を整えることが、LPを活性化させる為に考えなければならない要素であろう。
このような背景から、LPerが損失を出しやすい状況を改善できるような動的手数料率体系を考える。LPerが損失を出しやすい状況とは手数料収入が少ない、または大きなILが発生する状況であるから、動的に手数料率を決定するモデルはある時点を基準として出来高の変化と全LPerが被っているILの総和を参照するものとする。
ILの計算のため、ある時点からの通貨の市場価格からの変化と、プールの流動性の状況(流動性供給範囲と供給量)の情報を参照する。出来高が減少しIL総和が増加している時はLPer保護のため手数料を高く設定し、逆に出来高が増加しIL総和が減少している時は手数料を低く設定することができる。出来高とIL総和が共に増加または減少する時はLPerの損益への寄与は競合するので、この時の手数料率はモデルの詳細や入力値の程度の違いに依る。実装として、スワップが実行される前に処理を割り込ませられるbeforeSwap フックにて現在の手数料率を元に手数料を徴収し、スワップ実行後に処理を割り込ませられるafterSwap フックにて市場価格の変化を参照の元でIL総和を算出し、出来高の変化と共に参照して手数料率決定モデルにより手数料率を求め、プールの手数料率を更新すればよい。
手数料率はafterSwapフックにて更新されるので、スワップ利用者は徴収される手数料率を予め知った上で取引に臨むことができる。
この手法はLPerのILからの保護を前提に設計されているが、トレーダーにとっても状況に依っては従来より安い手数料率で取引ができる機会を提供できる可能性がある。しかしながら、一定のILが生じている状況下で出来高が減少した場合に、手数料率が上がるため更に出来高が減少する正帰還が生じる可能性がある。そのようにして手数料率が引き上げられてしまうと他のDEXとの手数料競争に負け、裁定取引以外では使われないプールとなってしまうかもしれない。LP目線ではILが補填される機構がある分、流動性が集まりやすくスリッページを抑制できるため、高い手数料率と低いスリッページでトレーダーにとってのプールの魅力度へは競合する寄与となる。また、LPerにとってILを気にしなくて済むということはリバランスするインセンティブが低下することを意味し、流動性供給範囲が広くて非効率なプールとなる可能性もある。動的手数料率決定モデルの詳細を決めていく上ではこれらの事情を加味し、丁度良い塩梅を見つけていくことが重要となるであろう。
3. 自己裁定取引機能
この章では、AMMに自己裁定取引を行う機能を持たせることでプール効率性を向上させる案を紹介する。
前述のようにLPerはILが発生するリスクを被り、プール上の価格を市場価格から乖離させる方向にスワップするノイズトレーダー はスリッページによる減価を被る。一方でアービトラージャーはプールの状態を、プール上の価格が市場価格と一致する均衡点に近づける役割を持つが、プールの均衡点における価値をベースとして、市場価格変化やノイズトレーダーのスリッページにより生じた余剰利益をプールから持ち出してしまう。アービトラージャーが一方的に利益を得られるこの状況は、プールに参加するステークホルダー間の利害構造の歪みと捉えることができる。
そこで、Uniswap v4に導入されたフックを用いることでスワップ取引の前後にAMMが自分のプールに裁定機会がないか監視し、アービトラージャーの機能の一部を演じることによって、従前であれば外部に持ち出されていた余剰利益をLPerへのILの補填・ノイズトレーダーへのスリッページの補填に用いることで、トレーダーにとっては実質的なスリッページの軽減によりプールの魅力が増大することになり取引の活性化が見込まれ、それによりLPerにとっての利益が増大する。また市場価格の変動が生じた際に新しい均衡点からの余剰価値がアービトラージャーによって外部に持ち出されてしまうことがIL発生のメカニズムであるから、ILの根本原因の緩和への試みとも解釈することができる。
AMMが自プールにて裁定取引を行うためには、裁定機会を探す際の価格差の評価のための市場価格参照機能、自プールでスワップ取引をする原資を調達するための通貨借入機能、価格差を利用して利益を得た後に返済用通貨に交換するための外部とのスワップ機能が要るだろう。これらは、例えば市場価格参照機能はChainLink, 通貨借入機能はAaveのFlash Loan, 外部とのスワップ機能は1inchなどDEXアグリゲータの機能を用いることによってブロックチェーン上で完結することができるだろう。AMMは外部市場価格を参照し、プールに預け入れられた各通貨残高から、それらの適当な基軸通貨 ベースで測った合計価値として定義されるプール価値を算出することができる。AMMにスワップの注文が入ると、差し出される通貨量を既知としてスワップ後の残高、そしてプール価値を先見的に算出することが出来るから、beforeSwapフックにて市場価格参照、本来のスワップ取引の前後のプール価値の大小比較を行うことによって、プール価値が増大する場合はスリッページから保護すべきノイズトレーダー、プール価値が減少する場合はアービトラージャーと利用者をカテゴライズすることができる。取引がアービトラージャーによるものの場合、そのままbeforeSwapフックで借入を行い、自プールでスワップ、つまり自己裁定取引させた後に、本来の取引を実行させる。このとき自己裁定取引を一定以上の出来高で行うと、利益を得ようとしたアービトラージャーが逆にスリッページを受け不利益を被ってしまう。そうなるとアービトラージャーでさえこのプールで取引を行わなくなってしまい、beforeSwapフックにおける自己裁定取引をトリガーする当初の注文自体が無くなってしまう可能性があるため、最低でもアービトラージャーの取引部分がプール価値を増大させないような範囲の出来高で自己裁定取引を行うよう制約をつけるべきだろう。
もちろん、そのような出来高の範囲も、注文の出来高とプール価値の情報を元に先に計算しておくことができる。アービトラージャーのスワップ完了後、それが本来均衡に向けた取引であっても自己裁定取引によりずらされた所為で均衡点を通り越した状態に遷移しているため、afterSwapフックで均衡点まで再度自己裁定取引を行い、返済通貨をDEXアグリゲータを通じて用意し、返済を行う。本来アービトラージャーが外部に持ち出すはずだった余剰利益の一部が手元に残るため、これをLPerに寄付することで、ILが軽減されたことになる取引がノイズトレーダーによるものだった場合、スワップ後均衡点からより離れた状態になるので、afterSwapフックで均衡点に戻す方向に自己裁定取引を行うことで余剰利益を回収することができる。その利益をLPerに寄付しても良いし、生じる利益を見越してbeforeSwapフックでトレーダーの取引とは逆方向へのスワップに費やすことで、トレーダーが被るスリッページを軽減することにも利用することができる。LPer, トレーダー両方に利益が生じるように調整した実装を行うことで、プールの効率性が向上したと主張することができるだろう。
上記の議論で行ったアービトラージャーの買い注文より先に自己取引を行う行為はフロントランニングにあたり、既存金融ではこのような行為は規制されている。しかしながら、提案手法のようにアービトラージャーが不利益を被らないよう配慮された手続きが透明性の高いDEX上で規定されている場合、議論の余地があるだろう。またノイズトレーダーへのスリッページの軽減を行う際、最後に均衡点まで戻し切るにはDEXアグリゲータ上で自プールより安い価格で通貨を入手する経路を見つける必要がある。均衡点まで戻し切らなければその限りではないが、緩和できるスリッページもその分軽度なものとなってしまう。しかし、自プールが非効率であるほどそのような機会を見つけることができこの手法により効率性を高めることができるほか、より高効率なプールが見つからないほど自プールが効率的になっていれば既に効率的なプール運営が達成出来ていると言えるだろう。
4. 仕組債プール
この章ではフックにおける条件分岐を利用することで仕組債のように振る舞うプールを組成する案を紹介する。冒頭で言及した指値注文の例では価格が特定の値に達するか否かをフック上で判定することで実装することができる。そのような価格による条件分岐のほか、ブロックチェーン上のブロック数をカウントすることで時間に対する分岐も導入できるだろう。時間・価格を元に条件分岐を行うことが出来れば、例えば株価指数リンク債のような特定時刻に特定の価格レンジに収まるかどうかを判定し条件分岐を行うような仕組債同様の機能を持つプールを考えることができる。例えば早期償還条項付ノックイン型日経平均リンク債 [4] は、ノックアウト(KO)評価日において日経平均株価がKO水準に達していれば額面100%で早期償還し、期中に日経平均株価がノックイン(KI)水準を下回るKI 事由が発生した上で最終評価日の日経平均株価が期初値を下回っていれば額面割れで満期償還するなど、時間と価格を参照した条件分岐によりペイオフが変化する商品である。このような仕組みは所望のペイオフを実現するためであったり、債券と株式の中間的なリスク/リターンプロファイルを実現、伝統的な商品との低相関を実現することによる分散効果の期待など、利用者の詳細なニーズに行き渡る商品展開を可能にする。Uniswap v3 時点でスワップの機能は確立したものとして、Uniswap v4ではそのカスタマイズ性を駆使して、更なる金融サービスを展開するのに利用可能であると期待できる。
では、実装方法について考えよう。プールが仕組債としての機能を持ち、LPerがプールにLPすることで仕組債のようなペイオフを享受できる状況を考える。プールには販売期間から運用期間へ切り替える時期を規定するブロック数と、満期を規定するブロック数、ほか運用期間中にKO判定を行うブロック数とクーポンの利払いを行うブロック数がそれぞれ複数規定されているものとする。クーポンの利払いはDonate機能を用い、beforeDonateフックにて利払いタイミングかどうかを判定する。スワップ手数料はこの利払いタイミングまで累積させ、クーポンの原資とする。また、スワップだけでは一定の利回りを保証できるとは限らないため、Aaveなどのレンディングプロトコルへの貸出を行い、一定利率を確保する運用を別途行うことを考える。運用開始段階でafterInitializeフックにて例えばLP総額の半分をAaveに貸し出し、残りをスワップ用にUniswapに残すという操作を行う。運用期間中はAaveから利息を、Uniswapからスワップ手数料を受け取り、これらをクーポンの原資とする。運用期間中はプールでスワップが行われると、afterSwapフックにてプール上の価格変化に応じたKI/KOの判定を行う。現在のブロック数がKO判定を行う時刻となっていれば、プールの価格がKO価格を超えていればKO時の償還価格にて早期償還する。KOしない場合、KI価格を上回っているかをチェックし、上回っていれば償還額は額面を維持、下回っていれば価格が下がった分償還額は減少する。運用期間中のKI/KO判定による条件分岐を元に償還時期・償還額が決まり、償還もDonate機能を用いて実行する。beforeDonateフックで償還判定をした後、償還する場合はAaveとUniswapから資金を引き上げ、LPerにDonateする。この時Uniswapから引き上げた資金はILを被っている可能性に注意されたい。
上記手法による仕組債プールの実現には、参照価格や利益の分配方針の詳細を詰める必要がある。上記では参照価格はプール上の価格としたが、オラクルの価格とすべきか議論する余地がある。商品として打ち出す際の利率などの諸条件としては出来高に依存するスワップ手数料の不定性があるため、利率は一定利率を担保できるAaveの表示利率とし、スワップ手数料は+αという扱いで広告することになると考えられる。また仕組債プールを組成したプール作成者に分配する利益の詳細も規定すべき事項であり、例えば現実的には期中運用期間(プール運営期間)については顧客がプロトコルフィーをプール作成者に払い、プール償還時については顧客とプール作成者の間でとトリガー条件に応じて元本の返済額を変えることなどが考えられる。
償還時の元本の支払額によって、LPerもしくはプールがどのようなペイオフを享受するのかも、定量的に評価する必要があるだろう。
5. おわりに
本レポートではUniswap v4で新規導入されたフックを用いて実現する意義があると考えられる3つのアイデアを紹介した。動的手数料率と自己裁定取引機能の導入は、ILを抑制しLPを活性化させることでより資本効率の良いプールの実現に寄与すると考えられ、仕組債プールの組成はUniswap v4のカスタマイズ性がDeFiにおいてより詳細なニーズに適応する商品展開の足掛かりになることを示唆している。これらの例はUniswap v4のビジョンのほんの一部分に過ぎず、その拡張性から広範な応用が今後も議論されていくだろう。様々なユーザーの欲求に対する解がフックとして実装されていき、これまでにないUXをもたらすと共にDeFi市場がまた一段と一世を風靡する足掛かりとなるかもしれない。
参考文献
[1]:Uniswap Labs Blog, “Our Vision for Uniswap v4”, June 2023, https://blog.uniswap.org/uniswap-v4
[2]:Uniswap, “Uniswap v4 Core [Draft]”, June 2023, https://github.com/Uniswap/v4-core/blob/main/whitepaper-v4-draft.pdf
[3]:Paradigm, “Intent-Based Architectures and Their Risks”, June 2023, https://www.paradigm.xyz/2023/06/intents
[4]:SBI証券, “早期償還条項付ノックイン型日経平均リンク債”, https://www.sbisec.co.jp/ETGate/WPLETmgR001Control?OutSide=on&getFlg=on&burl=search_bond&cat1=bond&cat2=japan&dir=japan&file=comment/bond_japan_P2329.html