DeFiで落ちてるお金を拾いたいブログ

DeFiについてのメモ書きやポエムを投下する予定です

スマートコントラクトの自動化を実現するGelato Network

f:id:vividot:20210523175015p:plain

はじめに

はじめまして、ビビドット (@vividot) | Twitterと申します。

本記事では、スマートコントラクトの自動化を実現するプロダクトであるGelato Networkについて紹介します。 (今まで「解説」と書いていましたが、このブログの記事は筆者の見解が多分に含まれているため以降は「紹介」で統一したいと思います。)

スマートコントラクトが自動化されることによって、ユーザ目線であればDEXにおける指値や清算の回避などが可能であり、インフラとして非常に面白いプロダクトとなっています。

注意点として、現時点でGelato Networkはβ版であり、執筆時点から変更が入る可能性や筆者による誤った見解が含まれる可能性がありますのでご了承ください。

目次


Gelato Network の概要

Gelato Networkは、スマートコントラクトの自動化を実現するプロダクトです。 より具体的には「トランザクションを実行するボットのネットワーク」と「実行するトランザクションを定義するスマートコントラクトなど」から構成されています。

イメージとしては、Chainlinkのボット版と捉えてもらっても問題ないと思います。

ご存知ない方のためにChainlinkを簡単に説明すると、Chainlinkは分散型オラクルネットワークと呼ばれています。 そもそも「オラクル」とはスマートコントラクト(DeFi)に対して現実世界のEthereumの価格などを教える役目を担うシステムのことを言います。

一方、オラクル価格の更新が停止してしまったり改ざんされたりするとオラクル価格を参照していたDeFiに影響が出るため、Chainlinkではオラクルノードを分散することで比較的信頼のおけるオラクルを実現しました。

それと同様にGelato Networkでは、ネットワークに参加するボットを分散することで24時間トランザクションが実行されるサービスの実現を目指しています。

既にGelato Networkを用いているプロダクトがいくつかありますが、それらの紹介に入る前にスマートコントラクトの自動化がなぜ必要かという話をしたいと思います。

Smart Contracts Are Lazy

唐突ですが、スマートコントラクトが怠惰であることをご存知でしょうか?

スマートコントラクトは自律的に動いて何かを実行することはありません。 例外なく全てのスマートコントラクトはトランザクションをトリガーとして実行されます。

この「スマートコントラクトが怠惰である」こととボットには大きな関係があります。

DeFiはボットに支えられている

DeFiを触っている多くの人は(自分にとって有益な)ボットの存在を意識したことはないと思います。

ボットと聞けば、フロントランニングなどを用いて自己の利益のみを追求する泥棒のような存在だと思っている方も多いはずです。

しかし、MakerDAO・Compound・Yearn・Uniswapなど、DeFiのほぼ全てはボットに支えられているといっても過言ではありません。 ここでは、具体例としてCharm Financeからプロダクトを1つ取り上げます。

Charm Financeに関しては、以下の記事に詳細がありますので、ちらっと確認していただけますと理解度が深まると思います(読まなくても本記事が読めるよう補足は入れてあります!)。

vividot-de.fi

具体例:Alpha Vaults

Charm FinanceのAlpha Vaultsでは1日1回リバランスを行う必要があります。 リバランスをざっくり説明するとUniswap v3に提供している流動性を良い感じに調整することです。

一方、「スマートコントラクトは怠惰である」と述べたようにスマートコントラクトが自律的にリバランスを行うことはありません。

そこでリバランスを自動化するためにボットが登場します。実際にボットのアドレスのTXを見てみると、毎日決まった時間にリバランスを行っていることが分かると思います。

f:id:vividot:20210520161857p:plain
引用:https://etherscan.io/address/0x04c82c5791bbbdfbdda3e836ccbef567fdb2ea07

これだけ見ると「へぇ~良いじゃん!」と思われるかもしれませんが、ボットというのは「設定して終わり」ではありません。ボットを動かすサーバの保守やボットのアドレスへのガス代のチャージなど、定期的に面倒を見なければいけません。

つまり、開発者及びプロトコルの維持にとって「コントラクト自動化」「特定のTXを実行するボットネットワーク」のニーズは確かに存在すると考えられます。

また、前述の例は開発者を対象としていますが、Gelato Network自体はEthereumを利用する全てのユーザを対象としており「ファーミングの収穫」や「レンディングプロトコル間で利率が低い方への自動借り換え」「DEXにおけるドルコスト平均法」などもユースケースとして考えられます。


