
Uniswap:ゼロから無限へ
TechFlow厳選深潮セレクト

Uniswap:ゼロから無限へ
Uniswapは常に境界を押し広げながら、これらの問題の解決とユーザーエクスペリエンスの向上を目指しています。
執筆:Luke、SevenX Ventures 投資家およびリサーチャー
本稿の作成にあたり、Maru Network の Alex、Uniswap ラボの Brad、CelerNetwork の Dong Mo、Manta Network の Shumo、Hyperoracle の Suning から貴重な議論、洞察およびフィードバックを頂いたことに特別に感謝する。
序文
疑いなく、Uniswapは最も広く使用されている分散型アプリケーション(dApp)である。同プロトコルは継続的に革新的なソリューションを生み出し、業界のルールを再定義してきた。本稿では、Uniswapがゼロから始まり無限の可能性へと進化する驚異的な旅路を深く掘り下げる。各バージョンの特徴を分析することで、Uniswapがいかに新たな課題に対応し、変化するニーズに適応してきたかを明らかにする。さらに、暗号資産分野における最新の進展が、分散型取引所(DEX)の将来をどのように形作っているかも探る。それでは、ゼロから無限への旅に出発しよう。
v0:概念実証
Uniswap登場以前、EtherDeltaが注目されていた唯一の分散型取引所(DEX)だった。しかし、そのユーザーエクスペリエンスは非常に悪かった。
GnosisのAlan LuやVitalikら多くの業界リーダーが、従来のオーダーブック方式とは異なる、オンチェーン取引のための代替手法として自動マーケットメイカー(AMM)の概念を提唱した。
特徴
定積AMM
Uniswapは、定積式の公式(x * y = k)を用いて資産価格を算出する。この式において、xは取引対象の資産準備高、yは価格付け資産の準備高を表す。プールからトークンを取り出す(購入)際には、kが一定となるよう、一定量の金額を預ける(売却)必要がある。プール内のトークン比率が、そのトークンの価格を決定する。

出典:Uniswap
なお、他のAMMでは流動性カーブを表現するために異なる数学的公式を採用している。例えば、CurveのStableswapやBalancerの加重プールなどが挙げられる。
問題点
Uniswap v0はあくまで概念実証であり、解決すべき多くの問題が残っていた。主な問題は以下の2点である。
1. ETH/ERC20ペアのみに限定される。
2. 単一の流動性提供者(LP)のみが利用可能。
v1:機能的な分散型取引所(DEX)
特徴
2018年11月2日、Uniswap v1がイーサリアムメインネットにリリースされた。このバージョンでは複数の流動性提供者が内部トークンを通じて手数料および担保を追跡できるようになり、ファクトリーコントラクトにより誰でも任意のトークンをETHとペアにして取引できるようになった。これにより、機能的なDEXが実現した。ただし、依然としていくつかの課題が存在していた。
問題点
すべてのトークンがETHとペアで取引されるため、ユーザーは単一トランザクション内でETHを仲介して任意のERC20トークンを別のERC20トークンと交換できた。しかし、DAI/USDTのような頻繁に取引されるステーブルコイン間の交換では、毎回ETHを経由するのは非効率的である。このようなケースでは、直接的なトークン間ペアが望まれる。
v2:マネーレゴ(Money Lego)
2020年5月、Uniswap v2がリリースされ、プロトコルに複数のアップグレードが加えられ、取引の柔軟性と実行可能性が拡大した。
特徴
ERC20/ERC20ペア
Uniswap v2の顕著な違いは、ERC20トークンをETHではなく他のERC20トークンと組み合わせた流動性プールを作成できることである。これにより、流動性提供者はステーブルコインペアなど多様なERC20ベースのポジションを維持できるようになり、利便性が向上した。
価格オラクル
Uniswap v2は、多数のDeFiアプリケーションが利用可能なオンチェーン価格情報を提供する。これらの価格情報は改ざん耐性が高く、極めて価値が高い。この仕組みでは、ブロック終了時の価格がコアコントラクトの累積価格変数に追加され、特定の価格が存続した時間に応じて重み付けされる。この変数は、本質的にコントラクトの歴史全体を通じた毎秒のUniswap価格の合計を表している。

