프로젝트 소개
FlashLoanArbitrage는 DeFi 플래시 론 차익거래를 위해 공개된 Node.js 명령줄 봇입니다. README에 따르면, 이 봇은 온체인 스마트 컨트랙트와 사용자 기기에서 실행되는 로컬 스크립트인 goflash.js를 결합하여 작동합니다. 저장소 작성자는 이 프로젝트가 "교육 목적으로 있는 그대로" 공유되었으며, 사용자는 본인의 책임하에 사용해야 한다고 설명합니다.
작동 방식에 대한 설명은 다음과 같습니다. 컨트랙트가 USDC 단위의 플래시 론을 받고, 스크립트가 사전에 사용자의 ETH를 USDC로 변환합니다. 이후 한 거래소에서 ETH를 매수하여 다른 거래소에서 매도하며, 대출금과 수수료 및 가스비를 상환한 후 남은 USDC 수익을 다시 ETH로 변환합니다. 스크립트는 60초마다 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)를 나열합니다. 가격 스캔을 위해서는 기본 ETH 가격 오라클로 Chainlink를 사용하며, Uniswap V2, SushiSwap, Curve Finance, Balancer를 함께 활용합니다. 콘솔 출력에는 각 거래소의 가격이 상승/하락/불변 표시와 함께 나타나며, 플랫폼 간 최대 스프레드가 표시됩니다.
설치 및 사용 방법은 goflash.js와 package.json을 확보하여 임의의 폴더에 넣고, npm install을 실행한 뒤 node goflash.js를 실행하는 것입니다. 처음 실행 시 inquirer로 구축된 대화형 프롬프트가 나타나 새 지갑을 생성할지 또는 0x로 시작하는 개인 키를 통해 기존 지갑을 가져올지 묻습니다. 생성된 키는 동일한 폴더의 wallet.json에 기록됩니다. 이후 텍스트 메뉴를 통해 DeFi(플래시 론 프로토콜 선택), ETH 기준 대출 금액, 지갑 재생성, 지갑 가져오기, 차익거래 시작 및 종료 옵션을 제공합니다. 나열된 종속성은 ethers ^6.11.1, inquirer ^8.2.6, chalk ^4.1.2입니다.
명시된 제약 조건 및 비용에 따르면, 대출 금액은 10 ETH부터 선택한 프로토콜의 최대치까지 가능하며, 0.1 ETH 미만의 지갑은 가스비를 충당할 수 없으므로 10 ETH 이상의 대출을 받지 말라고 경고합니다. 또한 거래 수수료 0.1%, 슬리피지 0.05% 및 가스 비용이 총이익에서 공제된다고 언급합니다. 지갑 잔액은 가스비로만 사용되며 ETH가 컨트랙트로 전송되지는 않는다고 명시되어 있습니다.
주의해야 할 사항들이 있습니다. README 자체에서도 실제 시장에서 0.9%의 교차 거래소 스프레드는 드물며, 스크립트가 "시연을 위해 가끔 시뮬레이션된 기회를 보여준다"고 밝히고 있습니다. 즉, 표시된 출력이 실제 실행 가능한 거래와 일치하지 않을 수 있습니다. 또한 이 프로젝트는 사용자가 개인 키를 평문 wallet.json 파일에 생성하거나 가져오도록 요구합니다. 보안 섹션에서는 해당 파일을 절대 커밋하지 말고 .gitignore에 추가하며, 오프라인 백업을 유지하고, 봇 전용 지갑을 사용하며, 소액으로 시작하고, 키를 절대 공유하지 말라고 조언합니다. 이 소프트웨어를 평가하는 사람은 개인 키 보관과 광고된 수익률의 정확성을 핵심 리스크로 간주해야 하며, README의 예시에 의존하기보다 참조된 컨트랙트 주소와 스크립트 동작을 독립적으로 검증해야 합니다.
README에는 모듈 형식 오류, 잘못된 개인 키 형식, 잔액 부족, 지갑 잔액 0, RPC 사용 불가, V2의 ETH/USDC 페어 누락, 차익거래 기회 탐색 실패 등 일반적인 오류에 대한 문제 해결 섹션도 포함되어 있습니다. 설명된 프로젝트 구조는 goflash.js, package.json, wallet.json, README.md로 구성됩니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.