비트코인 믹싱 서비스 파헤치기

Jaeseung Lee
Decipher Media |디사이퍼 미디어
12 min readDec 4, 2021

“Towards understanding and demystifying bitcoin mixing services” 를 기반으로 작성된 글입니다.

사람들이 비트코인에 열광한 가장 큰 이유 중 하나는 익명성이다. 어딘가에 가입하고 서비스를 이용해야 하는 기존 방식과 달리 임의로 생성된 비밀키를 기반으로 주소를 생성하고 거래를 진행할 수 있게 된 것이다. 여러 휴리스틱 방법들로 비트코인의 익명성을 깨려는 시도가 있었지만 한편에서는 이러한 익명성을 강화하려는 시도가 있었다. 그 중 하나가 비트코인 믹싱 서비스이다. 안타깝게도 비트코인 믹싱 서비스는 돈세탁 등 악의적인 목적을 위해 남용되고 있기 때문에 이런 서비스에 대한 구조적인 분석이 꼭 필요한 실정이다.

이 글에서는 최신 비트코인 믹싱 서비스들에 대해 간단히 소개하고 이러한 서비스들이 어떻게 난독화를 진행하는지 분석할 추상화 모델을 소개할 것이다. 이 모델을 기반으로 트랜잭션 기반 분석을 수행하여 대표적인 네 가지 믹싱 서비스(Chipmixer, Wasabi Wallet, ShaeShift, Bitmix.biz)의 메커니즘을 밝힐 것이다. 여기서 더 나아가 난독화 메커니즘을 활용하는 믹싱 트랜잭션을 식별하는 방법을 소개할 것이다. 이 방법을 통해 92% 이상의 믹싱 트랜잭션을 식별할 수 있었는데 이는 돈세탁 등 악의적인 목적으로 발생한 비트코인 흐름을 추적할 기반을 만들었다고 볼 수 있다.

Introduction

2021년 4분기를 기준으로 비트코인의 시총은 1020조 원에 달하는 대표적인 암호화폐가 되었다. 기존 전통 지불 채널과 달리 비트코인은 제3자의 개입이 필요 없고 비가역성을 가지고 유사익명성을 가진다.

비트코인의 유사익명성은 다음과 같은 특징으로 인해 깨질 수 있다. 우선 모든 트랜잭션 기록이 영구적으로 공개되기 때문에 각 주소간 비트코인 흐름을 볼 수 있고 이를 휴리스틱한 방법으로 클러스터링 할 수 있다. 이런 클러스터간 자금 흐름을 현실 세계의 정보와 매칭할 수 있다면 그 순간 익명성은 깨지게 된다. 따라서 익명성을 강화하기 위해 ZerocashMonero처럼 트랜잭션 정보 자체를 숨기거나 Mixcoin이나 Blindcoin같은 서드파티 서비스가 등장하게 된다. 하지만 이러한 솔루션들은 랜섬웨어 감염, 지하 범죄시장 등의 지불수단에 이용되거나 CEX인 Binance같은 거래소를 해킹하여 얻은 비트코인을 세탁하는데 사용되면서 사회적인 문제를 양산하고 있다.

따라서 이 글에서는 비트코인 믹싱 서비스 분석을 위해 swapping과 obfuscating, 두 가지 믹싱 메커니즘으로 추상화한다. 그런다음 실제 비트코인 트랜잭션을 기반으로 대표적인 믹싱 서비스 4곳을 선정해 각 서비스에서 사용되는 믹싱 메커니즘을 구체화한다. 마지막으로는 난독화된 믹싱 트랜잭션을 식별할 수 있는 휴리스틱 기반 알고리즘을 소개한다.

