탈중앙화 시스템에서 메시지의 발생 순서를 보장할 수 있을까?

scalalang2
CURG
Published in
9 min readFeb 8, 2020

분산 시스템 환경에서 이벤트가 발생한 순서를 계산하려는 노력은 오래 전부터 연구되었고 성과가 있는 분야이다. 분산 컴퓨팅의 권위자인 Leslie Lamport는 1978년에 발표한 “Time, Clocks and the Ordering of Events in a Distributed System” 이라는 논문에서 “Happened Before” 관계를 이용해 부분적인 이벤트 정렬 방법을 소개하였다.

중앙-시스템에서는 모든 이벤트가 들어온 순서대로 타임스탬프를 부여하여 쉽게 이벤트를 정렬할 수 있지만 분산 시스템에서는 물리적 시간 (Physical Clock)을 구현하는 것이 어렵기 때문에 이벤트에 인과 관계를 부여 함으로서 사건의 순서를 정할 수 있다.

Leslie Lamport는 논문 작성 도구인 LaTeX를 개발하고, 비잔틴 장군 문제(Byzantine General Problems)를 처음으로 제시한 것으로도 유명하다.

이벤트의 발생 순서는 서비스에 영향을 미친다.

만약 현대의 시스템이 이벤트의 발생 순서를 보장하지 않는다면 혼란이 발생할 수 있다. 주식 시장을 예로 들면, 주문을 요청하였을 때 A가 B보다 먼저 주문을 요청했다면 A가 먼저 체결을 완료해야 한다. 만약 요청한 순서대로 처리 하지 않는다면 A가 얻을 수 있었던 이익이 사라질 수 있다.

게임에서도 마찬가지로 내가 상대방보다 먼저 적절한 행동을 취했다면 게임 내에서 나에게 이익이 돌아와야 할 것 이다. 이 순서가 요청 순으로 처리되지 않는다면 사용자는 게임을 충분히 즐기지 못할 것이다.

탈중앙 시스템에서의 메시지 정렬 문제

현재 메시지 정렬 문제의 컨텍스트 내에서는 분산 시스템과 탈중앙 시스템의 가장 주목할 만한 차이점은 악의적 노드의 존재 유무이다. 분산 시스템에서는 적어도 모든 노드들이 중앙-기관의 통제를 받고있기 때문에 여러 방법을 통해 메시지의 정렬 문제를 해결할 수 있다.

탈중앙 시스템에서는 모든 노드가 특정인에 의해서 통제할 수 없는 상황이며 정해진 규칙 외에는 모든 일이 허용된다. 만약 메시지를 고의로 누락시키거나 순서를 뒤집음으로써 특정인에게 이익이 발생한다면 그는 즉시 이를 실행 할 것이다.

대표적인 탈중앙 시스템인 비트코인에서는 메시지의 정렬 문제를 다루고 있지 않는다. 이는, 송금이라는 특수한 기능만 다루기 때문인데, Alice가 Bob에게 송금하는 트랜잭션 X와 Charol이 Diana에게 송금하는 트랜잭션 Y는 어느 것이 먼저 처리되더라도 결과가 다르지 않기 때문에 굳이 이벤트의 순서를 보장하지 않아도 금융 서비스에 큰 문제가 발생하지 않는다.

반면, 스마트 컨트랙트를 도입한 블록체인에서는 송금 이외에 거래소, 금융, 보험, 경매 등 다양한 서비스가 배포되어 있다. 블록체인의 채굴자는 일반적으로 블록 생성과 트랜잭션 처리를 함으로서 이익을 얻지만 특정 시간에 블록을 생성할 수 있는 권한이 생긴다면 블록 내의 트랜잭션의 순서를 변경하거나, 자신의 트랜잭션을 유리한 포지션에 넣음으로써 많은 이익을 챙길 수 있다.

