[DEX Series] 4. MEV

100y
Decipher Media |디사이퍼 미디어
21 min readFeb 27, 2022

들어가며

서울대학교 블록체인 학회 디사이퍼의 디파이 톺아보기 팀이 작성한 DEX 시리즈를 공개합니다. 지금까지 기본적인 AMM 모델들을 사용하고 있는 여러 DEX들 부터 시작하여, 더 나아가 오더북을 사용하는 DEX들이나 선물거래까지 다루는 DEX들까지 살펴보았습니다. 이들은 모두 각자가 바라보는 문제점들을 각자의 방식으로 잘 해결해 나간 사례들입니다. 하지만 어플리케이션 레벨에서의 문제점이 아닌, 이더리움 네트워크 상의 어플리케이션이라면 모두가 겪을 수 밖에 없는 문제가 도사리고 있습니다. 바로 MEV(Maximal Extractable Value) 문제입니다.

[DEX Series]
1. 서로 다른 가치의 자산 거래
2. 동일한 가치의 자산 거래
3. 선물거래
4. MEV

Author
Jason of Decipher, ‘디파이 톺아보기’ Team
Seoul Nat’l Univ. Blockchain Academy Decipher(@decipher-media)
Reviewed By 정재환

MEV (Maximal Extractable Value)란?

MEV의 개념은 2019년 4월, Philip Daian의 논문인 ‘Flash Boys 2.0’에서 처음 제시되었습니다. MEV는 네트워크의 채굴자들이 블록에 담기는 트랜잭션들을 임의로 포함시키거나, 제외시키거나, 순서를 바꿈으로써 추출해낼 수 있는 수익을 의미합니다. 이를 이해하기 위해서 사용자들이 네트워크 상에서 트랜잭션을 생성하는 과정을 간단히 알아봅시다.​

보류 중(pending)인 트랜잭션은 멤풀(mempool)에 존재하며 누구나 확인할 수 있습니다.

이 글의 독자분들께서도 메타마스크(metamask) 개인지갑을 이용해서 트랜잭션을 생성해본 경험이 있을 것입니다. 하지만 가스비(Gas fee)를 포함하여 트랜잭션을 생성할 때 바로 트랜잭션이 처리되는게 아니듯이, 트랜잭션은 바로 블록체인의 블록에 담기는 것이 아닙니다. 트랜잭션이 네트워크에 전파되는 시점과, 실제로 블록에 담기는 시점 사이에는 시간 차이가 있습니다. 이 기간동안 트랜잭션은 보류 상태로 멤풀(mempool)에 담기게 됩니다. 멤풀내의 보류 상태의 트랜잭션들은 누구나 들여다 볼 수 있습니다.

누구나 보류중인 트랜잭션을 확인할 수 있다는 점과 더불어, 채굴자들이 가스비가 높은 트랜잭션 순서대로 처리를 해주는 이더리움 네트워크의 특징을 악용한다면, 차익거래자들(Arbitrageurs)과 채굴자들 등은 MEV를 추출하여 수익을 극대화시킬 수 있는 기회를 찾을 수 있습니다.​

이전에 MEV는 채굴자들이 취하는 수익이라는 의미에서 약자가 Miner Extractable Value라고 소개되었습니다. 하지만 대부분의 MEV는 채굴자들이 아닌 차익거래봇(Arbitrage bot)이나 렌딩프로토콜의 청산봇(Liquidation bot)들이 취함에 따라, 현재는 MEV를 Maximal Extractable Value라고 부르고 있습니다.

하지만 봇들이 MEV를 추출하기위해서 가스비 경쟁으로 높은 가스비를 제출하기 때문에 채굴자들이 MEV를 직접 취득하지 않더라도 간접적으로 이익을 볼 수 밖에 없습니다. 따라서 채굴자와 봇의 관계는 서로 먼저 MEV를 취득하기위한 적대적인 경쟁관계이기보다, 채굴자들의 의도 여부와 상관없이 공생관계라고 할 수 있습니다.

MEV 공격 종류​

출처: Delphi Digital

Front-Running

MEV 공격자가 목표 트랜잭션을 멤풀에서 포착한 후에, 이 트랜잭션이 처리되기 전에 공격자의 트랜잭션이 먼저처리될 수 있도록 더 높은 가스비를 제출하는 행위를 말합니다. 아래는 예시입니다.

