作者:アロー

最近はDeFiトラックの評価方法のまとめをやってます。いくつかの事例を調査した結果、Uniswap は影響力と反復ロジックの点で代表的なものであり、この記事では Uniswap について包括的にレビューします。

Uniswap の V1 から V4 までの反復および UniswapX プロトコルの起動の内部ロジックは、DEX トランザクションの機能革新とメカニズムの最適化です。

V1 は当初暗号化分野で AMM を実装し、V2 は ETH リスクのリスクを軽減し、操作がより困難な価格オラクルを開始しました。V3 は一元的な流動性を通じて資本の非効率性の問題を解決し、V4 はカスタマイズ可能な DEX を実装し、UniswapX プロトコルはオークション メカニズム サードパーティ アグリゲーターの競争力により、価格スリッページの最適化が可能になります。

Uniswap開発の歴史

Dune のリアルタイム データによると、Uniswap は依然として最大の市場シェアを持つ DEX です。

主要な DEX としてはそれほど長い間存在していませんが、開発プロセスを見てみましょう。

2017 年 6 月、Vitalik は「パスの独立性について」という記事を発表しました。

2018 年 11 月に Uniswap V1 がリリースされ、ETH と ERC-20Token 間のトランザクションをサポートしました。

2020 年 3 月に、Uniswap V2 がリリースされました。これは、任意の 2 つの ERC-20Token ペア間のトランザクションをサポートします。

2021 年 5 月に Uniswap V3 がリリースされました。LP ファンドの利用を改善し、集合流動性の概念を提案しました。

2023 年 6 月に、Uniswap V4 がリリースされました。値の漏洩を防ぐためのフック コントラクトのカスタマイズが導入されました。

2023 年 7 月に、オンチェーンとオフチェーンの流動性を集約し、MEV を保護する Uniswap X が開始されました。

Uniswap V1: 自動マーケットメイクの試み

2017年、Vitalik氏は自身のウェブページに「On Path Independent」という記事を公開し、その中でCEXとは異なる取引手法である自動マーケットメーカー(AMM)を暗号化分野で初めて紹介した。もちろん、このアプローチは、暗号通貨以外のサークル (伝統的な金融サークルなど) で長い間議論されてきました。

株式市場、先物市場、または既存の CEX におけるほとんどの取引はオーダーブック (オーダーブックモード) で行われることがわかっています。マーケットメーカー (ブローカーや集中取引所など) は、価格が一致した場合に買い手の買い注文と売り手の売り注文を照合し、それによって買い手と売り手の間の取引を完了します。

しかし、分散化の場合には問題が発生しました。その理由は、DEX の分散化環境(誰でも市場の作成に参加できる)では、対応する流動性や取引レートを提供するオーダーブックモードでの取引を照合することが難しいためです。経験が比較的乏しく、十分な流動性がなければ、CEX の運用効率に匹敵するのは困難です。

Vitalik によるこの記事では、自動マーケット メーカーという新しい概念が暗号化市場に導入されています。この概念では、資産の価格設定は、従来の注文帳モデルではなく、価格設定アルゴリズムを通じて行われます。

AMM モデルでは、マーケット メーカーの見積りやシステム マッチングの必要がなく、トレーダーはプール内の流動性を直接使用して資産交換を実現できます。

TokenA と TokenB は一定の積関係を形成します: tokenA_balance(p) *tokenB_balance(p)=K (K は変更されません)

これは、Constant Product Market Maker (CPMM) と呼ばれる流動性主導の取引システムです。このアプローチでは、トークン A とトークン B の間の (単調な) 関係を定義し、いつでもそのデリバティブを計算して価格を与えることにより、パスに依存しないマーケット メーカーを形成できます。

三者: LP、トレーダー、裁定取引者

AMM のマーケットメイクメカニズムでは、オーダーブックモデルのような特定の取引相手は存在せず、資産の実際の価値は一定の商品の数式によって決定され、ある程度まで取引相手と比較することができます。資産の自動取引を実現できるスマートコントラクト。

誰かがスマートコントラクトで流動性を提供する必要があり、流動性プロバイダーはLP(流動性プロバイダー)です。LPは、プール内のスマートコントラクトに資産を注入することで取引に流動性を提供し、それによって取引手数料収入を獲得します。

LPが初期流動性プールを構築した後、トレーダーはプールを通じてトークンを交換することができ、裁定取引者は異なる市場間の価格裁定を通じて資産価格を市場価格と一致させるために率先して維持することになります。

