즐겨찾는 Coindesk에 코인조인 (Coinjoin)에 지금까지 최대 규모의 100명이 참여한것에 대한 기사가 실리면서 사실 블록체인에 기록되는 모든 전송 기록이 추적이 가능해서 이를 숨기기 위한 방법에 대한 소개가 있어 자세하게 파고 들어가봤습니다.
0. 코인조인 (CoinJoin) 이란?
코인조인은 간단하게 말하면 BTC를 전송할때 혼자 전송하지 않고, 여려명이 같이 모여서 전송을 했을때 누구의 코인이 누구에게 가는지를 모르게 해서 거래내역을 익명화하는 방법입니다.
1. 코인조인의 작동 원리
아, 기술적인 저런 분석은 역시 어렵네요. 설명을 드리기 위해서는 잠깐 파고 들어가봤습니다. 간단 명료 요약버젼으로 간추립니다. 상단에 있는 기술표는 실제 BTC의 트랜스액션이 작동하는 원리인데, 저기의 틈을 파고 코인조인이라는 기술을 응용했다고 보시면 됩니다.
The signatures, one per input, inside a transaction are completely independent of each other. This means that it’s possible for Bitcoin users to agree on a set of inputs to spend, and a set of outputs to pay to, and then to individually and separately sign a transaction and later merge their signatures. The transaction is not valid and won’t be accepted by the network until all signatures are provided, and no one will sign a transaction which is not to their liking.
[Source: https://en.bitcoin.it/wiki/CoinJoin]
간단해석
- 하나의 트랜스액션안에 존재하는 여러개의 서명은 각각 별개의 것임.
- 결국 비트코인 유저는 일정 지출 입력과 지불 입력에 대해 합의했을때, 각각 트랜스액션에 싸인인 하고 추후 서명이 통합가능함.
풀어쓰면, 비트코인 전송에는 트랜스액션 (실제 송금 행위)와 시그너쳐 (서명)가 있는데, 한 트랜스액션안에 여러 서명이 존재할 수 있기 때문에, 이를 이용해 여러명이 같은 트랜스액션안에 각각의 서명을 넣어서 트랜스액션이 실행되고 지불될때 누가 누구에게 전송하는지를 알기 어려워짐. 그리고 이것을 코인조인이라고 부릅니다.
그렇기 때문에 코인조인은 많은 사람이 모일수록 추적이 더욱더 어려워집니다.
2. 코인조인을 위해 필요한것들
우선 IP추적을 피하기 위해서 일반 인터넷이 아닌 TOR와 같은 privacy system이 이용되어야지 누가 어디서 무슨 BTC를 보내는지 알 수가 없습니다. 또한 사람을 알아서 모아보고 같이 코인조인을 해야할 사람들을 찾아야합니다. 이런 어려운 과정을 해결하기 위해서 오픈 소스 기반의 Wasabi 지갑이 나오게 되었습니다.
a. 와사비 지갑 링크
- 홈페이지: https://www.wasabiwallet.io/
- 깃헙: https://github.com/zkSNACKs/WalletWasabi/blob/master/WalletWasabi.Documentation/FAQ.md
- 윈도우 다운로드: https://github.com/zkSNACKs/WalletWasabi/releases/download/v1.1.5/Wasabi-1.1.5.msi.asc
- 맥 다운로드: https://github.com/zkSNACKs/WalletWasabi/releases/download/v1.1.5/Wasabi-1.1.5.dmg.asc
b. 와사비 지갑 설명
와사비 지갑은 오픈소스로 하드웨어 지갑기능을 갖고 있으며 빌트인으로 TOR 게이트웨이 (privacy service)가 탑재되어 있으며 코인조인(Coinjoin)을 할 수 있는 기능이 내장되어 있습니다. 즉, 혼자서 사람 찾아서 “코인조인” 하자 할 필요 없이, 와사비 지갑을 써서 기존에 올라와있는 코인조인 거래에 참여를 하는 방식으로 거래 흔적을 익명화할 수 있습니다.
c. 윈도우 버젼 설치
Tor연결도 되어 있어서 privacy도 보장이 되는것으로 보이고 저 상태에서 코인조인을 통해서 전송을 하면 자기 서명의 익명화가 가능합니다.
3. 개인적인 생각
스팀의 경우는 익명화를 위해서는 스팀으로 계정을 구매해서 준비해놓고 (그래야지 누가 계정을 만들었는지 추적이 안됩니다), 기존 스팀 계정에서 거래소로 전송을 한번 하고 다시 새로만든 계정으로 시간차와 금액차이를 두고 전송하면 추적이 거래소의 도움 없이는 어렵습니다. 물론 지난 매다의 먹튀의 경우는 일부 스티미언들은 거래소에 연락을 하고 협조를 구하기도 합니다. 즉, 거래 익명성의 경우는 스팀도 상기와 같이 가능합니다만, 불법일 경우는 거래소에서도 협조가 가능한 부분이라 익명화가 어렵습니다.
BTC의 경우도 개인적으로 봤을때는 불법 대형물량을 코인조인으로 움직이기에는 확실히 무리가 있을것으로 판단됩니다. 즉, 불법적으로 탈취된 BTC를 코인조인으로 움직인다고 해도, 보통 flagging이 되어있는 계정들이라서 움직임에 대한 감지가 있어 코인조인을 하는 유저들이 해당 트랜스액션을 기피를 하거나, 물량의 차이가 커서 결국 추적이 될것으로 예상됩니다.
그래도 실질적으로 저런 형태로 기술적인 거래 익명화가 가능하다는 점이 흥미롭고, 얼마만큼 쓰일지는 BTC의 앞날을 보면서 지켜봐야할것으로 생각됩니다.