ライブプロダクト

ここでは、実際にGelato Networkを用いたプロダクトについて紹介します。

Sorbet Finance

Gelatoの開発チームが作成した実際に動くプロダクトが Sorbet Finance であり、UniswapなどのDEXで指値注文やドルコスト平均法を行うことができます。

注意点として、ボットに対して払う手数料(ガス代+α)はスワップ前後のETHから差し引かれます。 そのため、希望の指値にかかった場合でも実行されない場合があります。

例えば、次の画像は1ETHを2500USDで指値した場合の確認画面ですが、実際には1ETH2538USDにならないとガス代が捻出できないため実行されません。

また、表記は現在のgas priceで計算されていますが、実際にはTX実行時のgas priceで計算されます。

f:id:vividot:20210523131241p:plain:w500
引用:https://www.sorbet.finance/limit-order

Gelato Auto Top Up

Gelato Auto Top Upでは特定のアドレスの残高が少なくなった場合、事前にデポジットした分から自動でETHを補充することができます。

非常に地味ですが、既存のボットにおいてガス代の補充を忘れてボットが動作しないという致命的な状況を防ぐことができます。

実際にこのプロダクトはChainlinkのノード(Staking Facilitiesが運用)によって活用されていて、EtherscanからETHが補充されているトランザクションを確認することができます。

画像の5Etherと書かれているのが補充するETHで、0.038Etherがガス代としてボットに支払われる手数料となっています。

f:id:vividot:20210522205158p:plain
引用:https://etherscan.io/tx/0x402b378fa3a5ce4a48975001334df1db80e72dedc79d2dee43dd69d96c89a21f

Instadapp Vault Automation Action

InstadappのMakerDAOのストラテジーにはVault Automationというアクションがあり、この裏側でGelato Networkが用いられています。 (しっかりGelatoと記載されています👀)

f:id:vividot:20210522212502p:plain:w350
引用:https://defi.instadapp.io/makerdao#strategy

このアクションを有効にすると、ETH-AのVaultが清算されそうになっている場合、AaveやCompound、ETH-Bへの借り換えが自動的に行われます。

寝てる間などに突然ETHの価格が急激に低下した場合などを考えると非常に有益なアクションであるにも関わらず、アクションを提供するInstadaap側はボットを運用・保守しなくていいというのがGelato Networkの醍醐味だと思います。

FURUCOMBO

また、ライブではありませんが、FURUCOMBOもGelatoを用いて自動化機能を導入することを発表してします。

詳細は出ていないのでポシャる可能性もあると思いますが、アビトラを行うコンボを登録しておいて実行可能であれば実行…みたいな事ができるようになるかもしれません。


GEL Token

Gelato NetworkではガバナンストークンとしてGELトークンを発行する予定です。GELトークンには、ガバナンスへの参加とは別に ①ボットを運用するユーザのステーキング ②トランザクションを自動化したい開発者・ユーザによるステーキング の2つの用途があります。

ボットを運用するユーザのステーキング

ボットを運用して手数料を得たいユーザは、GELトークンをステーキングする必要があります。また、ステーキング量によって実行可能なトランザクションの割り当てが増えるため、得ることができる手数料も増加します。

そして、ボットを運用するユーザが「長期間ボットをオフラインにする」「あるユーザのトランザクションを検閲して実行しない」などのプロトコルに損害を与える行動を行った場合にはステーキングしたGELトークンの一部の没収を行います。

このようにGELトークンを用いたインセンティブとペナルティの設計によって、トランザクションが24時間365日実行される可用性の高いボットネットワークの構築を行います。

TXを自動化したい開発者・ユーザによるステーキング

Gelato Networkを利用してトランザクションを自動化したい開発者・ユーザはGELトークンをステーキングすることでGelato Networkにおける自身のプロトコルを自動化するTXの優先度に重み付けができるようになるようです。

例えば、前述した「ETHの自動補充」は1時間に1回、条件のチェックと実行を行えば十分だと思います。 一方、FURUCOMBOでアビトラを行うのであれば極論、毎ブロック毎にチェックと実行を行う必要があります。

Whitepaperに具体的なことが書いてないので実際にどうなるかは分かりませんが、そのようなステーキング量による優先付けがトークンの用途として考えられているようです。


Gelato Networkの競合

ここではGelato Networkの競合について書きたいと思います。そもそもGELトークンはまだローンチされていませんが、Not financial advice です。