2018 年 11 月にリリースされた Uniswap V1 では、すべての資産を ETH を通じて引き換えることができます。 ETH と ERC-20Token 間の取引では、誰でもトークンを追加してネイティブ ETH と取引できます。ETH は本質的に資産取引仲介者です。

取引したい場合、単一のプールでは何が起こるでしょうか?

1 つの ETH が 100TokenA の価値があり、ETH/TokenA プールが 10 ETH と 1000 TokenA で構成されていると仮定します。

このとき、10 ETHと1000 TokenAの価値は1000米ドルと同じであり、資産価値比率は1:1となります。

k=10 *1000=10000、この商品は流動性を追加することなく変更されません。

ここで、5 ETH をプールに販売したいとします。その場合、次のようになります。

y=10000/(10+5)=666.67、プール内のETH数が15に増え、この時のUSDC数が666.67となったので、5ETHを333.33TokenAに交換し、この時のUSDC数はプール内の USDC 1 つの ETH の価格は 666.67/15=44.44 です。つまり、1 つの ETH は 44.44 TokenA に相当します。

もちろん、1 つのプールの価格が他の取引市場の価格と大きく異なる場合、価格差を食い尽くすまで裁定取引者がすぐに押し寄せます。結局のところ、AMM メカニズムは取引価格を生成することしかできず、市場価格を発見することはできないため、裁定取引者の役割は非常に重要です。

一時的な損失、LPトークン、取引スリッページ

一時的な損失は、プールに入金されたときと比較して、入金されたトークンの価格比率が変化したときに発生します。変化が大きければ大きいほど、無常の喪失も大きくなります。

さて、LP として、例を示し続けます。

UniswapV1 コアの式: x∗y=k

ここで、流動性プロバイダーとして、初期流動性として 10 ETH と 1000 TokenA をプールに追加し続けます。この時点で、1 ETH は 100 TokenA に等しく、2 つの資産数量の定数積は 10*1000= です。 10000(x*y=10000,x=100y)。

このとき、1 ETH の価格が 200 TokenA に上昇すると、x*y=10000、x=200y と変換でき、x=7.071、y=1414.21 と計算されます。

この時点で、流動性プールは当初の 10 ETH と 1000 TokenA から、7.071 ETH と 1414.21 TokenA に変更されました。

問題は見つかりましたか?

このとき、すべての資産を引き換えると、7.071 ETH と 1414.21 TokenA を取得します。TokenA を使用して計算された実際の価値は、最初の 10 ETH と 1000 TokenA に基づいて計算すると、現在の値となります。価格は 10*200+1000=3000TokenA である必要があります。

収入のこの部分の差額 (3000-2828.41=171.59TokenA) が一時的な損失です。

一時的な損失が発生するのは、分散型取引所の自動マーケットメーカーメカニズムの下で、流動性プロバイダーが価格変動に基づいて資金を調整し、その結果、元本損失やリターンの逸失が生じるためです。

彼らは買い手と売り手の両方の役割を果たすため、価格が下落すると保有資産を増額し、価格が上昇すると保有資産を減らさざるを得なくなり、損失が発生します。

もちろん、ETH で短期/長期契約を開くことでリスクをヘッジおよび管理することもできます。

ユーザーがLPとして行動して流動性を提供し、価格変動に耐えるよう促すために、LPトークンが誕生しました。これは、流動性プロバイダーが各取引の手数料の一定の割合を受け取る報酬です (UniswapV1、トレーダーは取引の手数料として 0.3% を支払い、流動性プロバイダーが所有します)。同時に、LP が自身で追加した流動性を引き出すためのバウチャーとしても機能します。

もう 1 つの概念は、取引スリッページです。これは、DEX 取引をよく行う友人であれば間違いなくよく知っているでしょう。流動性主導の取引システムである AMM の美しい一定の商品方程式は滑らかな曲線であり、価格は需要と供給に応じて常に変化します。

このとき大量のトークンを取引するとスリッページが発生し、予想価格とプールから得られる実際の価格に一定の差が生じます。つまり、希望価格と取引価格の間には乖離が生じてしまいます。

Uniswap V2: アダプテーション、Oracle、フラッシュ ローン

Uniswap V1 は、本質的に ERC-20/ETH 取引ペア間の取引のみをサポートし、ERC-20 トークン間で交換するための移行通貨仲介として ETH を使用しますが、LP プロバイダーには ETH リスクが生じます。一時的な損失とスリッページのリスク。

Uniswap V2 では、依然として「コンスタント プロダクト マーケット メーカー」メカニズムに基づいていますが、V2 のアップグレードにより、トランザクション用の任意の 2 つの ERC-20 トークン ペアのサポート、つまり任意の ERC20 を作成できることを含む効率の向上がもたらされました。 ERC20 ペア。ETH の移行パスを介してペアリングする必要はありません。

