このプロジェクトについて

## 概要 FlashLoanArbitrage(リポジトリ名:flashloan-data-analyzer)は、DeFiのフラッシュローンを利用した暗号資産の裁定取引を行うためのNode.jsコマンドラインツールです。READMEでは、ユーザーのコンピュータ上で動作する単一のローカルスクリプト `goflash.js` について説明されており、1つのトランザクション内で借入、取引、返済を行うスマートコントラクトと連携するとされています。 ## ドキュメント上の動作原理 1. スクリプトは約60秒ごとに、Chainlink(ベースオラクルとして使用)、Uniswap V2、SushiSwap、Curve Finance、Balancerの5つのソースからETH/USDC価格をスキャンします。 2. 損失を避けるため、価格差が少なくとも0.9%(READMEでは固定値として提示されていますが、設定可能な閾値のように見えます)になるまで待機します。 3. トリガーされると、コントラクトはUSDCでフラッシュローンを受け取り(事前にユーザーのETHをUSDCに変換)、価格の安い取引所でETHを購入し、高い取引所で売却し、ローンと手数料を返済した後、利益をETHに再変換すると説明されています。 ## リストされているフラッシュローン提供者 - Aave — 手数料 0.05%、流動性は最大 10,000,000 USDCまで - dYdX — 手数料 0.05%、最大 500,000 USDCまで - Uniswap V3 — 手数料 0.01%、最大 5,000,000 USDCまで - Balancer — 手数料 0.02%、最大 1,000,000 USDCまで READMEでは、手数料を抑えるためにdYdXまたはUniswap V3を推奨しており、ローン額が大きくなるほど手数料も高くなることを警告しています。 ## 実行方法 `goflash.js` と `package.json` をダウンロードしてフォルダに配置し、`npm install` を実行した後、`node goflash.js` で起動します。依存関係として `ethers` ^6.11.1、`inquirer` ^8.2.6、`chalk` ^4.1.2 がリストされています。 初回起動時に、新しいウォレットを作成するか、秘密鍵で既存のウォレットをインポートするかを求められます。どちらの場合も鍵は同じフォルダの `wallet.json` に保存されます。その後、メニューから「DeFiプロトコルの選択」、「ローン額の設定(ETH単位、10からプロトコル上限まで)」、「ウォレットの再作成」、「ウォレットのインポート」、「裁定取引の開始」、または「終了」を選択できます。メニューヘッダーにはウォレットの残高とアドレスが表示されます。 ## READMEによる運用上の注意 - ガス代はETHで支払う必要があります。READMEでは、10 ETH以上のローンを利用する場合、少なくとも0.1 ETHの残高を持つことを推奨しています。 - 費用として、取引手数料(0.1%)、スリッページ(0.05%)、ガス代、およびフラッシュローン手数料が挙げられています。 - トラブルシューティングには、モジュール形式のエラー、不正な形式の秘密鍵、ガス代不足、RPCの再接続、取引所でのETH/USDCペアの欠如などが含まれています。 ## 知っておくべき注意点 - README自体に、実際の市場で0.9%の価格差が出ることは稀であり、スクリプトは「デモンストレーションのために時折シミュレートされた機会を表示する」と記載されています。つまり、表示される機会が必ずしも実行可能または現実的であるとは限りません。 - 秘密鍵は `wallet.json` に平文で保存されます。READMEではこのファイルを `.gitignore` に追加し、決して共有しないよう助言しています。それでも、実際の資金が入ったウォレットでこれを実行することは、明白な鍵管理のリスクを伴います。 - READMEでは繰り返しスマートコントラクトに言及しプロジェクトツリーを表示していますが、リストされた構造には `goflash.js`、`package.json`、`wallet.json`、`README.md` しか含まれておらず、コントラクトのソースコードはリポジトリの一部としてドキュメント化されていません。 - テスト、設定ファイル、「教育目的で現状のまま共有」以外のライセンス条項、または手数料設定の手順などは記載されていません。 - リポジトリの説明には、フラッシュローンの知見を用いて市場データを分析することが記載されており、これは取引実行の主張よりも、READMEの価格スキャン部分と一致しています。