出典:Uniswap
外部コントラクトはこの変数を利用して、指定された時間間隔における時間加重平均価格(TWAP)を正確に追跡できる。時間間隔の開始時と終了時にERC20ペアの累積価格を読み取り、その差を時間間隔で割ることで、該当期間のTWAPが得られる。

出典:Uniswap
フラッシュスワップ
Uniswap v2はまた、AAVEが先駆けて導入したフラッシュローンに類似した「フラッシュスワップ」機能を導入した。この機能により、ユーザーは事前担保なしでプールから任意のERC20トークンを引き出し、任意の操作を実行した後、トランザクション終了時に同等額のトークン(+手数料)を返却すればよい。
フラッシュローンはDeFiプロトコルへの攻撃と関連づけられることが多く悪名高いが、真の問題はフラッシュローン自体ではなく、既存のプロトコルに存在する脆弱性にある。フラッシュローンのアトミック性により、通常必要なプール間裁定やマージンレバレッジなどの操作に対する初期資本要件が排除される。
問題点
このAMMは革新的で新規市場の取引・流動性促進に貢献したものの、依然として非効率な部分があった。例えば、低ボラティリティのトークンを扱う際、流動性は狭い価格帯にのみ必要だが、現行設計では全価格帯に均等に分配されていた。
v3:資本効率性
Uniswap v3は、画期的な集中流動性設計を採用し、最も柔軟かつ効率的なAMMとなることを目指した。
特徴
集中流動性(CL)
Uniswap v2では、流動性はx*y=kの価格曲線に沿って均等に分布し、0から無限大の全価格帯にわたって提供されていた。しかし、ほとんどのプールでは流動性が十分に活用されていなかった。
Uniswap v3では、流動性提供者が資本を特定の価格範囲に集中させることができ、期待される価格帯でより高い流動性を得られる。このカスタマイズにより、LPは自身の好みに合った価格曲線を構築できる。こうした個別ポジションは一つのプールに集約され、統一されたカーブとして取引が行われる。その結果、トレーダーにもLPにもメリットがある:カスタム範囲内での流動性集中により、トレーダーのスリッページが減少し、LPはより高い手数料収益を得られる。
集中流動性は、ステーブルコインや流動性ステーキング派生品といった、狭い価格帯で取引される資産にとって特に価値が高い。一方で、高ボラティリティのペアに対しては、高度な流動性管理技術が必要となる。一般の小規模LPにとっては、ポジションを継続的に効果的に管理することは困難である可能性がある。
レンジオーダー
集中流動性を活かして、市価注文に加えて「レンジオーダー」という新しい注文タイプが導入された。LPは現在価格より高いまたは低いカスタム価格範囲に単一トークンを預けることができる。市場価格が指定範囲に入ると、滑らかな曲線に沿ってある資産を別の資産と交換しながら、同時に取引手数料も獲得できる。
レンジオーダーは「指値注文」と類似した機能を持つが、欠点として価格が逆転すると注文も逆転してしまう可逆性がある。ただし、その過程でも手数料は獲得できる。Barry Fried(@BarryFried1)は、レンジオーダーの具体的な利用例を詳細に解説している。
複数の手数料レベル
Uniswap v3は単一の手数料率ではなく、各取引ペアに対して0.05%、0.30%、1.00%の3つの異なる手数料レベルを導入し、リスクの程度に応じた適切な報酬をLPが得られるようにした。
高度なオラクル
Uniswap v3は価格オラクルに大幅な改良を加えた。単一の累積価格変数を保存する代わりに、一連の変数を保存することで、単純移動平均(SMA)、指数移動平均(EMA)、外れ値フィルタリングなど、より高度なオラクルを低コストで容易に構築できるようになった。
問題点
柔軟性の欠如
集中流動性や複数手数料レベルによりLPに柔軟性が与えられ、新たな戦略が可能になったが、Uniswap v3はAMMや市場の日々進化する機能・革新に適応できなかった。TWAPOrder、指値注文、高度なオラクル、動的手数料などの追加機能を統合するには、コアプロトコルの再実装が必要であった。
一部の機能(例:Uniswap v2で導入された価格オラクル)では、分散型オンチェーン価格データを利用できたが、その代償としてスワップ者のGasコストが増加し、統合者にはカスタマイズの選択肢が不足していた。
流動性管理の複雑さ
前述の通り、初心者LPにとって、特に高ボラティリティのペアでは集中流動性の管理は難しい。自動流動性管理プロトコルはいくつか存在するが、多くはステーブルコイン向けに設計されたシンプルなリバランス戦略にとどまる。残念ながら、高ボラティリティペアでは、長ブロック時間、Gasコスト上昇、ヘッジコスト増加により、これら戦略の効果が制限されることが多い。
また、各LPの集中流動性ポジションは異なり、本質的に代替不可能(non-fungible)である。そのため、NFTでしか表現できず、他のDeFiプロトコルとの統合に課題を生む。
多くの優れたプロジェクトが、リバランス、マネットマーケットでのダイナミックヘッジ、ペルペット、オプションなどさまざまな戦略でこの問題に取り組んでいる。Atis Elsts(@atiselsts_eth)によるLP戦略に関する一連の記事は必読である。
バリュー・リーク
すべての問題の中でも、特に重要なのがバリュー・リーク(価値漏出)問題である。これはUniswap v3独自の問題ではないが、AMM取引量と採用率の増加に伴い、注目されるようになった。バリュー・リークはDEXシステムから以下のように生じる。
フロントランニングやサンドイッチ攻撃により、トレーダーは本来必要以上のスリッページを支払うことになる。
LPはCEX-DEX間の裁定によって価値を失う(いわゆる相対損失リバランス)。
これらの問題を解決するには、Uniswap v3以上にカスタマイズ性と複雑な設計が必要となる。より表現力豊かで強力なDEXプラットフォームが求められている。
v4:究極のプラットフォーム
Uniswap v4は過去のAMMモデルを基盤としつつ、「フック(hook)」の導入により、効率的かつカスタマイズ可能な究極のDEXプラットフォームを目指す。
効率性
シングルトン(Singleton)
Uniswap v3では、各プールはファクトリーコントラクトによって個別のコントラクトとして作成された。一方、Uniswap v4では、すべてのプールが単一のスマートコントラクト(通称「シングルトン」)内で共存する。このシングルトン方式により、プール作成およびマルチホップ取引の関連コストが大幅に削減される。
フラッシュアカウンティング(Flash Accounting)
Uniswap v4では、シングルトン方式がフラッシュアカウンティングを活用して資産移動を最適化する。v3では各スワップ後に資産がプールに入出しされていたが、v4では純額ベースでのみ移動が行われ、会計コストが大きく低下する。EIP-1153で提案された一時的ストレージ(transient storage)により、ストレージスロットの設定・消去コストが低減され、フラッシュアカウンティングの有効稼働に不可欠となる。

