비트코인보안

비트코인 프라이버시 실전 가이드

비트코인 프라이버시 종합 실전 가이드 — 기본적인 UTXO 관리부터 CoinJoin, PayJoin, Silent Payments, BIP-47까지. 난이도별로 정리한 단계적 구현 방법을 안내합니다.

· 8분

프라이버시는 비트코인의 부가 기능이 아니다 — 비트코인이 화폐로 기능하기 위한 전제 조건이다. 프라이버시 없이 비트코인은 대체 가능성(fungibility)을 달성할 수 없다: 모든 비트코인이 다른 모든 비트코인과 교환 가능한 속성이다. 특정 비트코인이 거래 이력에 따라 추적되고, 표시되고, 거부될 수 있다면, 일부 비트코인은 다른 비트코인보다 가치가 떨어진다. 대체 불가능한 화폐는 고장 난 화폐다.

비트코인 블록체인은 공개 원장이다. 이루어진 모든 트랜잭션이 영구적으로 기록되어 인터넷에 접속한 누구에게나 보인다. 이 급진적 투명성은 의도적인 설계 선택이었다 — 중개자 없이 무신뢰 검증을 가능하게 한다. 그러나 이것은 의도적인 대응 조치 없이는 당신의 전체 금융 이력이 충분한 동기를 가진 누구에 의해서든 재구성될 수 있다는 것을 의미한다.

이 가이드는 비트코인 프라이버시를 개선하기 위한 실질적 단계를 난이도 순서로 제시한다.

프라이버시가 중요한 이유: “숨길 것이 없다”를 넘어서

프라이버시는 범죄자만을 위한 것이라는 주장은 그 주장을 하는 모든 사람의 일상 행동에 의해 포괄적으로 반박된다. 사람들은 화장실 문을 닫는다. 봉투를 봉한다. 은행 거래 내역을 SNS에 올리지 않는다.

비트코인에서 프라이버시가 중요한 구체적이고 실질적인 이유:

대체 가능성과 검열 저항. 체인 분석 회사가 모든 비트코인의 이력을 추적할 수 있다면, 채굴자, 거래소, 상점이 그 이력에 따라 차별할 수 있다. 제재 대상 주소, 믹싱 서비스, 특정 지역을 거친 비트코인은 “오염”되어 거부될 수 있다.

개인 안전. 비트코인 보유량이 알려지면 표적이 된다. 알려진 비트코인 보유자에 대한 물리적 공격이 여러 나라에서 발생했다. “5달러 렌치 공격” — 물리적 총구 위협으로 비트코인 전송을 강제하는 것 — 은 주로 프라이버시에 의해 완화된다.

상업적 기밀. 기업의 비트코인 주소가 알려지면, 경쟁사가 매출, 공급업체 지급, 현금 보유고를 실시간으로 볼 수 있다.

국가 과잉 통제에 대한 보호. 자금세탁방지 조치로 시작된 것이 사회신용 시스템, 정치 후원금 추적, 경제 통제로 확대된다.

레벨 1: 기본 습관 (모든 사람이 해야 하는 것)

주소를 절대 재사용하지 마라

주소 재사용은 비트코인에서 가장 해로운 프라이버시 실수다. 같은 주소로 여러 결제를 받으면, 모든 결제가 블록체인에서 공개적으로 연결된다.

실행 방법: 각 트랜잭션마다 자동으로 새 주소를 생성하는 지갑을 사용하라. 모든 현대 HD(계층적 결정론적) 지갑이 이를 수행한다. 기부를 위해 주소를 공개한다면, BTCPay Server처럼 방문자마다 고유 주소를 생성하는 결제 서버를 사용하라.

왜 중요한가: 고용주에게 급여용 비트코인 주소를 알려줬다고 하자. 같은 주소를 온라인 상점 결제에도 사용한다. 이제 고용주가 그 구매를 볼 수 있다. 상점이 당신의 급여를 볼 수 있다.

코인 컨트롤이 있는 지갑 사용

코인 컨트롤은 결제 시 어떤 UTXO를 입력으로 사용할지 선택하는 기능이다. 코인 컨트롤 없이는 지갑이 자동으로 UTXO를 선택하여, 다른 출처의 코인을 결합하고 연결을 노출할 수 있다.

