# Flash Bot
Title
---
- Flash Boys 2.0: Frontrunning, Transaction Reordering, and Consensus Instability in Decentralized Exchanges
Abstract
---
- 블록체인은 투명하고 공정하다고 생각하지만, 아쉽게도 그렇지 않다. Arbitrage Bot의 Front Running에 의한 일반 사용자들의 피해가 발생하는데, 본 논문에서는 이 bot들의 정량화 가능한 수익 (quantifiable revenue) 와 수익 전략 (profitable strategies). 또한, 이러한 우선순위 기반의 tx 정렬 방법이 블록체인의 consensus layer에 어떤 위험을 노출시키는지 분석했다.
Introduction
---
- 논문에서 중점적으로 다루는 내용은 `Pure Revenue Opportunities`, `Priority Gas Auction (PGA)`, `Miner Extractable Value (MEV)`, `fee-based forking attack과 time-bandit attack`이 된다. Pure Revenue Opprotunities는 어떤 tx들이 수익을 얻을 수 있는 tx인가에 대한 것을 의미하고, PGA는 경쟁적으로 가스비를 지불하여 tx에 대한 우선처리권을 얻게 되는 방식을, MEV는 miner가 tx의 순서를 배치 (ordering optimization)함으로써 얻는 수익을 각각 의미한다. `fee-based forking attack`은 Bitcoin 의 double spend 문제 중 하나이고, `time-bandit attack`은 기존에 있는 블록체인의 history 를 다시 쓰는 공격을 의미한다. (기존 존재하는 블록을 무시하고 새로운 블록을 생성해서 가장 긴 체인으로 만드는 행위를 의미함.)
- 이런 문제점을 파헤치면서 알 수 있는 것은 Bitcoin 과 같은 payment action에만 국한된 것은 블록에 포함된 tx가 atomic 하게 처리가 되므로 tx 순서 조작에 대한 문제는 없지만, smart contract를 처리하는 블록체인의 경우에는 Bitcoin 의 경우가 적용되지 않음을 알 수 있다.
Background
---
- 몇가지 background들
- smart contract
- 이더리움의 gas and gas fee: tx 는 confirmed (수행됨), unconfirmed (아직 채굴되지 않음) 그리고 rejected (거부됨) 이렇게 3가지 상태를 갖는다.
- gas price: smart contract 가 수행되는데 필요한 gas fee
- gas limit: DoS 공격이나 무한 루프를 방지하기 위해 지정한 max trial step 이라고 보면 됨
- gas price 와 gas limit은 수정될 수 있음. 이 원리는 nonce 에서 오는데, tx는 (account, nonce) 페어를 갖고 있음. 따라서, 새로운 gas price 와 gas limit로 업데이트하고 싶다면 같은 (account, nonce) 로 제출을 했을 때, miner는 더 높은 gas fee를 지불한 tx를 먼저 처리함. 이 원리를 활용하여 업데이트하는 것임. [geth source code](https://github.com/ethereum/go-ethereum/blob/master/core/tx_list.go#L281-L314)
- continuous-limit orderbook
- dex
- front running: 전통시장에서의 front running 은 불법임. 이는 정보의 비대칭성 (예를 들어, 트레이더의 기관 주식 체결 등)을 활용하기 때문임. 하지만, 긍정적인 사례도 있는데 breaking news 를 활용한 거래소 간 차익거래도 있음. 여기서 더 빠른 거래 체결을 위한 조건은 물리적으로 성능이 좋은 네트워크.
From Decentralization to Arbitrage
---
- 전통 금융 시스템과 Dex 의 극명한 차이는 `atomic batch transaction`에서 온다. 즉, proxy contract를 활용하여 하나의 tx 안에 여러 거래소 간 주문 및 거래를 포함시킬 수 있다. 만약 하나의 거래가 fail될 경우 전체 tx에 대해서 revert 조치를 취한다. 이를 `all-or-nothing failure model` 이라고 부른다. 이러한 특성은 전통 금융 시스템에서의 arbitrage bot 과 다른데, 전통 금융 시스템의 arbitrage bot은 여러 tx중에서 하나의 tx가 실패할 수 있기 때문에 확률적이라고 볼 수 있다. 그에 반해 블록체인에서의 arbitrage bot 은 smart contract의 atomic한 성질때문에 `all-or-nothing failure model`이 가능하여 결정론적인 방법이라고 볼 수 있다.
- `Pure revenue opportunity`라 함은, 하나의 tx 안에 여러개의 proxy contract를 포함시켜서 여러 거래소 간 거래로 얻게 되는 이익을 의미한다.
- PGA 는 all-pay auction (승자도 패자도 모두 bidding 비를 지불) 이다.
(...)