DeFi Morse #16 - ⛏MEV와 💸알고리즘 스테이블 코인(1)
⛏Miner Extractable Value
이더리움과 많은 토큰들의 가격이 상승과 하락을 반복하면서, 지불하는 트랜잭션 수수료가 많아지기 시작했습니다. 하지만 이는 지속적인 것으로 보이지는 않습니다. 대체로 하루만에 낮은 수수료를 요구하는 경우가 많기 때문인데, 그렇다면 수수료가 급격하게 높아진 만큼 실질적인 사용량이 증가한 것인지, 또는 평균 수수료를 의도적으로 상승시킨 것인지 확인할 필요가 있습니다.
MEV는 Miner Extractable Value의 약자로, 채굴자가 트랜잭션을 검열하는 것으로 취할 수 있는 이익을 나타냅니다. 2018년부터 꾸준히 제기되어 2020년에는 실질적인 MEV가 대량으로 발생하여, 위협으로 다가오기 시작했습니다. 이번 호에서는 MEV를 소개하고, 이에 대해 어떻게 대응할 수 있는지 알아보려고 합니다.
MEV를 이해하기 위해서 현재의 블록체인에 트랜잭션이 어떻게 담기는지 알아야 할 필요가 있습니다. 일반적인 경우 트랜잭션이 네트워크에 공개되면 최대한 많은 노드에 트랜잭션이 전달되어 저장됩니다. 이 저장되는 장소를 메모리 풀, 멤풀(mempool)이라고 하며, 채굴 노드가 블록에 담을 트랜잭션을 이곳에서 선별하고, 다양한 노드들이 새로운 블록을 받았을 때 전송받을 트랜잭션 수를 줄이는 역할도 하게 됩니다. 여기에서 채굴 노드는 트랜잭션을 수수료가 높은 순서대로 정렬하여 블록에 순차적으로 담게됩니다.
트랜잭션이 네트워크에 공개되면 굉장히 빠른 속도로 많은 노드들에게 전송됩니다. 네트워크에 참여한 모든 노드들은 자신의 멤풀에 있는 쌓인 트랜잭션을 전부 파악할 수 있으며, 각각의 트랜잭션을 통해 어떤 결과가 도출될 것인지 알 수 있게 됩니다. 이러한 사실들로 네트워크에 참여중인 노드들은 다음과 같은 이익 활동을 할 수 있습니다.
Front Running
트랜잭션A는 “토큰A 100개를 토큰B 100개로 유니스왑을 통해 교환”한다는 데이터를 가지고 있습니다. 이 트랜잭션이 아직 블록에 담기지 않았을 때, 다른 노드가 교환 트랜잭션이 멤풀에 들어온 것을 보고, 트랜잭션A와 동일한 트랜잭션B를 네트워크에 공개합니다. 부가적으로 수수료를 트랜잭션A보다 높게 설정하여 먼저 블록에 담길 수 있도록 합니다.
두 개의 트랜잭션B와 A가 순서대로 한 블록에 담기거나, 대부분의 경우 B가 먼저 블록에 담긴 이후에 A가 담길 것입니다. 이는 결국 트랜잭션B가 실행된 이후에, 트랜잭션A가 실행 되는 효과를 가져오게 됩니다.
트랜잭션B의 교환이 먼저 일어났기 때문에 트랜잭션A는 실질적으로 “토큰A 100개를 토큰B 95개로 유니스왑을 통해 교환”됩니다. 이는 유동성 볼륨의 토큰 수량이 달라졌기 때문에 적용되는 것으로 실질적으로 트랜잭션A를 공개한 이용자는 손해를 입게됩니다. 이것이 저희가 잘 알고 있는 블록체인에서의 선매매 거래(Front-Running)입니다.
Back Running
또 하나의 예시로는 블록체인에 기록되는 자산의 가치, 즉 Price Feed에 따라 프로토콜들에 이벤트가 발생하는 경우가 있습니다. 대표적인 예시로 청산 이벤트가 있는데, 'ETH을 담보로 한 대출 계약'에서 담보의 가격이 하락하여, 대출 금액이 담보의 가격을 상회하는 경우가 존재합니다. 이러한 경우 계약을 청산시켜, 청산을 수행하는 이용자가 적어도 청산으로 발생하는 적은 이익을 가져갈 수 있는 시스템들이 여럿 존재합니다.
Price Feed에 기록하는 담보 가격도 트랜잭션을 통해 기록됩니다. 담보의 가격이 변동된다는 트랜잭션이 멤풀에서 발견되었을 때, 청산을 수행하는 트랜잭션을 바로 다음 순서에 실행할 수 있도록 수수료를 조절하여 네트워크에 공개할 수 있습니다. 트랜잭션이 성공적으로 블록에 담기게 된다면 다른 청산자들 보다 우월하게 청산을 수행할 수 있으며, 독점적으로 수익을 얻을 수 있는 수단이 됩니다. 이러한 패턴을 Back-Running 거래라고 합니다.
하지만 앞서서 소개해드린 거래 방법들은 아주 단편적이고 성공 확률이 낮은 방식으로 이뤄집니다. 성공 확률이 낮아지게된 이유에는 다음과 같은 이유들이 있습니다.
시간이 흐르면서 간단한 프론트/백 러닝을 수행하는 방법들이 고차원적으로 진화했습니다.
고차원적인 방법을 바탕으로 프론트/백/차익거래를 전문적으로 하는 봇들이 존재합니다.
트랜잭션을 네트워크에 공개하지 않기 위해 채굴 노드와 계약을 맺어, 트랜잭션을 채굴 노드만 가질 수 있도록 합니다.
봇은 의도를 숨긴 트랜잭션과, 다른 봇의 트랜잭션 패턴을 분석해서 봇의 잔고를 훔치는 트랜잭션을 발행합니다.
블록체인 자체는 모든 거래가 블록에 기록 되어 투명성을 가지지만, 멤풀과 같은 Off-chain 영역의 전략은 더욱 심화되었기 때문에 일반적인 프론트/백/차익거래 트랜잭션의 성공률이 극도로 낮아졌습니다.
그러나 트랜잭션을 블록에 담을 때 필요한 대전제는 "채굴 노드가 블록에 트랜잭션을 수수료가 높은 순서대로 담는다"는 점입니다. 하지만 채굴 노드가 이러한 대전제를 지키지 않는다면 어떨까요? 채굴 노드가 트랜잭션을 블럭에 담을 것인지, 담지 않을 것인지 조절해서 얻는 이득이 있을까요?
이는 실질적으로 채굴 노드가 수행할 수 있는 역량이며, 멤풀에서 진행되는 수수료 경쟁과 같이 Off-chain 영역의 역량입니다. 일반적인 사용자들에게 불투명한 영역이라는 뜻이죠.


