프로젝트 소개

## 개요 FlashLoanArbitrage(저장소 이름 flashloan-data-analyzer로 게시됨)는 DeFi 플래시 론을 이용한 암호화폐 차익거래용 Node.js 명령줄 도구입니다. README에 따르면 사용자의 컴퓨터에서 실행되는 단일 로컬 스크립트 `goflash.js`가 하나의 트랜잭션 내에서 대출, 거래 및 상환을 수행하는 스마트 컨트랙트와 상호작용합니다. ## 문서화된 작동 방식 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 ETH부터 프로토콜 최대치까지), 지갑 재생성, 지갑 가져오기, 차익거래 시작 또는 종료를 선택할 수 있습니다. 메뉴 헤더에는 지갑 잔액과 주소가 표시됩니다. ## 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의 가격 스캔 부분과 더 일치합니다.