この点については詳しく説明しませんが、V2 のアップグレードには多くの要素が含まれていますが、さらに重要な点は 2 つあります。価格オラクルの改善とフラッシュ ローンの実現です。

Oracleの価格設定の改善

Uniswap V1 のプロセスでは、プール内の 2 つの資産の準備金を分割して計算された価格は、簡単に操作できるため、オンチェーンの価格予測として使用すると安全ではありません。

この V2 アップグレードの目的の 1 つは、価格操作のコストと難易度を高めることです。

V1 では、他の契約がデリバティブの決済に現在の ETH-DAI 価格を使用していると仮定すると、測定価格を操作する攻撃者は ETH-DAI ペアから ETH を購入し、つり上げられた価格でデリバティブ契約の決済をトリガーし、その後 ETH を決済することができます。ペアを売り戻して、実際の価格に戻します。この場合、トランザクションはアトミック トランザクションとして、またはブロック内のトランザクションの順序を制御するマイナーによって発生することもあります。

V2 では、市場価格のバランスを決定するために、価格はブロックごとに 1 回更新され、次のブロックの前にトークンの交換価格が決定されます。つまり、トークンの市場価格は、前のブロックの最後のトランザクションに基づいています。

このアップグレードでは、新しい価格予測データである時間加重平均価格 TWAP も提供されます。各ブロックの開始時に 2 つの資産の相対価格を累積すると、イーサリアム上の他のコントラクトが任意の時間間隔にわたる 2 つの資産の時間加重平均価格を推定できるようになります。

より具体的には、Uniswap V2 では、誰かが各ブロックの開始時にコントラクトを操作したときの価格の累積合計を追跡することによって、価格が累積されます。ブロックのタイムスタンプに基づいて、各価格は前のブロックが更新されてからの時間量によって重み付けされます。これは、(更新後の)任意の時点でのアキュムレータの値が、契約履歴における毎秒のスポット価格の合計である必要があることを意味します。

オラクルのユーザーはこの期間の開始と終了を選択できますが、攻撃者が TWAP を操作するコストはより高くなり、価格を操作するのは比較的困難です。

フラッシュローンを実現

結局のところ、フラッシュローンは従来の金融と比較して絶対的な革新です。ブロックチェーンのように実際のトランザクションをロールバックすることはできません。

フラッシュ スワップ フラッシュ ローンは V2 で導入されました。ユーザーは、資産をプールに自由に貸し出し、チェーン上の他の場所で使用することができます。資産を返却し、トランザクションの終了時に対応する利息を支払うだけです (お金が正常に返されない場合は、トランザクションを終了します)。ロールバックされます。

Uniswap プールに保存されている資産を誰でもフラッシュレンディングできるようになります。 V1 では、ユーザーは、アセット A を使用してアセット B を購入する前に、アセットを受け取って使用することはできません。アセット B を取得する前に、アセット A をコントラクトに送信する必要があります。

他にも更新ポイントがいくつかあります。Uniswap V2 による新しい契約フレームワークの調整、シンプルなバイナリ固定小数点形式を使用した価格 (精度) のエンコードと処理、プロトコル料金の更新、ミントプールシェアのメタトランザクションのサポートなどが含まれます。

Uniswap V3: 資本効率の向上

背景: Uniswap V2 には流動性の問題があります。上記の AMM メカニズムの紹介によると、V1 と V2 では、プールの流動性が実際には [0, +∞] 領域に分散されていることがわかります。つまり、プール内では任意の価格が許可されます。 V2. トランザクションが発生します (AMM 定数積の逆関数の滑らかな曲線を参照)。

これは一見良いことのように見えますが、実際には、価格帯のボラティリティが異なるペアを取引する需要はそれほど十分ではなく、一部の取引を除いて流動性が大幅に不足しています。範囲、資産使用率が低い。

ご想像のとおり、価格範囲から大きく離れており、価格が決してそのポイントに到達しない可能性がある価格ポイントで流動性を提供することは無意味であり、無駄です。

集中した流動性

この場合、財務流動性を向上させるために、Uniswap V3 は集中流動性の概念を導入しました。あれは:

流動性プロバイダー (LP) は、特定の価格範囲で流動性を提供することを自由に選択できます。これにより、流動性が向上し、資本効率の高い範囲で運用できるようになります。同時に、さまざまな構成のさまざまな価格変動にも対応できます。資産プールの。