이더리움은 평균 15초마다 블록이 생성될 수 있는 환경입니다. 비트코인과 비교했을 때 상대적으로 채굴 노드에게 블록 생성의 기회가 잦은편이고, 이 기회를 잘 사용한다면 채굴 노드에게는 커다란 기회가 될 것입니다. 그렇다면 채굴 노드는 이런 기회를 어떻게 이용하고 있을까요? 대표적인 몇 가지를 소개해드리겠습니다.
1inch의 Private 트랜잭션


1inch는 다양한 DEX들의 유동성을 모아 사용자가 토큰을 다른 토큰으로 바꿀 때 최적의 비율을 제시합니다. 토큰을 바꾸는 것도 트랜잭션이기 때문에 앞서 이야기 한 선매매 거래 트랜잭션의 영향을 받을 수 있습니다. 이를 방지하기 위해서 1inch는 10개의 채굴 노드에게 트랜잭션을 바로 전달합니다.
트랜잭션이 전달된 채굴 노드는 직접 전달받은 트랜잭션을 다른 노드로 전송하지 않고, 자신의 멤풀에만 가지고 있게 됩니다. 다만 이는 표면적인 기능일 뿐이고, 해당 트랜잭션 정보를 채굴 노드가 이용하는 것은 부차적인 문제일 것입니다.
Taichi Network에서 제공하는 Private 트랜잭션
비슷한 기능을 Taichi Network에서도 제공하고 있습니다. 이는 이더리움 노드 주소만 변경하면 트랜잭션을 대표적인 이더리움 채굴 노드 중 하나인 SparkPool로 직접 전송할 수 있으며, 이 또한 표면적으로는 SparkPool이 만드는 블록에만 트랜잭션이 담기게 됩니다.
이러한 Private 트랜잭션 기능을 이용하는 이용자들은 대체로 다른 모든 트랜잭션 보다 우선적으로 실행되기 위해서 높은 수수료를 지불하는 것이 일반적입니다. 그리고 이는 해당 기능을 제공하는 채굴 노드에게 있어, 확정적인 수수료를 취할 수 있다는 장점이 있습니다.
다만 앞서 말했듯이 채굴 노드가 수수료를 높은 순서대로 정렬해야 한다는 대전제를 지키지 않는다면 어떨까요? 이때 채굴 노드는 다음과 같은 전략들을 취할 수 있습니다.
평균 수수료를 가진 트랜잭션을 허용하지 않는 것으로 의도적으로 높은 수수료를 지불하도록 유도할 수 있습니다.
평균 수수료 보다 낮은 트랜잭션, 또는 수수료를 사용하지 않는 트랜잭션을 블록에 담을 수 있습니다.
사용자들의 트랜잭션과 동일한 트랜잭션을 우선적으로 블록에 담을 수 있습니다.
비 정기적으로 Nonce Classic의 DeFi Morse가 발행됩니다.
발행인은 현재 DSRV의 Head of Research로 재직중이나, 회사의 의견은 포함되어 있지 않고 발행인의 주관적인 입장만 포함되어 있음을 알려드립니다.
이 뉴스레터의 모든 내용은 투자 조언이 아니며 공개된 정보를 통해 투자의 손실이 발생한 경우 발행인은 책임지지 않습니다. 또한 특정 단체, 회사 그리고 개인을 대표하지 않으므로 정보의 습득에 유의할 필요가 있습니다.
DeFi Morse 뉴스레터의 스폰서가 되길 바라신다면, 개인적으로 연락 바랍니다.
발행인은 with☕️ 토큰을 발행하였습니다. 제가 커피를 소개해드리고 적어도 1시간동안의 대화를 하실 수 있습니다. 자세한 사항은 링크를 통해 확인하실 수 있습니다. 다만, 코로나 바이러스의 영향으로 인해 현재 프로그램을 진행하지 않지만, 토큰은 언제든 구매하실 수 있습니다.
언제나 안전하게 지내시길 바랍니다.