이번 포스팅에서는 스마트 컨트랙트(Smart Contract)와 관련된 프런트 러닝(Front-running) 공격에 대해 알아보려고 합니다. 원래 전통적인 금융 시장에서의 프런트 러닝은 주식 거래, 옵션, 선물 계약, 파생 상품 또는 증권 기반 스왑을 체결하여 가격에 영향을 미칠 대규모 보류 중인 거래에 대한 비공개 지식을 사전에 활용하는 행위로 불법으로 정의되어 있습니다. 이러한 프런트 러닝이 스마트 컨트랙트에서는 다음과 같이 사용됩니다.
모든 트랜잭션은 실행되기 전에 잠시 동안 멤풀(mempool)에서 볼 수 있으므로, 네트워크 관찰자는 블록에 포함되기 전에 작업을 보고 반응할 수 있습니다. 이러한 비공개 정보를 이용해 계약의 순서를 바꾸거나(Displacement), 추가 계약의 삽입(Insertion), 또는 계약 수행을 방해(Suppression, a.k.a. Block Stuffing) 하는 등으로 임의로 트랜잭션의 순서에 영향을 미쳐 수익을 꾀하는 일련의 행위입니다.
예를 들어, 누군가 2000 ETH의 스왑 계약이 멤풀에 포함되었고, 이 계약으로 인해 5%의 slippage가 발생할 것을 알고 있다고 가정합시다. 그럼 미리 해당 계약에 앞서 구매 계약을 삽입해 낮은 가격에 ETH를 매수하고 해당 트랜잭션이 수행된 이후에 5% 높아진 가격에 UNI를 매도해 수익을 취득합니다. 보다 구체적인 예시는 여기를 통해 알아볼 수 있습니다.
이러한 프런트 러닝을 활용한 대표적인 예가 MEV(Miner/Maximum Extractable Value)입니다. Flash Boys 2.0 논문을 통해 소개된 MEV는 올해 초 시장 참여자들로 하여금 높은 가스비를 지불하게끔 한 원인이 되었습니다. 이러한 MEV은 현재도 대다수의 채굴자들이 수행하고 있는데, 다음 MEV-Explorer v0가 제공하는 MEV 지표를 통해 이러한 경향을 확인할 수 있습니다.
이더리움의 경우, 런던 하드 포크에 포함될 EIP-1559의 가스비 변경사항으로 인해 일부에선 가스비가 내려가고 이러한 프런트 러닝이 해소될 것이라 믿는 사람들도 있지만 실상은 예측 가능한 범위 내에서 가스비가 설정될 뿐, 이러한 공격에 대해선 수정되는 사항은 없습니다.
현재 알려진 프런트 러닝 해소 방안으로는 트랜잭션 순서를 적절한 선에서 바뀌기 어렵도록 하거나(Transaction Ordering), 트랜잭션의 가시성을 제한(Confidentiality)하는 등이 있습니다만, 아직 완벽한 처리 방안은 나타나지 않고 있습니다.
이러한 이유로 DeFi에서 Swap 등의 계약을 수행할 때 반드시 slippage rate을 확인해 프런트 러닝에 노출되지 않도록 하는 것이 중요합니다.
'코인 > 코인 정보' 카테고리의 다른 글
이더리움(Ethereum) 런던 하드 포크 8월 5일 수행 예정 (0) | 2021.08.02 |
---|---|
2021년 8월 1일 현재 비트코인(BTC) 채굴이 매력적인 이유 (0) | 2021.08.01 |
클레이튼(KLAY)을 스테이킹과 클레이스왑(KSP) 풀을 통해 얻는 방법 (0) | 2021.07.21 |
비트코인(BTC) 다음번 반감기(Halving)는? (0) | 2021.07.18 |
스테이블코인을 예치하고 연 이율 7.5~12%을 얻는 방법 (1) | 2021.07.17 |