소개
끊임없이 진화하는 이더리움의 영역에서 채굴자(현재는 검증자)는 블록 내 트랜잭션 포함에 어느 정도 영향력을 행사합니다. 이러한 영향력은 종종 일반 사용자를 희생시키면서 추가 가치를 추출하는 데 활용될 수 있습니다. 이러한 현상을 최대 추출 가능 가치(MEV)라고 합니다. 플래시봇은 MEV의 영향을 완화하고 사용자가 트랜잭션에 대한 통제권을 강화하는 것을 목표로 하는 솔루션으로 등장했습니다.
플래시봇이란 무엇인가요?
플래시봇은 최대 추출 가능한 가치(MEV)의 부정적인 외부효과를 완화하고 MEV가 이더리움과 같은 스테이트풀 블록체인에 초래할 수 있는 실존적 위험을 피하기 위해 노력하는 연구 개발 조직입니다. 저희의 주요 초점은 세 가지 접근 방식을 통해 무허가성, 투명성, 지속 가능한 MEV 생태계를 구현하는 것입니다:
베리체인을 읽어주셔서 감사합니다! 무료로 구독하여 새로운 포스팅을 받아보시고 제 작업을 응원해 주세요.
일루미네이트: 조명: MEV 활동에 투명성 제공.
민주화: 민주화: MEV 수익에 대한 접근성을 민주화합니다.
배포: MEV 수익의 지속 가능한 분배를 가능하게 합니다.
플래시봇 사용의 이점
트랜잭션 속도 향상: 플래시봇 트랜잭션은 퍼블릭 멤풀에서 지연되는 트랜잭션보다 더 빠르게 포함을 확보하여 확인을 신속하게 처리합니다.
MEV 보호: 플래시봇은 퍼블릭 멤풀을 우회하여 개인적 이익을 위해 거래를 조작하려는 MEV 봇으로부터 거래를 보호합니다.
유연성: 플래시봇은 사용자가 블록 빌더에게 양보할 수 있는 최대 MEV 점유율을 지정할 수 있어 투명성을 보장합니다.
누가 플래시봇을 고려해야 하나요?
플래시봇은 여러 장점을 제공하지만 주로 특정 사용자 그룹을 대상으로 합니다:
디파이 트레이더: 플래시봇은 특히 탈중앙 금융 환경에서 널리 퍼져 있는 MEV 전술인 프론트런닝으로부터 보호합니다.
차익 거래자: 플래시봇은 적시에 트랜잭션을 실행하여 차익 거래 기회를 신속하게 포착할 수 있습니다.
디앱 개발자: 디앱은 플래시봇을 통합하여 사용자에게 MEV 보호와 잠재적으로 더 빠른 트랜잭션을 제공할 수 있습니다.
자바스크립트에서 플래시봇 프로텍트 사용하기
전제 조건:
Node.js 및 npm(또는 yarn)이 설치되어 있어야 합니다.
자바스크립트 및 이더리움 개념에 대한 기본적인 이해
단계별
프로젝트 설정:
새 프로젝트 디렉터리 생성:
mkdir flashbot-example디렉토리로 이동:
cd flashbot-exampleNode.js 프로젝트 초기화:
npm init -y(또는yarn init -y)
종속 요소를 설치합니다:
트랜잭션 생성을 위한
ethers.js라이브러리 설치:npm install ethers.js(또는yarn add ethers.js)플래시봇과의 상호작용을 위한
@flashbots/ethers-provider-bundle라이브러리 설치:npm install @flashbots/ethers-provider-bundle(또는yarn add @flashbots/ethers-provider-bundle)을 실행합니다.
자바스크립트 파일을 생성합니다:
프로젝트 디렉토리에
flashbot-protect.js라는파일을 만듭니다.
라이브러리 가져오기
const ethers = require("ethers.js");const { FlashbotsBundleProvider,} = require("@flashbots/ethers-provider-bundle");트랜잭션 세부 정보를 정의합니다:
// ethers.js에서 직접 표준 json rpc 공급자. 인퓨라, 알케미 또는 자체 노드를 사용할 수 있습니다.const provider = new ethers.providers.JsonRpcProvider({url: ETHEREUM_RPC_URL,});// `authSigner`는 자금을 저장하지 않으며 봇의 기본 키가 아닌 이더리움 개인 키입니다.// 이는 평판을 설정하고 화이트리스트를 지정하기 위해 페이로드에 서명하는 식별 키입니다const authSigner = 새로운 이더리움.Wallet("0x0000000000000000000000000000000000000000000000000000");// 플래시봇 공급자는 표준 공급자와 인증 서명자를 전달해야 합니다const flashbotsProvider = await 플래시봇 번들 공급자.create(공급자,authSigner);트랜잭션을 생성합니다:
const 트랜잭션 = {발신: 서명자.주소,수신: 서명자.주소,값: "0x42",gasPrice: BigNumber.from(99).mul(1e9),gasLimit: BigNumber.from(21000),};트랜잭션을 전송합니다:
const res = await flashbotsProvider.sendPrivateTransaction({transaction,signer,},{maxBlockNumber: (await provider.getBlockNumber()) + 5, // 다음 5블록 동안만 tx를 허용},);전송된 트랜잭션의 상태를 확인합니다:
const waitRes = await res.wait();if (waitRes === FlashbotsTransactionResolution.TransactionIncluded) {console.log("개인 트랜잭션이 온체인에 성공적으로 포함되었습니다.");} else if (waitRes === FlashbotsTransactionResolution.TransactionDropped) {console.log("개인 트랜잭션이 블록에 포함되지 않았으며 시스템에서 제거되었습니다.",);}
추가 문서: https://docs.flashbots.net/flashbots-protect
결론
결론적으로 플래시봇은 이더리움 트랜잭션 처리에서 혁신적인 발전을 이루었으며, 향상된 프라이버시, 효율성, 보안을 제공합니다. 플래시봇은 퍼블릭 멤풀을 우회하고 채굴자와의 직접적인 상호작용을 촉진함으로써 사용자가 전례 없는 속도와 프라이버시로 트랜잭션을 실행할 수 있게 하여 탈중앙화된 애플리케이션을 사용하는 방식을 혁신적으로 변화시켰습니다. 이더리움 생태계가 계속 진화함에 따라 플래시봇은 블록체인 기술의 미래를 형성하는 데 중추적인 역할을 할 것이며, 사용자와 개발자 모두가 탈중앙 금융, 디지털 소유권 등의 새로운 가능성을 열어갈 수 있도록 힘을 실어줄 것입니다.
베리체인을 읽어주셔서 감사합니다! 무료로 구독하여 새로운 포스팅을 받아보시고 제 작업을 응원해 주세요.







