본문으로 건너뛰기

코인조인

코인조인(CoinJoin)은 여러 사람이 하나의 비트코인 거래에 함께 참여해, 누구의 자금이 어느 출구로 갔는지 추정하기 어렵게 만드는 방법입니다. 거래 하나에 입력도 여러 개이고 출력도 여러 개이므로, 밖에서 입력과 출력을 일대일로 맞추기 어려워집니다.

코인조인의 목표는 거래 기록을 지우는 것이 아니라 연결을 흐릿하게 만드는 것입니다.

여러 입력과 출력으로 짝을 흐리기

일반적인 거래는 입력과 출력의 수가 적습니다. 그래서 어떤 자금이 어느 주소로 이동했는지 비교적 쉽게 짐작할 수 있습니다. 잔돈이 돌아오는 주소까지 보이면 입력과 출력의 관계가 더 뚜렷해질 수 있습니다.

코인조인에서는 여러 참여자가 각자의 입력과 출력을 하나의 거래에 넣습니다. 같은 금액의 출력이 여러 개라면 어느 출력이 어느 참여자에게 돌아갔는지 고르기 어려워집니다. 분석하는 사람에게 가능한 후보를 여러 개 남기는 방식입니다.

다섯 사람이 같은 금액을 넣은 똑같은 봉투를 한 상자에 넣고 섞는 상황을 생각할 수 있습니다. 다시 꺼냈을 때 봉투가 모두 같다면 어느 봉투가 누구 것인지 단정하기 어렵습니다. 반대로 한 사람만 다른 금액을 넣으면 그 봉투는 쉽게 구분됩니다. 그래서 참여자들은 가능한 한 같은 금액의 출력으로 맞추고, 남는 금액은 별도의 출력으로 처리합니다.

돈을 맡기지 않고 함께 서명하기

코인조인 거래는 참여자들이 함께 만듭니다.

  1. 각 참여자가 자신의 입력을 거래에 넣습니다.
  2. 각자 받을 주소와 출력 금액을 정합니다.
  3. 완성된 거래에서 자신의 반환 출력, 금액, 수수료 등 내용을 확인합니다.
  4. 내용을 확인한 뒤 각자가 자신의 입력에 서명합니다.
  5. 필요한 서명이 모두 모이면 거래가 전파되고, 이후 네트워크의 검증과 블록 포함 절차를 거칩니다.

거래를 조율하는 곳이 있더라도 참여자가 코인을 그곳에 미리 맡기는 방식일 필요는 없습니다. 서명 전에는 자금이 움직이지 않으며, 자신의 출력·금액·수수료를 확인한 뒤 서명하지 않으면 해당 거래를 진행하지 않을 수 있습니다. 반대로 내용을 확인하지 않고 잘못된 거래에 서명하면 자금 손실을 승인할 수 있으므로, 비수탁 구조가 서명만으로 자동 안전해지는 것은 아닙니다.

조율자가 사라지더라도 이미 서명하지 않은 자금이 조율자에게 넘어가는 구조는 아닙니다. 다만 서명된 거래가 곧바로 온체인에 확정되었다는 뜻은 아니며, 전파와 블록 포함 여부도 따로 확인해야 합니다.

같은 금액과 잔돈의 문제

같은 금액의 출력이 많을수록 어느 출력이 누구의 것인지 추정하기가 어려워집니다. 반대로 특정 참여자만 다른 금액을 받으면 그 출력이 눈에 띌 수 있습니다.

입력 금액과 출력 금액이 정확히 맞지 않으면 남는 금액이 생깁니다. 이 잔돈은 별도의 출력으로 나올 수 있지만, 다시 입력과 출력의 연결을 추정하는 단서가 되기도 합니다. 따라서 코인조인은 단순히 여러 사람의 자금을 한 거래에 넣는 것만으로 모든 연결을 없애는 방법이 아닙니다.

한 번 참여하는 것만으로 부족하다고 판단해 여러 번 참여할 수도 있습니다. 참여가 반복되면 분석자가 고려해야 할 후보가 늘어날 수 있지만, 시간과 수수료도 추가로 필요합니다. 흐릿함을 얻는 데 비용을 지불하는 셈입니다.

코인조인이 보장하지 않는 것

코인조인을 사용해도 거래 자체는 장부에 그대로 남습니다. 섞였다는 사실도 대체로 확인할 수 있습니다. 코인조인은 기록을 삭제하거나 흔적을 없애는 기능이 아닙니다.

또한 코인조인 뒤의 사용 방식에 따라 연결이 다시 생길 수 있습니다. 섞은 여러 출력을 한 거래에서 다시 합치면 주소와 자금의 관계가 묶일 수 있습니다. 섞은 뒤 특정 출력으로 보이는 금액을 신원이 확인된 거래소에 입금하면, 그 입금 출력이 해당 고객 계정과 연결될 수 있습니다. 그러나 이것만으로 코인조인 이전 입력까지 자동으로 신원과 연결되는 것은 아닙니다. 잔돈, 출력 병합, 금액, 시간, 외부 기록 같은 추가 단서를 바탕으로 이전 연결이 추정될 수 있습니다.

따라서 중요한 것은 섞는 행위 자체뿐 아니라 그 뒤에 어떤 출력을 함께 사용하고, 어디로 보내며, 어떤 정보를 공개하는지입니다. 코인조인은 익명성을 자동으로 보장하는 장치가 아닙니다.

법적·사회적 논쟁

코인조인을 바라보는 방식은 지역과 기관, 시점에 따라 다를 수 있습니다. 한쪽에서는 공개 장부에서 개인의 거래와 재산을 보호하는 사생활의 수단으로 봅니다. 다른 쪽에서는 자금 흐름을 추적하기 어렵게 만드는 기능을 우려합니다.

서비스를 이용할 때는 해당 지역의 규정과 이용하려는 거래소·지갑 서비스의 당시 입출금 정책을 따로 확인해야 합니다. 서비스별 정책은 바뀔 수 있으므로, 확인되지 않은 특정 서비스의 거절 여부를 일반화해서는 안 됩니다. 기술 자체에 대한 설명과 실제 이용 환경에서 발생할 수 있는 제약은 구분해야 합니다.

코인조인은 여러 사람의 거래를 한데 모아 입력과 출력의 짝을 어렵게 만드는 도구입니다. 돈을 다른 사람에게 맡기지 않고 각자 서명할 수 있다는 점이 구조의 중요한 특징입니다. 그러나 거래 기록은 남고, 금액과 잔돈, 반복 사용 방식, 이후의 거래 습관에 따라 연결이 다시 추정될 수 있습니다.

프라이버시와 주소 연결에 관한 배경은 프라이버시와 가명성에서 함께 볼 수 있습니다.

링크 복사하기X에 공유페이스북에 공유쓰레드에 공유