실행 방법: Sparrow Wallet(데스크톱), Bitcoin Core, Electrum, Wasabi Wallet 등 수동 코인 컨트롤을 지원하는 지갑을 사용하라.

왜 중요한가: KYC 거래소에서 받은 UTXO(신원 연결)와 P2P 거래에서 받은 UTXO(미연결)가 있다고 하자. 지갑이 둘 다를 하나의 트랜잭션에 입력으로 결합하면, 체인 분석 회사가 공동 입력 소유권 휴리스틱(CIOH)을 통해 당신의 신원을 이전에 미연결이었던 UTXO에 연결할 수 있다.

UTXO에 라벨 붙이기

UTXO 라벨링은 각 UTXO에 출처 정보를 주석으로 다는 관행이다.

실행 방법: Sparrow Wallet이나 Bitcoin Core에서 각 수신 주소와 UTXO에 라벨을 추가하라. 예시: “Bisq 구매 2024-03-15, KYC 없음”, “코인베이스 출금 2024-01, KYC 연결”, “CoinJoin 출력 라운드 5”.

목적별로 지갑을 분리하라

단일 지갑으로 모든 비트코인 활동을 하면, 한 맥락에서의 프라이버시 침해가 다른 모든 맥락으로 파급될 수 있다.

실행 방법: 최소 세 개의 별도 지갑을 유지하라:

  1. KYC 지갑 — 신원이 확인된 거래소 출금용
  2. 비KYC 지갑 — 신원 확인 없이 취득한 비트코인(P2P, 채굴 등)
  3. 지출 지갑 — 일상 거래를 위한 소액 잔고 지갑

이 지갑 간에 자금을 직접 보내지 마라. KYC에서 비KYC로 자금을 옮겨야 한다면, 먼저 CoinJoin이나 다른 믹싱 기법을 사용하라.

레벨 2: 네트워크 레벨 프라이버시

자기 노드를 운영하라

제3자 노드를 사용하면(지갑의 기본 연결 포함) 트랜잭션 조회를 그 노드 운영자에게 누출한다. 그들은 어떤 주소를 확인하는지, 어떤 트랜잭션을 브로드캐스트하는지, IP 주소를 볼 수 있다.

실행 방법: 전용 장치(Umbrel, MyNode, RaspiBlitz를 실행하는 라즈베리파이)에서 Bitcoin Core를 실행하라. 지갑을 자기 노드에 연결하라.

왜 중요한가: 자기 노드는 모든 트랜잭션을 로컬에서 검증한다. 제3자가 어떤 주소가 당신의 것인지 알 수 없다. 네트워크 레벨에서 가장 근본적인 프라이버시 개선이다.

Tor를 사용하라

자기 노드를 운영해도 ISP는 비트코인 소프트웨어를 실행하고 트랜잭션을 브로드캐스트하는 것을 볼 수 있다. Tor를 사용하면 비트코인 네트워크 트래픽을 여러 릴레이를 통해 라우팅하여 피어와 ISP로부터 IP 주소를 숨긴다.

실행 방법: Bitcoin Core가 Tor를 통해 실행되도록 구성하라(bitcoin.confproxy=127.0.0.1:9050 추가). Umbrel, MyNode 등 대부분의 노드 인 어 박스 솔루션은 기본적으로 Tor를 구성한다.

실제 IP로 블록체인 탐색기를 사용하지 마라

블록체인 탐색기 웹사이트에서 트랜잭션이나 주소를 조회하면, 그 웹사이트 운영자에게 특정 트랜잭션이나 주소에 대한 관심을 드러내는 것이다.

실행 방법: 자기 노드에 연결된 자체 블록 탐색기(Mempool, BTC RPC Explorer)를 운영하라. 공개 탐색기를 사용해야 한다면 Tor 브라우저로 접속하라.

레벨 3: 트랜잭션 레벨 프라이버시

CoinJoin

CoinJoin은 트랜잭션 입력과 출력 간의 연결을 끊는 가장 확립된 기법이다. 여러 사용자가 동일한 값의 출력을 가진 단일 트랜잭션으로 결합하여, 관찰자가 어떤 입력이 어떤 출력에 해당하는지 결정할 수 없게 한다.

작동 원리: 5명의 참여자가 각각 0.1 BTC를 기여하는 CoinJoin에서, 트랜잭션은 5개의 입력(다른 소유자)과 5개의 출력(각 0.1 BTC)을 갖는다. 관찰자는 5개의 동일한 출력을 보지만 어떤 입력이 어떤 출력에 자금을 댔는지 알 수 없다 — 5! = 120가지 가능한 매핑이 있다.