V3 のあらゆる小さな価格帯は、実際には V2 として理解できます。取引中、価格は曲線に沿って滑らかに移動し、価格が V2 の一定の区間に到達すると、価格点は次の価格区間にスライドします。 。

上記の概念を理解すると、V3 のコアである Ticks という新しい用語を理解できるようになります。

ティック、ティックとは、証券を取引できる最小の増分金額です。 V3 では、価格範囲 [0, +∞] を無数の細かいティックに分割することにより、各範囲の上限と下限のエンドポイントに対する制限が実装されます。

流動性は粒度制御によって集約され、個別の均等に分散されたティックによって調整され、各ティックには独自の流動性深度があります。

Uniswap V3 の数学的原理は変更されていますが、V2 の基礎となる層と似ています。

L=ルートxy

L は流動性量と呼ばれ、プール内の流動性は 2 つのトークン資産量の組み合わせです。同様に、2 つのトークン数量の積は K ですが、各ティックの流動性の深さは異なるため、異なる深さの等価式は同じではなくなります。

数学的原理については詳しく説明しません。以下は V3 の数学的原理に関する Atis Elsts の論文です。興味のある方はご自身で読んでください。

Uniswap V2 の標準取引手数料は引き続き 0.3% ですが、V3 では粒度が異なるため、0.05%、0.3%、1% の 3 つの異なる手数料レベルが提供されます。現時点では、LP は最大の利益を得るために最も頻繁に取引される範囲に資本効率を集中させることができます。

さらに、V3 では、V2 に基づいてオラクル全体がさらに最適化されており、1 つの価格累積変数だけを保存するのではなく、一連の変数を保存することで、データの耐用年数を延長し、ガス料金を削減し、コストを節約できます。 。

Uniswap V4: カスタマイズ可能な DEX

Uniswap V4 は Uniswap V3 の集中流動性モデルに基づいており、誰でもカスタム関数を使用して新しい集中流動性プールを Uniswap にデプロイできるため、効率的でカスタマイズ可能な DEX プラットフォームになります。

V4 では、中核となるのはフック コントラクトであり、「フック」を導入することで誰でもこれらのトレードオフの決定を行えるようにすることがビジョンです。

作成者はプールごとに、呼び出しのライフサイクルの主要なポイントでロジックを実行する「フック コントラクト」を定義できます。これらのフックは、流動性プロバイダーに請求されるプールの為替手数料と出金手数料も管理します。

フックとカスタム プール

フックは、サードパーティまたは Uniswap 担当者によって開発された一連のコントラクトです。プールを作成するときに、プールは、後でトランザクションの特定の段階で、それにバインドされたフック コントラクトを自動的に呼び出すことができます。コントラクトは、ロジックを実装するためのライフ サイクルのキー ポイントを呼び出します。

言い換えれば、フックは、プールの実行の指定された時点で開発者が定義したロジックを実行する、外部にデプロイされたコントラクトです。これらのフックを使用すると、インテグレーターは柔軟でカスタマイズ可能な実行を備えた集中流動性プールを作成できます。フックはプールのパラメーターを変更したり、新しい機能を追加したりできます。

各 Uniswap 流動性プールにはライフサイクルがあります。流動性プールのライフサイクル中に、デフォルトの手数料レベルでプールが作成される、流動性が追加、削除、または再調整される、ユーザーがトークンをスワップするなどのいくつかのことが起こります。 。 Uniswap v3 では、これらのライフサイクル イベントは密接に結合され、非常に厳密な順序で実行されます。

ただし、Uniswap V4 でカスタマイズ可能な流動性のためのスペースを作成するためです。フック コントラクトは、マイニング プールのデプロイ担当者がコードを導入するためのメソッドを作成します。これにより、スワップの前後や LP ポジションの変更の前後など、マイニング プールのライフ サイクルの主要な時点で指定された操作を実行できるようになります。

つまり、フックはプール、スワップ、手数料、LP ポジションの相互作用をカスタマイズするためのプラグインであり、開発者はフック コントラクトを介して v4 スマート コントラクトを統合することで、Uniswap プロトコルの流動性とセキュリティを向上させることができます。カスタム AMM プール。

フック コントラクトを通じて実装できる機能の例は次のとおりです。

  • TWAMM を介した一定期間にわたる大規模な注文の実行。

  • 指定された価格で実行されるオンチェーン価格指値注文。

  • ボラティリティに応じて変化する動的な手数料。

  • 流動性プロバイダー向けの内部化された MEV 割り当てメカニズム。

  • 中央値、切り捨て、またはその他のカスタム オラクルを実装します。