Alice가 10,000 USDC를 가지고 유니스왑의 AMM을 이용하여 X토큰을 구매하려는 트랜잭션을 제출했다. 공격자가 멤풀에서 이를 포착하고 X토큰을 구매하려는 트랜잭션을 더 높은 가스비와 함께 제출하여 만약 공격자의 트랜잭션이 먼저 처리가 된다면, 유니스왑의 AMM 모델인 CPMM의 특성상 공격자가 X토큰을 먼저 구매했기에 X토큰의 가격은 상승할 것이다. 따라서 Alice는 구매하려고 했던 가격보다 더 높은 가격에 X토큰을 구매하게되므로 손해를 입는다.

Back-Running

공격자의 트랜잭션이 목표 트랜잭션의 바로 뒤나 그 이후에 처리될 수 있도록 하는 공격입니다. 이를 위해서 공격자의 트랜잭션의 가스비는 목표 트랜잭션의 가스비와 거의 동일하거나 아주 약간만 낮추어서 제출합니다. 아래는 예시입니다.​

Back-Running 봇은 AMM DEX에 새로운 토큰이 싼 가격에 상장되는 것을 노려 공격을 감행할 수 있다. 봇이이더리움 네트워크의 멤풀을 보고 있다가, 만약 유니스왑에 새로운 유동성풀이 만들어지는 것을 포착한다면, 풀이 열리자마자 바로 토큰 스왑에 성공한다면 토큰을 저렴한 가격으로 대량으로 구매할 수 있을 것이다. 봇은 성공확률을 높이기위해 적정량의 가스비로 동일한 트랜잭션을 짧은 시간주기로 계속 보낸다.​

Sandwich Attacks

위에서 언급한 Front-Running과 Back-Running 공격을 동시에 사용해서 목표 트랜잭션의 바로 앞과 뒤에 공격자의 트랜잭션을 위치시키는 것을 의미합니다. 아래는 예시입니다.

Alice가 유니스왑에서 10,000 USDC로 50 Y토큰을 구매하려고 한다. 공격자 Bob이 이를 멤풀에서 포착하고 더 높은 가스비를 제출해 먼저 10,000 USDC로 50 Y토큰을 구매한다 (Front-running). 그렇다면 AMM에서 Y토큰의 가격은 Bob으로 인해 상승하게 되고 Alice는 10,000 USDC로 50 Y토큰을 구매하게되는 것이 아니라 더 적은 수의 Y토큰밖에 구매하지 못할 것이다. Bob은 다시 Alice의 거래 바로 뒤에 구매했던 50 Y토큰을 구매했던 가격보다 더 비싼 가격에 팔 수 있게 되고 10,000 USDC보다 더 많은 양의 USDC를 얻을 수 있게 된다 (Back-running).​

Time-Bandit Attacks

채굴자가 이더리움 네트워크의 과거블록을 다시 채굴하여 추출되지 않았던 MEV를 추출하는 것입니다. 자세한 내용은 아래의‘왜 MEV가 문제일까?’ 파트에서 설명하겠습니다.

The Uncle Bandit Attack

위에서 설명했던 Front-running, Back-running, Sandwich attacks는 퍼블릭 멤풀 상에서 보류 중인 트랜잭션들을 타겟으로한 MEV공격들이었습니다. Time-bandit attacks는 아래에서 설명하겠지만, 이미 채굴된 과거의 블록에 담긴 트랜잭션들을 타겟으로 한 MEV공격입니다. 트랜잭션이 멤풀상에도 없고, 과거 블록에 담겨있지 않아도 또 MEV공격을 당할 수 있는데, 그게 바로 Uncle Bandit Attack입니다.

네트워크의 합의 프로토콜 특성상 가끔 이더리움 네트워크의 블록이 거의 동시에 채굴되는 경우가 있습니다. 하지만 블록체인 네트워크에는 둘 중 하나의 블록 밖에 올라가지 못하기 때문에, 따라서 나머지 올라가지 못한 블록은 uncled 혹은 orphaned 블록이라고 불리게 됩니다. 누구나 멤풀을 들여다 볼 수 있는 것과 비슷하게 누구나 uncled 블록을 볼 수 있습니다. 만약 MEV 공격자가 uncled 블록을 들여다 보았는데, 어떤 트랜잭션이 uncled 블록에는 포함되어있는데, 정식 블록에는 포함되어있지 않은 것을 확인 했다면, 이 트랜잭션이 노출되었으므로 이를 타겟으로 공격을 감행할 수 있게 되는 것입니다.

MEV의 문제점