競合となるサービスは自分の知る限り2つあり、クリティカルに競合しているのがKeep3r、潜在的に競合する可能性があり競合した場合には脅威となりうるのがChainlink 2.0です。

Keep3r

Keep3rはYearnのAndre氏によるプロダクトであり、開発者がジョブを設定することによって任意のトランザクションの実行をボットに委任することができます。

このプロダクトはYearnのストラテジーの実行やHegicにおける流動性のアンロック、LidoのETH2ステーキングなどで26000を超えるジョブを実行しており、既に実績が十分にあります。

ボットを運用するユーザ目線

報酬

Keep3rでは、ボットを運用するインセンティブとしてガス代+α(gas priceによっては赤字になる場合もある)が基本的にKP3Rで支払われます。 一方、Gelatoでは、ガス代+αが基本的にETHで支払われます。

Keep3rの報酬はunbondに2週間かかるためGelatoに優位性があると考えられますが、Keep3rでも開発者がジョブを設定するときに報酬をETH払いにすることが可能であるため必ずしもGelatoに優位性があるとは言えません

トランザクションの実行

Keep3rでは、Gelatoと同様にジョブを実行するのに必要なステーキング(bond)の要件はありますが、ジョブの実行順番に決まりはありません。

早くTXを実行したボットがジョブを獲得できるため、フロントランニングなどが行われており、また、失敗した場合にはそれなりのガス代が取られるためトータルで見るとガス負けしているボットも多いはずです。

一方、Gelatoではオフチェーンで、ネットワークに属しているボットのどれが次のトランザクションを実行するかを決定します。

そのため、無駄に争う必要がなく確実に手数料を得られるGelatoの方が、ボットを運用する大多数のユーザからすると魅力的であり参加するボットの確保という点ではGelatoに優位性があると考えられます。

自動化したいユーザ目線

Keep3rは「TXを実行しない」ことに対して負のインセンティブがありません。 そのため、Keep3rを用いて任意のタスクを自動化しているプロトコルの競合プロトコルがボットを運用するユーザに対して「賄賂」を渡し、TXを実行しないよう要請することも可能です。

一方、Gelatoは「TXを実行しないこと」「ボットをオフラインにすること」に対して負のインセンティブが存在するため、トランザクションを確実に実行してプロトコルを維持したい開発者目線ではGelatoに優位性があると考えられます。

しかし、Gelatoはオフチェーン部分が単一障害点となるため、障害が発生する可能性は否めません(この部分のリスクは「ネットワーク」の実現方法によります)。

ChainlinkはETHやBTCの価格などをDeFiに供給する分散型オラクルネットワークです。 オラクルの最大手でありChainlinkのトークンは暗号資産全体で14位(2021/5/23時点)と上位となっています。

現在、メインネットで動いているChainlinkのバージョンは1.0もしくは1.X(地味にアップデートしてたりするので今のverが何なのか分からない)ですが、先日Chainlink 2.0のWhitepaperが発表されました。

ホワイトペーパーでは、オラクルの「データをオフチェーンからオンチェーンに送る」という機能を超えて、分散型オラクルネットワークを活かした7つの主要な機能を提案しています。 それらの詳細については、別の記事で紹介したいと考えていますが、その7つの機能には関係ない部分に「Keeper」の話があります。

そもそも、前述したKeep3rとChainlinkは統合が発表されており想定通りの展開ではあります。しかし、非常に重要なことはChainlinkのオラクルを既に利用しているDeFiのプロダクトが、追加でChainlinkにプロトコルの維持に関わるトランザクションの実行を委任する事はリスクが増加していません

まだWhitepaperの段階のため実際にどうなるかは分かりませんが、仮にChainlinkがKeeperの機能を実現した場合、Gelatoを選択するメリットは著しく低下すると考えられます。


最後に

以上、スマートコントラクトの自動化を実現するプロダクトGelato Networkの紹介でした。

競合の部分で少しネガティブなことを書いてしまいましたが、ユーザを中心とした自動化(DEXにおける指値や清算されそうなポジションの整理など)はGelato、プロトコルを中心とした自動化はChainlink Keeperのように棲み分けが発生する可能性は十分にあります。

個人的には、DeFiを裏から支えてるぜ!みたいなエコシステムが好きなので、今後もウォッチしていきたいと思います。

参考サイト

Gelato Network Whitepaper

Chainlink 2.0 Whitepaper