気分で始めた独り言毎日配信も気づけば一週間が経ちました。おかげさまで1,000PVを軽々と突破したくさんの方に見ていただけています。まだメールアドレスの登録が完了していない方はぜひこれを機によろしくお願いします。
UniswapX、BASE mainnet、onchain summer、USDT depeg、色々書きたいことがあるんですが時間が足りないですね。今日は何を書こうかな、、、
今回は昨日の話の続き、beta版が始まったUniswapX、Michael Egorov㌠のまたまた続報の3本立てでお話しすることにしました。
昨日の続きを少し
本題に入る前に昨日の話の続きを少しだけできればと思います。Curveが自らのpoolを資産保護のために攻撃し資金を抜いたというもの。
トランザクションを見た時ゾッとしたんですが、1つのトランザクション(0x0067…)で335回のToken Transferを行っているんですよね。それをMalion(@MalionDiaz)と「さぞかしガス代高かったのでは?」と話していました。
該当トランザクションの含まれるblock #17845588を見てみましたが、見たことないような専有率のblockが出てきました。
少し解説しておくとEthereumでは一つのblockに格納できる情報量に上限があり、各blockの目標gas量は1,500万ですがネットワークの需要に応じて3,000万を上限に増減する仕組みになっています。
このblockで利用したgasは29,914,067で上限に対して99.71%の利用率でした。そしてこのトランザクションはGas Limitを29,000,000に設定され、最終的に1txに21,001,546gasを使用しました。
動き出す巨頭、Uniswapの本気
UniswapといえばDeFi、DEXの王と言ってもいいでしょう。そこまでUniswapが成長できたのはなぜでしょうか。実はUniswapが初めてのDEXってわけでも全然ないので単なる先行者利益ってことではないんですよね。
個人的にどんなプロジェクトでも成功している要因は「継続的な活動の発信」だと思ってまして、正直どのプロジェクトも正攻法でいけば最初のアテンションは一定数獲得できるんですよ。重要なのはそのあとの動きで、なんのアナウンスもないプロジェクトなんて関わってて相当なメリットが無い限りは冷めちゃうでしょ。Airdropの示唆を盛り込んでうまくグロースさせているプロダクトがまさに前者の方ですね。
ここでは継続的な開発と発信を続けるUniswapの新しいプロダクト「UniswapX」について公式blogをもとに基本的な解説を行います。
本内容を執筆するにあたり、大手CryptoVCである「Paradigm」のDan Robinson氏にご協力いただきました。翻訳引用のご快諾をいただきありがとうございます。
Special thanks to Dan Robinson and Paradigm
まずUniswapはみなさんお馴染みのAMMを採用したDEXだと思います。流動性や取引量から鑑みても業界初期から成長を続けている最大規模のDeFiです。ちなみにUniswapが誕生したのは2018年のこと、もうすでに5年も経ってるんですよね。
しかし市場の成長に合わせて他にもたくさんのDEXが誕生したり、Uniswap自体も成長を続ける中でいくつかのバージョンに分離してしまったり、その他にもいくつかの問題が発生している現状を解決するために「UniswapX」が誕生しました。
UniswapXは、オンチェーンかつセルフカストディの取引を促進するために、AMMやその他の流動性プールを横断した取引を可能にする「Dutch auction」の仕組みを基盤にしたopen sourceのプロトコルです。メリットは下記のようなのもの。
流動性ソースの集約による価格改善
オンチェーン上でのスワップ経路は取引するpoolによって異なるのでとても重要な一方で、より構造が複雑化している現状があります。その中でより最適な価格で他プロトコルと競争力のあるものにするためには継続的で大きなコストがかかります。
DEXの流動性プール毎の価格決定のみならず、Uniswap内でもV2、V3、将来的にはV4と分断していく現状を解決する必要があるということです。
なのでUniswapXでは複雑な価格決定の一部をthird-partyのfillerのオープンネットワークにアウトソーシングすることでこの問題を解決しようとしています。そうするとfillerはAMM poolや独自のプライベートイベントのようなオンチェーンの流動性を使ってスワップを埋めるための競争をするようになります。
要するにUniswapXを利用することで、常にbest priceなスワップが実現でき、その公平性が常にオンチェーン上に記録されるだけではなく、Uniswap内(V1~4)でも競争が起こる構造を実現できます。
上記の文章だけではやや分かりづらいので、UniswapXのDutch auctionを使った実際のスワップフローも合わせて説明します(source: Uniswap Help Center)。
Aliceさん(swapper)が1ETHをオンチェーンでUSDCにスワップしたいとします。そのときの候補者としてfillerネットワークにBob、Charlie、Danielleの3人がいました。
次にUniswapの流動性を利用した価格決定とともに3人の候補者からスワップ価格の見積もりを受け取りました。
Uniswap V3: 997USDC/ETH
Bob: 1,000USDCで買うよ
Charlie: 999USDCはどう?
Danielle: 998USDCで買いたい
いちばん最適な価格を提示してくれたのはBobさんなので、AliceさんはBobさんの価格でスワップを合意し注文に署名をします。しかしこの注文には最大値として1000USDCが、同時に最小値の997USDCも注文条件に含まれます。
Bobはこの注文をカバーする必要があるので、アービトラージを行い利益を得ることができる流動性プールや注文を探すか、自身のUSDCを利用します。もちろん都合が悪くなったらBobは注文の申し出を拒否することもできます。
仮にBobが拒否したとしても再度Aliceが署名する必要はなく、自動でCharlieの注文価格に提示価格が移行します(値幅は3で説明した997~1,000になる)。
このとき1blockが経過したのも関わらず誰も999USDCの注文を呑まなかった場合は1ETHが998USDCで売買可能になります(ここがDutch auction)。
この時点でDanielleがUniswap V3とSushiswapの流動性を利用して1ETHを998USDCで注文できることに気づいたとします。このとき1USDCの利益を得ながらカバーできることがわかったのでAliceの注文に合意しました。
よってUniswapやSushiswap単体でスワップするよりも良い価格でAliceさんはETHをオンチェーンで売却し良い条件のUSDCをすることができました。
この価格決定で重要なのは、Aliceさんがbest priceを探すためのコストをかける必要なくスワップできたことと、本来MEV searcherたちがアービトラージやback-runで稼いでいた利益をswapperが享受できるということです。それに加えてprivate relayを通じてトランザクションが実行されたので、悪意あるMEV botからのfront-runを防ぐことにも成功しました。MEV関連の話は次に説明しようと思います。
悪意あるMEVからの保護
MEVはオンチェーンでのスワップが直面している課題の一つであり、swapperにとっての約定価格が悪化する最大の原因になってしまっています。Dutch auctionのフローで説明したfront-runからの保護によって、従来の価格決定プロセスに近い価格でスワップできることから常にbest priceを維持可能になります。
従来のトランザクションフローと違ってfillerとの取引がprivate relayを使用して行われるので、MEV botによるsandwich攻撃を防ぐことができるということです。
ガスレススワップの実現
UniswapXではswapperはオフチェーン注文に署名するのみで、fillerがガス代をオンチェーンで代わりに支払います。swapperはガス代を支払う必要がないので、チェーンのネイティブトークン(ETHやMATICなど)を必要せず、取引が失敗した時でもその時点ではまだオンチェーンで処理をしていないのでガス代を支払う必要がありません。
一方でfillerがガス代を負担する代わりに約定価格が悪くなりそうですが、複数の注文をbatch処理することで、より最適な価格での提示を行うことができます(DutchとBatchは間違えやすいので要注意です)。
UniswapXがXチェーンに
いまはEthereum mainnetだけでの提供ですが、今年後半にはクロスチェーンに対応したUniswapXをリリースします。数秒間でチェーンをまたいだスワップがガス代を必要なく利用できます。詳しい設計は今回は省略します。
UniswapXへの所感
これらの動きはUniswap V4をリリースするUniswapの身としては最適なムーブだと捉えられます。V2とV3のときも流動性の分断は問題になりましたが、V3リリース時より成熟したこの市場で、よりAggregatorの需要は増していると感じます。
1inchにも似たような仕組みのガスレススワップがありますが、課題感を生み出しているUniswapがリリースすこと、Uniswap walletに統合されることに価値があるようにも感じます。またMEVに関する議論が悪い意味でも良い意味でも行われている昨今で、注目を集める一つのいい材料になっているような気がします(一方でMEVがすべて悪意あるものだとか、悪いイメージだけで広がってほしくないとも思います)。
ここでDan Robinson氏が投稿したスレッドにすごく勉強になる内容が書かれていたので翻訳を行いながら解説します。
「UniswapXがDEXとしてMEV、相互運用性の観点からゲームチェンジャーになりうると考える5つの理由」- Dan Robinson
UniswapXのアーキテクチャはDEX自体に広大な設計空間をもたらします。署名されたオンチェーン注文(intents)はtransactionよりも効率的で柔軟性が非常に高く、エコシステム内で最終的に強力な力を発揮するだろう。
swapperにMEVによる利益を実質的に還元するための良い基盤になり、orderflow auction(OFA)にとってより適しているものだと言えます。いまのOFAは通常、txベースのスワップに基づいて構築されていますが、一般的に複数の取引とオンチェーンで支払う余分な手数料を必要とする点で最適解ではないです。次世代のOFAはUniswapXで構築されると思います。
オフチェーンでのオーダーマッチングを改善するために、競争力やプライバシーの向上や分散化などもっとやるべき事が残されています。オフチェーン注文はtransactionよりも不透明ではなく、数字的に扱いやすい特性を持っています。これはorder matchingにおいて重要な要素になるでしょう。長期的な視点で見ると、UniswapXのようなorder matchingのコンポーネントはFlashbotsのSUAVEのような分散したblock builderを実現するための理想的なものになるとも言えます。またSUAVEの登場がUniswapXのパワーを最大限に活用し、重要さを実証する最初のアプリになりえるとも言えます。
UniswapXはシームレスなcross-chain swapおよびcross-rollup swapに革命をもたらすものになります。Rollupが中心の構想を描くEthereumのロードマップが現実的に機能するためには、ユーザーがRollup間で資産をより安く、速く移動できる基盤が必要です。UniswapXがcross-chain swapが当たり前の未来を実現するための正しいデザインを提唱したと感じています。
UniswapXはUniswap V4を補完する存在であり、passive(パッシブ、受動的)な流動性供給を持続的なものにシフトしていくための新しい手段の一つです。これは「Uniswapエコシステムの改善はzero-sum(ゼロサム)な配分からは生まれない」という根本的な私の考えが反映されています。swapperが最適な約定価格を得られない場合は最終的には他のDEXに移行することを余儀なくされます。それによってLPが利益を得れない構造になればLPまでもそのDEXを離れてしまいます。UniswapXはこの現状を解決するための有用な手段になるといえます。
まとめると現状のDEXの抱える課題感を網羅して解決するとともに、Ethereumを中心とした相互運用性などを活かしたエコシステムが発展していく上で、UniswapXが重要なキーになりうるということです。
Uniswap V4の仕組みへの期待感は十分にありますが、一方でたくさんの課題感も挙げられていました。それらを解決してUniswapエコシステムとしてオンチェーン市場を引っ張っていくために、これはなくてはならないマイルストーンだと捉えられます。Uniswapとしての成長は衰え知らずですなので、これからも頑張って欲しいですね。
Daily Michael Egorov㌠
今日もMichael Egorov㌠によるCRVのOTC取引などのオンチェーンアクティビティが確認されました。ここまで粘り強くおってる日本人もワイぐらいでは?
流石にこれまでの情報の蓄積を活かすために、いままでの一連の取引と返済状況を図解してツイートしようと思います。
※Michael Egorov㌠のアドレスは解説中では「㌠」と省略しています。
AAVE V2から15,000,000CRVを引き出し
31. ㌠ → stake-capital.eth
取引総量: 1,250,000CRV
取引資金の受け取りはBinance 14のHot walletから入金
31の取引で得た500,000USDTをCurveで501,567.616759546MIMにスワップ
501,567.616759546MIMをabracadabra.moneyへ返済し、担保資産として利用していた4,500,000CRVを引き出し
㌠が保有する11,000,000CRVをCream Financeに預け入れ、1,100,000,000crCRVをmint
11,000,000CRVを担保にCream Financeから1,999,999USDTをborrow
1,999,999USDTをCurveで2,002,187.405716158MIMにスワップ
2,002,187.405716158MIMをabracadabra.moneyへ返済し、担保資産として利用していた11,000,000を引き出し
0x0000…Ae4cというcontractでIncrease Bounty Durationを2回実行し、それぞれで200,000CRVをtransfer(合計: 400,000CRV)
さらに↑と同contractでCreate Bountyを実行し、200,000CRVをtransfer
zunamiteam.ethに170,000CRVをtransfer(㌠のアドレスで対価を受け取っていないことから、OTC取引ではない可能性あり)
1CRVをAAVE V2にdeposit
Frax Financeに9,000,000CRVを担保として預け入れ2,035,000FRAXをborrow
2,035,000FRAXすべてをCurveで2,033,428.383059889MIMにスワップ
2,032,465.142412048MIMをabracadabra.moneyへ返済し、担保資産として利用していた10,154,436.926971365CRVを引き出し、abracadabra.moneyへのMIMの負債は完済
この時点で㌠の負債は下記の通りです。
AAVE: 189CRV→29M USDT, Health Rate(2.21)
Fraxlend: 47.6M CRV→11.25M FRAX, Health Rate(1.95)
Inverse: 30.6M CRV→7.67M DOLA, Health Rate(1.86)
Silo: 2.35M CRV→739K XAI, Health Rate(1.97)
936.84590426 3CrvをCurveで963.240647841MIMにスワップ
5つのアドレスから30,406.504382528 3Crvを受け取る
㌠の別アドレス(㌠2、0x425d…6C5A)から4,977.222295977 3Crv
0xF895…b1a0から7,016.084953463 3Crv
0x9B44…B029から8,237.600384616 3Crv
0x32D0…6451から2,243.990618732 3Crv
CurveのFee Distributor(0xA464…22Dc)から7,931.60612974 3Crv
31,343.35028679 3CrvをCurveで32,185.404061643FRAXにスワップ
36,460.005013314FRAXをFrax Financeへ返済
70,000FRAXをFrax Financeからborrow
15,000FRAXをCurveで15,074.890384266DORAにスワップ
15,000FRAXをCurveで15,184.2709395にスワップ
40,001.869117021FRAXをCurveで39,967.12033927crvUSDにスワップ
CurveのFactory Plain Pool(crvUSD-MAI)に1crvUSDと1MAIで流動性供給を行い、2crvUSDMAI-fを受け取る
CurveのFactory Plain Pool(crvUSD-MAI)に10,000crvUSDと15,000MAで流動性供給を行い、24,993.846632253crvUSDMAI-fを受け取る
CurveのcrvUSDMAI-f Gauge Depositに24,995.846632253crvUSDMAI-fをdepositし、24,995.846632253crvUSDMAI-f-gaugeを受け取る
CurveのFactory Plain Pool(crvUSD-XAI)に1crvUSDと1XAIで流動性供給を行い、2crvUSDXAI-fを受け取る
CurveのFactory Plain Pool(crvUSD-XAI)に10,000crvUSDと15,183.2709395XAIで流動性供給を行い、25,176.723147796crvUSDXAI-fを受け取る
CurveのcrvUSDXAI-f Gauge Depositに25,178.723147796crvUSDXAI-fをdepositし、25,178.723147796crvUSDXAI-f-gaugeを受け取る
CurveのFactory Plain Pool(crvUSD-DORA)に1crvUSDと1DORAで流動性供給を行い、2crvUSDDORA-fを受け取る
CurveのFactory Plain Pool(crvUSD-DORA)に10,000crvUSDと15,073.890384266XAIで流動性供給を行い、25,072.213435598crvUSDXAI-fを受け取る
CurveのcrvUSDDORA-f Gauge Depositに25,072.213435598crvUSDDORA-fをdepositし、25,072.213435598crvUSDDORA-f-gaugeを受け取る
9,964.12033927crvUSDをCruveで9,970.91347277FRAXにスワップ
9,965.001360329FRAXをFrax Financeへ返済
㌠が保有する2,000,000CRVをCream Financeに預け入れ、200,000,000crCRVをmint
2,000,000CRVを担保にCream Financeから499,999USDCをborrow
499,999USDCをCurveで500,502.828851514FRAXにスワップ
500,490.299053863FRAXをFrax Financeへ返済
ここまで見てきましたが、ダイジェスト的にまとめておきます。
abracadabra.moneyへのMIMの負債は完済
Frax Financeから追加の融資を受ける
Cream Financeから追加の融資を受ける
crvUSD-MAI、crvUSD-XAI、crvUSD-DORAのstable poolにそれぞれ25,000ドルずつ流動性供給
こんな感じでしょうかね、Abracadabra DAOで熱心に議論されていたMIMの負債を完済したので肩の荷が降りたことでしょう。
ここにきて追加のOTC取引を行わずにFraxやCreamで追加のローンを組んだのは金利が低いところへの借り換えでしょうか。今後の動きも継続的に追っていきます。
まとめ
UniswapXについて長々と書きましたが、やっぱUniswap V4のほうがキニナル方が多いと思います。個人的にもまだ100%理解できたとは思っていないので、どこかのタイミングで調べて独り言にまとめようかなと思います。
なんか書いてほしい内容とかありましたら、ぜひLINEかDMで連絡ください。ニュースレターにまだ未登録の方は登録ぜひお願いします。