프라이버시와 가명성
비트코인의 전체장부는 누구에게나 공개되어 있습니다. 주소를 알면 그 주소와 연결된 잔액과 거래 내역을 확인할 수 있습니다. 이름과 신분증 번호가 장부에 직접 적히지는 않지만, 여러 단서가 연결되면 주소와 사람을 이어 볼 수 있습니다.
프라이버시란 무엇인가
프라이버시는 내 거래와 잔액을 누가 얼마나 볼 수 있는지 스스로 정하는 힘입니다. 단순히 모든 것을 숨긴다는 뜻이 아니라, 무엇을 누구에게 보여 줄지 선택하는 문제입니다.
공개 장부는 비트코인의 중요한 성질입니다. 누구나 규칙이 지켜졌는지 확인하고, 발행량과 잔액을 서로 대조할 수 있기 때문입니다. 그러나 같은 투명성 때문에 주소와 연결된 잔액, 과거 내역, 블록에 기록된 거래의 위치도 드러날 수 있습니다. 블록의 시간 정보는 결제 당사자가 실제로 버튼을 누른 정확한 시각과 같다고 볼 수는 없습니다.
카페에서 비트코인으로 결제하면서 주소를 알려 주었다고 해 보겠습니다. 카페는 결제 사실뿐 아니라 그 주소와 연결된 잔액과 과거 거래도 확인할 수 있습니다. 커피 한 잔의 결제에 해당 주소와 연결된 자금의 공개가 함께 따라오는 셈입니다.
이를 유리로 지은 집에 비유할 수 있습니다. 창을 없애면 안을 완전히 가릴 수 있지만, 바깥에서 집의 상태를 확인할 길도 사라집니다. 커튼을 달면 창은 남겨 두면서 필요할 때 보이는 범위를 조절할 수 있습니다. 비트코인은 공개 장부를 없애기보다 주소를 관리하는 방식으로 노출을 줄일 선택지를 남겨 둔 쪽에 가깝습니다.
익명성과 가명성은 다릅니다
익명성은 주어진 관찰 범위에서 누가 어떤 일을 했는지 식별하기 어려운 성질입니다. 기록이 남더라도 그 기록과 사람을 이을 실마리가 적을수록 익명성에 가까워집니다. 모든 상황에서 영원히 신원을 알아낼 수 없어야 한다는 절대 조건으로 이해하면 현실의 거래를 지나치게 단순화하게 됩니다.
현금을 손에서 손으로 건네면 비트코인처럼 공통 거래 장부에 거래가 자동으로 기록되지는 않습니다. 그렇다고 목격, 영상, 거래 당사자의 기록처럼 다른 추적 단서가 전혀 남지 않는다는 뜻은 아닙니다. 따라서 현금은 특정한 관찰 범위에서 익명성에 가까운 모습을 보일 수 있다고 설명하는 편이 정확합니다.
비트코인은 이와 다릅니다. 거래는 장부에 남고, 사용자가 자신의 거래 기록을 임의로 지우거나 고칠 수는 없습니다. 오래전 거래도 지금 확인할 수 있습니다. 다만 장부에 이름이 직접 적히는 것은 아닙니다. 이름 대신 주소와 거래 구조가 기록됩니다.
따라서 비트코인은 완전한 익명이라기보다 가명에 가깝습니다. 가명성은 본명 대신 다른 이름이나 번호로 활동하면서 그 활동이 하나로 이어지는 성질입니다. 거래의 입력은 이전 출력을 참조하고 출력에는 금액과 잠금 조건이 포함되므로, 같은 주소나 거래 구조의 받은 기록과 보낸 기록을 분석해 하나의 이력으로 묶을 수 있습니다. 언제 얼마를 받고 어디로 보냈는지가 한 줄의 이야기처럼 이어집니다.
주소 자체에는 처음부터 이름이 붙어 있지 않을 수 있습니다. 그러나 거래소 가입 정보나 출금 기록, 상점 결제, 배송지와 같은 정보가 주소와 연결되면 상황이 달라집니다. 한 지점에 이름이 붙으면 그 주소에 연결된 과거 기록까지 함께 읽힐 수 있습니다.
필명으로 책을 여러 권 낸 작가를 생각해 볼 수 있습니다. 독자는 필명만 알지만 같은 이름으로 나온 책들을 하나의 작가가 쓴 것으로 묶습니다. 어느 날 본명이 밝혀지면 지금까지 그 필명으로 낸 책들이 모두 그 사람의 작품으로 이어집니다. 가명성에서 과거 기록이 소급해 연결될 수 있다는 점도 이와 비슷합니다.
주소가 연결되는 방식
비트코인 거래에는 입력과 출력, 금액과 블록에 포함된 위치가 공개됩니다. 일반적인 의미의 ‘보낸 주소’와 ‘받은 주소’가 거래에 각각 독립적인 주소 필드로 기록되는 것은 아닙니다. 탐색기는 입력이 참조하는 이전 출력과 출력의 잠금 조건을 바탕으로 주소를 표시해 줍니다. 거래 시각도 정확한 결제 시각이라기보다 블록의 시간 정보나 관측 시각으로 이해해야 합니다.
보낸 사람의 이름이나 신분증 번호, 연락처가 거래 자체에 직접 적히는 것은 아닙니다. 하지만 다음과 같은 외부 정보와 거래 구조가 단서가 될 수 있습니다.
- 신원 확인을 거친 거래소 계정에서 주소로 출금하는 경우
- 상점에 결제하면서 주소와 이름 또는 배송 정보를 함께 제공하는 경우
- 한 거래에서 여러 입력이 함께 사용되어 같은 주체의 주소로 추정되는 경우
- 잔돈으로 보이는 출력이 다른 거래와 연결되는 경우
같은 주소를 반복해서 사용하면 그 주소와 관련된 기록이 한 줄로 이어집니다. 그 주소를 받아 본 사람은 같은 공개 기록을 볼 수 있습니다. 그래서 개인키로 거래에 서명하는 서명 장치 프로그램은 새 수신 주소를 제공하기도 하며, 목적에 따라 주소나 열쇠 묶음을 나누어 관리하기도 합니다.
새 주소를 쓴다고 해서 과거 기록과 완전히 끊기는 것은 아닙니다. 잔돈을 다시 보내거나 여러 주소의 자금을 한 거래에 함께 사용하면 주소 사이의 연결이 드러날 수 있습니다. 주소를 바꾸는 것은 도움이 되지만, 그것만으로 완전한 익명성이 생기지는 않습니다.
프라이버시를 생각할 때의 습관
내 노드로 거래를 조회하면 외부 서버에 주소를 알려 주는 일을 줄일 수 있습니다. 목적에 따라 열쇠 묶음을 나누고, 서로 다른 성격의 자금을 한 묶음으로 섞지 않는 방식도 고려할 수 있습니다.
이런 방법은 기록을 삭제하지 않습니다. 이미 공개된 장부를 없애는 것이 아니라, 여러 기록이 불필요하게 한 사람에게 연결되는 것을 줄이는 방법입니다. 프라이버시는 한 번의 기술보다 주소를 만들고 사용하고 공개하는 과정 전체에서 결정됩니다.
프라이버시는 잘못을 감추는 일과 다릅니다. 월급이나 저축을 이웃에게 공개하고 싶지 않은 것처럼, 개인의 재산과 거래 내역을 누구에게나 보여 주지 않을 권리와 관련됩니다. 재산이 드러나면 협상이나 개인의 안전에도 영향을 줄 수 있습니다.
또한 허락 없이 전송할 수 있거나 거래가 검열되기 어렵다는 성질이 신원을 숨겨 준다는 뜻은 아닙니다. 검열 저항성과 익명성은 서로 다른 문제입니다.
투명성과 사생활 사이
투명성은 규칙을 검증하는 데 필요하고, 사생활은 개인의 안전과 협상에 필요합니다. 두 가치는 서로 긴장할 수 있습니다. 완전한 공개만이 답도 아니고, 완전한 비밀만이 답도 아닙니다.
중요한 질문은 무엇을 누구에게 얼마나 보일지 정하는 일입니다. 비트코인의 주소는 이름이 없는 공개 장부의 표식에 가깝지만, 단서가 쌓이면 사람과 연결될 수 있습니다. 그러므로 비트코인을 완전히 익명인 화폐로 이해하기보다, 공개된 기록 위에서 가명성을 관리해야 하는 시스템으로 이해하는 편이 정확합니다.
관련 개념은 비트코인의 전체장부와 UTXO에서 함께 확인할 수 있습니다.