前回の記事に引き続き、今回も仮想通貨botの開発状況をまとめていきます。
今回は「清算Bot」の開発についてその開発過程と現在参考にしている情報ソースをまとめました。
基本的なBot開発と並行して清算Botの開発にも着手する。まずは、基本構造の理解から。
DEXの精算bot(liquidator)|takamiml @nk91124 #note https://t.co/Cj8fBLqbjU
— よだか(夜鷹/yodaka) (@yodakablog) March 4, 2024
清算Botとは?
DEXにおいて清算処理を請け負うBotのことです。
特定のDEXで清算が実行可能なポジションを監視し、清算を行います。
清算メカニズムは、貸付を行うレンディングプロトコルが稼働し続けたり無期限(永久)先物系(Perp系)のプロトコルを稼働させ続けたりするための土台として非常に重要な機能の一つです。
清算は多くのレンディング系・Perp系DEXに搭載されている機能であり、その仕組みを利用してフラッシュローンなどとの組み合わせなどで大きな利益を上げた実例もあります。
技術や実装の難易度が高く、学習コストの高さが一つの参入障壁です。
DeFiレンディングの基本や機能・無期限(永久)先物取引については以下の記事で解説しています。
-
【初心者】Compound(コンパウンド)で始めるDeFiレンディング解説
続きを見る
-
【DeFiレンディングプロトコル解説】Morpho(モルフォ)って何?【特徴・機能・仕組み・始め方・注意点】
続きを見る
-
【DeFiプロジェクト紹介】Radiant Capital(レディアント キャピタル)って何?【特徴・仕組み・機能・使い方・注意点】
続きを見る
-
【仮想通貨レンディング】利益を最大化するための実践ガイド
続きを見る
-
仮想通貨先物取引: 投資家にとってのチャンスとリスクを見極める方法
続きを見る
学習リソースまとめ【清算Bot】
- DEXの精算bot(liquidator):清算Botについて体系的に学ぶ足掛かりにした記事です。紹介されている関連記事も非常に有益です。
- dydxprotocol/liquidator:清算を実行するコードの一例。2021年に紹介されたもの。基礎的な構造を学ぶことができます。
- How to Build a Compound Liquidation Bot:Compoundで動かす清算botの作り方。2019年の記事。清算Botの実装に必要なことを具体的に知ることができます。
- DeFi で精算人(liquidator)botを作るメモ:ノウハウを獲得した上で、戦略実行の考え方を学ぶヒントになる記事。このブログは他の記事もクオリティが高くて、参考になることが多いです。
開発の役に立った情報は随時追加していきます。
EVMベースの開発に慣れる
開発の土台としてDEXで稼働するBotを理解する必要があります。
DeFibotの開発、UniswapV3でいきなり躓いているので一つずつ順番に解決していく。開発の初期はこんなもん。 pic.twitter.com/Qz5tjxENuq
— よだか(夜鷹/yodaka) (@yodakablog) March 7, 2024
参考
Ethereumのトランザクションを解析してdefiトレードの損益計算する
→ABIを理解する参考になりました。
Get Contract ABI(ErtherscanのDocs)
→Contract ABIを取得するために必要な処理。
【仮想通貨botter Advent Calendar 2022】 ABIを使わずにPancakeswapでSwapしよう
→実用度の高い記事。この記事で身につけることができる技能や考え方は応用範囲が広く、様々なDEXを触る土台になります。
money-legosでDeFiと戯れてみる
→DeFi関連のプログラムを効率的に記述できるmoney-legosというNPMパッケージの紹介。具体的な使い方がスライドとともに紹介されているので、手を動かしながら理解を深めることができます。
【開発者向け】Dapps開発からデプロイまでの全体像を把握しよう!【Solidity】
→Dapps開発の全体像を理解するのに役立つ記事です。
FMZ を使用して Ethereum に基づいた Web3 開発を簡単に始める
→FMZ Quant Trading Platformの利用をベースにしたweb開発の記事。UniswapV3を題材にして分散型取引所 (DEX) へのアクセス、オンチェーン データの取得、トランザクションの送信、その他の機能の方法などを解説しています。コードはjavaで書かれているので、基礎学習も必要です。
web3.pyを理解する
Defiプロトコルを触る上で出発点となるEVM。
pythonで触るためにはweb3.pyが最適なようなので、まずはここの理解からスタートです。
ここから基礎学習開始https://t.co/ZL5aqfyG8h をさわってみる|syucchin https://t.co/OSo3C282bE #zenn
— よだか(夜鷹/yodaka) (@yodakablog) March 10, 2024
参考
web3.pyのDocs
→原典。モジュールの仕様を理解するためにまず読むべき部分。分からないことがあれば、適宜ブログなどで実例を調べています。
Web3.py をさわってみる
→具体的な操作手順が一つずつまとめられていて分かりやすいです。
Python+Web3.pyでEthereumコントラクト学習 (その1)
→web3.pyのインストールから基本操作までを一連の記事で理解できます。利用する目的に応じて細かい部分の修正は必要だが、とりあえず動かすことを優先させたかったので、このブログの記事はとても役に立ちました。
イーサリアム仮想マシン(EVM)
→Ethereumの公式Docs。原典。EVMを理解する上で基礎となる部分。内容は骨太で理解にも一苦労ありますががその分有益です。
マスタリング・イーサリアム ―スマートコントラクトとDAppの構築
→EVMを体系的に理解するために役立つ書籍。また、公式Docsを読んでもイマイチ理解できない部分の補足などに使っています。
動画で学ぶ
実際に手を動かしながら理解したい場合は、解説動画などで一つずつ学んでみるのもアリです。
https://t.co/ZL5aqfyG8hの解説動画。シリーズは全部で7本。Pythonベースで理解するのに良さそう。
Ethereum for Python Developers - https://t.co/ZL5aqfyG8h #1 https://t.co/qR96uaHDPP @YouTubeより— よだか(夜鷹/yodaka) (@yodakablog) March 10, 2024
参考
Ethereum for Python Developers - Web3.py #1
→全7本の動画シリーズ。web3.pyを使ってEthereumの開発をざっくり理解するのに役立つ。サブスクに誘導しているのでその点は無視して、必要な部分の動画だけ見るのがオススメ。
Intro to Web3.py · Ethereum For Python Developers
→上記の内容を文章で解説している
まとめ
DeFi Botの開発も結構楽しいです。
今は流動性の高さ・深さなどの観点からCEXを中心にBotの開発と運用をしていますが、DEXだからこそ得られるエッジも確かに存在するので、今後は学習ハードルの高さを捻じ伏せて、Bot開発にコミットしていきます。
頭では分かっていたけれど、DEXとCEXではBotの戦いかたがまるで違うことをまさに肌で感じている。DeFi Botはやれることが多彩すぎる反面、学習コストもそれなりのものになるので、一旦基礎固めに戻ろう。
こういう時にプログラミングが基礎的な技術の膨大な積み重ねであることを実感する。— よだか(夜鷹/yodaka) (@yodakablog) March 9, 2024