Notional Financeの概要: Notional V2 Japanese.Ver
Notional Financeの概要
Notional V2 Japanese.Ver
Notionalとは?
Notionalはイーサリアム上のプロトコルで、 fCashと呼ばれる新しい金融商品を通じて、固定金利・固定期間の暗号資産の貸し借りをよりシンプルで身近なものにします。
Notionalの重要性は?
金融市場では、変動金利ではなく、固定金利で資金調達が行われることが一般的です。固定金利は、市場参加者に確実性を提供し、リスクを最小限に抑えるものであり、米国債の大半が固定金利を使って発行されているのはこのためです。Notionalは、イーサリアムの分散型金融システムに固定金利をもたらし、暗号ユーザーに安定した資金調達への同じアクセスを提供します。
fCashの重要性は?
fCashは、Notionalユーザーが将来の特定の時点で価値の移転を約束するための、シンプルで信頼できるメカニズムを提供します。fCashを取引することで、ユーザーは時間を超えて価値を効率的に行き来することができます。この柔軟性は、イーサリアムの金融デザイン空間に新たな次元をもたらします。
Notionalの開発者は?
Notionalは、テクノロジー、トレーディング、セキュリティ、デザインに精通したプロフェッショナルチームによって開発され、2020年初頭にローンチされました。
Notionalの管理方法は?
Notional V2は、 NOTEトークン保有者によって運営されます。Notionalチームは、プロトコルのローンチ後の短期間、分析とパラメータの推奨を行います。プロトコルの非中央集権化が進むにつれ、Notionalチームはプロトコルのガバナンスの中心的な役割から離れていくことになります。
Notionalの機能性は?
このドキュメントを読めば、Notionalがどのように機能しているのか、技術的な背景を把握することができます。より高度かつ詳細な説明は、こちらの記事をご覧ください。
FAQ
重要な用語
fCash — fCashは、将来の特定の時点でのプラスまたはマイナスのキャッシュフローに対する請求権を表す譲渡可能なトークンです。
nTokens — nTokensは、ユーザーがNotionalのレンディング・プラットフォームに流動性を提供するための主要な手段であり、すべてのアクティブな満期を持つ特定の通貨のNotionalの総流動性の一部と交換可能なERC20アセットです。
cTokens — cTokensは、Compoundプロトコルに固有の利回り資産です。cTokensは、Notionalで使用され、流動性プロバイダーのリターンを良くします。
Note — NOTEは、Notionalのプロトコルを管理するERC-20トークンです。NOTEの保有者は、Notionalのシステムパラメータやスマートコントラクトの変更を提案し、投票し、実行することができます。
借り入れをする場合、担保価格の変動による影響は?
担保価格が変動すれば、担保率も変わります。担保率の最小値は、借り入れている資産や担保の種類によって異なります。例えば、ETHに対するUSDCローンの最低担保率は145%です。担保率が145%を下回ると、清算の対象となります。
清算中、清算人は精算対象となったアカウントの担保の一部をオンチェーンのオラクル価格よりも割安で購入し、清算されたアカウントの負債の一部を返済します。清算人は、アカウントの担保がわずかに不足している場合でも、アカウントの担保の40%以上を購入することができます。以下はその例です:
1.借り手は、ETH/USDCの交換レートを4,000USDCとして、1ETHを担保として預けます
2.その後、借り手は2,000USDCを借ります。この場合、担保の価値が負債の価値の2倍であるため、担保率は200%です。この価格では、担保の価値は債務の145%になるため、清算価格は2,900USDCです。
3.ETH/USDCの為替レートが2,800USDCまで下がった場合の担保率は140%となり、清算対象となります。
4.清算人は、借り手のETHの40%をオンチェーンのオラクル価格より8%割引で購入し、USDCを彼らの口座に入れます。
この例では、正確には清算人は約1,037 USDCで約0.4ETHを購入します。これにより、借り手は0.6ETHの担保、963USドルの残高、約175%の担保率となります。
ローンを早期終了した場合の返済のペナルティは?
違約金はありません。いつでもローンを終了することができ、返済の際には、元金とそれまでに発生した利息を支払うことになります。さらに、実勢金利でローンの残額を清算します。実勢金利の変動は、早期にポジションを解消した場合の収益に影響します。借り入れの決済は、相殺された貸し出しを実行すると考えることができます。
例えば、100,000DAIを4%で6ヶ月間借りて、3ヶ月後に現在の実勢金利である8%で解約した場合、最初の3ヶ月間で1,000DAIの金利が発生します。しかし、4%の借り入れを8%の貸し出しで相殺したため、残りの3ヶ月間のローンでも利益を得ることができます。このシナリオでは、早めに解約することで、残りの3ヶ月分の4%の金利差を得て、最初の3ヶ月で支払った利息を相殺することができます。
貸し借りは1回のトランザクションで行われますか?
ほとんどの場合、そうなります。Notionalは、ユーザーの摩擦を可能な限り少なくするようにプロトコルを設計しています。貸し出し、借り入れ、流動性提供、流動性や現金のウォレットへの引き出し、返済、ローンの引き出しなど、すべて1回のトランザクションで完了することができます。
満期になった場合にするべきことは?
ローンが満期になった時点で、固定金利が停止し、代わりにベースラインの複利型変動金利に切り替わります(資産はcTokensとしてNotionalに自動的にラップされます)
Notionalには手数料がかかりますか?
借り手と貸し手は、プロトコルと流動性プロバイダーの間で分配される少額の取引手数料を支払います。Notionalのサイトに表示されている金利レートには、この手数料が含まれています。
満期までに返済できなかった場合はどうなりますか?
Notional V2では、プロトコルに負っている債務を満期に返済しないと、ペナルティレートで第三者に強制的にオートロールされる対象となります。現在、ペナルティレートは250ベーシスポイント、つまり2.5%に設定されています。
例えば、6%の金利で借りていた方は、いつでも自由に返済できるようになるまで、新しい金利は+2.5の8.5%となります。このように、いつでも自由に借金を返済することができます。つまり、必ずしも債務整理をする必要がないということです。満期時の債務返済を強制することで、Notionalは、貸手がfCashを権利のある基礎通貨と交換できることを保証することができます。
貸し出しと流動性の提供は同じですか?
いいえ。貸し手は、現金をfCashと交換し、固定金利を得ます。流動性プロバイダーは、Notionalの流動性プールに資本参加し、可変の取引手数料を得ます。貸し手が貸し出すたび、借り手が借りるたびに、そのプールの流動性プロバイダーに取引手数料を支払う形になります。Notionalの流動性プールは、買い手、売り手、そして取引を促進する流動性プロバイダーが存在するという点で、Uniswapプールと似ており、買い手と売り手は、Notionalの場合は貸し手と借り手として考えられます。流動性プロバイダーは、その貸し借りを促進し、報酬として取引手数料を獲得します。
スリッページとは?
ユーザーが貸し借りをするたびに、市場の実勢金利は変化します。その時の金利と、ユーザーが借りた時の金利との差を「スリッページ」と呼びます。ユーザーのスリッページの大きさは、市場の流動性に対するユーザーのローンの大きさに依存する。ローンの規模が大きいほど、スリッページも大きくなります。
どのくらいの担保率で借るべきでしょうか?
選んだ担保比率によって、担保が清算される可能性が決まります。担保比率が低ければ低いほど、流動化のリスクは高くなります。適切な担保比率の選択は、ユーザーがどの程度のリスクを取りたいか、またどの程度積極的にポジションを管理したいかによって異なります。ここでは、いくつかのユーザーが選択するであろう比率の例を示します。
ライトユーザー:250% — 300%+ このユーザーは、レバレッジを最適化することよりも安心感を重視しています。担保率をこの範囲に設定することで、清算される心配はほとんどなく、市場が大幅に下落した場合にのみ残高を追加する必要があるという意味で、深い関心がない場合でも自信を持った運用ができます。
アクティブユーザー:180% — 200% このユーザーは、ポジションを追跡し、毎日DeFiを使用していますが、自動化担保管理システムは持っていません。自分の担保ポジションを注意深く監視し、大きな価格変動が一夜にして起こりうることも理解しています。バッファーを構築することで、残高を補充する前に担保が清算されることがないという確信を得ることができます。
プロフェッショナル:160% — 170% このユーザーは、自動化された担保管理システムを活用して、DeFi全体の担保ポジションを管理するプロフェッショナルです。このユーザーは、担保から可能な限り多くのレバレッジを得たいと考えています。最小担保率に近づくと、システムが自動的に担保を積み増すことを知っているので、積極的な担保率にも安心して利用できます。
貸し手はどのようなリスクを負いますか?
貸し手には2つのリスクがあります。1つ目のリスクは、借り手が支払不能になることで、プロトコルが支払不能になる可能性があることです。このような事態が発生した場合、プロトコルは貸し手への支払いに十分な現金を保有できなくなる可能性があります。Notionalの強固な清算プロトコルとインフラにより、このリスクは最小限に抑えられていますが、それでも可能性は0ではありません。Notionalの清算手続きによって借り手が支払不能になった場合には、プラットフォームで発生する可能性のある損失をカバーするためのオンチェーン型の準備資金を用意しています。
貸し手が直面するもう一つのリスクは、スマートコントラクトのハッキングリスクです。Notionalはセキュリティを最重視しており、このような事態が起こらないようにあらゆる手段を講じています。Notionalのシステムは、Certora、ABDK、Code Arena、OpenZeppelinなどの業界リーダーによる監査を受け、正式な認証を完了しています。
リクイディティプロバイダーにインパーマネント・ロス(IL)リスクはありますか?
はい。LPはインパーマネント・ロス(IL)による損失を被る可能性がありますが、LPは原資産であるトークンの代わりにcTokensを流動性として預け、変動する複利の貸出金利を得ることで軽減されます。Notional V2で流動性を提供した場合のリターンダイナミクスについては、ドキュメントのこのページをご覧ください。
負債を同一通貨の資産で相殺するとはどういうことですか?
Notionalでは、同一通貨のcTokens、nTokensまたはfCashに対して借入を行うことができます。アカウントが1,000ドル相当の流動性をnTokens (nUSDC)で提供している場合、ドルでの借り入れはまずnUSDC担保の価値と相殺されます。同様のケースは、ポートフォリオにcUSDCまたはfUSDCを保有するアカウントにも適用されます。詳細は、マニュアルの「free collateral section」を参照してください。
アカウントがドル資産(nUSDCまたはfUSDC)の担保価値に比べて少額のドルを借りている場合、清算のリスクにさらされない可能性があります。つまり、1,000 nUSDCに対して100 USDCを借りても、清算されることはないということです。
金利変動リスクとは?
nTokensおよびfCashは、金利の変動により価値が変化する可能性があるため、リスク資産とみなされます。アカウントがnTokensまたはfCashに対して借り入れを行っている場合、金利の変化によってそのアカウントが清算される可能性があります。
正し、金利の変動は、為替レートの変動(ETH/USDCの為替レートなど)に比べて担保価値への影響が小さいため、ほとんどの借り手は金利リスクの対象とはなりません。
金利リスクは、同じ通貨のnTokensまたはfCashに対して借りているアカウント(例:nUSDCに対してUSDCを借りている)、またはステーブルコインのペアで借りているアカウント(例:nUSDCに対してDAIを借りている)に存在します。
Notionalウェブアプリケーションは、金利リスクがいつ発生するかを示します。
現在の平均金利は、すべてのfDAI市場が現在取引されている場所の近似値であり、これは、アカウントが清算からどれくらい離れているかを示します。
この例では、清算金利の上限と下限の両方があることに注目してください。現在の平均金利が上限または下限の清算金利に移動した場合、この口座は清算されることになります。金利リスクの計算は、リスクの多変量性(複数の現金市場が結果に影響を与える可能性がある)のため、あくまでも近似的であり厳密ではありません。
また、ガバナンスがfCash市場のパラメータを変更した場合には、金利リスクの存在が変化する可能性があることに注意してください。fCash市場でのスリッページの増加は、金利リスクを高める可能性があります。nTokensまたはfCashに対して借り入れを行っている場合は、リスクを管理できるように、Notionalウェブ・アプリでポジションを監視していることを確認してください。
ユーザーチュートリアル
借り入れの方法
notional.financeの上部メニューバーにある「Borrow」をクリックし、提供したい通貨を選択して、再度「Borrow」ボタンをクリックします。
ウォレットの接続
右上の「Connect a Wallet」をクリックして、MetaMaskやその他の暗号ウォレットを接続します。
パラメータの選択
右側のバーで、希望の満期日を選択し、借り入れ額を入力します。希望の通貨がドロップダウンメニューから選択されていることをご確認ください。
担保設定のスライダーでは、ご希望のリスク許容度に合わせてリスクレベルを調整できます。比率が高いほど、価格が急落した場合、担保が清算されるリスクが軽減されます。
担保を利用して流動性を確保し、金利や手数料、NOTEインセンティブを得ることで資本効率を高めたい場合は、「mint nToken collateral」オプションを切り替えます。これにより、nToken担保はわずかなカットを受けるため、ポートフォリオの担保率が低下します。
内容の確認
確認画面で内容を確認し、「Submit」をクリックします。取引が実行されたことは、「ポートフォリオ」タブをクリックし「Active Loans」をクリックすることで確認できます。
債券が満期になる前に、このボタンをクリックして満期を選択し、「submit」をクリックして取引を確認することで、債券を新しい満期に変更することができます。また、「repay borrow early」をクリックし、金額を入力してトランザクションを送信することで、いつでもペナルティなしに、現在の市場レートで借入金の一部または全部を終了することができます。全額返済を確認したい場合は、「max」をクリックしてください。
貸し出しの方法
notional.financeの上部メニューバーでは、いくつかのオプションを選択することができます。「Lend」をクリックします。提供したい通貨を選択し再度「Lend」をクリックします。次の画面では、選択した満期と取引サイズに基づいて、実際の獲得APYが更新されます。
ウォレットの接続
右上の「Connect a Wallet」をクリックし、MetaMaskや他のウォレットを接続します。
パラメータの選択
右側のバーでは、希望の満期日を選択し、貸し出し金額を入力します。ドロップダウンメニューからご希望の通貨が選択されていることを確認してください。
「Confirm and Submit Trade」をクリックし、次の画面で詳細を確認して、再度「Submit」をクリックします。
詳細の確認
ユーザーのローンが満期になる前の任意の時点で、このボタンをクリックし、次に「Submit」をクリックして取引を確認することで、債務を新しい満期までロールオーバーすることができます。これにより、現在の市場金利でローンを新しい満期まで延長することが可能です。また、一部または全部の貸し出しを、現在の市場金利でペナルティなしに終了することもできます。これを行うには「Withdraw loan」ボタンをクリックしてください。
流動性提供の方法
notional.financeの上部メニューバーでは、いくつかのオプションを選択することができます。「Provide Liquidity」をクリックして、提供したい通貨を選択し「Provide」をクリックします。
ウォレットの接続
右上の「Connect a Wallet」をクリックして、MetaMaskやその他のウォレットを接続します。
パラメータの選択
流動性を提供したい通貨の量を入力してください。注:流動性を提供することは、流動性プールのお客様のシェアを表すnTokenのミントを意味します。nTokenの利回りは、NOTEインセンティブを含む現在のブレンド金利を表しています。「Confirm and Submit Trade」をクリックして、詳細を確認後に「Submit」をクリックし、ウォレットのインターフェースでトランザクションを確定します。
詳細を確認する
LPのポジションを確認するには、「Portfolio」タブを開き、各通貨の現在のnToken残高を確認します。
fCash
fCashトークンは、Notionalシステムの構成要素の一つです。fCashは、将来の特定の時点における正または負のキャッシュフローに対する請求権を表す譲渡可能なトークンとして機能します。
fCashトークンは常に資産と負債のペアで生成されます。Notionalシステムでは、資産と負債は常にゼロになります。
表示通貨(Denomination Currency)と決済通貨(Settlement Currency)
Notional V2では、fCashトークンの表示通貨と決済通貨は異なります。fCashはDAIやUSDCなどの基礎となるトークンで表示されますが、cDAIやcUSDCなどのcTokenで決済されます。例えば、満期資産100 Dec 1 2021 fDAIは100DAIに直接換金できず、100DAI相当のcDAIに換金され、ユーザーの意思でDAIに自由に換金できます。表示通貨と決済通貨を分けることで、基礎となるトークン(ex DAI)の固定レートでの貸し借りを可能にしながら、cトークン(ex cDAI)を使ったNotionalの資本効率を最適化することができます。その方法は以下の通りです:
流動性プロバイダーは、原資産で通貨の代わりに、cTokensをNotionalの流動性プールに預ける。これにより、Notionalリクイディティプールで得られる手数料に加えて、ベースラインのcToken貸し出しレートを資本金に対して得ることができるため、流動性プールの参加に対するリターンが大幅に増加します。
想定内現金残高(cToken建て)は、原資産(ex DAI)建ての利息を受動的に発生させます。つまり、固定金利のローンは、ロールフォワードされていなくても、満期に達すると同時にcTokenの変動貸出金利が発生し始めます。
決済の仕組み
fCash資産が満期になると、NotionalはfCash資産の表示通貨(ex DAI)に相当するcTokens(ex cDAI)の額を決定し、アカウントのfCashをその額のcTokensに変換します。例えば、満期時に100 Dec 1 2021 fDAIは、2021年12月1日時点で100DAI分のcDAIに変換されます。
機械的には、cDAIの決済額は決済為替レートによって決定されます。決済為替レートは、満期時のcDAI/DAIの為替レートとして定義されます。決済為替レートは、満期前には不明で、満期時に設定され、満期後も変化しません。
ここでは、100 Dec 1 2021 fDAIの値が、時間の経過とcDAI/DAIの為替レートの変化に伴ってどのように変化するかを示します:
流動性プール
Notionalは、内蔵されたAMM対応の流動性プールでfCashを取引できるようにしています。Notionalの流動性プールは、fCashをその決済通貨と一緒に保持します(例:cDaiとfDai)。流動性プールは満期を意味し、2021年12月1日の流動性プールは2021年12月1日のfCashを保有します。
流動性提供者(リクイディティプロバイダー)
流動性提供者は、Notionalの流動性プールを資本化します。流動性提供者は、cTokensとfCashを流動性プールに提供し、プロトコル上でアクティブな貸し手と借り手のカウンターパーティーとして機能し、その貢献と引き換えに、貸し手または借り手がcTokensとfCashの間で取引するたびに手数料を得ます。
流動性の預け入れ
流動性プールに通貨を預けるために、流動性提供者はまず、流動性プールと、流動性として供給したい現金の量を指定します。次に、一組のfCashトークンをミントします。
そして、流動性提供者は、自分のcTokensと正のfCashを流動性プールに預け、その見返りとして流動性トークンを受け取ります。
これで、流動性提供者は、流動性トークンと、その流動性トークンが権利を与える正のfCashで相殺される義務を持つことになります。
流動性提供者が流動性プールに通貨を提供すると、流動性トークンを受け取ります。流動性トークンは、プール内のcTokensおよびfCashトークンに対する比例請求権を表します。流動性提供者は、いつでも流動性トークンをこれらの原資産と交換することができます。
ユーザータイプ
Notionalの流動性プールには、貸し手、借り手、流動性供給者の3つのユーザータイプが存在します。貸し手はcDaiをプールに預け、fDai(将来の日付で固定額のDaiを受け取る約束)を受け取ります。また、借り手は、プールからcDaiを受け取り、fDai(将来の固定額Daiを支払う約束)を預けます。流動性供給者は、cDaiと2021年12月1日のfDaiをプールに追加し、どちらの当事者も貸し借り可能になります。
貸し出し(Lending)
固定金利で自分の通貨を貸し出したいユーザーは、fCashを購入することができます。貸し手は、取引の際に自分の通貨を、将来の特定の時点でのより大きな固定額の通貨と交換します。ユーザーが得られる交換レートは、取引の瞬間からfCashが満期になるまでの間のローンに対する固定金利を意味します。
例:貸し手が100DAIを1年間固定金利でNotionalに貸し出したいとします。貸し手はまず100DAIをcDAIに変換し、そのcDAIをNotionalの流動性プールに預けて105fDAIを得る。2021年12月1日にローンが満期を迎えると、貸し手は105fDAIをcDAIに換金し、そのcDAIを105DAIに変換することができます。
借り入れ(Borrowing)
固定金利での借り入れを希望するユーザーは、fCashをミントして通貨と交換することができます。fCashを通貨に売却することで、借り手は将来の特定の時間に一定額の通貨を返済する義務と引き換えに、通貨を受け取ることができます。
まず、借り手は、想定ポートフォリオに担保を預けます。
そして、借り手は、選択した満期時に一組のfCashトークンをミントします。
借り手は、通貨と引き換えに、正のfCashトークンをその流動性プールに売ることができるようになります。
これで借り手は、引き出すことのできる通貨と、ETHを担保とした一定額の通貨を返済するという将来の義務を負うことになります。
nTokenの概要
nTokensは、ユーザーがNotionalに流動性を提供する主な方法です。nTokensにより、ユーザーは、個々の流動性プールとのやり取りを一切必要とせずに、すべてのアクティブな満期のNotionalに流動性を提供することで、受動的にリターンを得ることができます。
nTokensは、すべてのアクティブな満期において、特定の通貨におけるNotionalの総流動性の一部分と交換可能なERC20アセットとして機能します。nDAI、nUSDC、nETHのように、Notionalが貸し借りをサポートする各資産は、それぞれ独自のnTokenを持ちます。
nToken の属性
・永続的なERC20トークン
・有利子
・換金・譲渡可能
・高品質担保
nTokensのミント
nTokenをミントするために、ユーザーはcTokenをnTokenアカウントに預けます。その後、nTokenアカウントは、ユーザーの流動性をその通貨の基礎となる流動性プールに分配し、その結果、ユーザーが預けた流動性に対するnTokenアカウントの請求権を表す流動性トークンを保有します。
デポジットシェア
nTokenアカウントは、デポジットシェアと呼ばれる一連のガバナンスパラメータに基づいて、ユーザーの流動性を各市場に分配します。デポジットシェアは、ユーザーの総流動性のうちどれだけを各市場に預けるかをnTokenアカウントに伝えるパーセンテージです。
デポジットシェアにより、Notionalのガバナーは、エンドユーザーの借り入れや貸し出しの需要が最も大きい満期に流動性を誘導することができます。例えば、ガバナーは、相対的な需要に応じて、より多くの流動性を長期期限の満期に、より少ない流動性を短期期限の満期に振り向ける預金シェアのセットを決定することができます。
流動性プールへの入金
nTokenアカウントは、他のアカウントと同じ方法で、個々の流動性プールに流動性を提供します。nTokenアカウントは、相殺されるfCashトークンのペアをマイニングし、cTokenと正のfCashを流動性トークンと交換して流動性プールに預け、負のfCashを流動性トークンと一緒にポートフォリオに保持します。nTokenアカウントは常に、異なる流動性プールのcTokens、fCash、および流動性トークンを保持します。
nTokenアカウントのポートフォリオ例
cTokens: +100
nTokenの償還
nTokenは、nTokenアカウント内のすべての資産の割合に応じて自由に償還することができます。償還の際、ユーザーはnTokenアカウントのfCashのシェアをオンチェーンの流動性プールを介してcTokenに変換することで、単一の正味cToken額を受け取ることを選択できます。償還プロセスは、1回のトランザクションで完了します。
償還コスト
nTokenを償還する過程でfCashのcTokenへの変換を選択すると、わずかながら償還コストが発生します。このコストは、nTokenアカウントにあるfCashの量と、ユーザーが交換しようとしているnTokenの量によって異なります。ほとんどのユーザーにとって、このコストはごくわずかです。しかし、大規模なnToken保有者(nToken供給総量の10%以上)にとっては、保有するnTokenすべてを一度に償還することに対しては、相応のコストがかかります。
この図は、ユーザーが償還しようとしているnTokenの量とnTokenの利用率に応じて、償還コストがどのように変化するかを示しています。利用率が100%の場合は、nTokenがfCashしか保有しておらず、Notionalの流動性プールにcTokenが残っていないことを意味します。
nTokenの償還コストは、通常は最小限に抑えられますが、規模が大きい場合には、ほとんどのユーザーに大きなコストが発生します。
nTokenの償還プロセスの詳細とその例については、こちらをご覧ください。
nTokenのリターン
リターンの概要
nTokenはcTokenのような単純な利付資産とUniswap LPトークンのような資産を掛け合わせたものです。つまり、nTokenのリターンはcTokenのリターンよりも変動しやすいですが、nTokenの保有者は一般的に長期的に高い金利で報われます。
nTokenは3つの方法でリターンを得ることができます:
ブレンド金利:nToken口座が保有するcTokenおよびfCashから得られる金利。ブレンド金利は、異なる満期におけるcToken金利およびfCash金利の平均値を、各満期におけるnToken口座のcTokenおよびfCashの保有量で加重平均したものです。nTokenのブレンド金利の計算例はこちらをご覧ください。
リクイディティ・フィー/インパーマネント・ロス:エンドユーザーが借り貸りをする際に、nTokenアカウントに保持されている流動性トークンから得られる手数料。fCashの為替レートは非常に安定しているため、nTokenの恒久的な損失の可能性は小さいです。例えば、3ヶ月のfCashは1と1.04の間の為替レートでしか取引できません。
NOTEインセンティブ:nToken保有者は、Notionalのガバナンス・トークンであるNOTEから直接インセンティブを得られます。nToken保有者は、その通貨のnToken総数に対するシェアに比例してNOTEトークンの報酬を獲得します。
リターンダイナミクス
ここでは、各リターン要因を実証するシナリオ例を説明します。金利が変動すると、nTokenアカウントの資産保有量がどのように変化するか、ブレンド金利がどのように変化するか、そしてこれがnTokenのリターンにどのような影響を与えるかを見ていきます。
エンドユーザーがNotionalの流動性プールで貸し借りをすると、Notionalの金利が動きます。このチャートは、Notionalの金利の変化とnTokenのfCash保有量の変化がどのように一致するかを示しています:
エンドユーザーが借りて金利が上昇すると、nToken アカウントは fCash を獲得し、cTokens を失います。エンドユーザーが貸し出しを行い、金利が低下すると、nToken口座は現金を失い、cTokenを獲得します。
fCashの金利の変化は、nTokenのブレンド金利にも影響します。一般的に、nTokenのブレンド金利は、cTokenの供給金利とfCashの想定元本の金利の中間に位置します。以下は、同じシナリオの例で、nTokenのブレンド金利を追加し、cToken供給率を一定の2%と仮定したものです:
fCashの金利が上昇すると、nTokenのブレンド金利も上昇します。fCashの金利が下がると、ブレンド金利も下がります。
nTokenの価値はブレンド金利で継続的に増加しますが、金利の動きに応じて一時的な損失も発生します。ブレンド金利に対するnTokenの価値のグラフは、このシナリオでnTokenの価値がどのように変化するかを示しています:
一月:金利が上昇し、nTokenにはブレンド金利の収益を上回るインパーマネント・ロスが発生しました。これにより、nTokenの価値は低下しました。
二月:金利が安定していたため、nTokenには4.5%の金利が発生し、一時的な損失が発生することはありませんでした。
三月:金利が下がったことで、nTokenはそれまでの損失を取り戻し、さらに金利が発生し続けました。これにより、nTokenの価値は急上昇しました。
nTokensのレバレッジ
nTokensは、自動的に想定元本の担保として認められるため、ユーザーはnTokensを担保に借入を行うことができます。この機能により、ユーザーは高度な資本効率を得ることができます。以下の2つの例を考えてみましょう:
・固定金利での借り入れを希望するユーザーは、担保を預け、その担保をnTokensに変換し、それを担保に借り入れを行うことができます(すべて1回のトランザクションで)。これにより、借り手は、担保を債務に対して想定元本で保有しながら、担保から魅力的なリターンを得ることができます。
・流動性プロバイダーは、nTokensをミントし、そのnTokensに対して借入を行い、さらにnTokensをミントすることができます。これにより、流動性プロバイダーは、固定金利の支払いと引き換えに、nTokenのリターンを増やすことができます。流動性プロバイダーは、nTokenのリターンが借り入れの際に支払う金利よりも高くなると予想される場合、このような方法を取ることができます。
レバレッジの安全な使用
レバレッジは、ユーザーの資本効率を高めますが、清算のリスクも高まります。nTokenの価値は上昇する傾向にありますが、cTokenとは異なり、nTokenの価値はまっすぐには上昇しません。
ユーザーがnTokenを担保に借り入れをしていて、nTokenの価値が下がった場合、清算の対象となる可能性があります。こちらをご覧ください。
テナー
テナーとは、金融契約が開始されてから、その契約が満期になるまでの期間のことを指します。例えば、2021年5月5日に実行された3ヶ月のテナーを持つローンは、3ヶ月後の2021年8月5日に満期を迎えます。しかし、2021年6月5日の時点では、満期まで2ヶ月しかないにもかかわらず、このローンは3ヶ月のテナーであると言うことになります。
テナー・カデンス
Notionalの各通貨タイプは、同じグローバルなテナー・カデンスを参照します。
テナーケイデンスとは、各通貨のアクティブな流動性プールの満期を決定する一連のテナーを示します。Notionalのテナー・カデンスは以下の通りです:
アクティブ・テナー
ガバナンスパラメーターは、特定の通貨タイプに対してどのテナーが貸し借り可能であるかを示します。すべての通貨タイプにおいて、すべてのテナーが有効になるわけではありません。例えば、ある通貨では、7つのテナーのうち、3つのテナーしか有効でない場合があります。この場合、ユーザーは3ヶ月、6ヶ月、1年の期間で貸し借りを行うことができます。
ガバナンスは、通貨タイプのアクティブなテナーの数を変更することができますが、テナー・カデンスは一定です。つまり、3つの有効なテナーを持つ通貨は、現在3ヶ月、6ヶ月、1年の最初の3つのテナーを常にサポートします。
アクティブ満期
アクティブな流動性プールの実際の満期は、基準時間からのオフセットとして計算されます。オフセットの長さはテノーに対応しています。
現在のブロックタイムは、必ずしも基準時間に対応していません。つまり、ある流動性プールの満期までの時間の長さは、その流動性プールのテナーとは必ずしも一致しないということです。例えば、基準時間が3月1日で、現在の時間が3月15日の場合、6月1日が現在の時間から3ヶ月以内であっても、3ヶ月後の満期は6月1日になります。
四半期ごとのロール
3ヶ月ごとに、アクティブな流動性プールの満期を計算するために使用される基準時間が3ヶ月前に切り替わります。これは、現在のブロックタイムが3ヶ月後の満期を超えた場合に発生します。基準時間を前倒しすることで、アクティブな満期が更新され、流動性プールも前倒しされます。ロールの際には、すべてのアクティブな流動性プールが非アクティブになり、新しいプールが新しいアクティブな満期でインスタンス化されます。
nTokenアカウントは、自動的に各非アクティブな流動性プールからすべての流動性を引き出し、そのcTokenの合計を、nTokenのデポジットのシェアごとに新たにアクティブな流動性プールに分配します。
特異的fCash
特異的fCashとは、満期がアクティブな流動性プールに対応していないfCash資産のことです。四半期ごとにロールバックすると、以前はアクティブな流動性プールに対応していた満期のfCash資産が、特異的になることがあります。
例えば、あるユーザーが1年物の流動性プールからローンを組んだとします。次の四半期決算時には、そのユーザーのfCashは9ヶ月後に満期を迎え、9ヶ月の流動性プールは四半期決算後にリセットされ、新たに1年の流動性プールとなります。これにより、そのユーザーの9ヶ月目のfCashは特異的になります。
特異的fCashの取引
特異的fCashは、特異的fCash資産の満期がアクティブな満期と一致しないため、Notionalのオンチェーン・リクイディティ・プールのいずれかで取引することはできません。このため、Notionalは、fCash資産の送信者と受信者の両方が署名した取引を提出することで、特異的fCashの取引をサポートする。特異的fCashの流動性は、0xのような外部のオーダーブックまたは個別取引を実行するためのRFQスタイルのインフラストラクチャを介して利用することができますが、この機能はまだ有効ではありません。
金利レート
NotionalのV2流動性プールは、ラストトレードレートとオラクルレートという2つの異なる金利を追跡します。
ラストトレードレート
ラストトレードレートは、流動性プールで最後に実行された取引のインプライド・フォワード・レートを反映します。ラストトレードレートは、特定の時間における流動性プールの真の、または平衡の金利を反映していないレートを表示するために、短い時間枠で(フラッシュローンなどで)操作されるリスクがあります。
これらの制限により、ラストトレードレートは、fCashを評価するための価格オラクルとしては安全ではありません。ユーザーが自分のfCashを借りられるようにするためには、fCashを評価するために使用される価格オラクルが操作されないようにする必要があります。もし価格決定のためのオラクルが操作可能であれば、攻撃者は人為的に金利を動かし、口座を担保不足の状態にすることができます。その後、攻撃者はこれらの口座を人為的に操作した価格で清算することができます。
オラクルレート
オラクルレートは、価格操作のリスクを軽減するために設計されたもので、ガバナンスによって設定された時間枠内で最後に取引されたレートに収束する、遅延した減衰した価格フィードを提供します。オラクルレートは以下のように定義されます:
この設計により、オラクルレートはフラッシュローン攻撃に対して脆弱になることはありません。1ブロック内の取引は、currentBlockTime — lastTradeTimeの値が0となり、オラクルレートに影響を与えません。以下は、オラクルレートが取引に反応し、時間の経過とともに最後に取引されたレートに収束する様子を示した例です:
fCash バリュエーションカーブ
fCashの評価
fCashの現在価値は、そのfCashの額面を、fCash資産の満期に対応するオラクルレートで現在に割り引くことで求めることができます。
PV(fCash) = fCash * e^{-oracleRate * timeToMaturity}
ある通貨のアクティブなレートのオラクルは、対応する満期の現金資産を評価するための明示的な金利を提供します。
特異的fCashの評価
fCash資産の現在価値の決定には、そのfCash資産の満期までの金利が必要です。しかし、定義上特異的fCash資産はレートオラクルセット内の満期には対応していないため、特異的fCash資産の金利はすぐには利用できません。この問題を解決するには、利用可能なレートのオラクルから線形的に保管されたfCashバリュエーションカーブを作成し、その曲線から任意の特異的な満期で金利を選択します。
そして、fCashバリュエーションカーブから得られた金利により、特異的fCash資産の現在価値を上記の公式で決定することができます。
fCashバリュエーションカーブのローリング
四半期ごとのロールでは、金利のオラクルの満期が新しいアクティブな満期に合わせて更新されます。新しい金利のオラクルの値は、新しい有効期限における古い金利カーブで定義されたレートと一致するように更新されます。
このようにしてカーブを転がすことで、一貫性が保たれます。新しい金利オラクルの値は古いカーブから暗示され、古いアクティブな満期セットに関連する金利は一定に保たれます。
アカウントの構造
Notionalシステムのすべてのアカウントには、サポートされている各通貨タイプのcToken残高、nToken残高、fCash残高、流動性トークン残高があります。特定の通貨タイプに対するアカウントのfCash残高と流動性トークン残高は、その通貨タイプでサポートされている満期ごとに分けられます。
cトークン
アカウントのcToken残高は、そのアカウントが保有するcTokens(cDAI、cUSDC、cETHなど)の数を反映しています。
nTokens
アカウントのnToken残高は、そのアカウントが保有するnTokens(nDAI、nUSDC、nETHなど)の数を反映しています。
fCash
fCashは、満期になるとcTokensに変換されます。Notionalのすべての通貨タイプには有効な満期があり、すべてのアカウントはそれらの満期ごとにfCashの残高を持ちます。
流動性トークン
流動性トークンは、ある満期時に流動性プールにある資産に対する請求権を表します。流動性トークンは、cTokensおよびfCashに対する請求権に分解することができます。
アカウントの例
通貨ごとのアカウント構成
担保
fCashのマイナス残高、またはcTokenのマイナス残高で表されるすべての負債は、アカウントの必要担保額に影響します。アカウントの必要担保額は、サポートされているすべての通貨タイプにおけるすべての資産と負債を考慮して、ポートフォリオベースで計算されます。
担保資産
Notionalでは、ユーザーはNotionalシステムに保有されている各資産タイプに対して借入を行うことができます:
・cToken残高
・nToken残高
・Positive fCash残高
これらの資産は、それぞれ異なるリスクおよび流動性プロファイルを有しています。Notionalは、担保計算において各資産を異なって扱い、そのリスク度に応じて資産価値にヘアカット(額面評価に対する一定の割引率)を適用します。
フリー担保
フリー担保は、Notionalがアカウントの担保ポジションを評価し、アカウントの見込み取引を検証するために使用する中心的な概念として機能します。
フリー担保とは、アカウントが保有するETH建ての担保のうち、最低担保要件を満たすために必要な額を超えた額を指します。アカウントのフリー担保の数値がプラスであれば、そのアカウントは十分に担保されています。口座のフリー担保の数値がマイナスの場合は、担保不足で清算の対象となります。
フリー担保
フリー担保の計算は、2つのプロセスから成り立っています。
- サポートされている各ローカル通貨担保の余剰/必要な数値を集約する
- ローカル通貨の担保の数値を1つのETH建てのフリー担保の数値に集約する
ローカル通貨の担保計算
アカウントには、通貨ごとに、cトークン、nトークン、fCash、流動性トークンの4種類があります。ローカル通貨建ての担保金額を計算するには、これらの資産の価値を共通の分母である現地通貨に変換し、関連するヘアカットを適用して、その値を合計する必要があります。ここでは、このプロセスを順を追って説明します。
Step 1: 流動性トークンをcTokensとfCashの請求権に分解する
流動性トークンは、その構成要素であるcTokensおよびfCashと自由に交換できます。この計算の最初のステップは、これらの請求権をアカウントのcTokensとfCashの保有量と統合することです。
Step 2: 流動性トークンのヘアカットをcTokenとfCashの債権に適用する
流動性トークンは、その純価値が減少する可能性があるリスク資産です。このリスクを考慮して、担保としての価値を計算するために、流動性トークンから派生したcTokenおよびfCashの請求権にヘアカットを適用します。流動性トークンのヘアカットは、各有効期間に固有のものであり、日付の長い流動性トークンは日付の短い流動性トークンよりもリスクが高いという事実を反映しています。
Step 3: 流動性トークン請求のマージ
cTokenとfCashに対する流動性トークンの請求を、アカウントのcToken残高とfCashのラダーに追加します。
Step 4: fCashの現在価値の取得とヘアカット/バッファーの適用
fCashの現在価値は、fCashの額面を、fCash資産の満期に対応するオラクルレートで現在に割り引くことで得られます。この点については、こちらで詳しく説明しています。fCashのリスク性(現在価値が減少する可能性)を考慮するために、fCashの額面を現在に割り引くために使用するオラクルレートを調整します。
Step 5: nToken の現在価値の取得とヘアカットの適用
アカウントが保有するnTokenの担保価値を求めるためには、まず、1つのnTokenの現在価値を求める必要があります。1つのnTokenの現在価値は、nTokenアカウントのすべての資産の現在価値(ヘアカットを除く)をnTokenの総供給量で割ったものになります。
アカウントのnTokenの現在価値は、1つのnTokenの現在価値にアカウントのnToken 残高を乗じたものになります。
アカウントのnTokensの担保価値を得るために、nTokensの現在価値を得た後にヘアカットを適用します。現在価値の計算後にヘアカットを適用することは、nToken アカウントの構成要素である fCash トークンおよび流動性トークンのヘアカットを含む nToken の現在価値を導き出すよりも実用的です。
Step 6: cTokenの値をローカル通貨に変換
Step 7: cToken値とnTokens及びfCashの担保価値の合計
ローカル通貨担保価値の集約
サポートされている各通貨の現地通貨担保価値を取得した後、それらをETH建てのフリー担保価値に集約します。
為替レートのヘアカット/バッファー
Notionalでは、ユーザーは別の通貨の債務に対してある通貨の担保を保有することができます。これは為替リスクをもたらす。このリスクを考慮して、ETHに変換する際に、バッファまたはヘアカットのいずれかによってローカル通貨の担保数値を調整します。ローカル通貨の数値がプラスの場合はヘアカット(値が1より小さい)、マイナスの場合はバッファ(値が1より大きい)を使用します。この計算に使用するヘアカットとバッファーは、通貨タイプごとに異なります。
Step 1: ローカル通貨の担保価値をETHに変換する
Step 2: ETHデノミの担保価値の合計
流動化
Notionalシステムの各担保資産は、担保不足の口座を再担保するために流動化することができます。
cTokens:清算人は、アカウントに担保余力がない通貨のcTokensを、アカウントに担保余力がある通貨のcTokensと交換することができます。
nTokens:清算人は、アカウントに担保余力がある通貨でnTokensを購入し、アカウントに担保が必要な通貨でcTokensと交換することができます。
fCash
精算人は、アカウントに担保余力がある通貨でfCashを購入し、アカウントに担保要求がある通貨でcTokensと交換することができます。
流動性トークン
精算人は、アカウントに流動性トークンを基礎となるcTokensとfCashの請求権に変換させることができます。これにより、アカウントのポートフォリオのリスクが下がり、流動性トークンのヘアカットの影響が軽減され、流動性トークンの通貨での担保余剰額が増加(または必要担保額が減少)します。
流動性トークンの清算には、清算人が何らかの資産を購入または引き渡す必要はありません。そのため、実際にはこのタイプの清算はcTokenとnTokenの清算に組み込まれています。
cTokensの流動化
担保ポジションの例
ETH/DAI ExchangeRate=400
ETH/USDC ExchangeRate=400
ETH Haircut=.8
DAI Buffer=1.25
このアカウントは担保が不足しています。清算人は、このアカウントのcETHの一部を、チェーン上のオラクル価格よりも割安なcDAIと引き換えに購入することができます。このアクションは、為替レートバッファの効果を減少させ、アカウントの担保ポジションを改善させます。
清算額の解法
Notionalでは、清算人がアカウントのcToken残高を、そのアカウントを最低担保レベルに戻すために必要なだけ購入することができます。デフォルトでは、清算後にアカウントの担保が大幅に過剰になる場合でも、清算人はアカウントのcToken残高の40%を購入することができます。最後に、Notionalでは、清算人が任意の清算で購入したい担保の最大量を指定することができます。
この例では、清算人が清算額の上限を指定していないと仮定します。
デフォルトの清算額:0.4ETH(0.4×1ETH)
清算価格:376ETH/DAI (.94 * 400 ETH/DAI)
精算人による購入:150.4DAIで.4ETH
Free Collateral=+.0125 ETH
この清算により、ローカル通貨の担保価値が平準化され、このアカウントの為替リスクが減少しました。このアカウントの価値は、ETH/DAIの為替レートの変動に対するエクスポージャーが約40%減少しています。そのため、自由担保はプラスの値に改善されました。
nTokensとfCashの流動化
nTokensやfCashの流動化は、cTokensの流動化と同様に機能します。アカウントのnTokensとfCashの価値は、自由担保の計算の際にローカル通貨の担保価値にロールアップされるため、これらの資産のいずれかを清算すると、現地通貨の担保価値が均等になり、アカウントの為替レートリスクが減少します。
決済
fCashが満期に達すると、cTokensに変換されます(ここでは簡略化のために決済レートを1:1と仮定します)
cTokenの引き出し
正のcToken残高を持つアカウントは、引き出しによってアカウントが担保不足にならない限り、いつでもcTokenを引き出すことができます。
負のcToken残高
負のcToken残高は、プロトコルに対する債務が満期になったことを表します(ここでは、簡略化のために決済レートを 1:1 と仮定します)
Notionalは、正のcToken残高を持つアカウントが自由にcTokenを引き出せるようにするために、アカウントが負っている負債をカバーする必要があります。プロトコルは、アカウントに負のcToken残高を担保するよう強制することはできますが、アカウントに負のcToken残高を決済するよう強制することはできません。
サードパーティによる決済
この問題を解決するために、第三者の決済者が満期になった債務を直近の満期まで繰り上げることを認めています。第三者は誰でも、cTokenの残高がマイナスになっているアカウントに、ペナルティ金利で貸し付けることができます。これにより、滞納しているアカウントのcToken残高はゼロになりますが、第三者の決済者にはインセンティブが与えられます。
現金残高がマイナスで、フリー担保がプラスの口座は、第三者決済の対象となります。フリー担保がマイナスの場合は、決済する前にまず清算しなければなりません。
プロトコルの予備資金からの引き出し
アカウントのポートフォリオに資産がなく、キャッシュバランスがマイナスの場合、プロトコルに対するアカウントの義務をカバーするために、Notionalのリザーブファンドが使用されます。
NOTEトークン
コントラクトアドレス: 0xcfeaead4947f0705a14ec42ac3d44129e1ef3ed5
NOTEは、Notionalのプロトコルを管理するERC-20トークンです。NOTEホルダーは、Notionalのシステムパラメータやスマートコントラクトの変更を提案し、投票し、実装することができます。各NOTE保有者は、保有しているNOTE1つにつき1票の投票権を持ちます。
NOTEホルダーの責任
NOTEホルダーは、NOTIONオンチェーン・トレジャリーの管理、リスクおよび担保設定パラメータの設定、およびNOTIONスマート・コントラクトのアップグレード提案に対する投票に責任を負います。以下は、NOTEホルダーが提案して投票する必要のある項目の簡単なリストです:
・流動性手数料の設定
・担保のヘアカットの設定
・新しい担保タイプのオンボード化
・異なる資産の貸し借りに対する新しい満期の有効化
・プロトコルのアップグレードの提案と評価
議決権の行使と委任
NOTEホルダーは、投票権を自分自身または自分が選んだアドレスに委任することができます。少なくとも<閾値>以上のNOTEを委任されたアドレスは、ガバナンス提案を作成することができます。
ガバナンス提案が作成されると、2日間のレビュー期間に入ります。その後、投票数が記録され、投票が開始されます。投票は3日間行われ、少なくとも4,000,000票が投じられ、過半数の賛成が得られた場合、その提案は可決され、タイムロックにキューイングされます。提案は、タイムロックに移されてから2日後に実行可能となります。合計すると、プロトコルの変更には最低でも1週間かかることになります。
流動性インセンティブ
Notionalは、NOTEをnTokenホルダーに分配することで、流動性提供者にインセンティブを与えます。nTokenホルダーは、NOTEの総発行量に対するシェアと、その通貨タイプの年間NOTE排出率に比例して、NOTE報酬を発生させます。現在の通貨別の年間排出率は以下の通りです:
USDC: 9,000,000
DAI: 9,000,000
ETH: 1,000,000
wBTC: 1,000,000
nTokenの償還
nTokenの償還プロセスについて、例を挙げて説明します。以下のnTokenアカウントに100nTokenの残高があり、ユーザーが10nTokenの交換を希望しているとします。
cTokens: +100
注:以下の例では、ステップ2で流動性トークンの現金請求権とfCash請求権の比率に任意の値を使用し、ステップ4でfCashとcTokensの間に任意の交換レートを使用しています。
ステップ1
償還時、Notionalは償還シェア(ユーザーが換金するnTokensの総供給量のシェア)を計算します。
redemption \text{ } share = .1
redemption share=.1
ステップ2
Notionalは、nTokenアカウントの流動性トークンをメモリ内のcTokenおよびfCashに変換します。
nTokenの正味のfCashとcTokenの保有量:
cTokens: +1100
ステップ3
Notionalは、nTokenのcToken残高と各net fCash残高に償還シェアを適用します。
nTokenの正味保有額のユーザーシェア:cTokens: +110
ステップ4
Notionalの取引において各fCash残高のユーザーのシェアを、対応する流動性プールを介してcTokensと交換します。
変換されたfCashの保有量:cTokens: +110
ステップ5
Notionalは、差額のcToken額をユーザーに返します。
nTokenブレンド金利
このページでは、nTokenのブレンド金利を計算するプロセスを、例を挙げて説明します。ここでは、nTokenアカウントを構成資産に分解し、各構成資産に発生する金利を記録します。nTokenアカウント内のすべての資産の利率を、各資産の比例値で加重して集計すると、nTokenアカウント全体としての金利が得られます。これがブレンド金利です。
以下は、nTokenアカウントの例です:cTokens: +100
ステップ1
nTokenアカウントの流動性トークンを、cTokensとfCashに対する彼らの請求権に変換します。
cTokens: +1100
ステップ2
fCashとcTokensは同じデノミネーションを共有していません(fCashはcDAIではなくDAIのような基礎となる通貨でデノミネーションされています)。cTokensの量を基礎となる等価物に変換します。
cTokens (converted at 10:1): +110
ステップ3
各資産に対応する金利を取得します。CompoundからcTokenの金利を取得し、対応する流動性プールのoracleRatesからfCashの金利を取得します。fCashを評価するための公式を思い出してください。時間が経過して満期までの期間が減少すると、fCash資産の現在価値は関連するoracleRateで増加します。
ステップ4
金利の加重平均を値で取ります。
Notional AMM
本資料では、Notionalのリクイディティ・カーブの詳細な技術的説明を行います。
fCashを取引するための特別な条件:
ダイナミックカーブ感度:
最適な流動性曲線の感度(所定の取引サイズでどれだけのスリッページが発生するか)は、満期までの時間の関数として大きく変化します。静的なカーブ感度は、fCashトークンの寿命の中の狭い期間にのみ適しており、残りの期間は取引が不経済的になります。
金利の連続性:
同じ為替レートでも、fCashトークンの満期までの期間に応じて異なる金利が発生します。金利はfCashトークンの「価格」を示すより重要な指標であり、AMMは取引の間、為替レートではなく金利を一定に保たなければなりません。これがないと、fCashトークンの実勢金利が時間の経過とともに常に市場から離れていくことになります。この影響は、fCashトークンの満期までのほとんどの期間では最小限に抑えられますが、満期に近づくにつれて指数関数的に大きくなります。その結果、満期間近の取引はますます不安定で予測不可能になり、関係者全員にとってマイナスの結果となります。
Notional AMMの基本:
まず、適切な形状のカーブが必要です。カーブは、通常の取引条件で適切なレベルのスリッページが得られるように、ほとんどの時間、比較的フラットである必要があります。しかし、カーブは市場のリプライシングに対応できる必要があります。カーブが平坦すぎるか、全体的に平坦であれば、均衡金利の大きな変化に効果的に対応することができません。ロジット曲線は、適切な一般的特性を持っています。それは次のようなものです。
このカーブは、0~1のXレンジを為替レートにマッピングします。この曲線を使用するためには、あるプールの通貨とfCashのバランスを0~1の範囲で表す指標が必要です。次のようなものが使えます:
Proportion = totalFCash / (totalCurrency + totalFCash)
Proportion=totalFCash/(totalCurrency+totalFCash)
これにより、通貨/現金の為替レートとそれに関連する暗黙の金利について、以下の式が得られます:
ExchangeRate=(1/scalar)∗ln(proportion/(1−proportion))+anchor
InterestRate=(ExchangeRate−1)∗periodSize/timeToMaturity
Notional AMMでの取引:
ユーザーが「Notional AMM」で取引する場合、取引される為替レートは以下の計算式に従って2段階で計算されます:
tradeProportion=(totalFCash±tradeSize)/(totalFCash+totalCash)
TradeExchangeRate=(1/scalar)∗ln(tradeProportion/(1−tradeProportion))
+anchor±liquidityFee
Uniswapとは異なり、NotionalのAMMでは、取引された為替レートが取引後の実勢為替レートと等しくなるような為替レートを簡単に解くことはできません。使用している取引為替レートは、取引後の為替レートの近似値です。そのため、この近似法が目的に合っているかどうかを確認する必要があります。関連する議論と証明は、本書の付録を参照してください。
取引手数料:
ユーザーが取引を行うと、Notional AMMはまず、ユーザーの取引を考慮して中間レートを更新し(これは常にユーザーに不利になる)、次にその更新された中間レートに加えて流動性手数料を追加します。例えば、ある取引で、現行の中間金利を5%から5.25%に変更し、5.5%で約定する場合があります(流動性手数料は0.25%)。このユーザーは、取引時の実勢金利から0.5%(中間値の差から0.25%、流動性手数料から0.25%)で取引したことになります。このように、ユーザーのオールイン料、そして流動性プロバイダーのオールイン料は、明示的な流動性料と、旧ミッドと新ミッドの差(スリッページ)の組み合わせと考えることができます。この違いを知っておくと、後述するパラメータ選択の議論に役立ちます。
Notional AMMのパラメータ:
Notional AMMは、スカラー、アンカー、流動性手数料の3つの変数でパラメータ化されます。スカラーとアンカーは、それぞれ曲線の急峻さとxy平面上の位置を変えることができます。以下は、スカラーとアンカーの値を変えた同じロジット曲線です。
スカラー値を大きくするとカーブが平坦になり、小さくするとカーブが急峻になります。これは、スカラー値が大きいほど、カーブの感度が低くなり、特定の取引でのスリッページが少なくなることを意味します。逆に、スカラー値が小さいと、カーブの感度が高くなり、取引時のスリッページが大きくなります。アンカー値を変化させると、XY平面上でカーブが上下に移動します。
静的なカーブから動的なカーブへ:
静的感度の問題は、流動性カーブ自体だけでなく、流動性手数料にも関係します。同じ理由が適用されます。為替レートで一定の手数料を設定すると、fCashトークンが満期に近づくにつれ、エンドユーザーにとって指数関数的に罰則が増えていきます。この問題を解決するために、スカラーと流動性手数料を満期までの時間の関数に変換し、それぞれをルート値でパラメータ化します。スカラーを満期までの時間の関数にすることは、満期に近づくにつれて流動性曲線の形が変わることを意味します:
Notionalシステムでは、特定のfCash市場に関連するレートをperiodSize(fCashトークンの開始から満期までの時間)で正規化します:
timeToMaturity(t)=(maturity−t)
scalar(t)=scalarRoot∗periodSize/timeToMaturity(t)
liquidityFee(t)=liquidityFeeRoot∗timeToMaturity(t)/periodSize
スカラーと流動性手数料をこのような形で表現することで、fCashトークンのライフサイクルを通して一貫した感度と手数料を維持することができます。直感的にそう思われるかもしれませんが、完全には明らかではありません。詳細な説明と証明は付録を参照してください。
スカラーおよび流動性手数料の変更を代入すると、想定AMMの最終的な為替レート方程式が得られます。
ExchangeRate=(1/scalar(t))∗ln(proportion/(1−proportion))+anchor
TradeExchangeRate=(1/scalar(t))∗ln(tradeProportion/(1−tradeProportion))
+anchor±liquidityFee(t)
金利の継続性の保持:
fCashトークンが満期に近づくにつれ、取引がない場合は為替レートが変動します。これは、プールの一般的な金利も、取引がない状態で時間とともに変動することを意味するため、問題となります。このドリフトは、fCashトークンが満期に近づくにつれて指数関数的に増加します。利子率の変動は、賢いトレーダーにとって、時間の経過とともに流動性プロバイダーから価値を徐々に吸い上げる機会となります。
Notional AMMは、取引前の金利が最後の取引が行われた直後の金利と等しくなるように、各取引時にアンカーを更新することでこれを防ぎます。このメカニズムにより、取引が行われていない場合でも、時間の経過とともに一貫した金利が維持されます。実装は比較的簡単で、詳細は付録を参照してください。
パラメータ選択の影響 — 経済学:
スカラーと流動性手数料の値は、システムにとって経済的な意味を持ちます。これらの変数はいずれも、ユーザーと流動性提供者の間の経済バランスを変化させる効果があります。流動性手数料は明示的にその効果があります。しかし、スカラーもまた、直接的ではないものの、そのバランスを変化させます。ユーザーが支払うオールイン・フィーは、流動性フィー+スリッページに分解できることを思い出してください。スカラーを変えると、スリッページが変わります。ユーザーとリクイディティプロバイダーの利益のバランスを考慮して、適切なスカラーとリクイディティフィーの値を選ぶことが重要です。流動性供給者の収益性は非常に重要ですが、ユーザーに過剰な課金をすることはシステムの成長と成功を妨げることになります。
パラメータ選択の意味 — 金利の境界線:
アンカー値の選択により、流動性曲線の平坦な部分が金利の観点からどこに位置するかが決まる。ロジット曲線の形状を考えると、比率の値が0.1から0.9の間の取引状況は、大まかには「通常」と言えます。これらのポイントを過ぎると、指数関数的な曲率が本格的に現れてきます。曲線のインスタンス化の際に選択されたアンカー値は、「通常」の取引が可能な金利の範囲を決定します。スカラー値は、比率0.9の時の金利と比率0.1の時の金利との間の金利換算での絶対的な距離を決定します。例えば、スカラー値が100であれば、1ヶ月満期の場合、0.1の金利と0.9の金利の間に52.73%の距離があることを意味します。アンカー値は、その範囲の中央に位置する金利を決定します。
付録
取引為替レート:取引為替レートが、取引後のプールの為替レートよりも(ユーザーから見て)常に悪いか、同じであることを確認する必要があります。これが事実でない場合、このメカニズムは裁定や操作に対して脆弱になります。取引される為替レートを決定するための公式を思い出してください:
tradeProportion=(totalFCash±tradeSize)/(totalFCash+totalCash)
TradeExchangeRate=(1/scalar)∗ln(tradeProportion/(1−tradeProportion))
+anchor±liquidityFee
この証明のために、tradeSizeが負の数であることを認めることにします(これは、上記のtradeProportionの方程式よりも数学的に対処しやすいです)。これにより、以下の式が得られます:
tradeProportion = (totalFCash + tradeSize) / (totalFCash + totalCash)
tradeProportion=(totalFCash+tradeSize)/(totalFCash+totalCash)
trade sizeが正の値の場合、ユーザーがfCashを売ってプール内のfCashの供給量を増やしたことを意味します。Xが負の値の場合は、ユーザーがfCashを購入し、プール内の fCash の供給量が減少したことを意味します。取引と為替レートは常にfCashで指定され、現在の現金で指定されることはありません。したがって、直感に反しますが、ユーザーは常により低い為替レートでfCashを売ることを好むでしょう (低い為替レートは、現在の現金換算でfCashの価値が高いことを意味します)。
以下は、tradeExchangeRateがendExchangeRate(取引後の為替レート)よりも常に悪いことを証明するものです。注:この証明では、1以下の為替レート(つまりマイナス金利)を認めていないという事実に依拠しています。Notionalは、マイナスの金利が発生した場合、取引時に元に戻ります。
X=tradeSize
Y=cashAmountTraded
TFC=totalFCash
TC=totalCash
IfX<0
tradeProportion=TFC+X/(TFC+TC)
endProportion=TFC+X/(TFC+X+TC−Y)=TFC+X/*1
exchangeRate>1−>X<Y
−>(X−Y)<0
−>*2<(TFC+TC)
−>tradeProportion<endProportion
−>tradeExchangeRate<endExchangeRate
コンシステントカーブの感度:流動性カーブの感度は、次のような微分で表すことができます。
d interestRate/d proportion
この導関数が満期までの時間の関数として変化することを示すのは簡単です。
interestRate=(ln(proportion/(1−proportion))/scalar+anchor−1)
∗periodSize/timeToMaturity
=ln(p/(1−p))/scalar∗periodSize/tTM+(anchor−1)∗periodSize/tTM
d interestRate/d proportion=(p/(1−p))′∗*3
=1/(1−p)2∗*4
=1/p(1−p)∗(periodSize/(scalar∗tTM))
(d interestRate/d proportion)/d tTM=−periodSize/scalar∗tTM2/p(1−p)
私たちは、流動性カーブの感度が時間を通じて一定であることを望んでいます。つまり、満期までの時間に対する感度の微分が0になることを望んでいます。
scalar=scalarRoot∗periodSize/timeToMaturity
d interestRate/d proportion=1/p(1−p)∗(periodSize/(scalar∗tTM))
=1/p(1−p)∗(1/scalarRoot)
(d interestRate/d proportion)/d timeToMaturity=0
金利の連続性:インプライド金利のドリフトに対抗するために、アンカー変数を使用して、取引がない場合でも金利を長期的に一定に保ちます。各取引の後、インプライド金利レートを保存します。次の取引の際には、現在のインプライドレートが保存されたインプライドレートを上回るかどうかを確認します。もしそうでなければ、取引を実行する前にアンカーを更新して、そうなるようにします。アンカーはNotionalの為替レート計算式の定数に過ぎないので、意図しない影響を心配する必要はありません。以下は、新しいアンカー値を求める方法です。
interestRateDifference=currentInterestRate−savedInterestRate
newAnchor=anchor−interestRateDifference∗(tTM/periodSize)
Notionalの各コンテンツはこちらからフォローできます。