일반적인 단일 지갑 거래는 선택한 모든 입력에 서명해야 하므로 분석자는 한 거래에 함께 들어간 UTXO들을 같은 주체가 통제한다고 추정합니다. 이 공통 입력 소유 휴리스틱은 유용한 추정일 뿐 증명이 아닙니다. PayJoin처럼 송신자와 수신자가 각각 입력을 보태거나 공동 지갑이 참여하면 여러 소유자의 입력이 한 거래에 나타날 수 있습니다.
한 거래의 여러 입력에는 각각 유효한 서명이 필요합니다
비트코인 거래는 필요한 금액을 만들기 위해 여러 UTXO를 입력으로 선택할 수 있습니다. 일반적인 개인 지갑은 자신이 통제하는 키로 각 입력의 지출 조건을 만족시킵니다. 그래서 관찰자는 입력 A와 B가 같은 거래에서 함께 소비되면 둘을 고른 주체가 두 입력 모두를 통제했을 가능성이 높다고 봅니다.
이 추정이 반복되면 군집은 커집니다. 오늘 A와 B가 묶이고 다음 달 B에서 나온 거스름돈이 C와 묶이면 A·B·C가 하나의 지갑 집단으로 연결될 수 있습니다. 각 주소를 한 번만 사용했더라도 지출 단계의 입력 병합이 수신 단계에서 유지했던 분리를 다시 좁힐 수 있습니다.
공통 입력은 거래 구조가 주는 분석 단서이며, 사람의 신원이나 법적 소유권을 자동 확정하는 증명서는 아닙니다.
JOBCOIN 해설

