オラクルの周辺に潜んでいるかもしれないエッジ

はじめに

あいかわです。Botterアドベントカレンダー13日目の記事になります。よろしくお願いします。

今回は私が発見したエッジを書こうと思います。正確には元エッジです。元々そこまで旨味があるものでもなく、現在は同じやり方をしてもほとんど儲ける事は出来ないです。
紹介するエッジはオラクルの性質を利用したアビトラになっているので、シストレやAtomicArb等の代表的なトレード手法とは多少アプローチが異なります。
長い事この界隈にいた方ならば常識的な事なのかもしれないですが、トレード記事としてこの手法が紹介されている物を目にしたことが無かったのでこのテーマにしてみました。
主に初心者の方を対象に新しいエッジ探しのヒントになれば幸いです。記事の内容も初心者を対象に書いているつもりなので冗長に感じる方もいらっしゃるかもしれませんがご了承ください。

概要

対象となるプロジェクトは『Jarvis』と呼ばれるステーブルコインの発行プロトコルです。(Polygonチェーンです)

Jarvisとは?

詳しい設計は省きますが、JarvisはjJPYやjEURなどといったUSドル以外の法定通貨のステーブルコインを発行しています。これによってUSドル以外の法定通貨ステーブルコインを所持できるようになります。
多数の法定通貨ステーブルコインがありますが、今回エッジがあったのは日本円ステーブル『jJPY』なので、この記事ではjJPYのみを対象にして話を進めます。

コイン発行の仕組み

Jarvisにおけるステーブルコイン発行の設計についてですが、JarvisではUSDCを担保としてその当時の為替レートを元にjJPYに換金されます。
例えば当時1ドル⇔140円の為替レートならば1USDCを担保に140jJPYを受け取る事ができます。反対に140jJPYを持っていた場合はそれを償還して1USDCを受け取る事ができます。

さて、ここで問題になってくるのがレート参照先交換手数料です。

レート参照先

先ほどにも話した通り、Jarvisは為替レートを元に交換を行います。よってJarvisコントラクトがどこから為替レートを参照してくるのかが重要です。

オフチェーンのデータをどこからとってくるかという話はオラクル問題と言われています。オラクル問題とは?という方はコチラの記事等を参考にすると良いと思います。
(Chainlink Japanの記事)

Jarvisではこの参照先を『Chainlink』にしています。Chainlinkは多様な価格レートや乱数生成、API連携などを分散性を持たせながら行ってくれるオラクルサービスです。
Jarvisは知らなくてもChainlinkを聞いたことがある人は多いのではないかなと思います。

知らない方に最低限の必要知識を説明すると、Chainlinkは自身が所持しているJPYUSDコントラクトに現在の為替レートを変数として所持しています。
よってJarvisはこのコントラクトの変数を参照すればオンチェーン上で為替レートを取得する事が可能になります。

以下がChainlinkのJPY/USDコントラクトになります。

ここでlatestAnswerを見る事で最新の価格を見る事ができます。

USD/JPYレートの取得方法

ここでは739764という値が格納されていますが、以下のように変形する事でJPY/USDレートを求められます。

10^8 / 739764 = 135.178246…

この場合は1ドル=135.18円という事になります。(10^8はdicimals調整です)

さて、ここで問題となるのはこの変数の更新間隔です。先ほど説明した通り、JPYUSDコントラクトは変数としてレートを所持しているので、このレートを変更したいのであれば誰かがガス代を払って変更する必要があります。当然のことながら為替は常に変化する為、変数も常に更新する動機はあるのですが、ガス代との兼ね合いで、Chainlinkは正しい価格を反映できそうかつガス代を抑えらえそうな塩梅を探して、適度に変数を更新するようにしています。

では、ちょうどよいポイントとはどこなのでしょうか?
以下にオンチェーン上のJPY/USDの価格を分かりやすく表示してくれるページがあります。

結論から言うと変数を更新するには2つのルールが存在しています。


ルール

  1. 価格変化率が0.3%を超える

  2. 前回更新時から86400秒(24時間)経過する


重要なのは1.だけなので2.の説明は省略します。

変数更新の閾値

ここの画像でいうと1円⇔0.00739ドルのレートが最新ということになります。
そして次に書き換えられるタイミングは0.3%以上の価格変化が起こった時でありその範囲は以下のように決定されます。

上限: $0.00739764 * 1.003 = $0.00741983
下限: $0.00739764 * 0.997 = $0.00737545

上限か下限のどちらかを為替レートが超えれば変数が書き換えられるという事です。
逆に言えば価格推移がこの範囲内の時は変数が書き換えられません。

ここで、オンチェーンとオフチェーンでのJPY/USDの価格推移を疑似的にグラフに表してみます。
オンチェーンのレートは0.3%の閾値を超えない限り変化しないのでずっと一定の値を保ちつつ、突然0.3%分価格がずれるようなグラフになります。
よって、オンチェーンの値は不連続に推移し、オフチェーンの値は連続的に動くような形になります。(もちろん厳密には連続ではないですが)

オン/オフチェーンのUSD/JPYの価格推移

ここまで説明すると何となくエッジが見えてくるのではないでしょうか。
つまり、JarvisはUSDC/jJPYをchainlinkのJPY/USDのレートに沿って交換しているがこの時のUSDC/jJPYの交換レートはオフチェーンのJPY/USDレートと比べると最大で0.3%の誤差があり、この幅を狙ってFXでのUSD/JPYと組み合わせたアビトラができそうという予想が建てられます。