구현체:

Wasabi Wallet — WabiSabi 프로토콜을 사용한 자동 CoinJoin. 코디네이터가 입력과 출력 간의 매핑을 볼 수 없다.

JoinMarket — 메이커-테이커 모델의 탈중앙화 CoinJoin. 중앙 코디네이터 없이 동작하여 검열 저항성이 강하지만 사용자 친화성은 떨어진다.

실용적 조언: 강한 프라이버시를 위해 여러 라운드의 CoinJoin을 수행하라. CoinJoin 후 출력을 통합하지 마라 — 공동 지출을 통해 출력을 연결하여 프라이버시 이점을 되돌릴 수 있다.

PayJoin (P2EP)

PayJoin은 발신자와 수신자 모두 결제 트랜잭션에 입력을 기여하는 프라이버시 기법이다. 이것은 정상적인 트랜잭션처럼 보이는 방식으로 CIOH를 깨트린다.

왜 중요한가: PayJoin은 스테가노그래픽이다 — 정상 트랜잭션과 구별할 수 없다. CoinJoin(독특한 동일 출력 트랜잭션을 만드는)과 달리 PayJoin은 흔적을 남기지 않는다. PayJoin 채택이 임계점에 도달하면, PayJoin을 사용하는 것뿐만 아니라 모든 비트코인 트랜잭션에 대한 체인 분석의 기본 가정을 약화시킨다.

구현: BTCPay Server가 상점을 위한 PayJoin을 지원한다. Sparrow Wallet이 PayJoin 전송을 지원한다.

불필요한 거스름돈 출력 피하기

UTXO를 지출할 때, 수신자에게 보내지 않은 값은 지갑으로 돌아오는 거스름돈 출력이 된다. 이 거스름돈 출력은 트랜잭션에 연결되어 분석가가 미래 지출을 추적하는 데 사용할 수 있다.

실행 방법: 가능하면 정확한 금액을 지출하여 거스름돈 출력을 완전히 피하라. 결제 금액에 가까운 UTXO를 선택하라. 거스름돈을 만들어야 한다면 재사용 전에 CoinJoin 지갑으로 보내라.

레벨 4: 취득 프라이버시

KYC 없이 비트코인 취득

거래소의 KYC 요구사항은 신원과 비트코인 보유 사이의 가장 직접적인 연결을 만든다.

비KYC 취득 방법:

P2P 거래소. Bisq는 신원 확인이 필요 없는 탈중앙화 거래소다. HodlHodl과 RoboSats(라이트닝 기반)도 비KYC 거래를 촉진한다. 거래는 통상 프리미엄(시장가 대비 3-10%)을 수반하며, 이것이 프라이버시의 비용이다.

비트코인 ATM. 많은 비트코인 ATM이 특정 임계값(관할권에 따라 $250-$900) 이하 구매 시 신원 확인 없이 허용한다.

채굴. 비트코인 채굴은 이전 거래 이력이 없는 “처녀” 코인을 생산한다.

비트코인 획득. 상품이나 서비스의 대가로 비트코인을 받으면 KYC 연결이 생기지 않는다.

레벨 5: 고급 기법

BIP-47 재사용 가능 결제 코드

BIP-47은 근본적인 UX 문제를 해결한다: 주소 재사용 없이, 매번 대화형 주소 교환 없이 어떻게 반복적으로 비트코인 결제를 받을 수 있는가?

작동 원리: 단일 “결제 코드”를 공개한다. 누군가 당신에게 결제하려면, 그들의 지갑이 이 결제 코드를 사용하여 각 결제마다 고유한, 이전에 사용된 적 없는 비트코인 주소를 파생한다. 발신자와 수신자만이 결제 코드를 파생 주소에 연결할 수 있다.

알림 트랜잭션: 새 발신자의 첫 결제는 ECDH를 사용하여 발신자와 수신자 간에 공유 비밀을 설정하는 특별한 “알림 트랜잭션”을 포함한다. 이 알림 트랜잭션이 BIP-47의 주요 프라이버시 약점이다.

Silent Payments (BIP-352)

Silent Payments는 알림 트랜잭션을 제거하여 BIP-47의 주요 프라이버시 약점을 해결하는 진화다.