2019년 Philip Daian외 7명이 작성한 “Flash Boys 2.0: Frontrunning, Transaction Reordering, and Consensus Instability in Decentralized Exchanges” 라는 논문에는 탈중앙 거래소 스마트 컨트랙트가 배포되어 있는 블록체인에서 채굴자가 어떻게 부당 이득을 취할 수 있는지에 대한 공격 방법이 자세하게 소개되어 있다.

한가지 예를 들면, 토큰 A가 1시간 동안 1000원에서 3000원까지 상승했고 상승한 가격대에서 약 10억원의 마켓 볼륨을 가지고 있다고 하자, 이 때 채굴자는 Rental Attack(51% Attack)을 통해 최근 1시간 동안의 트랜잭션의 순서를 다시 정렬할 수 있다. 이 글을 쓰는 시점에서 Crypto51에 제시된 이더리움 블록체인의 1시간 동안의 공격 비용은 약 1.5억원이다. 1시간 동안의 트랜잭션을 재정렬 함으로서 얻을 수 있는 이익은 1,000,000 * (3000–1000) 으로 계산하여 약 18.5억원의 시세차익을 얻을 수 있다. 해당 논문에서는 이렇게 특정 시간 내에서(timeframe) 트랜잭션의 순서를 바꿈으로서 얻을 수 있는 이익을 Order Optimization fees(OO fees)라고 정의하였다.

채굴자가 트랜잭션을 재정렬 함으로써 얻을 수 있는 이득을 표로 나타낸 것이다.

위 그림은 논문에서 나온 채굴자가 부당 이득을 취할 수 있는 이익을 그래프로 나타낸 것이다. 위 그래프에 따르면 채굴자는 7,029,147에서 발생한 39개의 트랜잭션만 다시 정렬하여도 약 100 이더리움(약 2천만원)의 이득을 취할 수 있다.

해당 논문에서는 특정 블록의 트랜잭션을 조작함으로써 얻을 수 있는 모든 이득을 Miner Extracted Value(MEV)라고 정의한다. OO fees는 그 중 순서만 바꿔도 취할 수 있는 이득을 뜻한다. 즉, MEV가 OO보다 상위 개념이라고 볼 수 있다.

해결책

이 문제가 제대로 정의되고 난 이후, 많은 연구자들이 해결책을 찾기 위해 노력하고 있다. 이제부터는 블록체인 커뮤니티 혹은 논문에 의해 제시된 해결책 몇가지를 소개하려고 한다.

Global Atomic Counter

이 문제에 접근하는 가장 쉬운 해결책은 네트워크 외에 하나의 중앙 노드가 모든 이벤트의 순서를 관리하는 것이다. 사용자는 블록체인 네트워크로 트랜잭션을 전달하기 전에 신뢰할 수 있는 중앙 기관으로 부터 트랜잭션의 처리 순번과 서명을 부여받는다. 허가형 블록체인인 Hyperledger 에서는 Orderer Node가 이 역할을 담당하고 있다. 이 해결책은 중앙-기관에서 이벤트를 통제하기 대문에 탈중앙 환경이라고 부르기에는 다소 무리가 있는 것이 사실이다.

MEV Auction (MEVA)

이더리움 연구 커뮤니티에서는 MEV Auction 이라는 해결책이 제시되었다. 이 방식은 특정 블록 B의 트랜잭션의 순서를 결정할 수 있는 권한을 경매로 결정한다. 경매에 낙찰된 사람은 본인 스스로 트랜잭션의 순서를 결정해서 이득을 챙길 수 있다. 언뜻 보면 기존 문제와 큰 차이점은 없어 보이지만 MEV Auction은 적어도 MEV 이익을 채굴자가 아닌 암호화폐 커뮤니티의 이득으로 바꾼다는 데에 의의가 있다.

MEVA가 해결하고자 하는 문제는 MEV 이익을 채굴자가 아닌 커뮤니티에 주는 것이다.