出典:Uniswap
ネイティブETH
Uniswap v4はネイティブETH取引を再導入し、トレーダーに以下のメリットを提供する:Gasコストの削減、移動コストの低下、および不要なラッピングコストの回避。
カスタマイズ性
フック
フックコントラクト(またはフック)とは、プール実行中の特定ポイントで事前定義されたロジックを実行する外部デプロイ型コントラクトである。これがv4を非常に表現力豊かでカスタマイズ可能にしている。フックにより、これまでプロトコルに内蔵されていた機能(例:オラクル)だけでなく、独立したプロトコルを必要としていた新機能も実現できる。
Uniswap v4は現在、以下の8種類のフックコールバックをサポートしている。
-
beforeInitialize/afterInitialize
-
beforeModifyPosition/afterModifyPosition
-
beforeSwap/afterSwap
-
beforeDonate/afterDonate
下図はスワップフックのロジックフローを示している。スワップ実行前後には専用のブールフラグがあり、これらの特定ポイントでカスタムコードを実行できる。これにより、オラクル、動的手数料体系、オークション、高度な注文タイプなどの高度な機能開発の基盤が整う。これらの概念については後ほど詳しく考察する。

スワップフックの処理フロー
オラクル
従来のバージョンでは、オラクルはUniswapコアプロトコルに統合されていた。これは他のプロトコルとの統合を容易にし、統合コストを下げたが、カスタマイズ性の低下とスワップ者コストの増加という代償があった。しかし、フックの導入により、オラクル設計の可能性が飛躍的に拡大した。これにより、トリム平均価格オラクルやボラティリティオラクルなど、改ざん耐性の高いオラクルの構築が可能となった。さらに、誰がオラクル更新コストを負担するかもカスタマイズ可能になった。例えば、ETH残高を持つフックコントラクトがGas料を支払うようにし、最初のスワップ者が負担する(持続不可能な)方式を回避できる。最適化されてはいるが、オラクル設計には依然課題がある。例えば、TWAPオラクルは改ざんされやすく、現在価格に遅れる傾向がある。
Uniswapラボは、もう一つ興味深い価格オラクルとして「トリミング価格オラクル(truncated price oracle)」を提案している。このオラクルは流動性プール内の資産の幾何平均価格を計算し、単一ブロック内の価格変動に制限をかける。価格をトリミングすることで、大型取引の価格影響を軽減し、改ざん試みへの抵抗力を高める。
動的手数料
Uniswap v3はLPの選択肢として追加の手数料レベルを導入したが、これらは静的なものであり、現在の市場状況を考慮していない。そのため、LPのサービスに対する報酬が不十分である。
Alex Nezlobin(@0x94305)は、前ブロックの価格影響を考慮し、買い手と売り手に異なる手数料を適用するシンプルで効果的な動的手数料体系を提案した。下図に示すように、CEX価格がp*(現在のAMM価格p_AMMより高い)に移動した場合、売却手数料はδだけ減少し、購入手数料はδだけ増加する。δの値はAMM価格の変化に比例する。この動的手数料体系の目的は、裁定取引と無知の資金流を区別することにある。裁定流は価格変動と自己相関しやすい。