아래는 글 이해를 위한 간단한 믹싱 서비스 설명이다.

  • 중앙화된 믹싱 서비스
    Bitcoin Fog같이 중앙화된 믹성 서버를 두고 여기에서 믹싱 메커니즘을 행하는 서비스이다. 믹싱 서비스가 중앙화될 때의 문제점은 해당 서비스가 내 비트코인을 정말로 내가 원하는 주소로 보낼지 보장할 수 없다는 신뢰의 문제가 있고 믹성 서비스는 내가 누구한테 비트코인을 보내는지 기록해서 그 인과성을 추적할 수 있다는 것이다. 해당 서비스는 그럴 의도가 없을지라도 만약 다른 공격자가 해당 서비스의 서버를 해킹하고 관련 기록들을 빼간다면 문제가 될 수 있다. 이러한 이유로 중앙화된 믹싱 서비스는 점점 사라지는 추세이다.
  • 탈중앙화된 믹싱 서비스
    비트코인 코어 개발자들이 제시한 CoinJoin이라는 프로토콜을 기반으로한 믹싱을 제공하는 서비스들이다. 개념은 간단한데 여러 UTXO 입력과 출력을 하나의 트랜잭션으로 합해서 난독화 하는 것이다. 우선 CoinJoin 참여하기 원하는 유저는 create-rawtransaction을 이용해 raw transaction을 생성한다. 그들은 이걸 한 대표에게 제출하고 그 사람은 coinjoin-merge-unsigned를 실행하여 CoinJoiner에 입력한다. 이에 따른 출력은 unsigned merged transaction이다. 이 때 아직 트랜잭션에 어떠한 서명도 포함되있으면 안된다. 이후 unsigned merged transaction은 참여했던 유저들에게 다시 분배되고 각 유저는 여기에 서명한 후 다시 대표에게 전송한다. 대표는 coinjoin-merge-signed를 실행하여 합치고(순서는 랜덤) 이를 비트코인 네트워크에 제출한다.
  • 크로스체인 믹싱 서비스
    ShapeShiftChangelly처럼 비트코인을 Zcash나 Ether같은 다른 암호화폐로 교환함으로써 인과관계를 끊는다. 서로 다른 체인의 자금 흐름을 동시에 추적하기에는 비트코인 위에서 추적할 때보다 상당히 까다로워지게 된다.

Mixing Mechanisms

믹싱 서비스는 보내는 사람과 최종적으로 받는 사람의 인과성을 최대한 숨기는 것이 그 목표이다. 아래 그래프 구조는 Binance May Hack이라는 7074 BTC가 털린 유명한 공격의 트랜잭션의 자금흐름을 나타낸 것이다. 루트 노드는 공격자가 맨 처음 발생시킨 트랜잭션을 의미하고 아래의 부분 그래프는 Chimixer에 의해 믹싱하면서 발생한 트랜잭션을 의미한다. 한눈에 보기에도 매우 복잡한 자금 이동 경로를 가져 난독화가 진행됐음을 볼 수 있다.

The simplified transaction graph for the Binance May Hack case

이렇게 복잡한 트랜잭션 흐름을 만드는 믹싱 서비스들을 체계적으로 분석하기 위해 크게 swappingobfuscating 두가지로 카테고리를 나눠 각각 어떻게 믹싱 서비스가 구현되는지 설명하겠다.

Type 1 — Swapping

swapping의 원리는 간단하다. peeling chain이라는 개념을 도입해 하나의 입력 값을 하나는 목표로 한 주소로 보내고 다른 하나는 믹싱 서비스가 관리하는 또다른 주소로 보내서 앞과 같은 분할 과정을 재귀적으로 반복한다. 여기서 중요한 점은 믹싱 서비스를 사용하는 모든 사람에 대해 이러한 과정이 적용되기 때문에 나의 BTC를 받는 사람은 애초에 나에게서 보내지지 않은 또다른 누군가가 믹싱 서비스에 보낸 BTC들을 쪼개서 받게 되고 따라서 자금 흐름을 추적하기 매우 어렵게 된다.
아래는 위에서 설명한 트랜잭션의 흐름을 그림으로 나타낸 것이다. 해당 그림에서 우리는 A와 A1, A2 사이의 인과성을 찾기 힘듬을 알 수 있다.