조금 더 자세히 설명하자면, 블록체인에는 N번째 블록의 트랜잭션 통제권이 매번 경매에 올라간다. 이 경매를 시작하는 트랜잭션은 적어도 N-α 번째 블록에서 진행되어야 한다. 여기서 α는 대략 하루 정도의 시간이 되도록 한다. 즉, 사용자는 적어도 하루 전에 미래에 발생할 블록의 트랜잭션 통제권을 가지고 경매를 진행하게 된다. 즉, 이 MEVA 경매는 미래에 생성 될 블록의 트랜잭션 결정권을 판매하는 것을 말한다.

Matching Strategy for Batch Auctions

이 문제를 해결하기 위해 스마트 컨트랙트 내에서 DEX를 설계할 때 매칭 전략을 바꾸는 방법이 있다. 마찬가지로 이더리움 커뮤니티에서 연구되고 있는 분야이다. 현재 대부분의 증권거래소는 Order Book의 체결을 처리할 때 순차적인 매칭 전략을 취하고 있다. 이를 Continuous Limit Order Book (CLOB)이라고 부른다. 이 매칭 전략의 문제점은 각 국가마다 증권거래소에 반영된 결과가 전달되는 시간(Latency)이 다르기 때문에 지리적으로 유리한 위치에 있는 거래자가 유리한 포지션을 선점할 수 있다.

예를 들어 두 사람이 애플 주식을 거래하려고 할 때, 한 사람은 한국에 위치하고 있고 또 한 사람은 미국에 위치하고 있다. 미국에 위치한 사람이 네트워크 회선 상 결과를 더 빠르게 받기 때문에 한국에 있는 사람보다 유리한 위치를 선점할 수 있게 된다. 물론 이 차이는 사람이 인식하기에는 미묘하지만 컴퓨터 프로그램의 입장에서는 엄청난 차이가 된다.

이 문제점을 해결하기 위해 Frequent Batch Auction 전략이 제시되었으며 간단히 말해서 특정 시간 간격 동안에 발생한 모든 주문을 일괄처리 한다는 내용이다. 이를 스마트 컨트랙트로 구현하면 MEV 이익을 취하려는 악의적인 노드의 공격 비용을 높일 수 있다.

결론

사실 위에 제시한 모든 사례들은 근본적인 해결책은 아니다. 특히 현재는 블록체인에서 DEX시장이 커지고 있기 때문에 DEX의 사례 안에서만 문제를 찾으려는 노력이 많은데 스마트 컨트랙트의 활용 영역과 금액이 커지면 전에는 볼 수 없었던 문제점들이 생겨날 수 있다.

즉, 근본적인 해결책을 찾아야 하는데 탈중앙 시스템의 특성상 네트워크의 노드 및 사용자 모두 서로 이벤트 발생 시간을 속일 수 있기 때문에 분산 시스템에서 해결책을 찾는 것보다 난이도가 더 높다고 생각한다. 하지만, 스마트 컨트랙트의 활용 범위가 점차 넓어짐에 따라 꼭 해결되어야 할 문제라는 데에는 이견이 없을 것이다.

  • 코멘트: 2020–06–27
    최근, IEEE S&P 에 BFT 합의 알고리즘을 설계할 때 고려해야 하는 특징으로 Liveness와 Consistency말고도 Order-fairness를 추가해야 한다는 논지로 작성된 논문이 발표되었다. (Order-fairness for Byzantine Consensus)

Reference

[1] Time, Clocks and the Ordering of Events in a Distributed System, Leslie Lamport, July 1978
[2] Flash Boys 2.0: Frontrunning, Transaction Reordering, and Consensus Instability in Decentralized Exchanges, P. Daian, April 2019
[3]
MEV Auction: Auctioning transaction ordering rights as a solution to Miner Extractable Value

[4] Matching strategy for multi-asset batch auctions

--

--

scalalang2
CURG
Writer for

평범한 프로그래머입니다. 취미 논문 찾아보기, 코딩 컨테스트, 언리얼 엔진 등 / Twitter @scalalang2 / AtCoder @scalalang