堅牢な動的手数料体系の設計にはいくつかの課題がある。第一に、CEX価格、流動性深さ、ボラティリティなどのオフチェーン信号をどう統合するか。また、アドレス、サイズ、実行時間などの各種オンチェーン信号は、知情流と非知情流を区別する上で信頼性が低く、その有効性評価が難しい。さらに、LPの損失を制限し、手数料がゼロ未満にならないようにすることも重要である。
オークション
フックはオークションの実施手段としても利用できる。これは価値を再びLPに還元するのに役立つ。時期によって、事前オークションと事後オークションに分けられる。
事前オークションはオークションブロックの前に実施される。この概念は、MEVキャプチャAMM(McAMM)に関する研究論文で初めて提唱された。この方法では、ブロックが採掘される前にAMM内で最初のスワップを行う権利がオークションにかけられ、入札価値が再分配される。しかし、この入札プロセスにはいくつかの課題がある。本質的にオプション価格付けを含むため非常に複雑になり得る。また、ブロック提案者がトランザクションを含むブロックを受理するかどうかの最終判断を持つため、検閲の問題が生じる可能性がある。入札価値の公平かつ効率的な分配を保証することも難しい。さらに、落札者が必ずしも最初にスワップ権を行使できるとは限らず、他のトレーダーのエクスペリエンスが悪化する可能性がある。
事後オークションはボラティリティが実現された後に実施され、つまりCEX価格が変化したが次のブロックはまだ提出されていない段階である。このタイプのオークションは効率性が高いという利点があるが、信頼できる当事者または非信頼システムに依存するオフチェーンインフラが必要という課題もある。信頼できる当事者を使うと、検閲や入札のプライバシー問題が生じる。一方、非信頼システムの設計ははるかに複雑である。事後オークションでは、提案者が入札者と結託して裁定取引を意図的に除外する可能性もある。さらに重大な問題として、入札、落札の合意形成、ブロックビルド者への配布プロセスに遅延が生じ、これらすべてが次のブロック提出前に完了する必要がある。最後に、これらのオークションで十分な競争条件を確保し、価値を十分に獲得できるかどうかが難しい場合がある。Sorella Labs(@SorellaLabs)は、高度なインフラとメカニズム設計により、これらの課題に対処するリードを取っている。
Diamondフック
Diamondプロトコルは当初、LVR(Loss-Versus-Rebalancing)を最小化するAMMとして設計された。Diamondプロトコルでは、ブロック生成者がDiamondプールの外部市場価格とプール自身の価格との間の裁定機会を捕獲するためにオークションを行う。これらのオークションの収益は、Diamondプールとブロック生成者の間でインセンティブ互換性を保ちながら共有される。
本稿で述べたように、Diamondプロトコルの変種の一つとして、ブロック生成者が約束した価格に基づいてブロック終了価格を維持する担保プールを実装することがある。価格を約束値に戻すのに十分な担保がある場合にのみ、スワップが実行される。Arrakis(@ArrakisFinance)は現在、Diamondプロトコルの著者の一人Conor McMenamin(@ConorMcMenamin9)と協力し、v4のフックコントラクトを用いてこれを実現しようとしている。
高度な注文タイプ
フックはより高度な注文タイプをサポートし、トレーダーのエクスペリエンスを大幅に向上させる。代表的な注文タイプには、指値注文、ストップ注文、利食い注文、TWAPなどがある。
指値注文
トレーダーはフックコントラクトにオンチェーン指値注文を提出できる。価格が指定された最小価格に達すると、注文が成立する。しかし、従来の金融(TradFi)の指値注文と比べ、オンチェーン指値注文には明らかな欠点がある。オンチェーン注文はGasコストなしではキャンセルできないため、注文の取引比率が低いという問題が生じる。
時間加重平均マーケットメイカー(TWAMM)
大口注文の執行を支援するための一つの解決策として、時間加重平均マーケットメイカー(TWAMM)の実装が考えられる。この方法では大注文を小さなブロックに分割し、最初の取引として実行されることを保証することで、サンドイッチ攻撃を防止できる。また、無知の流れを伴うことが多いTWAP注文の手数料を引き下げることも検討できる。しかし、それに伴う課題として、高いGasコストと、誰がその費用を負担するかの決定がある。
その他のフック
フックを使用して実現可能な他の機能もいくつかある。以下にアイデアを示す。
-
範囲外の流動性をマネットマーケットに貸し出して資本効率を高めるリターン生成型フック。
-
xy=kの流動性カーブと集中流動性の両方を持つプール。
-
即時流動性攻撃を減らすために、LPに引き出し手数料を課すプール。
Suning(@msfew_eth)はGitHub上でフックに関する奇抜なアイデアを共有している。Aiden(@aiden0x4)は素晴らしいオープンフックディレクトリを公開している。
zkAMMおよびzkHooks
ZKコプロセッサは、Dune Analyticsのようなデータインサイトへのアクセスを可能にし、ゼロ知識証明(ZK)技術の利用により信頼性を損なうことなくスマートコントラクトを強化する。ZKコプロセッサのAMM設計への応用は、新興の研究分野である。フックの導入により、ゼロ知識証明をUniswap v4にシームレスに統合できるようになり、zkAMMの新時代が開かれた。
HyperOracle(@HyperOracle)は、Uniswap v2ベースのzkAMM実装を紹介した。ここでaddLiquidityの計算がオフチェーンに移行される。ユーザーが流動性を追加する際、トークン数量、価格、LPトークンシェアの計算が必要となる。この特定の実装では、HyperOracleのzkGraphがaddLiquidityイベントを取得し、必要な計算を実行して証明を生成・公開する。このzkAMM実装には、証明を検証しユーザーにLPトークンを発行する自動化レイヤーが統合されている。
Diego(@0xfuturistic)は、Uniswap v3ベースのzkAMM(zkUniswap)の実装を紹介した。ここでは一部のAMMスワップ計算がRisc Zero(@RiscZero)のzkVMに移行される。ユーザーがプール内でスワップを実行する際、スワップ量、手数料、スワップ後の価格などいくつかのパラメータを計算する必要がある。当初はEVM上のSolidityコントラクトで計算されていたが、新しい実装では中継者がスワップ入力を拾い、計算をオフチェーンで行う。その後、中継者が出力と証明を公開する。AMMは証明を検証し、スワップを決済する。zkUniswapは同時実行制御のためのロックオークションメカニズムを実装している。現在のパフォーマンスはEVMと同等だが、複数スワップの並列化により効率を大幅に向上できる。
取引量の証明もAMMのもう一つのユースケースである。Brevis(@brevis_zk)は、ユーザーの過去取引量に基づいて手数料リベートフックを設計する興味深い例を提示している。これは中心化取引所(CEX)の取引量ベース手数料リベートに類似している。VIPトレーダーは現在、オフチェーンで月間取引量を計算し、ブロックチェーンに安価なゼロ知識証明を提出して非同期にVIPステータスを検証できる。検証後、以降の取引ではスワップ後フックを使ってゼロ知識コプロセッサで埋められた「VIP手数料レベルテーブル」にアクセスし、適切な手数料リベートを自動適用できる。Maru Network(@marunetwork)は現在、ZKコプロセッサネットワークの初期ユースケースとして、非信頼型取引量オラクルを開発中である。非信頼型取引量オラクルを実装することで、DEXは公正かつ透明な方法で報酬を分配できるようになる。この方法により、流動性とユーザーアクティビティが比例してインセンティブ付けられ、好循環が生まれる。NEBRA(@nebrazkp)のUPA(汎用証明集約)などのゼロ知識証明集約サービスを活用することで、証明検証コストを削減できる。NEBRA UPAは複数のループや当事者からの証明を単一の証明に集約し、検証コストの償却を実現する。
まとめると、zkAMMの概念とは、ZKコプロセッサまたはZKオラクルを活用してEVMから計算を移管し、オンチェーンでその証明を検証することである。スワップや流動性調整に関連する計算よりもはるかに複雑な計算も可能になる。例えば、最近の市場変動に基づく動的手数料の計算、特定プールにおける過去のユーザー数の証明、複雑な機械学習アルゴリズムによるリバランス戦略の実装などである。いずれの計算も最終的にO(1)の検証コストとなり、EVMの計算リソース制限を受けなくなるため、無限の可能性が広がる。
v4の課題
Uniswap v4は効率性とカスタマイズ性をAMM設計空間にもたらし、異なる特性・機能を持つプールの創出を可能にした。これは大きな進歩だが、予想される代償もある:プール数の急増により流動性の断片化が進行し、ルーティングがより困難になる。
UniswapX
UniswapXは、ルーティングの複雑性を第三者のフィラーによるオープンネットワークに外注することで、流動性断片化の問題を解決しようとする。これらのフィラーは相互に競争し、AMMプールや自社のプライベート在庫などのオンチェーン流動性を用いてスワップを実行する。この設計は目標志向型であり、ユーザーは欲しい結果を宣言するだけでよく、それを達成する専門家に任せる形になる。
これらのフィラーは高度な代理店であり、高度なルーティングアルゴリズム、高い計算能力、大量の金融資本を備えている。彼らは事前定義されたオークションメカニズムの下で競争し、ユーザーに最良の執行を提供する。ユーザーは価格最適化も受けられ、実行結果が少なくともUniswap AMMプールからの直接取引と同等以上になることが保証される。
UniswapXプロトコルのアーキテクチャを下図に示す。スワッパーはUniswap APIを通じて意図注文を提出し、その形式はPermit2で実行可能なオフチェーン署名となる。Permit2は、ユーザー保有のトークンを安全に移動させるように設計された優れたモデルである。フィラーは、オンチェーン・オフチェーンを問わずあらゆる流動性源を用いてこれらの注文を完了させる戦略を考案する。最後に、オーダーリアクターがUniswapX注文を解決する。彼らは特定タイプの注文を検証し、入出力に解析し、フィラーの戦略に基づいて注文を実行し、成功裏に実現されたかを検証する責任を負う。

出典:Uniswap
現在、UniswapラボによるUniswapXインターフェースの実装では、プロトコルは二段階に分かれている。第一段階はRFQ段階で、ホワイトリストに載った「クォーター」が注文にクォートで応答する。その後、クォートの勝者が排他的期間を持ち注文を完了する。もし完了しなければ、第二段階であるダッチオークション段階に移行し、任意のフィラーがオークションに参加できる。将来的にはクォートシステムを完全に許可不要にする予定である。

出典:Hayden Adams氏によるEthCCカンファレンス「On-Chain Trading」講演
目標志向設計は以下の利点を提供する。
-
適切な価格を得るために複数の流動性源を統合。
-
ガストークンが不要なクロスチェーンスワップも可能。
-
価格最適化により最大可抽出価値(MEV)を内部化。
-
取引失敗時には一切の手数料がかからない。
TechFlow公式コミュニティへようこそ
Telegram購読グループ:https://t.me/TechFlowDaily
Twitter公式アカウント:https://x.com/TechFlowPost
Twitter英語アカウント:https://x.com/BlockFlow_News