첫 번째로, 이더리움 네트워크를 사용하는 유저들에게 금전적인 피해를 끼칩니다. 위에서 언급했던 Sandwich Attacks의 경우 트랜잭션을 보낸 Alice는 의도했던 가격보다 더 비싼 가격에 토큰을 구매하게 되어 금전적으로 피해를 입게됩니다.

두 번째로 MEV를 추출하기위해 굉장히 많은 봇들이 네트워크상에 존재하며, 이들의 가스비 경쟁으로 인해 네트워크와 체인에 굉장히 많은 부하가 걸리게 됩니다. 이는 이더리움 네트워크를 사용하는 다른 유저들에게 시간과 금전적으로 불편을 끼칩니다.​

세 번째로는 MEV 공격은 이더리움 네트워크의 합의를 불안정하게 하여 네트워크 전체에도 피해를 끼칠 수 있는데 위에서 언급했던 ‘Time-bandit attacks’가 이런 경우에 해당됩니다. 아래는 예시입니다.

Carol과 Dan 2명의 채굴자가 있다고 가정하자. 그들은 이더리움 블록 1개를 채굴할 때 마다 $100의 보상을 얻는다고 가정하고, Carol이 3개의 블록을 찾았다고 하자. 하지만 Dan은 3개의 블록 중 첫 번째 블록에서 $10,000치의 MEV를 추출할 수 있는 기회를 포착했다. 원래라면 Dan은 Carol이 채굴한 3개의 블록 그 다음 블록을 채굴해야 하지만, $10,000의 MEV를 추출하기 위해 이미 채굴된 3개의 블록을 처음부터 다시 채굴할 수 있다. Dan의 입장에서 MEV가 채굴보상보다 매력적이므로 다시 처음부터 채굴을 시도하여 3개의 블록을 채굴하고 그 후에 Carol이 채굴한 3개의 블록 뒤가 아닌 Dan이 채굴한 3개의 블록 뒤에 블록을 채굴하도록 유도한 후 긴체인 규칙에 의해 re-org가 일어나도록 유도할 수 있다.

위의 예시와 같이 블록 채굴보상이 MEV에 비해 매력적이지 않다면 채굴자들은 이더리움 네트워크의 보안을 담당하는 합의 알고리즘에 충실하기보단 MEV를 취하기 위해 네트워크의 안정성을 떨어뜨리는 행위를 할 수 있습니다.

MEV 해결​

정말 다양한 측면에서 MEV 문제를 해결하려는 시도가 많습니다. 그 중에서 MEV 문제를 해결하는 방식에 따라 크게 두 가지 접근법으로 분류 할 수 있습니다. 첫 번째는 Front-running as a Service (FaaS)나 MEV auctions (MEVA)와 같이 MEV는 어쩔 수 없이 네트워크에 존재할 수 밖에 없는 것으로 생각하고 이를 더 민주적이고 효율적인 방법으로 추출하려는 공격적인 접근법이 있습니다. 대표적인 사례로는 Flashbots와 이를 사용하는 DEX인 MistX이 있고, 그 외에 KeeperDAO, Eden Network 등이 있습니다.​

두 번째는 MEV를 최소화하거나 방지하는 수비적인 접근법이 있습니다. 대표적인 사례로는 Automata의 Conveyor 서비스나 Gnosis Protocol v2 위에서 구동되는 트레이딩 인터페이스인 Cowswap입니다.​ 그 외에 ChainlinkArbitrum에서도 여러가지 해결법을 제시하였는데, DEX 시리즈인 만큼 DEX와 관련된 주제들을 살펴봅시다.

Flashbots

flashbots

Flashbots는 MEV의 부정적인 외부효과들을 완화하고, MEV가 이더리움 네트워크에 가할 수 있는 리스크를 줄이기 위한 리서치 및 개발조직입니다. MEV 추출에 있어 허가가 필요없고, 투명하고 공평한 생태계를 구축하려고 하며 세 가지 목표가 있습니다. MEV 수익에 대한 접근을 민주화하고, MEV 추출을 투명하게 하며, MEV 수익을 다시 재분배하는 것을 목표로 합니다.​

Flashbots가 제공하는 서비스 중에 우선 Flashbots Auction에 대해서 먼저 살펴보겠습니다. Flashbots Auction은 MEV-geth와 MEV-relay로 구성되어 있으며, MEV-geth는 go-ethereum 클라이언트의 패치버전이라고 생각하면 됩니다. 채굴자들은 Flashbots 서비스를 이용해 채굴을 하기위해서 원래 사용하던 go-ethereum 클라이언트 대신 MEV-geth를 사용해야 하며, 이는 아래에서도 설명하겠지만 채굴자들의 수익성을 최대화시켜주기에 채굴자들이 이를 사용할 유인이 됩니다.