An example of the swapping mechanism

Type 2 — Obfuscating

Obfuscating은 익명 집합을 믹싱 서비스에서 생성해서 해당 트랜잭션의 출력값이 내가 목표로 하는 주소로 보내지게 하는 것이다. 길게 체인의 형태를 가지며 조금씩 분배되는 swapping 메커니즘과는 약간 다르게 익명 집합 생성을 통해 한번에 수많은 익명 주소로 분배되고 여기서 목표로 하는 주소로 보내지는 차이가 있다.

An example of obfuscating with a single mixing transaction

Methodology & Evaluation

해당 섹션에서는 믹싱 서비스 분석을 위한 방법론을 제시하고 대표적인 믹싱 서비스인 Chipmixer, Wasabi Wallet, ShapeShift, Bitmix.biz에 대해 실제 분석을 진행한다. 분석을 위한 믹싱트랜잭션 정보 수집은 믹싱 서비스에서 자체적으로 제공하는 Public API를 사용하거나 이게 불가능할 경우 직접 BTC를 보내 발생되는 트랜잭션을 수집했다. 각 서비스에 어떤 믹싱 메커니즘이 적용되었는 지는 직접적으로 명시되어 있지 않은 경우 앞서 소개했던 믹싱 트랜잭션 그래프를 그려서 어떤 메커니즘을 사용하는지 추정했다.

각 믹싱 서비스 분석

※ Chipmixer
믹싱 서비스를 원하는 유저가 서비스로 BTC를 전송하면 서비스는 믹싱 트랜잭션을 생성해 익명의 주소들로 전송한다. 이 때 익명 집합에 포함되지 않은 일부 BTC (Change)는 다음 라운드로 넘어가 동일한 과정을 반복되고 유저는 결국 자기가 전송한 BTC만큼 최종적으로 분배받게 된다.

연한 회색 부분이 익명 집합 부분

※ Wasabi Wallet
다른 서비스들이 믹싱을 위해 입금 주소를 따로 제공하는 것과 달리 Wasabi Wallet은 내가 보낼 자금의 도착 주소와 보낼 UTXO 양을 설정하게 되어있다. 이 때 사용하는 메커니즘은 많이 알려진 CoinJoin을 사용한다. 해당 알고리즘은 앞의 탈중앙화 믹싱 서비스 부분에서 설명했으니 넘어가도록 하겠다.

Examples for the mixing process

※ ShapeShift
앞에서 설명한 두가지 서비스와 달리 swapping을 통해 구현된 믹싱 서비스이다. 유저는 우선 서비스가 제공하는 주소로 비트코인을 보내고 다른 메인넷의 출력 주소를 지정한다. 이후 ShapeShift는 크로스체인 트랜잭션을 수행하여 믹싱을 진행한다. 최종적으로, 유저는 서비스 내의 크로스체인 트랜잭션을 통해 다른 메인넷으로부터 BTC를 받게 된다. (엄밀하게 말하면 실제 BTC가 다른 메인넷으로 가는 것은 아니지만 이렇게 흐름을 생각하면 편하다.)

※ Bitmix.biz
ShapeShift와는 다르게 다른 메인넷의 개입 없이 전형적인 peeling chain 형식을 통해 믹성 서비스를 진행한다. 아래 그림을 토대로 설명하면 Alice는 믹싱 서비스가 제공하는 입금 주소로 BTC를 전송하고 이것이 믹싱 서비스에 의해 또다른 믹싱 서비스를 사용하는 다른 유저들(Bob, Charlie)에게 조금씩 분배된다. Alice의 경우도 다른 유저들이 전송한 BTC를 다음과 같은 방법으로 조금씩 분배받아 결국 익명성을 유지하면서 자기가 전송한 BTC만큼 다시 받게 된다.

