코인 믹싱과 코인 조인 설명
비트코인 주소와의 연결 고리를 끊기 위한 다양한 기술들이 등장했습니다. 고팍스 아카데미에서 코인 믹싱과 코인 조인에 대해 알아보시기 바랍니다.
들어가며
비트코인은 종종 디지털 통화로 불리지만, 이는 의문이 남는 비유이기도 합니다. 만약 앨리스가 밥에게 10달러 현금을 지불했다면, 밥은 이러한 돈의 출처에 대해 알 길이 없습니다. 이후 밥이 이를 캐롤에게 준다면, 캐롤은 앨리스가 이를 소지하고 있었다는 것을 추론할 수 없을 것입니다.
비트코인은 자체적으로 공개적인 속성을 갖고 있기에 다릅니다. 누구나 손쉽게 해당 코인에 대한 기록(보다 정확히는 소비되지 않은 트랜잭션 출력값 또는 UTXO, Unspent Transaction Output)을 들여다볼 수 있습니다. 이는 트랜잭션을 사용할 때 수량과 참여자 이름을 영수증에 매번 기록하는 것과 유사합니다.
공개 주소의 익명성은 사용자의 신원이 쉽게 드러나지 않게 한다고 알려져 있습니다. 그러나 비트코인은 완전히 비공개적이지 않습니다. 블록체인 분석은 점차 정교해지고 있으며, 보다 쉽게 주소와 신원을 연결할 수 있게 되었습니다. 이와 더불어 이를 위해 전문적으로 만들어진 다른 감시 기술을 통해 가상자산 사용자의 익명성을 해제할 수 있습니다. 이를 해결하기 위해, 트랜잭션 연결 고리를 해제하는 기술이 수년에 걸쳐 점차 모습을 드러내고 있습니다.
코인 믹싱이란 무엇인가요?
개략적으로 말하자면, 코인 믹싱(coin mixing)은 자금을 다른 이들 것으로 대체하여 이를 모호하게 만드는 모든 활동을 지칭합니다. 그러나 가상자산 영역에서 코인 믹싱은 보통 제3자에 의해 제공되는 서비스를 일컫습니다. 보통 서비스 제공자가 사용자의 코인을 수취한 뒤(약간의 수수료 지불), 전송된 것과 연관되지 않은 코인으로 되돌려 줍니다. 이러한 서비스는 텀블러(tumblers) 또는 믹서(mixers)라고 알려져 있습니다.
물론 이러한 중앙화된 서비스의 보안과 익명성에는 의문이 남습니다. 사용자는 자신들의 자금이 믹서에 의해 반환되었는지 혹은 반환된 코인이 어떤 식으로든 부패한 것은 아닌지 장담할 수 없습니다. 추가적으로 고려해야 할 사항은 믹서를 사용할 때 IP와 비트코인 주소가 제3자에 기록되었을 수 있다는 것입니다. 궁극적으로 사용자는 연결 고리가 제거된 자산을 돌려받기를 희망하며, 자신의 자산에 대한 통제권을 포기하는 것입니다.
이보다 분명 흥미로운 형태의 접근법인 코인 조인(CoinJoin) 트랜잭션이 존재하며, 이는 상당히 그럴듯한 수준의 부인을 가능하게 합니다. 다시 말해, 코인 조인 이후 사용자를 이전 트랜잭션과 확실하게 연결시킬 수 있는 증거는 존재하지 않습니다. 다수의 코인 조인 솔루션은 코인 믹서의 탈중앙화된 대안책입니다. 조정자가 포함될 수도 있지만, 사용자는 자신의 자금 소유권을 내주지 않아도 됩니다.
코인 조인이란 무엇인가요?
코인 조인 트랜잭션은 비트코인 개발자 그레고리 맥스웰(Gregory Maxwell)에 의해 2013년 처음으로 제시되었습니다. 그는 자신의 스레드에서 이러한 트랜잭션이 어떻게 구성되며, 프로토콜을 전혀 변화시키지 않고 상당한 프라이버시를 확보할 수 있는지를 개괄적으로 설명했습니다.
본질적으로 코인 조인은 다수 사용자의 입력값을 단일 트랜잭션 안에서 조합하는 과정을 포함합니다. 해당 방법(그리고 이유)에 대해 설명하기 전에, 기본적인 트랜잭션의 구조를 살펴보겠습니다.
비트코인 트랜잭션은 입력값과 출력값으로 구성됩니다. 사용자가 트랜잭션을 생성하고자 할 경우, 사용자는 자신의 UTXO를 입력값으로 사용하여 출력값을 명시하고, 입력값에 서명합니다. 한 가지 알아둘 것은 각 입력값은 독립적으로 서명된다는 것이며, 사용자는 다수의 출력값을 설정할 수 있다는 것입니다(다른 주소로 가는).
네 개의 입력값(각 0.2 BTC)과 두 개의 출력값(0.7 BTC와 0.09 BTC)으로 구성된 트랜잭션을 살펴보면, 우리는 몇 가지 다른 가정을 해볼 수 있습니다. 우리가 먼저 보는 것은 지불이 발생한 곳으로, 전송자는 출력값 중 하나를 누군가에게 전송하며, 변화가 발생한 것으로 되돌려 받고 있습니다. 누군가 네 개의 입력값을 사용했기 때문에, 더 큰 결과값이 아마도 수신자일 수 있습니다. 한 가지 알아둘 것은 출력값에서 0.01 BTC가 빠져있다는 것이며, 이는 마이너에게 수수료로 지불된 것입니다.
또한 전송자가 작은 UTXO로부터 큰 UTXO를 생성하고자 하는 것일 수도 있으며, 이를 통해 작은 입력값들을 원하는 출력값 0.7 BTC로 통합하는 것일 수도 있습니다.
이러한 사실에 기반해 우리가 할 수 있는 또 다른 추론은 각 입력값이 독립적으로 서명되었다는 것입니다. 해당 트랜잭션은 최대 네 개의 서로 다른 주체가 입력값에 서명한 것일 수 있습니다. 그리고 그 안에 코인 조인이 가능하게 하는 원리들이 담겨 있습니다.
코인 조인은 어떻게 작동하나요?
코인 조인은 다수의 주제가 하나의 트랜잭션 생성에 협력하는 것이며, 각 주체는 입력값과 원하는 출력값을 제공합니다. 모든 입력값이 조합됨에 따라, 어떤 출력값이 어느 사용자에게 속했는지 확실하게 이야기할 수 없습니다. 아래의 그림을 살펴보겠습니다.
여기, 트랜잭션의 연결 고리를 끊고자 하는 네 명의 참여자가 있습니다. 이들은 자신들이 포함시키고자 하는 입력값과 출력값을 발표하기 위해 자신들끼리(또는 전용 조율자를 통해) 조율 과정을 거칩니다.
조율자는 모든 정보를 취합하여, 이를 하나의 트랜잭션 안에 넣으며, 각 참여자는 이를 네트워크에 전송하기 전 서명을 합니다. 사용자가 서명한 다음, 트랜잭션이 유효한 것이 되지 않으면 트랜잭션을 수정할 수 없습니다. 그러므로, 조정자가 해당 자금을 들고 자취를 감출 위험은 없습니다.
해당 트랜잭션은 혼합된 코인의 블랙박스 역할을 합니다. 우리가 새로운 UTXO를 만들기 위해 기존의 것을 효과적으로 파기했다는 걸 기억하시기 바랍니다. 기존의 것과 새로운 UTXO의 유일한 연결 고리는 트랜잭션뿐이며, 물론 우리 또한 참여자 사이에서 이를 구분할 수 없습니다. 기껏해야 우리는 한 참여자가 입력값 중 하나를 제공했다는 것과 아마도 새로운 소유자가 해당 출력값을 소유하게 되었다고 말할 수 있을 뿐입니다.
그러나 이마저도 장담할 수가 없습니다. 누가 위 트랜잭션을 보고 네 명의 참여자가 있다고 말할 수 있을까요? 한 사람이 자신의 자금을 자신이 소유한 네 개의 주소로 전송한 것일까요? 두 명이 별개로 구매한 다음, 각 0.2 BTC를 자신의 주소로 다시 전송한 것일까요? 네 사람이 새로운 당사자에게 전송한 것일까요? 아니면, 자신에게 전송한 것일까요? 확신할 수 없습니다.
부인을 통한 프라이버시
코인 조인 구현이 존재한다는 사실만으로도 트랜잭션을 분석하는 데 사용되는 방법들에 의문을 던지기 충분합니다. 여러분은 코인 조인이 많은 곳에서 발생했다고 추정할 수 있지만, 누가 출력값을 소유하고 있는지는 알지 못합니다. 이러한 방법이 점차 인기를 얻으며, 입력값이 모두 동일한 사용자 소유라는 가정은 힘을 잃고 있으며, 보다 넓은 생태계에서 사생활 부분의 거대한 도약이 이뤄졌습니다.
앞선 예시에서 우리는 트랜잭션은 일련의 익명성을 갖고 있다고 했으며, 출력값의 소유자는 연루된 참여자 네 명 중 누구나가 될 수 있습니다. 익명성 집합이 커질수록, 트랜잭션을 본래 소유자와 연결시킬 수 있는 가능성이 떨어집니다. 다행히도 최근의 코인 조인 구현을 통해 사용자는 신뢰가 필요 없는 방식으로 자신의 입력값을 수십 개의 다른 입력값들과 손쉽게 통합할 수 있으며, 이는 높은 수준의 부인을 가능하게 합니다. 최근에는 100명의 트랜잭션이 성공적으로 실행된 바 있습니다.
마치며
코인을 혼합하는 데 사용되는 도구는 자신의 프라이버시를 심각하게 생각하는 모든 사용자에게 중요한 추가적 무기 같은 것입니다. 프라이버시 업그레이드를 제안하는 대신(기밀 트랜잭션과 같은), 이들은 현 상황의 프로토콜과 호환이 가능합니다.
제3자의 온전성과 방법론을 신뢰하는 이들에게는 믹싱 서비스가 간편한 솔루션입니다. 검증할 수 있는 비위탁식 대안을 선호하는 이들에게는 코인 조인이 더 나을 수 있습니다. 이는 기술적으로 능통한 사용자를 통해 진행할 수 있으며, 또는 보다 복잡한 메커니즘을 통해 이를 추출하는 소프트웨어 도구를 사용할 수도 있습니다. 사용자들이 더 우수한 프라이버시를 원함에 따라 일부 도구들이 지속적인 인기를 얻고 있습니다.