본문으로 건너뛰기
buybitcoinsmart

용어집 / 프라이버시와 보안

코인 컨트롤

코인 컨트롤이란 무엇입니까?
코인 컨트롤은 지갑이 임의로 고르게 하는 대신, 트랜잭션에서 보유한 코인 중 어떤 코인을 사용할지 정확히 선택할 수 있게 해 주는 지갑 기능입니다.

잔액은 하나의 숫자가 아니라 여러 개의 개별 덩어리이며, 각 덩어리는 이전에 지갑으로 들어온 결제의 잔여분이고, 모든 지출은 덩어리를 통째로 소비합니다. 트랜잭션에 덩어리를 하나 더 추가하면 수수료로 대략 68 가상 바이트가 들고, 체인을 들여다보는 누구에게나 두 덩어리의 소유자가 같다는 사실을 알려 줍니다. 코인 컨트롤은 그 결정을 되찾는 방법입니다.

작동 방식

모든 지갑은 이미 사용자를 대신해 코인을 선택합니다. 금액을 입력하고 전송을 누르면, 알고리즘이 미사용 출력 가운데 그 금액을 충당하는 조합을 찾습니다. Bitcoin Core는 2018년의 버전 0.17.0부터 Murch의 분기 한정(branch and bound) 해법을 사용해 왔으며, 이 해법은 목표 금액에 충분히 가까운 입력 집합을 찾아 잔돈 출력을 아예 생략합니다. 이 해법은 수수료를 최적화할 뿐, 사용자가 어떤 코인을 건드리고 싶지 않은지는 전혀 알지 못합니다.

코인 컨트롤을 켜면 그 추측이 목록으로 바뀝니다. Bitcoin Core에서는 설정에서 "Enable coin control features"를 선택하고, 전송 화면에 입력 선택기가 생깁니다. 이 기능은 2014년의 버전 0.9.0부터 그래픽 지갑에 포함되어 있습니다. Sparrow, Electrum, Wasabi, BlueWallet 모두 같은 기능을 UTXO 탭으로 제공하며, 각 코인은 금액, 확인 횟수, 사용자가 붙인 라벨을 보여 줍니다.

여기에는 세 가지 제어가 따릅니다. 입력을 직접 선택할 수 있어 트랜잭션이 선택한 코인만 사용하게 할 수 있습니다. 코인을 동결하면 자동 선택이 그 코인을 영구적으로 보지 못합니다. 그리고 코인이 들어올 때 라벨을 붙일 수 있는데, 사람들이 건너뛰었다가 나중에 후회하는 부분입니다. 라벨이 없는 6개월 된 출력은 그저 이야기가 붙지 않은 숫자일 뿐입니다.

입력을 고르면 잔돈도 결정됩니다. 250,000 사토시 코인을 사용해 200,000 사토시를 지급하면, 수수료를 뺀 나머지 가치의 새 코인이 생기고, 이 코인은 방금 사용한 모든 코인의 이력을 물려받습니다.

비트코인을 구매할 때 이것이 중요한 이유

거래소에서 출금하면 누군가의 컴플라이언스 데이터베이스에서 주소 옆에 사용자의 신원이 기록됩니다. 이 사이트에 등재된 모든 대형 거래소는 먼저 신원을 확인하므로, 지갑에 들어오는 코인은 분석 도구를 쓰는 누구의 눈에도 사용자의 것으로 미리 라벨이 붙은 채 도착합니다. 코인 컨트롤은 그 라벨이 퍼지는 것을 막는 방법입니다. 나중에 다른 곳에서, 개인 간 거래로 또는 작업 대가로 비트코인을 얻는다면, 그 코인들을 거래소 출금과 같은 트랜잭션에 넣지 않는 것이 두 개의 별개 이야기와 하나의 이야기의 차이입니다.

두 번째 이유는 취득 원가입니다. 달러 비용 평균 매입 방식은 작은 코인을 많이 만들어 냅니다. River는 정기 매수에 수수료를 받지 않으며, 매주 출금하는 습관은 한 해에 값이 각각 다른 52개의 개별 출력을 남깁니다. 대부분 국가의 세법은 어떤 단위를 처분했는지 특정할 수 있게 해 주며, 코인 컨트롤과 들어오는 모든 코인에 붙인 날짜 라벨이 바로 그 특정을 이론이 아니라 입증 가능한 것으로 만듭니다. 200 달러 코인 대신 2,000 달러 코인을 매도하는 것은 세금 고지서에서 실제적인 차이입니다.