작동 원리: 수신자가 단일 정적 주소(Silent Payment 주소)를 공개한다. 발신자는 이 주소와 자신의 트랜잭션 입력의 개인 키를 사용하여 수신자만이 감지하고 지출할 수 있는 고유한 출력 주소를 파생한다. Silent Payment 주소와 파생된 출력 주소 사이에 온체인 연결이 없다.

절충점: 수신 지갑이 자신에게 보낸 결제를 감지하려면 블록체인의 모든 트랜잭션을 스캔해야 한다. 이것은 지갑 운영의 컴퓨팅 비용을 상당히 증가시킨다.

상태: BIP-352는 점점 더 많은 지갑 지원과 함께 개발 중이다. 비트코인 결제 프라이버시의 현재 최첨단을 대표한다.

실전 프라이버시 워크플로우

설정 (1회)

  1. 전용 장치에 비트코인 노드 설정(라즈베리파이에 Umbrel)
  2. 데스크톱에 Sparrow Wallet 설치, Tor를 통해 자기 노드에 연결
  3. Sparrow에 세 개의 지갑 생성: “KYC”, “믹싱”, “프라이빗”
  4. 비KYC 구매를 위한 Bisq 또는 RoboSats 계정 설정

비트코인 취득

  • 거래소에서: KYC 지갑으로 출금 → 믹싱 지갑에서 CoinJoin → 프라이빗 지갑으로 이동
  • P2P에서: 프라이빗 지갑으로 직접 수신
  • 수입에서: 각 결제마다 프라이빗 지갑의 고유 주소 제공

비트코인 지출

  • 신원이 연결된 구매: KYC 지갑에서 지출
  • 프라이빗 구매: 코인 컨트롤로 적절한 UTXO 선택하여 프라이빗 지갑에서 지출
  • 기부나 민감한 결제: 프라이빗 지갑의 CoinJoin된 UTXO에서 지출

지속적 유지보수

  • 수신하는 모든 UTXO에 라벨 붙이기
  • 믹싱 지갑에 축적된 UTXO를 정기적으로 CoinJoin
  • CoinJoin 출력을 절대 통합하지 않기
  • KYC 지갑과 프라이빗 지갑 간에 직접 보내지 않기

흔한 프라이버시 실수

작은 UTXO 통합. 많은 작은 UTXO를 하나의 트랜잭션으로 결합하면, 모든 UTXO가 같은 사람의 것임을 드러낸다.

라이트닝과 온체인에 같은 지갑 사용. 라이트닝 노드가 공개적으로 식별 가능하면, 온체인 지갑을 연결하면 둘 다의 프라이버시가 손상된다.

SNS에 주소 게시. 공개적으로 게시된 주소는 무기한으로 모니터링될 수 있다.

타이밍 분석 무시. 거래소에서 출금하고 즉시 다른 주소에 입금하면, CoinJoin을 거쳐도 타이밍 상관관계만으로 그 트랜잭션을 연결할 수 있다. 관련 트랜잭션 사이에 무작위 지연을 추가하라.

프라이버시에 대한 오스트리아 경제학적 논거

오스트리아 경제학의 관점에서, 금융 프라이버시는 단순한 개인적 선호가 아니라 경제적 필수 요소다. 하이에크는 가격 시스템이 가격 신호를 통해 수백만 개인의 행동을 조정하는 분산 정보 처리 메커니즘으로 기능한다고 주장했다. 이 시스템이 작동하려면, 시장 참여자가 감시나 처벌의 두려움 없이 자유롭게 거래할 수 있어야 한다.

모든 거래가 모니터링되면, 시장 참여자는 경제적 가치를 최적화하는 것이 아니라 감시를 피하기 위해 행동을 바꾼다. 이 경제적 계산의 왜곡은 미제스가 합리적 경제 계획의 붕괴라고 부른 것으로 이어진다.

프라이버시를 보존하는 화폐 — 물리적 현금이든 적절히 사용된 비트코인이든 — 는 정직한 가격 발견과 진정한 경제적 계산을 가능하게 한다. 편집증 환자를 위한 사치품이 아니다. 기능하는 시장 경제를 위한 인프라다.

비트코인의 프라이버시 속성에 대해 더 알아보려면 비트코인과 금융 프라이버시CoinJoin을 참조하라.

관련 글