The transaction graph of Bitmix.biz experiments (green : 실험자 입출력 트랜잭션, magenta : peeling chain의 시작점으로 추정되는 트랜잭션, blue : peeling chain 끝점)

Obfuscating기반 믹싱 서비스 심화 분석

시드 그룹을 활용해 obfuscating기반의 믹싱 서비스들의 자금 흐름을 더 명확히 밝힐 수 있었다. 아래 그림에 나와있는 것처럼 서비스에서 제공하는 M1 같은 주소로 동일 BTC를 여러번 보내고 이들의 출력 주소를 추적해 그룹화 시켜놓는다. 또한, 이들의 출력 주소에서 전송되는 C1 같은 주소들도 역시 그룹화 시켜놓는다. 이후 C1에서 다른 주소로 BTC를 보내는 트랜잭션에서 포함되어 있는 또다른 입력 주소를 확인하고 이 주소도 역시 C1과 같이 그룹화한다. 그 다음으로는 C2의 트랜잭션을 역추적해서 동일한 BTC가 출력으로 분배되는 트랜잭션을 찾는다. 만약 찾았다면 이것 역시 익명 집합에 의해 발생된 믹싱 트랜잭션으로 추정할 수 있다.

An example of obfuscating with multiple mixing transactions

아래는 위에서 설명한 알고리즘을 슈도코드로 나타낸 것이다.

위와 같은 방식으로 실험을 진행했을 때 ground truth와 비교하여 Chipmixer믹싱 트랜잭션을 탐색한 비율은 아래와 같다.

Conclusion

베일에 쌓여있는 각종 믹싱 서비스들에 대해 swappingobfuscating으로 분류하여 최대한 체계적으로 분석하려고 시도한 점이 인상 깊었다. 다만, 몇 가지의 한계점이 있었다.
우선, 높은 추적률을 보인 것은 obfuscatin 기반의 믹싱 서비스의 경우였고 swapping 기반의 서비스들은 유의미한 자금 흐름 추적에 대한 정량적인 데이터를 제시하지 못했다. 두 번째로는, 분석 당시 얼마만큼의 블록 범위를 탐색할 것인가를 정해야 되는데 저자들의 경우 해당 파라미터를 최적화해서 가장 높은 적중률을 보이는 7개의 블록을 설정했다고 하는데 이 부분이 분석의 약점이 될 수 있을 것 같다. 즉, 믹싱 서비스들이 좀 더 믹싱을 진행하는 텀을 길게 가져갈 경우 해당 페이퍼에서 제안한 분석 방법들은 적중률이 유의미하게 감소할 수 있다.

- CURG(Crypto United Research Group)는 2018년 5월 대학(원), 기업, 스타트업 등 다양한 분야의 열정적인 블록체인-er들이 모인 연합 연구 그룹입니다. CURG는 2018년 5월 출범된 이후, ‘Trendy, Thoughtful, and Transdisciplinary’ 한 자세로 한 주도 빠짐없이 블록체인 연구를 지속해오고 있습니다.

- 디사이퍼(DECIPHER)는 “건강한 블록체인 생태계 조성에 기여한다” 라는 미션 아래 블록체인에 대해 연구하고 이를 실용적으로 응용하는 서울대 블록체인 연구 학회입니다. 2018년 3월에 처음 조직 되어 현재까지 블록체인 기술을 다방면에서 연구하고 산업계에 응용하고 있는 100명 이상의 회원들을 배출해왔습니다. 다양한 팀별 연구활동과 프로젝트, 컨퍼런스 개최, 서울대학교 블록체인 강의 개설, 유수 기업들과의 산학협력과 파트너십 체결을 해오며 국내 최고의 블록체인 학회로 자리 잡았습니다.

커그와 디사이퍼는 향후 적극적인 협력을 통해 블록체인 필드에서의 강력한 시너지를 구축하고자 합니다.

--

--