Flashbots Auction의 세 역할군

우선 Flashbots Auction에 참여하는 역할군은 Searcher, Relay, Miner가 있으며 트랜잭션이 나열한 순서대로 전달되게 됩니다. 세가지 역할군을 하나하나 살펴봅시다.

Searcher

Searcher는 일반 퍼블릭 멤풀을 거치는 네트워크를 사용하는 것이 아닌, Flashbots이 제공하는 프라이빗 transaction 풀을 사용하는 것을 선호하는 유저들을 일컫습니다. Searcher에는 보통 세 가지 유형이 있습니다. 첫 번째는 빠르고, 리스크가 없는 환경을 찾는 차익거래봇이나 청산봇 오퍼레이터들이 있으며, 두 번째는 Front-running 공격을 받고 싶지 않아하는 유니스왑 트레이더와 같은 일반 사용자들이 있고, 세 번째로는 mistX와 같이 dApp 레벨에서 MEV 방지나 gasless 트랜잭션과 같은서비스를 제공하고 싶어하는 이더리움 네트워크의 dApp들이 있습니다.​

Searcher의 대부분은 봇인데, 이들은 퍼블릭 멤풀을 지켜보며 MEV를 취할 수 있도록 트랜잭션들을 모아 bundle로 구성하여 거기에 프라이빗 bid를 붙혀서 relay가 운영하고 있는 프라이빗 채널로 전달합니다. 즉, 봇들이 취할 수 있는 MEV에 대한 경매를 진행하는 것입니다. 만약 $10,000 가치의 MEV를 추출할 수 있는 기회가 있다면 이를 bundle로 묶어서 $9,500의 bid를 같이 붙혀서 relay에게 보내고, 이 bundle이 선택되게 된다면 searcher는 차익인 $500에 대한 보상을 가져갈 수 있습니다. 가장 높은 bid를 제시한 bundle이 선택될 것이므로, 보통 bid의 수준이 MEV의 가치만큼 올라가게 됩니다.

봇이 아닌 일반 사용자의 경우는 전송한 트랜잭션이 퍼블릭 멤풀을 거치지 않으므로 MEV 추출 기회를 포착하고 있는 봇들로부터 안전합니다. Flashbots에 참여하는 채굴자들은 일반 사용자들로 부터 제출된 거래를 우선적으로 처리하도록 되어있습니다. 이는 Flashbots fair market-principles (FFMP)라는 규칙에 의해 강제되는 것인데, 채굴자들은 이를 따라야 합니다. 이를 따르지 않게 되면 채굴자들은 참여에서 제외됩니다.

하지만 일반 사용자는 Flashbots auction 서비스를 이용하여 bundle을 제출하는 것이 굉장히 어렵고 번거롭습니다. 따라서 Flashbots에서는 ‘Flashbots Protect’라는 기능도 제공합니다. 이를 이용하면 일반 사용자들도 Front-running으로 부터 보호받을 수 있는데, 메타마스크 개인지갑에 RPC endpoint의 url을 입력해 네트워크를 추가하는 형식으로 간단하게 사용할 수 있습니다. 이 네트워크를 이용하면 일반 사용자들도 트랜잭션을 Flashbots auction으로 보낼 수 있게 됩니다.​

일반 사용자들이 Flashbots Protect를 사용하면 4가지 장점이 있습니다.

1. Front-running을 막을 수 있습니다. 퍼블릭 멤풀에서 MEV 추출기회를 노리고 있는 봇들에게 트랜잭션이 보이지 않기 때문입니다.

2. 트랜잭션이 실패하지 않습니다. 즉, 실패한 트랜잭션에 의해 지불되는 가스비가 절약됩니다.

3. Flashbots에 의해 보내진 트랜잭션이 가장 먼저 채굴됩니다. 이는 위에서 언급한 FFMP 규칙에 의거합니다.

4. Etherscan의 서비스와 통합되어 있어, 프라이빗한 채널로 트랜잭션을 보냄에도 불구하고 유저들은 Etherscan을 통해서도 트랜잭션의 상황을 추적할 수 있습니다.

Relay

