CDFi 4번째 세션 <1>
hosted by 장희수 교수님(숭실대 금융학부)
- 월스트리트 디파이의 세미나 내용은 유튜브에서 영상으로도 보실 수 있습니다.
- MEV란?
- MEV의 실제 사례
- 블록체인 속 MEV
- DeFi 속 MEV의 영향
- MEV 해결을 위한 노력
- PBS
- Epilogue: CDFi만의 잡담
1. MEV란?
MEV는 Maximal Extractable Value, 즉 최대 추출 가능한 가치를 의미합니다. 이는 거래가 투명하게 공개되는 블록체인이 갖는 특징 중 하나입니다.
블록을 생성하는 사람을 흔히 ‘채굴자’로 알고 있는 경우가 많습니다. 비트코인과 같은 PoW (Proof-of-Work) 매커니즘에서는 채굴자가 블록을 생성하는 것이 맞습니다. 그러나 이더리움이 시작한 PoS (Proof-of-Stake) 매커니즘에서는 채굴자가 아닌, Validator(검증인)이 블록을 생성하게 됩니다.
생태계 내에 Builder들이 블록에 transactions들을 채워서 전달하면, Validator가 이를 받아 내용이 사실인지 확인하고 도장을 찍습니다. 이렇게 블록 생성에 관련된 사람들이 1) 거래 순서를 바꾼다거나, 2) 다른 사람의 거래를 복사해서 자기가 거래를 다시 만든다거나 하는 식으로 추가적인 이익을 시스템에서 추출해 나갈 수 있습니다. 이런 것들을 통틀어서 MEV 라고 부릅니다.
전통 금융 시장과 유사점
이런 작업들은 High Frequency Trading Market에서 있었던 가격 조작과 상당히 유사합니다. HFT는 빠른 시간에 다른 사람들의 거래를 보거나, 본인의 거래를 제출했다가 취소하는 형태로 가격을 조작하는 등 시장에서의 교란 행위를 일으킬 수 있다는 점에서 MEV와 유사한 점이 있습니다.
현재 전통 금융 시장에서 이러한 행위들은 법적으로 규제 및 처벌 대상입니다. 하지만 DeFi 시장에서는 아직 규제가 없기도 하고, 블록체인의 모든 거래는 Memory Pool (일명, Mempool)이라는 곳에 공통적으로 거래를 보낸다는 특징이 있습니다. 이러한 Mempool에 의해 모든 거래 내용이 공개되어 있어, 이러한 교란 행위들이 더 생기는 것이기도 합니다.
Example
교란 행위의 대표적인 예시를 들어보자면, 아래와 같은 상황이 있을 수 있습니다. 어떤 투자자가 HFT 마켓에 주문을 넣습니다. 해당 투자자는 Euronext Amsterdam과 London Stock Exchange 두 곳에 거래 주문을 진행하였고, 그 중에서 Amsterdam에서 XYZ 주식 15주에 대한 구매 거래를 하게 됩니다. 그런데 이 거래를 누군가 먼저 관찰하였고, 유사한 거래가 다른 곳에도 들어올 것이라는 생각으로 엄청 짧은 시간에 XYZ 주식의 가격을 약간 올립니다. 따라서 특정 투자자는 London Stock Exchange에서는 기존 가격보다 좀 더 비싼 가격으로 구매를 하게 됩니다. 이러한 상황에서 거래를 관찰한 관찰자는 가격 조작을 통해 추가적인 이득을 취해갈 수 있으며, 이러한 MEV가 DeFi에서는 지속적으로 존재했다는 것입니다.
2. MEV의 실제 사례
이러한 교란 행위가 계속 발생한다면, 일반 이용자나 트레이더가 DeFi를 이용하기 꺼려할 것입니다. 특히 DeFi는 아직 규제가 없기 때문에, 블록체인 생태계에 있는 사람들은 이 MEV 문제를 다른 방식으로 해결하려고 시도하고 있습니다.
Flash Crash in Traditional Market (2010)
전통 시장에서의 대표적인 사례 중 하나로, 2010년 발생한 Flash Crash 사태가 있습니다. 이 때 다우존스 지수가 엄청 하락하는 사건이 발생합니다. 당시 하락에 대한 조사를통해 Spoofing 행위에 대한 혐의를 확인할 수 있습니다.
Spoofing은 시장에서 참여자보다 앞서 나가고 거래를 조작하기 위한 알고리즘을 뜻합니다. 이 알고리즘을 바탕으로 특정 트레이더는 다우존스 주식 인덱스를 대량 매도하는 거래 주문을 진행했고, 해당 주문을 곧 바로 취소했습니다. 그 취소하는 기간 사이, 다른 시장 참여자들은 가격이 떨어진다고 생각하고 매도를 따라 진행합니다. 그러면 특정 트레이더는 낮은 가격으로 매도된 거래를 주어담아 주식을 사놓은 다음, 다시 가격이 오르면 다시 팔아 이득을 취했습니다.
Flash Crash in Ethereum (2017)
이러한 교란 및 조작 행위는 비트코인과 이더리움에서도 많이 발생합니다. 특히 거래들이 대부분 익명으로 진행되기 때문에 원인과 사례들을 명백하게 확인하기 어렵습니다. 하지만 과거 이더리움에서 가격이 확 떨어졌다가 증가하는 현상을 관찰할 수 있었으며 특히 2017년에 일어났던 가격 흐름을 보았을 때, MEV가 원인이라는 의견이 있습니다.
번외. ETH 가격 변화의 결과
이더리움의 가격이 떨어지면 관련 생태계가 요동치는 현상이 생깁니다. Lending Protocol, 크립토에서의 대출 플랫폼은 기본적으로 과담보 대출로 진행합니다. Maker DAO(최근 SKY로 리브랜딩)에서는 ETH를 담보로, Maker DAO 생태계에서 사용되는 스테이블 코인인 DAI를 발행합니다. 따라서 담보물인 ETH의 가격이 떨어지면 DAI의 가격이 떨어지는데, 가치를 고정시키기 위해 DAI의 유동성을 조정하게 됩니다.
이러한 방식은 기타 프로토콜도 비슷합니다. ETH을 담보로 잡고 각 프로토콜의 서비스가 운영되기 때문에 레버리지를 활용하는 것과 같으며, 유동성의 변화가 발생되면 전체 시장에 미치는 유동성 변화는 더 커지게 됩니다. 따라서 이러한 연쇄적인 영향은 현재 DeFi 시장에서 가장 큰 리스크 중 하나입니다.
3. 블록체인 속 MEV
MEV는 Miner, Validator, 그리고 MEV를 찾는 사람들 모두가 가져갈 수 있습니다. 그리고 이렇게 MEV를 찾는 사람들을 Searcher라고 부릅니다. 그리고 이러한 MEV 문제를 화두로 던진 대표적인 글이 ‘Ethereum is a dark Forest’ 라는 글입니다.
예시 1) Flash Loan
블록체인에서의 MEV는 아래와 같은 상황으로 흘러갑니다. (Etherscan 예시)
특정 트레이더가 두 거래소 간에 차익 거래가 가능하다는 것을 발견합니다. 그래서 AAVE 라는 대출 플랫폼을 통해 Flash Loan을 진행합니다. 총 1,000 ETH를 대출 받은 뒤, Uniswap에서 DAI로 교환을 합니다. Uniswap에서는 DAI가 더 싸고 ETH가 더 비싸기 때문에, 특정 거래소에서 비싼 가격으로 ETH를 매도한 것과 같은 결과입니다. 그후, 대출 플랫폼 AAVE에게 다시 1,000 ETH 및 사용 요금을 내고 남은 금액이 45.62 ETH로 확인됩니다. 결국, 45.62 ETH만큼 이익을 본 것입니다. 이것이 블록체인 속 대표적인 MEV 중 하나입니다.
Flash Loan이자 없이 과담보 형태로 진행되는 블록체인만의 대출 시스템입니다. 하나의 컨트랙트에 여러 거래들을 진행할 수 있습니다. 앞서 살펴본 것 처럼 대출-DAI구매-DAI판매-대출상환, 이렇게 4개의 거래가 하나의 컨트랙트에 들어있습니다. Flash Loan은 이렇게 하나의 컨트랙트 속에 대출과 상환이 모두 진행되고, 원금이 회복될 수 있다는 것이 확인될 경우에만 진행됩니다. 만약 중간에 거래가 중단되거나, 원금 회복이 될 수 없다고 판단될 경우 모든 거래가 취소됩니다.
예시 2) Sandwich Attack
방금 Flash Loan을 통한 MEV는 시장을 효율적으로 만들어준다는 인식이 있습니다. 해당 거래를 통해 거래소 간의 가격 간극이 좁혀질 수 있기 때문입니다. 하지만 Sandwich Attack의 경우 의도적으로 가격을 조작하는 공격입니다.
특히 프론트러닝과 백러닝이 동시에 시행되고, 주로 AMM 메커니즘 기반의 DEX에서 주로 일어납니다. 똑같이 예시로 살펴봅시다.
특정 피해자가 ETH 거래 pool에서 100 ETH를 매수하는 거래를 발생시킵니다. 해당 거래가 블록에 등록되어 진행이 되기 위해, mempool에 저장됩니다. 이 mempool은 완전 공개적인 장소이므로 블록 생성에 관심이 있는 모든 사람들이 해당 거래를 보게 됩니다. 일반적인 DEX의 ETH pool에서 ETH 매수가 진행되면, pool 안의 있는 ETH 갯수가 줄어들게 되므로 ETH 가격이 상승하게 됩니다. 따라서 블록을 생성하는 사람 또는 searcher들은 ETH 가격이 상승할 것이라고 예상합니다.
이더리움에서는 가스비를 높게 하면 해당 거래를 보다 일찍 일어나게 블록 앞으로 넣어줍니다. 따라서 MEV를 진행하는 트레이더는 본인이 피해자보다 먼저 100 ETH 매수 거래를 더 높은 가스비를 통해 일찍 진행되게 만듭니다. 그러면 피해자는 더 높아진 ETH 가격으로 100개를 구매하게 됩니다. 그렇게 더 높아진 ETH 가격에 트레이더는 ETH를 다시 매도하여 시세 차익을 남기게 됩니다.
위 거래 예시는, HONK 라는 코인 거래 과정에서 발생한 샌드위치 공격을 보여줍니다. HONK 코인을 Uniswap 이라는 DEX에서 거래하고 있었습니다.
1) 특정 피해자의 거래보다 일찍 0.23 ETH로 18억 HONK를 구매하는 거래 진행(1 ETH = 대략 78억 HONK) -> Frontrun
2) 피해자는 0.46 ETH로 33억 HONK를 구매 (1 ETH = 대략 71억 HONK, 앞선 Frontrun 보다 비싸게 HONK를 구매함)
3) 피해자 거래 이후 높아진 HONK 가격으로 18억 HONK를 매도, 0.26 ETH 취득 (거래 후 0.03 ETH에 달하는 이익을 추출)
피해자 입장에서는 결국 가격 조작 공격을 당한 것입니다. 아직 명확한 해결책은 없습니다. 이러한 샌드위치 공격을 안 당하려면 100 ETH를 잘게 쪼개서 가격 변동이 일어나지 않는 범위에서 여러번 거래를 하라고 추천합니다.
4. DeFi 속 MEV의 영향
앞서 말한 1번 Flash Loan과 같은 예시는 시장을 효율적으로 만드는 MEV라고 볼 수 있습니다. 차익 거래를 통해 시장의 간극을 빠르게 없애고, 과담보 대출 시장에서도 빠른 청산을 통해 유동성을 제공하여 대출금 회수를 보장합니다. 이러한 면에서 MEV는 시장 건전성과 효율성을 확보하는 역할을 한다고 볼 수 있습니다.
하지만, 샌드위치 공격의 경우 시장을 비효율적으로 만드는 MEV라는 컨센서스가 존재합니다. 똑같은 거래라고 해도, 샌드위치 공격을 받은 경우 의도하지 않아도 트레이더가 시장가보다 비싸게 거래를 할 수 있기 때문에 일반적인 유저의 UX를 훼손하고 그들의 수익을 갈취합니다. 이러한 공격들은 매우 빠른 시간 내에 진행되기 때문에 아마추어 트레이더는 실제로 수익을 내기 어렵습니다. 남들보다 더 빠른 시간내에 거래를 제출하고 실행되게 만들기 위해서는 높은 가스비 지급이 필수적입니다. 그런데 MEV가 많을 수록 더 많은 가스비를 제출하게 되고, 이런식으로 계속 진행되면 Priority Gas Auction, PGA가 발생하여 네트워크를 과부하시키고 수수료 가격을 증가시킵니다.
초기 비트코인의 채굴 수익은 정말 컸습니다. 하지만, 지속적인 반감기로 인해 점점 50–25–12.5–6.25–3.125 BTC로 보상이 줄어들고 있는 상황입니다. 이더리움은 초기부터 낮은 확률로 높은 기대 수익을 목표로 하지 않았습니다. 중앙화 방지를 위해 높은 확률이지만 적은 기대 수익을 통해 더 많은 사람이 네트워크에 참여하도록 만들었습니다.
하지만 이러한 보상이 계속 줄어들게 되면, MEV를 통해 얻는 수익이 블록 생성 보상보다 높은 상황이 종종 발생하게 됩니다. 이러면 블록이 점점 퍼져나가는 것을 방해할 수 있게 됩니다. 이런 것을 Time Bandit Attack, 이더리움에서는 re-org 라고도 부르는 현상입니다.
이더리움에서는 특정 기간을 주기로 Validator를 추첨을 통해 선정합니다. 그래서 블록을 생성하는데, 굉장히 큰 수익을 낼 수 있는 transaction을 발견하게 됩니다. 그리고 엄청난 우연으로 바로 다음 블록의 Validator도 연속으로 맡게 됩니다. 이럴 경우 해당 거래에 대한 MEV를 진행하고 Block Fork를 시켜버립니다. Fork는 블록체인이 분기되는 것을 말하는데, MEV를 진행하는 공격자는 기존 Block이 아닌 자신의 공격을 위한 블록으로 Fork시킴으로써 근간이 되는 블록체인을 본인에게 유리하게 바꿉니다. 비트코인도 현재 점점 블록 채굴 보상이 줄어들어 영세 채굴 기업이 사라지고 소수의 강력한 채굴자들이 남으면서 이러한 Time Bandit Attack을 진행할 가능성이 커지고 있습니다. 관련해서 ‘On the Instability of Bitcoin Without the Block Reward’ 라는 리서치를 참고해보면 좋을 것 같습니다.
우리는 블록체인이 갖는 검열 불가능, 검열 저항성, 무결성 등의 특징을 굉장히 좋게 평가하고 있었습니다. 하지만, 줄어든 채굴 보상은 채굴자를 MEV로 이끌고, 채굴자 본인에게 유리하게 Main Chain을 변경함으로써 건전한 생태계가 위협받을 수 있는 상황에 놓이게 되는 것입니다.
5. MEV 해결을 위한 노력
이러한 이유들로 현재 MEV 문제를 해결해야 한다는 컨센서스가 있습니다. 아직 DeFi 시장에는 규제가 없으므로 다른 방법으로 해결하자는 아이디어가 나오고 있습니다.
대표적으로 위 트위터 글에서는 이더리움의 MEV 문제를 지적하고 있습니다. MEV를 통해 특정한 사람들만 수익을 가져가고 있으며, 점점 중앙화되어 가고 있다고 말합니다. 그래서 이에 대한 답변으로 비탈릭 부테린이 지금 이더리움이 하고 있는 방향을 얘기하고 있습니다.
- MEV MinimizationMEV가 일어나는 주된 이유는 mempool이 공개되어 있기 때문입니다. 그래서 암호학 기술로 mempool의 거래를 가리고 보내자 하는 아이디어입니다. 이럴 경우, 사람들이 거래 내용을 모르기 때문에 프론트러닝을 하지 못할 것이라는 접근법입니다.
- MEV Quarantining메인 해결 방안으로 PBS (Proposer / Builder Separation)라고 합니다. Proposer는 거래를 담아 블록을 검증하고, 다음 블록으로 채택하는 일을 합니다. 그리고 빌더는 직접 거래를 담아 블록을 만드는 일을 합니다. 이 두 Proposer와 Builder의 역할을 분리하자는 것이 PBS입니다. 비트코인에서는 두 역할이 동일한 채굴자에 의해 진행됩니다. 높은 수수료 순서로 차례대로 블록을 만드는 것이 아니라, MEV를 위해 거래 순서를 바꿉니다. 하지만 Proposer와 Builder를 분리하여, 이러한 MEV 행위를 하지 못하게 막는 것입니다.
- Verkle Trees and EIP-4444이더리움 개선안으로 불리는 EIP는 이더리움 발전을 위해 생태계 내부에서 개발, 구상되는 아이디어 입니다. 그 중 EIP-4444는 구식 데이터를 청소하는 내용을 담고 있습니다. ‘The Purge’라고 불리는 이더리움의 로드맵 중 하나에 포함될 것으로 예상되며, 노드의 저장 공간을 일부 경량 노드로 옮김으로써 노드 비용이 감소하여 블록체인의 탈중앙성 확보를 기대할 수 있습니다.
6. PBS
현재 MEV를 해결하는 방법 중 가장 메인으로 떠오른 해결책이 PBS 입니다. 그 전에, MEV 발생 과정에 대해 좀 더 알아보면 아래와 같습니다.
거래가 진행될 경우, 해당 데이터가 mempool에 전달됩니다. Searcher는 mempool을 계속 관찰하다가, 추가적인 수익을 낼 수 있을 것 같은 거래를 찾아냅니다. 그러면 MEV 거래를 포함한 transaction bundle을 만들어서 Builders에게 보냅니다. Searcher는 이때 본인의 거래가 빨리 진행되기 위해, Builder에게 추가 수수료를 더 얹어서 보냅니다. 그러면 Builder가 bundled transaction을 모아 Block을 만듭니다. 이렇게 만들어진 Block은 Relay가 받아서 Validator한테 보냅니다.
Relay가 Block을 보낼 때, 해당 작업을 전문적으로 하는 회사가 존재하며 대표적으로 ‘Flash bot’이 있습니다. 해당 회사가 mev-boost 방식을 사용합니다. 이렇게 Validator한테 전달할 때에도, 본인의 Block을 선택되기 위해 추가적인 수수료를 얹어서 보냅니다. Validator는 이렇게 Block을 받아서 유효성 검증을 하고 블록체인에 붙입니다.
이렇게 MEV는 Searcher-Builder-Validator 모두가 이런 식으로 서로서로 차익 거래에 대한 수익을 나눠 먹는 구조로 되어 있습니다. 특히 Validator의 경우, 몸집이 큰 Validator 일수록 MEV 발견 확률이 높아지기 때문에 빈익빈부익부 현상이 지속됩니다.
이더리움은 이러한 Validator의 독과점을 막고, 추가적인 보상이 발생될 경우 이것을 서로 공유함으로써 평준화를 하고자 합니다. 지금 ‘Flash Bot’과 같이 대부분의 Relay들은 외부 업체들이 진행합니다. 이를 평준화 시키고, Flash Bot이 진행하고 있는 mev-boost 기능을 프로토콜 내부에서 가능하도록 만들고 있습니다.
지금까지 모든 거래들을 mempool에서 확인할 수 있지만, 장기적으로는 암호학적 기술을 통해 내용을 가리고, mev 분산화하여 크기가 작은 validator, searcher 들도 충분히 수익을 나눠서 먹을 수 있도록 만드는 것을 목표로 하고 있습니다.
하지만 이런 노력이 Sandwich Attack에 대한 궁극적인 해답이 되진 않습니다. 대신 Sandwich Attack도 DEX 메커니즘의 교체 및 암호화 기술을 통해 최대한 MEV를 줄이려는 시도를 하고 있는 것으로 보여집니다.
Epilogue: CDFi만의 잡담
Ethereum Mempool
우리도 Ethereum Mainnet에서의 mempool을 쉽게 확인할 수 있습니다. 트랜잭션 하나하나 확인할 수 있으며, 특정한 스마트 컨트랙트 및 함수에 대한 알람을 설정하고 해당 거래가 들어오면 더 높은 수수료로 제출하면 되는 것입니다. 하지만 개인이 manual하게 진행하기에는 난이도가 굉장히 높습니다.
Validator & Builder
이더리움에서는 32 ETH를 스테이킹하면 Validator가 될 자격이 주어집니다. Validator는 사실 도장을 찍는 역할이라고 볼 수 있습니다. Builder가 블록에 거래를 차곡차곡 담아서 Validator에게 보내주면, 해당 거래가 유효한지 확인하고 확인 도장을 찍어서 기존 블록체인에 잇습니다. Re-org 도 Validator가 진행하여 발생되는 것입니다.
뉴스레터: https://maily.so/cdfi
유튜브: Youtube_월스트리트디파이
텔레그램(뱅크리스 코리아): https://t.me/BanklessKorea
트위터(뱅크리스 코리아): https://twitter.com/BanklessKorea
댓글
의견을 남겨주세요