ストラテジーを書くとするならば

  1. 1ドルX円でChainlinkの変数が書き換えられた

  2. FX上で価格が0.997X円まで下落(まだオンチェーンは書き換えられていない)。

  3. FXで0.997X円払って1ドルを入手

  4. Jarvisで1USDCを担保にXjJPYをMint
    (Chainlinkの変数更新前に実行する必要がありますが、かなり余裕があるので簡単にできます)

これで0.003円分のアビトラが可能になります。あとは逆の状況でRedeemと円の買戻しを行えば往復0.006円分のアビトラが可能です。

アービトラージ戦略

交換手数料

もうひとつ忘れてはいけないのは手数料です。アビトラは少ない利鞘を狙うので取引にかかる手数料は非常に重要なファクターになります。
ここまで単純の為に手数料の話をしてこなかったのですが、実際にはJarvisにおけるMint/Redeemには0.2%の手数料がかかります。(厳密にはFX上のスプレッド等の考慮が必要ですがJarvisにかかる手数料に比べると十分に小さいので今回は無視します)
とすると上記で試したストラテジーよりも手数料分利益が減る事になりますが、ストラテジーとしては全く同じで問題なく、

  1. 1ドルX円でChainlinkの変数が書き換えられた

  2. FX上で価格が0.997X円まで下落(まだオンチェーンは書き換えられていない)。

  3. FXで0.997X円払って1ドルを入手

  4. Jarvisで1USDCを担保に0.998XjJPYをMint
    (Chainlinkの変数更新前に実行する必要がありますが、かなり余裕があるので簡単にできます)

4.の部分で0.2%の手数料がとられるだけでChainlinkの更新閾値の0.3%とは依然として0.1%のエッジが残っている事になります。




いえ、残っていたんです。先月までは。

実はこの取引手数料は11月に0.3%に上げられてしまい、見事にエッジは消え去りました。
以下が、手数料を上げたトランザクションです。

コントラクトのfeePercentageで現在の手数料が確認できますが、0.3%になっています。涙


現在の取引手数料(decimals=18)

パッと見で11月以前が手数料0.2%だったかどうかは分かりませんが、hardhatを使えば任意のブロック高のチェーンをフォークしてくることができるので、このトランザクション以前が0.2%だったことを確認できます。
興味がある方はコチラのページ等を参考にやってみてください。

ということで見事にエッジは消えてなくなってしまったのでした。
めでたし、めでたし。

実際儲けられた?

自分はこのエッジを見つけてテストをしている段階で手数料が切り替えられてしまったので、運用まではたどり着けませんでした。

シュミレーションしたところ、推定収益は月利2%程度でした。Jarvis上で交換できる最大量が1500万円程度でFX口座にも同額のお金を用意しないといけないとなると合計3000万円が必要です。(レバ1倍と仮定)
なので仮にフルで運用しても月50万円程度にとどまるので脳汁が出るような物ではないと思います。

丁度Botterアドベントカレンダー10日目にて、残ってるエッジについての議論がなされていますが、今回のエッジはここでいう所の1.にあたる部分に当たりそうです。

1. 巨額な資本を必要とするから残っているだけの収益機会

2. リスクが高すぎて常人は手を出さないだけの収益機会

3. 技術的難易度が高すぎて残っている収益機会

4. 拾うのが面倒だから残っている収益機会 (コストリターン、リスクリターン的な意味も含む)

5. その他何かしらの高い障壁があり残っている収益機会

アドベントカレンダー 10日目 @nupinupinuさん

おわりに

今回はオラクルを利用した裁定機会についての記事でしたが、実際問題この辺りはしっかりと対策されている事が多いです。外部のレートを引っ張ってくる場合にはChainlinkと併用して独自の高頻度オラクルを用意して価格差を軽減させている事がほとんどで、裁定機会には繋がる事は多くないです。
さらに言えば、一回の収益率もさほど高くないので数千万以上の運用ができる人じゃないとまともな利益は出ない気がします。
覚えておくべき事は、オラクルを利用するプロダクトは価格の遅効性と分かりやすい障害点があるという事です。これらの影響でリアルタイムのレートと異なる可能性がある事を覚えておくとどこかのタイミングでエッジを拾える事があるかもしれません。

余談

ここからは私自身検証したことがないので話半分で聞いてもらいたいのですが、jFiatの中で最も流動性があるのはjEURで取引手数料は0.2%のようです。また Chainlink上でEUR/USDの更新ルールに変数変化率はなく、27秒に一回コンスタントに更新される仕組みのようです。
もしも、27秒の間に0.2%以上の乖離が発生するときがあればそれは収益機会になるかもしれませんね。ただし、再三言っている通り大金を用意しないと十分な利益が出ないと思うので、ほとんどの人には旨味が無いと思います。

さらに余談

半年程前の仮想通貨参入したての時に、ふと目に留まった1年前のBotterアドベントカレンダーを眺めてた事があったのですが、書いてあることが何一つ理解できなかった記憶があります。
そのころに比べると今回のアドベントカレンダーは、大分見え方が変わっている事に気づきました。地道にでも成長を感じられるのはうれしい事です。
一方で、ここまでは情報公開しても問題ないレベルという認識だとするとまだまだ一人前Botterまでの道のりは長そうです。
一歩ずつ前進していくことを心がけます。

最後まで読んで頂きありがとうございました!


この記事が気に入ったらサポートをしてみませんか?