Uniswap V4 のコア ロジックは V3 と同じであり、アップグレードできません。各プールは単なるトークン層と料金層以上のものによって定義されるようになったので、そこからさまざまなプールを構築できます。また、各プールは独自のフック スマート コントラクトを使用できますが、フックはプールの作成時に決定される特定のアクセス許可に制限されます。

V4 では、フラッシュ アカウンティングなどのいくつかのアーキテクチャ変更もあり、ガス料金を大幅に削減できます。この機能は、「一時的」ストレージを導入する EIP-1153 に含まれており、カンクンのアップグレード (イーサリアム カンクン) の後に実装される予定です。

さらに、V4 バージョンでは、シングルトン モード (すべてのプールの状態を 1 つのコントラクトに保存)、ライトニング アカウンティング (プールの支払い能力を確保) が使用され、ネイティブ ETH のサポートが復元され、ERC-1155 トークンがサポートされ、ガバナンス メカニズムが追加されるため、改善が待たれます。

UniswapX: 競争の強化

UniswapX は、AMM やその他の流動性ソース間で取引するための、新しい許可不要のオープンソース (GPL) オークションベースのプロトコルです。

このプロトコルにより、次のような複数の領域で交換機能が向上します。

  • 流動性ソースをプールして価格を上昇させる

  • ガス交換なし

  • MEV(最大抽出値)の防止

  • 失敗した取引には手数料はかかりません

  • 今後数か月以内に、UniswapX はガスレスのクロスチェーンスワップに拡大します。

次のレベルのアグリゲーション 次世代のアグリゲーション

背景: オンチェーントランザクションは革新を続けており、流動性プール、新しい手数料層、L2、および流動性を分散させるさらなるオンチェーンプロトコルの急増につながっています。

解決策: UniswapX は、AMM プールや独自のプライベート インベントリなどのオンチェーン流動性を使用してトランザクションを満たすために競合する必要があるサードパーティにルーティングの複雑さをアウトソーシングするオープン ネットワークを通じて、この問題を解決することを目指しています。

UniswapX を使用すると、トレーダーは最良の価格が得られているかどうかを心配することなく Uniswap インターフェイスを使用できるようになります。トレーダーの取引は常に透過的に記録され、オンチェーンで決済されます。すべての注文は Uniswap Smart Order Router によって行われ、サードパーティは Uniswap V1、V2、V3、そして発売時には V4 と競合することになります。

本質的に、UniswapX は競争メカニズムを強化し、サードパーティのルーティング選択を通じて各資産プールの価格スリッページを最適化します。

さらに、UniswapX は次のような新しい試みも開始しました。

ガス取引は不要で、失敗しても手数料はかかりません。トレーダーは独自のオフチェーン注文に署名し、その注文はトレーダーに代わってガスを支払う第三者によってオンチェーンで送信されます。第三者は取引価格にガス料金を含めますが、以下の方法で最良の価格を競うことができます。複数の注文をバッチで実行し、取引コストを削減します。

MEV 保護は、もともと裁定取引を通じて取得した MEV をより有利な価格でトレーダーに返します。 UniswapX は、ユーザーがより明示的な形式の MEV 出金を回避するのに役立ちます。サードパーティのプライベート資産を使用して実行された注文は「サンドイッチ」できず、サードパーティは注文をオンチェーンの流動性プールにルーティングするときにプライベート トランザクション リレーを使用するよう奨励されます。

UniswapX の今後のクロスチェーン バージョンでは、スワッピングとブリッジングが 1 つのシームレスな操作に結合されます。クロスチェーン UniswapX を使用すると、スワッパーは数秒でチェーン間をスワップできるようになり、その進行状況を楽しみにできます。

Uniswap の主要テーマ: 反復

Uniswap の V1 から V4 までの反復の内部ロジック、および UniswapX プロトコルの開始は、DEX (AMM) の機能革新です。

V1 は当初暗号化分野で AMM を実装し、V2 は ETH リスクのリスクを軽減し、操作がより困難な価格オラクルを開始しました。V3 は一元的な流動性を通じて資本の非効率性の問題を解決し、V4 はカスタマイズ可能な DEX を実装し、UniswapX プロトコルはオークション メカニズム サードパーティ アグリゲーターの競争力により、価格スリッページの最適化が可能になります。

Uniswap は、借入コストの削減、ユーザー エクスペリエンスの最適化、競争意識の強化、新しいテクノロジーの採用など、あらゆる段階で自らを革新していることがわかります。この反復的なアップグレードが、優れたプロトコルを永続させるための基盤となります。