그림은 이 주제의 공통 개념을 단순화한 설명입니다. 아래 항목에서 이 글의 구체적인 조건과 예외를 함께 읽어보세요.
- 한 거래의 여러 입력에는 각각 유효한 서명이 필요합니다
비트코인 거래는 필요한 금액을 만들기 위해 여러 UTXO를 입력으로 선택할 수 있습니다.
- 간단한 합산 예제로 군집 형성을 확인합니다
가정으로 급여 성격의 UTXO 80,000 sat과 공개 후원 UTXO 50,000 sat을 함께 써서 100,000 sat을 지급하고 28,000 sat을 거스름돈으로 받았다고 하겠습니다.
- PayJoin은 휴리스틱에 의도적인 예외를 만듭니다
BIP 78 PayJoin에서는 수신자가 자신의 입력을 추가한 PSBT 제안을 송신자에게 돌려줄 수 있습니다.
AI로 제작한 개념도 · 실제 가격·거래 내역·통계가 아닙니다.
간단한 합산 예제로 군집 형성을 확인합니다
가정으로 급여 성격의 UTXO 80,000 sat과 공개 후원 UTXO 50,000 sat을 함께 써서 100,000 sat을 지급하고 28,000 sat을 거스름돈으로 받았다고 하겠습니다. 수수료가 2,000 sat이라면 입력 합계 130,000 sat은 지급 100,000 sat, 거스름돈 28,000 sat, 수수료 2,000 sat로 맞습니다. 공개 장부에는 두 출처가 한 거래 입력으로 만났다는 사실이 남습니다.
관찰자가 급여 주소와 후원 주소 중 하나의 외부 맥락을 알고 있었다면 다른 입력과 거스름돈 후보까지 추적 범위를 넓힐 수 있습니다. 숫자 합계는 확인 가능하지만 거스름돈이 정확히 어느 출력인지, 입력들이 같은 자연인 소유인지까지 거래 하나만으로 확정할 수는 없습니다.
| 구성 | 일반적 추정 | 확인할 예외 |
|---|---|---|
| 한 지갑의 두 UTXO | 같은 통제 주체일 가능성 | 공동 운용·수탁 지갑 |
| PayJoin의 추가 입력 | 서로 다른 당사자 입력 가능 | 수신자 입력이 제안에 추가됨 |
| 다중서명 지갑 입력 | 정책을 만족한 공동 통제 | 서명자와 자금 소유자 구분 |
| 거래소 출금 배치 | 많은 고객 지급이 한 거래에 존재 | 서비스 내부 장부는 체인 밖 |
PayJoin은 휴리스틱에 의도적인 예외를 만듭니다
BIP 78 PayJoin에서는 수신자가 자신의 입력을 추가한 PSBT 제안을 송신자에게 돌려줄 수 있습니다. 완성 거래에는 송신자 입력과 수신자 입력이 함께 있으므로 모든 입력이 송신자 한 사람 것이라는 가정이 깨집니다. 표면상 일반 지급처럼 보일 수 있어 공통 입력뿐 아니라 거스름돈 유형과 둥근 금액 추정도 약화하는 목적이 있습니다.
그렇다고 PayJoin 표시가 보이면 무조건 안전하다는 뜻은 아닙니다. 송신자는 원래 입력과 출력, 절대 수수료, nLockTime, sequence, 추가 입력의 완결성을 검증한 뒤 자신의 원래 입력만 서명해야 합니다. 지원 지갑과 수신 endpoint가 모두 필요하며 실패 시 일반 결제로 돌아갈 수 있는 동작도 확인해야 합니다.
- 송금 화면에서 선택된 UTXO와 라벨을 펼쳐 봅니다.
- 업무·개인·공개 수신 자금을 별도 맥락으로 기록합니다.
- 필요 금액 때문에 병합이 불가피한지 다른 조합을 비교합니다.
- PayJoin은 지원 여부와 제안 검증 절차를 공식 문서로 확인합니다.
- 분석 결과를 사람의 신원 확정 문장으로 바꾸지 않습니다.
코인 컨트롤은 비용과 프라이버시의 선택을 보이게 합니다
입력 수를 줄이면 거래 vsize와 수수료가 낮아질 수 있지만 큰 UTXO 하나를 쓰며 고액 거스름돈을 만들 수도 있습니다. 작은 UTXO를 합치면 미래 수수료 부담을 줄일 수 있지만 서로 다른 출처를 군집화할 수 있습니다. 정답은 하나가 아니므로 지갑이 자동 선택한 결과를 그대로 승인하기보다 비용과 맥락을 함께 봐야 합니다.
수수료가 낮을 때 통합하는 운영 판단도 프라이버시 비용을 없애지 않습니다. 한 주소에서 생긴 작은 UTXO들처럼 이미 같은 맥락인 항목을 우선하고, 외부에 각각 다른 신원으로 연결된 자금은 분리하는 식의 기준을 문서화하세요. 라벨 없는 UTXO는 확인되지 않은 것으로 취급하는 편이 안전합니다.
탐색기 군집 결과는 가설로 기록합니다
분석 도구가 여러 주소를 한 entity로 표시해도 계산 근거와 예외를 확인해야 합니다. 입력 공동 사용 외에 거스름돈 식별, 시간대, 서비스 알려진 주소 같은 신호가 섞일 수 있습니다. 어떤 규칙이 연결을 만들었는지 모르면 결과를 재현하거나 반박하기 어렵습니다.
조사 기록에는 txid, 입력 outpoint, 추정 규칙, 알려진 외부 라벨과 반례 가능성을 나눠 적으세요. 같은 거래에 있었다는 사실과 같은 사람이 소유했다는 판단을 별도 열로 두면 과도한 단정을 줄일 수 있습니다. 특히 수탁·협업 결제·PayJoin 가능성이 있는 거래는 확신도를 낮춰야 합니다.
운영 지갑은 병합 전에 질문 세 가지를 답해야 합니다
첫째, 함께 선택된 입력들이 같은 공개 맥락인지 확인합니다. 둘째, 이 조합이 아니면 수수료 또는 지급 가능성에 어떤 차이가 생기는지 계산합니다. 셋째, 생성될 거스름돈에 어떤 라벨을 상속할지 정합니다. 이 세 질문이 없으면 자동 코인 선택이 장부상 관계를 예상보다 넓힐 수 있습니다.
이미 병합한 거래는 되돌릴 수 없지만 이후 지출에서 군집을 더 확대하지 않을 수 있습니다. 기존 군집에 속한 UTXO를 정확히 라벨링하고 새 수신 주소를 사용하며, 민감도가 다른 자금을 같은 자동 결제 지갑에 계속 넣지 마세요. 프라이버시는 한 번의 도구보다 반복되는 지갑 운영 규칙에 좌우됩니다.
자주 묻는 질문
같은 거래의 모든 입력은 반드시 같은 사람 것인가요?
아닙니다. 일반 거래에서는 흔한 추정이지만 PayJoin, 수탁 지갑, 공동 운용 같은 예외가 있어 소유권 증명이 되지 않습니다.
입력을 하나만 쓰면 완전히 추적되지 않나요?
공통 입력 단서는 줄지만 주소 재사용, 거스름돈, 외부 KYC 기록 등 다른 연결 단서가 남을 수 있습니다.
UTXO 통합은 하면 안 되나요?
금지할 작업은 아닙니다. 수수료 절감과 프라이버시 비용을 비교하고 이미 같은 맥락의 UTXO를 우선하는 기준이 필요합니다.



