FURUCOMBOを使ってみようの巻
FURUCOMBOはDeFiプロトコルを組み立ててシングルトランザクションで実行することができるWeb UIで提供されるツールです。各プロトコルの定義をキューブと呼びその連なりをコンボとして実行できます。ブラウザ上でドラッグ&ドロップでキューブを設定できるためノーコードで誰でも複数のプロトコルを跨いだトランザクションを組み立てることができます。複数のプロトコルがサポートされており、Aave Flashloanもサポートされているので流動性が許す限りいくらでもお金を都合することができます。今回はFURUCOMBOの使い方とFlashloanを使ったアビトラができるか試してみました。
ここからアクセスしてStartをクリックします。次にウォレットを接続します。MetaMaskを接続しましたが、Ledgerや他のウォレットもサポートされているようです。以下が基本的なインターフェースです。+をクリックしてキューブを作成していきます。キューブはFURUCOMBOにおける用語で1つのDeFiプロトコルの処理の単位です。呼び出せる処理はDeFiプロトコルごとに異なっています。
キューブで使用するプロトコルと処理を選択します。次に対象のDeFiの処理で取り扱うトークンとトークン数などの情報を入力していきます。現在サポートされているプロトコルを以下に列挙しました。
- Balancer (Add Liquidity, Remove Liquidity)
- 1inch (Swap Token)
- Utility (Send Token, Add Funds, Return Funds)
- Maker (New Vault, Deposit, Withdraw, Generate, Pay Back)
- Uniswap V2 (Swap Token, Add Liquidity, Remove Liquidity)
- Aave (Flashloan, Deposit, Withdraw)
- Curve (Swap Stablecoin, Swap BTC)
- Compound (Supply, Withdraw, Repay, Collect COMP)
- Oasis (Instant Trade)
- Kyberswap (Swap Token)
- Uniswap V1 (Swap Token, Add Liquidity, Remove Liquidity)
ここではMakerのVaultを新たに作成しETHを担保に債務ポジションを建てることを検討してみます。CDPではなくいまはVaultと呼ぶみたいですね。金額を入力したらSetをクリックしてください。これでキューブが作成できました。
今回はMetaMaskに入っている3 ETHを担保に最大値であった768.271 DAIを発行してみます。シンプルな1つのキューブからなるコンボです。コンボが定義されると画面左側にInitial FundsとYou will receiveという項目が自動的に表示されます。
- Initial Funds — 一連の処理で必要となる初期費用、トランザクションを実行する前にウォレット内の残高に必要な費用があるか確認しましょう
- You will receive — 一連の処理が終了した際に接続したウォレットで受け取る金額、この金額が Initial Funds より少ない場合にはその取引はネガティブであることを意味します
ここでは1つのキューブのみですが、複数キューブがある場合には各キューブをドラッグ&ドロップで移動させて処理の流れを変更できます。Sendを押してトランザクションを承認すると作成したコンボが実行されます。
激烈簡単ですね!!ノーコードでDeFiプロトコルを使えました。
FURUCOMBOでアビトラ
FURUCOMBOではAave Flashloanがサポートされていることから、アビトラの実行もユースケースの1つとして考えられます。FURUCOMBOのMediumでも実際に成功したアビトラの例が紹介されていました。[2]
- 100 DAI をFlashloanで借りる(担保なし、手数料は0.09%)
- Uniswapで 100 DAI を 122.83649 uUSD へ交換
- Kyberswapで 122.83649 uUSD を 122.83429 DAI へ交換
- 100.09 DAI をFlashloanのレンディングプールへ返却
- 22.74429 DAI がアビトラの利益としてウォレットへ残る
この例では実際の市場価格の歪みを利用しています。このトランザクションが実行されたときKyberswapとUniswapの間でDAIのレートに20%の乖離が発生していました。
Rate difference: 20+%
1 DAI = 0.9927 sUSD on Kyberswap
1 DAI = 0.8057 sUSD on Uniswap
またFURUCOMBOのTwitterでは以下のような事例も紹介されています。組み立ててみると分かりますが、このコンボに実益はないようです。VaultによるDAIの発行と、その後のCurveでのDAIのスワップレートに差がない場合にはマイナスの取引となってしまいます。
上記の例と似たようなコンボを作成してみた例です。
- 820 USDC をFlashloanで借りる(担保なし、手数料は0.09%)
- 手持ちの 180 USDC と合わせて 1000 USDC を担保に 909.09 DAI を発行
- Curveで 909.09 DAI を 926.12711 USDC へ交換
- 820.738 USDC をFlashloanのレンディングプールへ返却
- 105.38911 USDC がウォレットへ残る
※最初は 180 USDC 持っていたので 75 USDC ほど失われてしまっています
その他にも考えられる組み合わせをいくつか試してみましたが有効なコンボは見つけられませんでした。やはり裁定機会を発見する仕組みを設けるか、bZxのフラッシュローン事件のように故意に価格差を発生させるような方法を取らないとうまく裁定解消できなさそうです。FURUCOMBOがWeb UIの提供だけでなく、他のスマートコントラクトやAPIと連携できるようになればより活用の幅が広がると思いました。
公式ブログでは利子付きのトークンへスワップすることでパッシブインカムを生むコンボの例も紹介されています。しかしこのスワップはFURUCOMBOを使用しなくてもできるはずなのでわざわざFURUCOMBOを使用するメリットはないかもしれません。[3]