세 번째로, 거래 상대방에게 공개하는 정보를 보호합니다. 지급받는 사람은 사용자가 사용한 모든 입력을 볼 수 있고, 따라서 사용자가 어느 코인에서 지출했는지 그 총가치를 볼 수 있습니다. 2 BTC 저축 출력에서 40 달러 청구서를 지급하면 받는 사람에게 사용자가 얼마를 보유하고 있는지 알려 줍니다. 작은 전용 코인에서 지급하면 아무것도 알려 주지 않습니다.

200,000 사토시 지급을 위한 입력 고르기

지갑에 코인 세 개가 있다고 가정해 보겠습니다. Swan 구매로 받은 40,000 사토시, Kraken에서 출금한 250,000 사토시, 그리고 몇 년 전에 설정한 하드웨어 지갑에 있는 장기 저축 5,000,000 사토시입니다. 누군가에게 200,000 사토시를 지급해야 하고, 멤풀은 8 sat/vB로 한산합니다.

그대로 두면 지갑은 낭비를 최소화하는 조합이므로 40,000 코인과 250,000 코인을 함께 고를 수 있습니다. 그 결과는 입력 2개와 출력 2개, 약 209 가상 바이트, 대략 1,672 사토시의 수수료, 그리고 Swan 코인과 Kraken 코인이 같은 사람 소유라는 영구적이고 공개적인 진술입니다.

코인 컨트롤을 쓰면 250,000 사토시 코인만 선택합니다. 그러면 입력 1개와 출력 2개, 약 141 가상 바이트, 대략 1,128 사토시의 수수료, 잔돈 48,872 사토시가 됩니다. 544 사토시를 덜 냈고, 출처 두 개 대신 하나만 공개했습니다. 5,000,000 사토시 저축 코인은 동결된 채 알고리즘에 보이지 않고, 마땅히 그래야 하는 대로 남습니다.

코인 컨트롤 vs UTXO 통합

코인 컨트롤은 운전대이고, 통합은 특정한 목적지 하나입니다. 통합은 향후 수수료를 줄이려고 여러 코인을 의도적으로 하나로 사용하는 것이며, 사용자가 선택한 병합입니다. 코인 컨트롤은 선택하는 일반적인 능력이고, 대부분의 경우 알고리즘이 합쳤을 코인들을 분리해 두는 반대의 일에 씁니다.

코인 컨트롤 vs CoinJoin

코인 컨트롤은 장부 관리 규율이며 주의력 말고는 비용이 들지 않습니다. 새로운 연결이 생기는 것을 막지만, 체인에 이미 존재하는 연결을 지울 수는 없습니다. 코인조인은 낯선 이들과 함께하는 능동적이고 조율된 트랜잭션으로, 이력이 이미 공개된 코인에 모호함을 더합니다. 둘은 상호 보완적이며, 코인 컨트롤이 먼저 중요한데, 부주의한 입력 선택은 한 번의 지출로 코인조인을 무효로 만들기 때문입니다.

혼동하기 쉬운 용어

자주 묻는 질문

비트코인을 구매해 보유만 하는 경우에도 코인 컨트롤이 필요합니까?

입금 단계에서는 필요하지 않습니다. 받는 것은 비용이 들지 않고 추가로 드러나는 정보도 없기 때문입니다. 코인 컨트롤은 처음으로 지출할 때 중요해집니다. 지갑이 어느 코인을 합칠지 결정하고 그 코인들 사이의 연결고리를 공개하는 시점이 바로 그때이기 때문입니다.

어떤 지갑에 코인 컨트롤 기능이 있습니까?

Bitcoin Core는 설정 체크박스 뒤에 이 기능을 두고 있으며, Sparrow, Electrum, Wasabi, BlueWallet 모두 UTXO 목록을 제공해 개별 코인을 선택하고 라벨을 붙이고 동결할 수 있습니다. 대부분의 단순한 모바일 지갑은 이 기능을 완전히 숨겨 두고 있습니다.

코인 컨트롤을 사용하면 트랜잭션이 비공개가 됩니까?

아닙니다. 코인 컨트롤은 사용자의 코인 사이에 새로운 연결고리가 생기는 것을 막아 주며, 이는 상당한 가치가 있습니다. 그러나 이미 블록체인에 공개된 연결고리를 지울 수는 없고, 거래소에 등록되어 있는 사용자의 신원에 대해서는 아무것도 하지 못합니다.

다음에 읽을 글

관련 용어

프라이버시와 보안 분야의 다른 용어

이 페이지를 영어로 읽기