Relay는 searcher들로 부터 받은 bundle을 검증하고 라우팅하는 것에 대한 책임이 있는 역할군입니다. Searcher들은 최종적으로 블록에 담기지 못해 실패한 bundle에 대해서 지불할 것이 없으니 타당하지 않은 bundle로 네트워크를 스팸공격할 수 있습니다. 이더리움 채굴자들은 이러한 부하를 감당할 수가 없기 때문에 중간에 relay가 DOS 위협을 완화하는 역할을 합니다. 한 가지 아쉬운점은, Flashbots에서 이 Relay 역할군은 아직 중앙화 되어있습니다. Flashbots 팀은 최종적으로 이 역할군도 탈중앙화 시키는 것을 목표로 개발중에 있습니다.

Miner

Miner는 채굴자들입니다. 채굴자들이 relay로부터 bundle을 받아 블록에 담아 채굴하는 과정을 거칩니다. 채굴자들은 원래는 go-ethereum 클라이언트를 이용해서 가스비가 높은 순서대로 트랜잭션을 정렬해서 블록을 만들었다면, Flashbots에 연결된 채굴자들은 MEV-geth 클라이언트를 사용합니다. MEV-geth 클라이언트의 노드는 들어오는 bundle 중 가장 수익성이 좋은 bundle을 골라 채굴을 진행하게 됩니다. 즉 채굴자의 수익성이 최대화될 수 있는 것입니다.

출처: Delphi Digital

Flashbots을 통해서 우선 이더리움 네트워크 전반에 만연한 MEV 문제를 완화할 수 있지만, 이보다 더 중요한 것은 부정적인 외부효과들의 해결입니다. Flashbots가 서비스를 출시한 이후로 MEV 추출에 쓰이는 평균 가스비가 줄었으며, 또한 MEV 추출을 하다가 실패하는 트랜잭션의 수가 현저히 줄었습니다. 그 외에 Flashbots에 대한 다양한 데이터는 Flashbots가 제공하는 웹사이트에서 찾아볼 수 있습니다. Flashbots에서 아쉬운 점은 Front-running에 대한 방어는되지만 Back-running에 대한 방어에 대해서는 아직 미흡한 부분이 있습니다.​

MistX

MistX는 Flashbots의 기술을 기반으로 구동되는 DEX입니다. 사용자들이 MistX를 사용하여 트랜잭션을 보내게 되면 이를 Flashbots bundle를 통해서채굴자에게 전달해주도록 설계되어있습니다. Flashbots의 서비스를 사용하기 때문에 사용자는 가스비를 내지않으며 대신에 miner tips라는 채굴자에 대한 팁을 지불하게 됩니다.

Automata의 Conveyor

출처: Automata Docs

앞선 해결법들은 MEV 문제에 대한 공격적인 방법들이었습니다. Automata를 포함하여 앞으로 설명할 프로젝트들의 MEV에 대한 접근법은 수비적인 방법입니다. 트랜잭션들이 Automata의 conveyor로 들어가게 되면 순서대로 정렬을 시켜주기 때문에 채굴자들이 이 정렬된 트랜잭션들에 한해서 새로운 트랜잭션을 추가하거나 삭제할 수 없게 되고, 따라서 트랜잭션을 재정렬하여서 MEV를 추출하는 공격에 방어할 수 있습니다.

Cowswap

Cowswap은 DEX aggregator들의 aggregator라고 볼 수 있으며 Cowswap만의 특이한 batch auction 시스템과 batch 내에서 Coincidence of Wants (CoWs)를 찾아주는 시스템으로 인해 거래에서 MEV 문제에 대한 방지와 함께 더불어 최적의 가격조건을 제시해줄 수 있는 DEX입니다. Cowswap은 Gnosis protocol v2 (GPv2)위에서 구동되는 트레이딩 인터페이스입니다.

출처: Cowswap Docs

우선 프로토콜의 기본구조는 다음과 같습니다. GPv2를 이용한 트레이더들의 트랜잭션은 온체인이 아닌 오프체인의 batch 형태로 모이게 됩니다. 즉 사용자들은 GPv2를 이용하는데 있어 트랜잭션을 보내는 과정이 필요 없고, 서명하는 과정만 필요하므로 가스비를 내지 않지만 최적의 경로를 찾아주고 거래를 성사시켜주는 solver을 위해 소정의 수수료를 지불합니다. 이렇게 오프체인과정으로 트랜잭션이 모인 batch 내에서는 탈중앙화된 집단인 solver들이 경쟁을 하며 최적의 거래 경로를 찾게 됩니다. 가장 최적의 경로를 찾은 solver는 토큰으로 보상을 받게 되며 거래가 성사되게 됩니다. 이제 batch내에서 거래가 어떻게 성사되는지 조금더 세부적으로 알아봅시다.​

