FURUCOMBOを使ってみようの巻

Yuya Sugano
9 min readAug 13, 2020

--

FURUCOMBOはDeFiプロトコルを組み立ててシングルトランザクションで実行することができるWeb UIで提供されるツールです。各プロトコルの定義をキューブと呼びその連なりをコンボとして実行できます。ブラウザ上でドラッグ&ドロップでキューブを設定できるためノーコードで誰でも複数のプロトコルを跨いだトランザクションを組み立てることができます。複数のプロトコルがサポートされており、Aave Flashloanもサポートされているので流動性が許す限りいくらでもお金を都合することができます。今回はFURUCOMBOの使い方とFlashloanを使ったアビトラができるか試してみました。

https://furucombo.app/

FURUCOMBOの使い方

FURUCOMBOはWebで提供されているDeFiのツールです。各プロトコルへのトランザクションを定義したものをキューブと呼び、その連なりをコンボとして表現して実行します。簡単にいうとDeFi用のPackagerということのようです。UI/UXが分かりやすいのでSolidityなどのプログラミング言語を知らなくてもノーコードでDeFiと戯れることができるようになっています。便利だと思うのですがあまり日本語のソースはないようですね。まずはビギナーズガイドを参考に使ってみます。[1]

ここからアクセスしてStartをクリックします。次にウォレットを接続します。MetaMaskを接続しましたが、Ledgerや他のウォレットもサポートされているようです。以下が基本的なインターフェースです。+をクリックしてキューブを作成していきます。キューブはFURUCOMBOにおける用語で1つのDeFiプロトコルの処理の単位です。呼び出せる処理はDeFiプロトコルごとに異なっています。

No cubes and no combo chain

キューブで使用するプロトコルと処理を選択します。次に対象のDeFiの処理で取り扱うトークンとトークン数などの情報を入力していきます。現在サポートされているプロトコルを以下に列挙しました。

Create a cube
  • 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]

  1. 100 DAI をFlashloanで借りる(担保なし、手数料は0.09%)
  2. Uniswapで 100 DAI を 122.83649 uUSD へ交換
  3. Kyberswapで 122.83649 uUSD を 122.83429 DAI へ交換
  4. 100.09 DAI をFlashloanのレンディングプールへ返却
  5. 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のスワップレートに差がない場合にはマイナスの取引となってしまいます。

https://twitter.com/shingen_crypto/status/1289052484921520131

上記の例と似たようなコンボを作成してみた例です。

  1. 820 USDC をFlashloanで借りる(担保なし、手数料は0.09%)
  2. 手持ちの 180 USDC と合わせて 1000 USDC を担保に 909.09 DAI を発行
  3. Curveで 909.09 DAI を 926.12711 USDC へ交換
  4. 820.738 USDC をFlashloanのレンディングプールへ返却
  5. 105.38911 USDC がウォレットへ残る

※最初は 180 USDC 持っていたので 75 USDC ほど失われてしまっています

Borrow 820 USDC plus the initial funds 180 USDC for collateral in Vault
Swap coins in Curve from DAI to USDC

その他にも考えられる組み合わせをいくつか試してみましたが有効なコンボは見つけられませんでした。やはり裁定機会を発見する仕組みを設けるか、bZxのフラッシュローン事件のように故意に価格差を発生させるような方法を取らないとうまく裁定解消できなさそうです。FURUCOMBOがWeb UIの提供だけでなく、他のスマートコントラクトやAPIと連携できるようになればより活用の幅が広がると思いました。

公式ブログでは利子付きのトークンへスワップすることでパッシブインカムを生むコンボの例も紹介されています。しかしこのスワップはFURUCOMBOを使用しなくてもできるはずなのでわざわざFURUCOMBOを使用するメリットはないかもしれません。[3]

--

--

Yuya Sugano
Yuya Sugano

Written by Yuya Sugano

Cloud Architect and Blockchain Enthusiast, techflare.blog, Vinyl DJ, Backpacker. ブロックチェーン・クラウド(AWS/Azure)関連の記事をパブリッシュ。バックパッカーとしてユーラシア大陸を陸路横断するなど旅が趣味。

No responses yet