프로젝트 소개

README는 FlashLoanArbitrage라는 제목으로, 로컬 Node.js 스크립트인 goflash.js와 스마트 컨트랙트를 기반으로 구축된 DeFi 플래시 론 차익거래 봇을 설명합니다. 저장소 설명에는 다양한 DeFi 포지션의 수익률을 추적하고 보고한다고 되어 있으나, README의 실제 주제는 수익률 추적이나 보고가 아닌 차익거래 실행입니다. 문서에 따르면, 스마트 컨트랙트는 USDC로 플래시 론을 받고, 거래 전 사용자의 ETH를 USDC로 변환하며, 한 플랫폼에서 낮은 가격에 ETH를 매수하고 다른 플랫폼에서 높은 가격에 매도한 뒤, 대출금을 상환하고 수수료와 가스비를 지불합니다. 이후 수익금을 USDC에서 다시 ETH로 변환하여 남은 금액을 수익으로 남깁니다. 로컬 goflash.js 스크립트는 Chainlink, Uniswap V2, SushiSwap, Curve Finance, Balancer 등 5개 소스의 ETH/USDC 가격을 확인하는 것으로 설명됩니다. 이 스크립트는 가격 차이가 0.9% 이상일 때만 컨트랙트를 통해 차익거래를 트리거하며, 그 미만일 때는 손실을 피하기 위해 대기합니다. README에는 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)의 네 가지 플래시 론 프로토콜이 나열되어 있습니다. 수수료가 낮은 dYdX 또는 Uniswap V3를 권장합니다. 대출 금액은 ETH 단위로 설정되며, 10 ETH부터 프로토콜 최대치까지 선택 가능하다고 설명합니다. 또한 지갑 잔액이 0.1 ETH 미만인 경우 가스비가 부족할 수 있으므로 10 ETH 이상의 대출을 선택하지 말라고 경고합니다. 설정 섹션에서는 goflash.js와 package.json을 다운로드하고, npm 종속성을 설치한 후 node goflash.js를 실행하는 방법을 설명합니다. 첫 실행 시 스크립트는 사용자에게 새 지갑을 생성하거나 개인 키로 기존 지갑을 가져오도록 요청하며, 개인 키는 wallet.json에 저장됩니다. 메인 메뉴는 DeFi 프로토콜 선택, ETH 단위 대출 금액, 지갑 재생성, 지갑 가져오기, 차익거래 시작 및 종료 기능을 제공합니다. 스크립트는 지갑 잔액, 지갑 주소, 상승/하락 표시가 포함된 실시간 가격을 표시합니다. 종속성으로는 ethers, inquirer, chalk가 나열되어 있습니다. 가격 모니터링 화면에는 Chainlink, Uniswap V2, SushiSwap, Curve Finance, Balancer의 ETH/USDC 가격과 플랫폼 간 최대 가격 차이가 표시됩니다. 안전 및 위험 경고가 강조되어 있습니다. wallet.json을 Git에 커밋하지 말고 .gitignore에 추가할 것, 개인 키의 오프라인 백업을 유지할 것, 봇 전용 지갑을 사용할 것, 소액으로 시작할 것, 그리고 개인 키를 절대 공유하지 말 것을 권고합니다. 또한 거래 수수료(0.1%), 슬리피지(0.05%), 가스비 및 플래시 론 수수료에 대해 언급합니다. 문제 해결 섹션에서는 모듈 형식 오류, 잘못된 개인 키 형식, 자금 부족, 지갑 잔액 0, RPC 사용 불가, V2의 ETH/USDC 페어 누락, 차익거래 기회 탐색 실패 등을 다룹니다. 실제 시장에서 이러한 가격 차이는 드물며, 스크립트가 시연을 위해 가끔 시뮬레이션된 기회를 보여준다고 명시합니다. 전반적으로 README는 지갑 관리, 다중 플랫폼 가격 모니터링, 프로토콜 선택 및 위험 고지 사항이 포함된 자동화된 DeFi 플래시 론 차익거래 스크립트를 제시합니다. 이는 교육 목적으로 '있는 그대로' 공유되며 사용자의 책임하에 사용하도록 안내됩니다. 주목할 만한 불일치 사항은 저장소 이름과 설명은 수익률 추적을 시사하지만, README는 차익거래를 설명하고 있다는 점입니다.