DEXアグリゲータの1inch、驚異のガス代無料の仕組み「Fusion」を発表

こんにちは!弐号です。

複数のDEXを統合し、最良なレートで交換できる「DEXアグリゲータ」で最も有名なプロトコルの一つである「1inch」が2022年12月末頃より全く新しい仕組みの「Fusion」という交換モードを実装しました。

これにより、ガス代が無料になるなどの素晴らしいユーザ体験を提供することができます。

この記事では 1inch Fusion の仕組みを軽く説明し、実際にトレードを行う様子をご紹介します。

Fusionを利用することのメリット

公式サイトの説明によれば

  • ガス代が無料
  • 価格と時間範囲を指定できる(※これは以前より「1inch指値注文プロトコル」を利用することで可能でした)
  • MEVボットからの保護
  • 従来のCEXと同様のスムーズな取引体験
  • アルゴリズム取引の機会の提供
  • 分散性の保持

といったユーザメリットがあるとされています。

従来の取引モードは依然として「Legacyモード」を選択することで利用可能であり、Fusionの対応していない少額取引やネイティブトークンを用いた取引ではLegacyモードにフォールバックするようです。

次に、どのような仕組みで 1inch Fusion がこのような機能を達成できたのかをみてみましょう。

Fusionの仕組み

1inch Fusion の仕組みについては、こちらの公式ブログポストに解説がありますので、少し噛み砕いて説明します。

まず、一般的な従来のモード(Legacy)では、複数のDEXからのレートを受信し、最良なレートで交換できるルートをユーザのフロントエンド側で計算します。

そして1inchの作成しているスワップ用のコントラクトに対して交換ルートを指定しながらユーザはオンチェーンで注文を投げ、1inchのスマートコントラクトが注文を処理することで交換が行われます。

Solanaなどでは一度のスマートコントラクトコールで複数のスマコンを叩けることなどから、DEXアグリゲータのコントラクトを経由しないこともありますが、フロントエンドで最適なルートを計算し、オンチェーンで注文を処理するという点では変わりがありません。

しかし、この方法だとFusionの特徴にあるような、ガス代無料であったり、価格や時間指定の注文は行うことができません。

そこでFusionではどうするかというと、注文をオンチェーンに投げるのではなく、オフチェーンで処理します。

具体的には売買するトークンの種類と数量などを指定したバイナリデータに対して署名を行い、その署名データを1inchのサーバへ送信します。

1inchのサーバ側では、受け取った注文データをみて、リゾルバと呼ばれる役割のボットがこの注文を約定させ、購入したトークンを送付します。

ここで従来の仕組みと違うのは、オンチェーンで注文を約定させるのはいわゆる taker として注文を出していることになりますが、Fusionでは maker として注文をだすという所です。

このような仕組みとすることで、注文はオフチェーンで一旦処理されるためガス代は無料となり、またMEVボットなどからの影響も受けないことになります。

ただし、もちろん注文を take するリゾルバは通常、注文を take すると同時にカバー取引としてオンチェーンで反対売買を行っていると思われます。

リゾルバは誰でもなれるわけではなく、現在のところ一定数量の1INCHトークン(1inchプロトコルのガバナンストークン)をステーキングしているユーザに限られるようです。

どのリゾルバが注文を約定させるかについては、ダッチオークション形式で決まるようです。

すなわち、ユーザの注文は時間経過とともに約定レートが安く(ユーザ側から見て不利な方向に)なっていき、そのレートに満足できるリゾルバが現れたら実際の約定処理がオンチェーンで行われます。

逆に言うと、注文時に指定したスリッページ許容範囲内で約定してくれるリゾルバが現れなかった場合には残念ながら注文は失敗してしまいます。

ですが、従来のモードでは注文がスリッページ許容範囲内を超えてしまって失敗したとしても、ガス代は発生しますが、Fusionにおいてはオフチェーンだけで注文が失効しますので、注文が通らなかった場合にはガス代は誰も負担せずに済むというのは一つの特徴と言えるでしょう。

Fusionを使ってみた

それでは実際にFusionを使ってみましょう。

今回は USDC で ETH を買う、というのをやってみます。

利用するチェーンはBNBチェーンとします。

といっても、フロントエンド的には従来とほとんど変わらないユーザ体験で取引ができます。

従来どおり、売却したいトークンの種類と数量、購入したいトークンの種類を入れるだけです。

この画面のようにFusionモードが選択され、ガス代が0ドルと表示されていればFusionモードとなります。

また、Fusionモードの選択パネルの右上に表示されている設定バーのアイコンを押すと、さらに詳細なモードを「Fast」「Fair」「Auction」「Custom(現在のところ開発中のため利用不可)」から選択することができます。

ここから先は、会員限定のコンテンツになります。残り全てを見るには、サロン入会案内ページから会員登録をよろしくおねがいします。

関連記事