Curve の数学的複雑さは、議論の敷居を高め、いくつかの問題の重要性を曖昧にし、さらには Curve の本質の理解を妨げます。 **この一連の記事は A パラメータに焦点を当て、古代に遡り、いくつかの歴史的出来事を検証し、数学の単純化を試み、Curve に関するいくつかの非常に重要な命題を示します。 **この記事はACのこの提案から始まる最初の記事です。
**パラメータは市場価格に影響を与える可能性がありますか? **
AC と対戦相手のそれぞれの声明
ACの提案に戻りますが、yETHボールトは8月末から9月初旬にかけて急速に拡張されました(yETHボールトの運用はETH、Mint DAIを吸収して保管し、それをyDAIボールトに預ける、つまりCurveに預けることです) y LP としてプールし、CRV 報酬を取得し、それを ETH に販売します。その後、ETH 標準の利点を実感します)。
その結果、たまたまETHの急落が起こり、ETHが急落するたびにDAIの需要が大きく増加しました。 y プールにおける DAI のシェアは急速に低下し、わずか 2% に達しました。
AC は、y プールの A パラメータが高すぎる (A = 2000) と考えており、そのため、y プールは市場にそれほど安くはないはずの DAI を大量に供給することになります。たとえば、彼の次のような議論。
上記の議論は、A を下げた後の瞬時損失に限定されており、非常に単純です。ただし、追跡時間が延長されると、さまざまな価格傾向の下で A の低下によってもたらされる長期的な損益を議論するのが少し複雑になります。価格がよりアンアンカーな方向に発展するか、完全なアンカーに戻るかによって決まり、調整後のAの合計値は、調整なしのAの状態よりも低くなる場合もあれば、高くなる場合もあります。この記事の目的は、A の調整がプールの合計値にどのような影響を与えるかを簡単に説明することだけであり、完全かつ体系的な議論を求めるものではありません。
A パラメータの調整は、オーダーブック内のすべての価格ポイントで未決注文を再配置することに相当し、現在の価格ポイントが変更され、D 値が変更され、損益が生じます。
そのため、一度限りのAパラメータの大幅な調整には唐突感があり、欠陥感さえあります。ホワイトペーパーでは A の動的な管理については触れられていませんが、マイケルが A パラメータの調整方法を修正する必要があることに徐々に気づいたのは、Curve がオンラインになってしばらく経ってからだったと思われます。 **マイケルは、化合物プール A のパラメーターが調整されたことを発表するツイートにコメントを追加しました。 **その後の新しいバージョンのプールでは、A パラメーターの調整が、一定の時間をかけてグラジエントを完了するモードに変更されました。 **
旧プールの A パラメータの 1 回限りの調整方法は単なる欠陥でしょうか?それはそれほど単純ではなく、その背後に攻撃できるポイントが隠されています。幸いなことに、この脆弱性を発見したのはホワイト ハットでした (プロトコルの理解の深さは本当に驚くべきものです)。この攻撃方法については、後ほど別の記事で説明する予定です。
Curveの技術的詳細とガバナンス哲学をAパラメータから見る
一年前、一時期Uni V3のLPを作って、精力的に演奏していました。その頃、Curve Tricrypto Pool の LP であることが、かなり安定して持続可能な主流の資産配分方法であるという話があり、Curve V2 ホワイトペーパーを読んだことに惹かれました。ユニとカーブの気質についてはモヤモヤしているのですが、かなりの違いがあります。 **Uni は可能な限り自由市場を追求していますが、Curve は計画経済の匂いを正確に感じています。 **
この考えを進めるためには、Curve V2 の技術的な内容を徹底的に理解する必要があるのは当然で、私は数か月前から Curve V2 について注意深く勉強し始めました。 Curve の創設者であり、元物理学研究者である Michael は、ホワイト ペーパーの中で数式を自由に組み合わせました。数学と科学のアマチュア読者として、私は中核要素である Xcp とそれに関連する D および仮想価格を見つけるのに苦労しましたが、直感的で理解しやすいものではありませんでした。
研究の過程で、** の達人でも 1 日ではマスターできないことにも気づきました。Curve V2 は V1 をベースに改良を加え、複雑かつ一般化したバージョンです。 **まずCurve V1を理解することで、デザインの本質をより明確に把握できます。達人の道をたどります。
V1の主人公はAとDです。 Aパラメータは簡単そうに見えますが、Aが大きいほど、より多くの流動性が価格1を中心に分配されます、そして一文で終わります。しかし、その年の記録 (Discord/ガバナンス フォーラム/テレグラム) を読むと、A に関するあらゆる種類の質問が次々と浮かび上がりました。純粋に技術的なものもあれば、プロトコル ガバナンスに関連したものもあり、あらゆる種類の、非常に内容の濃いものでした。単一の書き込み A パラメータの起源。以下はその一部です。 ** まず、単一の DEX の固有パラメータとしての A が市場全体に及ぼす影響について説明します。影響力のあるパラメータであるため、その管理は重要な問題となり、A を規制する技術的な詳細については以下でさらに詳しく説明します。 **
Aパラメータという小宇宙的で詳細な話題について書きましたが、初心を忘れたわけではなく、UniとCurveの音律の比較に対する最初の興味も忘れていません。私は今でも、**これらの詳細の背後に哲学の根本的な違いがあるのではないかと尋ねようとしていることがよくあります。 **
1. Aパラメータと市場価格全体の決定との関係
2020 年 9 月 4 日、Andre Cronje は Curve Governance Forum に提案を送信し、y プールの A パラメーターを 2000 から 1000 に調整することを望んでいます。これは小さな議論を引き起こし、いくつかの反対意見もありましたが、数日後に平和裏に採決されました。これは大した重要性のないトピックのように思えますが、後に多くの DeFi プロジェクトでいくつかの問題について広範な議論が行われたことに比べれば、言及する価値はないようです。
Curve の数学的複雑さは、議論の敷居を高め、いくつかの問題の重要性を曖昧にし、さらには Curve の本質の理解を妨げます。 **この一連の記事は A パラメータに焦点を当て、古代に遡り、いくつかの歴史的出来事を検証し、数学の単純化を試み、Curve に関するいくつかの非常に重要な命題を示します。 **この記事はACのこの提案から始まる最初の記事です。
**パラメータは市場価格に影響を与える可能性がありますか? **
AC と対戦相手のそれぞれの声明
ACの提案に戻りますが、yETHボールトは8月末から9月初旬にかけて急速に拡張されました(yETHボールトの運用はETH、Mint DAIを吸収して保管し、それをyDAIボールトに預ける、つまりCurveに預けることです) y LP としてプールし、CRV 報酬を取得し、それを ETH に販売します。その後、ETH 標準の利点を実感します)。
その結果、たまたまETHの急落が起こり、ETHが急落するたびにDAIの需要が大きく増加しました。 y プールにおける DAI のシェアは急速に低下し、わずか 2% に達しました。
AC は、y プールの A パラメータが高すぎる (A = 2000) と考えており、そのため、y プールは市場にそれほど安くはないはずの DAI を大量に供給することになります。たとえば、彼の次のような議論。
反対派は主に 2 つの観点を中心に展開しており、そのうちの 1 つは、yETH Vault による CRV の継続的な販売によってもたらされる売り圧力に関連していますが、ここでは議論しません。
私が興味を持っているのは、価格決定メカニズムに関する別の角度です。
たとえば、@iamaloop 氏の見解は、安い DAI など存在せず、裁定取引者がどこでも価格を平準化するだろうというものです。 A パラメータは、Curve y Pool 内の通貨価格が市場価格と等しくなった後、各通貨パーセンテージの不均衡度にのみ影響します。
@sjlee にも同様の表現があります。 @angelangel0v は、裁定取引者が A パラメーターが高いからといって、より低い価格を獲得できるわけではないと指摘しています。
これら 3 人の意見は次のように簡単に要約できます。DAI の価格は市場の需要と供給によって決定され、A パラメーターはさまざまな DAI 価格ポイントでのカーブ y プールの深さを決定できるだけで、市場価格を決定することはできません。 。
両者の見解の対立は、実際には「A パラメータと市場の需要と供給の関係は何なのか?」という疑問につながります。
供給側における A パラメータの重要な影響
**場合によっては、A パラメータは供給側に非常に大きな影響を及ぼし、価格決定において最も重要な変数の 1 つとなります。 **
需要と供給の曲線図を紹介する前に、いくつかの重要な前提と基本的な要因について説明します。
まず、Curve はパッシブ LP モードです。私の判断では、供給側としてのパッシブ LP は比較的安定しています。つまり、市場状況の変化に直面しても、その運用頻度は比較的低いです (「運用」とは、バランスの取れた方法で流動性にアクセスすること、またはトランザクション属性の単一通貨モードの入出金流動性、「相対」はUni V3を基準としたアクティブ運用型のLPまたはCEXマーケットメーカーです)。
第二に、Curve LPの収入の大部分は、特に2020年において取引手数料とはほとんど関係のないCRVトークン報酬から来ており、収益率の絶対値は比較的高いです。その後、市場の比較的小さな変化(1 ~ 2% など)に直面しても、LP はより安定します。
上記 2 つの点の複合効果により、Curve LP がより安定します。
第三に、一部のトークンでは、Curve が最大の流動性ポジションです。たとえば、2020年のyプールはかつてDAIにとって最大の取引所プールでした。
上記 3 点が同時に確立されると、市場全体の供給曲線は主に Curve Pool によって決定されます。これら 3 つの前提を念頭に置いて、以下の需要と供給曲線の議論に入ります。
まず市場全体の供給曲線を見ると、Aの値が曲線の形状に影響を与えます。 **A の値が高くなるほど、価格 1 付近の曲線は「平坦で長く」なり、流動性がより豊富になります。 **
市場全体の需要と供給の曲線
需要曲線をもう一度見てみると、まず安定した通貨市場の下での曲線、つまり需要曲線 1 を想定します。 ETHが急激に下落すると、CDPを閉じる需要が急激に高まり、市場はより多くのDAIを必要とするため、需要曲線は右にシフトします(需要曲線2)。
供給曲線と需要曲線の交点を観察すると、価格に対する A パラメーターの影響が明確にわかります。 **A 値が低いほど、新しい価格均衡点は高くなります。 **
トークンの主な流動性ポジションがカーブにある場合、A パラメーターが価格決定に非常に重要な影響を与えることがわかります。
結論
Aパラメータは市場全体の価格決定に多かれ少なかれ影響を与え、その程度はCurve Poolトークンの報酬率やCurve Poolの市場シェアなどの要因に依存します。
このような重要なパラメータを考えると、当然ながら一連の疑問が生じます。 Aパラメータの設定メカニズムは何ですか?誰が設定するのか、その値の選択基準など。
さらに、市場は静的ではないため、一連の動的な問題が引き続き発生します。 Aパラメータはいつ調整する必要がありますか? AMM 式レベルで A パラメータを調整するとどのような影響がありますか?等
2. A によってもたらされる曲線の変化と損益を調整する
312から1か月以上離れた2020年4月17日の時点でも、DAIはアンカーされていないプラスの状態にあり、価格は約1.02です。
Michael (Curve の創設者) は、Compound プールの A パラメータを 900 から 400 に調整することを全員が支持するかどうかを確認するために Twitter でアンケートを開始しました。
49人が投票に参加したが、回答したのは1人だけだった。 8 時間後、マイケルは A を 400 に調整し、別のツイートを送信しましたが、返信は 0 件でした。
その時点では、この問題の議論に実際に参加できる人はほとんどいませんでした。 Michael は、一人の人の実験、パラメータのデバッグ、観察、改善に没頭しているのかもしれませんが、Telegram 上の短い言葉から、彼の興味と楽しさを感じます。
今回のパラメータ A の調整に戻ると、1 日当たりの化学物質の約 0.1% の損失が生じました。
私のこの記事は、A が調整された後は何を意味するのかを明確に説明することです。なぜ損失が発生するのでしょうか?
さまざまな A 値に対応する曲線の図
実際のパラメータ設定のセットを選択し、グラフィックで表示しました。この記事で説明する対象は Curve V1 プールであり、曲線の公式は V1 ホワイト ペーパーに記載されています。
黒い曲線に対応するパラメータは次のとおりです: A = 10 D = 20,000
現在のプールは黒い点にあり、X_token と Y_token の数はそれぞれ 2500 / 18105、価格は約 1X_token = 1.36 Y_token です。
ここで A を 3 にドロップすると、曲線が赤い線に変わります。この曲線のパラメータは次のとおりです: A = 3 D = 19,022
赤と黒の曲線を比較すると、直線に近づく黒の曲線の割合が多くなっていることがわかります。これは A の中核機能でもあります。A が大きいほど、価格 1 付近の流動性が高くなります。A (10)黒の曲線の ) は赤の曲線の A(3) よりも高くなります。同様に、価格 1 から遠く離れた範囲の流動性は、黒い曲線よりも赤い曲線の方が多くなります。
Twitter 投票の時点では、DAI は少しアンカーされていませんでした。A 値が低い赤い曲線を使用すると、A 値が高い黒い曲線よりも多くの流動性を提供できます。これが、マイケルが A を調整したい理由です。彼は、プールがより多くの料金を徴収できることを望んでいます。
A を 3 に減らすことによってもたらされる変化に戻りましょう。A が 3 に減らされた瞬間、プール内の 2 つのトークンの数は変化しませんが、D の値は変化します。また、図から、現時点での接線の傾きが変化し、曲線の形状も変化していることがわかります。
これらの変更については、以下で具体的に説明します。接線の傾きの変化や曲線の形状は、別の角度から見るとより直感的に分かります。 D 値の変更には、プール損益評価の話題が含まれます。
オーダーブックの観点から調整後のA値の変化
カーブプールはオーダーブックの観点から理解できます。単一のプールは、A パラメーターと D パラメーターに従って、すべての価格ポイントでの未決注文数の異なる分布に対応し、すべての未決注文はリンクされ、全体として存在します。
前節のケースでは、A が 10 から 3 に下がったとき、すべての未決注文が黒の未決注文のセットから赤の未決注文のセットに瞬時に全体的に大きな調整を行ったことがわかります。
上の画像の基本的な説明から始めましょう。
横軸は価格で、1.00 は 1 X_token = [ 1.00 ~ 1.01 ) Y_token を表し、1.01 は 1 X_token = [ 1.01 ~ 1.02 ) Y_token を表します。スペースを節約するために、価格が 1.00 未満の未決注文は省略しました。
縦軸は Y_token の数量 (つまり、X_token の買い注文と未決注文) を表します。黒い部分には、価格が 1.36 を超える範囲のデータがありません。黒い曲線の現在の価格が 1.36 であるため、> 1.36 は、X_token のより高い価格の売り注文と未決注文を意味します。この図では、保留中の買い注文に Y_token を使用する部分のみを調べているため、1.36 を超える部分のデータはありません。
黒と赤のコントラストを見てみましょう。まず、前節で述べた接線の傾きの変化に対応して、現在価格が変化しています。 Aの調整後、現在価格は瞬時に1.92となり、赤字部分の未決注文は1.92まで延長されました。言い換えれば、一定数の Y_token が 1.36 ~ 1.92 の価格範囲内で X_token の買い注文をバッチで出しました。
これは実際には非常に奇妙な変化であり、DEX の現在の価格はスワップなしで変化しました。これが市場価格との価格差を形成することはすぐに想像でき、裁定取引者が即座に介入して価格を 1.36 まで押し上げるだろうと想定します。
さらに、1.00 ~ 1.36 の各価格ポイントでの未決注文の数が異なり、全体として高レベルの未決注文の数が多くなっていることがわかります。これは、前のセクションで説明した曲線の形状の変化に対応します。
A 調整による損益 - 最も直接的な計算方法
Michael のツイートでは、コンパウンド プール A パラメータの削減によりいくらかの損失が生じると述べています (「1 日分の利益をワイプする」)。その背後にある数学的な関係を議論する前に、「損失/利益と損失」を明確に定義する必要があります。
最も直接的な考え方によれば、損益の定義は非常に単純で、2 つのトークンの値を U またはそれらのいずれか (X_token または Y_token) に変換し、2 次元を 1 次元に変換し、次に、調整前と調整後の A の合計値を比較します。これはマイケルの言う「With Impermanent Loss」でもあります。
この意味での損益について簡単に説明してみます。簡略化のため、すべての議論は手数料 = 0 であると仮定します。
前回の記事で使用した例に基づくと、A が引き下げられた後、X_token の瞬間価格は高くなり、裁定取引者が価格を A の調整前の価格に戻そうと介入するため、損失が発生します。理由は簡単で、前節で述べたように、A を下げることは、市場価格よりも高い価格で X_token の買い注文を大量に出すことと同じであり、この異常な買い注文は裁定取引者によって食べられ、必然的に損失が生じます。
グラフで見るとさらに分かりやすくなります。
黒点と黒曲線は調整前のプールの状態で、対応する価格は1.36です。 A 引き下げ後、プールは赤い曲線に従って動作し、引き下げの瞬間、プールの価格は 1.92 になり、裁定取引者の介入により、プールの状態は急速に黒い点から赤い点に移動します。 1.36の価格に。
A調整前後のプールの合計値を比較する必要があり、その方法は比較的簡単です。
まず、A の調整された合計値 (裁定取引者の介入後) を確認します。赤い点における赤い曲線の接線と Y 軸の交点を見つけます。これは、現在の価格で 1 つの Y_token に変換された 2 つのトークンの量です。
調整前のAの合計値を見てください。黒い点における黒い曲線の接線と Y 軸の交点を見つけます。 A の調整前と後 (裁定者介入後) の価格は同じであるため、この接線は最初のステップの接線と平行になります。
明らかに黒接線とY軸の交点が高い、つまりA調整前の合計値が高いことがわかります。ダウングレードは合計価値の損失をもたらします。
上記の議論は、A を下げた後の瞬時損失に限定されており、非常に単純です。ただし、追跡時間が延長されると、さまざまな価格傾向の下で A の低下によってもたらされる長期的な損益を議論するのが少し複雑になります。価格がよりアンアンカーな方向に発展するか、完全なアンカーに戻るかによって決まり、調整後のAの合計値は、調整なしのAの状態よりも低くなる場合もあれば、高くなる場合もあります。この記事の目的は、A の調整がプールの合計値にどのような影響を与えるかを簡単に説明することだけであり、完全かつ体系的な議論を求めるものではありません。
一時的な損益評価の削除
2 つのトークンの現在の価格に応じて換算する、つまり無常を考慮するのが最も直感的な測定方法ですが、この方法はさらに面倒です。 Curve は、非永続的な要因を排除し、計算を簡素化し、ほとんどの場合に適用できる、別の独自の損益評価方法を導入しています。
これは D 値であり、A に加えて Curve 曲線式のもう 1 つの中心的なパラメータです。 Curve の公式 Web サイトの各プールに表示される仮想価格は、D 値に基づいて計算されます。
D 値は、プール価格が 1 (完全なアンカリング) の場合のプール内の 2 つのトークンの合計数です。現時点では価格が 1 であるため、2 つのトークンの数量を単純に加算できます。プール価格が 1 に等しい点は、曲線と直線 x=y の交点です。
前の例に戻ると、A を下方に調整すると、D の値が小さくなることがわかります。したがって、長期的には、価格をアンカーに戻すことができれば、D 値の変化は A 調整によって生じた損失を反映することができます。
上で使用した例では、現在の価格は 1.36 ですが、これは実際には非常に極端です。主流のステーブルコイン/LSDプールなどのCurve V1プールに注目すると、価格は1から大きく逸脱しません。価格が1に近い場合は無常の影響が非常に小さいため、D値の変化をそのまま損益に近似的に反映させることができます。
**D 値は、一次元の尺度とプールのパラメーターの 1 つとして、履歴値の計算と追跡が容易であり、損益の概算評価により適しています。 **
結論
A パラメータの調整は、オーダーブック内のすべての価格ポイントで未決注文を再配置することに相当し、現在の価格ポイントが変更され、D 値が変更され、損益が生じます。
そのため、一度限りのAパラメータの大幅な調整には唐突感があり、欠陥感さえあります。ホワイトペーパーでは A の動的な管理については触れられていませんが、マイケルが A パラメータの調整方法を修正する必要があることに徐々に気づいたのは、Curve がオンラインになってしばらく経ってからだったと思われます。 **マイケルは、化合物プール A のパラメーターが調整されたことを発表するツイートにコメントを追加しました。 **その後の新しいバージョンのプールでは、A パラメーターの調整が、一定の時間をかけてグラジエントを完了するモードに変更されました。 **
旧プールの A パラメータの 1 回限りの調整方法は単なる欠陥でしょうか?それはそれほど単純ではなく、その背後に攻撃できるポイントが隠されています。幸いなことに、この脆弱性を発見したのはホワイト ハットでした (プロトコルの理解の深さは本当に驚くべきものです)。この攻撃方法については、後ほど別の記事で説明する予定です。