Coincidence of Wants (CoWs)는 프로토콜에서 가장 혁신적인 기능입니다. Batch 내에서 사람들이 우연히 서로 교환을 하고 싶어하는 자산을 가지고 있을 때 이를 온체인의 AMM을 거치는 것이 아닌 p2p의 형태로 먼저 직거래를 시켜주는 기능입니다. 아래는 예시입니다.​

Cowswap을 이용하여 Alice는 5,000 USDT로 1 ETH를, Bob은 1 ETH로 5,000 USDC를, Carol은 6,000 USDC로 6,000 USDT를 바꾸고 싶어한다고 가정하자. 이 셋 트랜잭션은 오프체인에 제출된 후 batch 형태로 묶이게 된다. Solver는 이를 이용하여 최적의 거래경로를 찾게 되는데, 우선 CoWs가 있는지 탐색한다. 우연히도 셋이 서로 필요한 자산을 꼬리를 물며 가지고 있는 것을 볼 수 있다. 따라서 Batch내에서 Carol이 Bob에게 5,000 USDC를, Bob이 Alice에게 1 ETH를, Alice가 5,000 USDT를 Carol에게 전달할 수 있다면 1차적으로 거래가 성사되게 된다. 이것이 바로 CoWs의 예시이다. CoWs 끼리 거래를 마쳤지만 아직 남은 거래가 있다. Carol은 아직 1,000 USDC를 1,000 USDT로 바꾸지 못했기 때문이다. 이렇게 남은 거래는 온체인의 유동성을 이용하여 거래를 성사시킨다. 유니스왑같은 AMM이나 1inch network같은 AMM aggregator를 탐색하여 최적의 가격조건을 제시하는 AMM을 찾은 후 거래를 성사 시키게 되는 것이다.​​

즉 위의 과정을 원래 유니스왑 같은 AMM을 사용했을 경우 총 3번의 거래가 일어나고, 유동성도 유니스왑 내의 유동성밖에 이용하지 못했을테지만, Cowswap에서는 batch내에서 CoWs를 찾아 최적의 가격으로 p2p 거래를 한 번 성사 시킨후, 남은 거래를 온체인의 전체 유동성을 이용하여 거래를 성사시키기 때문에 어떠한 AMM이나 AMM aggregator들보다도 최적의 거래조건을 제시할 수 있는 것입니다.

12개의 트랜잭션들이 서로 GPv2상에서 모여 유동성을 공유합니다.

실제 예시는 위의 etherscan의 트랜잭션 내역에서 볼 수 있습니다. Batch내에서 12개의 스왑이 서로 섞여 유동성을 공유하여 CoWs를 형성했으며, 나머지 남는 거래들은 온체인 AMM을 통해서 거래가 성사된 것을 볼 수 있습니다.​

또한 Cowswap의 장점으로는 MEV와 관련해서, Front-running이나 Back-running, 그리고 Sandwich Attack에 의해 자유롭습니다. 거래들이 batch의 형태로 묶여 온체인이 아닌 오프체인 형태로 성사되기 때문에 퍼블릭 멤풀에 상주하는 봇들로 부터 보호받을 수 있게 됩니다.​

마치며

블록체인 위에서 자산을 거래할 때 확장성의 한계로 인해, DEX는 어쩔 수 없이 기존에 사람들에게 익숙한 오더북 방식이 아닌 AMM 모델을 사용해야 했습니다. 저희는 시리즈 1편과 2편에서 교환하려는 자산의 성격에 따라 이에 최적화된 다양한 AMM 모델을 다루어 보았습니다. 하지만 AMM 모델도 근본적인 문제점들이 있기에, 블록체인의 확장성을 어느정도 개선하여 다시 기존의 친숙한 오더북 형태를 도입한 DEX도 살펴보았고 (3편), 또한 현물 거래에 더 나아가서 선물 거래를 가능하게 한 DEX도 살펴보았습니다 (4편). 마지막으로 5편에서는 블록체인 네트워크라면 어쩔 수 없이 존재하는 MEV 문제까지 살펴보았습니다. 긴 글 읽어주신 독자분들께 감사의 인사를 드리며 DEX Series를 마치도록 하겠습니다.​

Reference

--

--