비트코인 UTXO란? 입력·거스름돈·통합 비용
비트코인 지갑 잔액이 여러 미사용 출력으로 구성되는 방식, 거래 입력과 거스름돈 출력, 작은 UTXO를 통합할 때 달라지는 수수료와 프라이버시를 설명합니다.
이 글에서 다루는 내용비트코인 지갑 잔액은 여러 출력의 합입니다
짧은 요약
비트코인 지갑 잔액은 보통 미사용 거래 출력인 UTXO 여러 개의 합입니다. 송금할 때 지갑은 일부 출력을 입력으로 사용하고, 받는 사람에게 줄 출력과 필요한 경우 거스름돈 출력을 새로 만듭니다. 여러 출력을 통합하면 다음 거래의 입력 수를 줄일 수 있지만, 지금 수수료를 내야 하고 공개된 거래 기록이 서로 연결될 수 있습니다.
비트코인 지갑 잔액은 여러 출력의 합입니다
지갑 화면에는 하나의 BTC 잔액이 보이지만 비트코인 원장은 은행 계좌처럼 한 계정에 금액 하나를 기록하지 않습니다. 지갑은 이전 거래가 만든 미사용 거래 출력, 즉 UTXO(Unspent Transaction Output)를 여러 개 관리할 수 있습니다. 단순한 온체인 잔액은 지갑이 사용할 수 있는 출력의 금액을 더한 값입니다. 각각의 출력에는 금액뿐 아니라 다음에 누가 어떤 조건으로 사용할 수 있는지 정하는 잠금 조건도 들어 있습니다. UTXO는 목록에 떠 있는 독립된 코인 조각이 아닙니다.
지갑 주소로 한 번 결제해도 거래가 받는 사람에게 출력 여러 개를 만들 수 있습니다. 거래소나 결제 사업자가 출금을 묶어 처리하면 한 거래가 여러 수신자 출력을 만들 수 있다는 뜻입니다. 따라서 여러 번 입금받았어도 같은 주소가 아니라면 지갑 안에 출력이 여럿 생길 수 있고, 반대로 과거에 통합했다면 여러 입금 기록이 하나의 출력으로 이어질 수도 있습니다. 화면에 보이는 거래 수와 UTXO 수가 반드시 같지는 않습니다.
지갑은 확정된 금액, 미확정 금액, 잠금 상태의 출력, 조회 전용 잔액 등을 다르게 표시할 수 있습니다. 화면의 총 잔액과 지금 당장 송금 가능한 금액이 다를 수도 있으니 상세 항목을 확인하세요. UTXO 방식은 비트코인 및 일부 유사한 구조의 네트워크에 해당하며 모든 암호화폐에 똑같이 적용되지는 않습니다. 원리 이해를 위해 출력을 직접 선택해야 하는 것도 아닙니다. 대부분의 지갑은 입력 선택을 자동으로 합니다.
입력은 과거 거래의 출력 하나를 가리킵니다
비트코인 거래의 입력은 이전 거래의 ID와 출력 번호를 함께 사용해 특정 출력을 가리킵니다. 이를 txid:vout이라고 쓰기도 합니다. 입력에는 그 출력의 잠금 조건을 만족시키는 데 필요한 서명 등의 데이터도 포함됩니다. 거래는 이 입력을 사용해 출력 하나 이상을 새로 만듭니다. 비트코인 개발자 거래 안내는 입력과 출력이 작동하는 구조를 설명하고, 블록체인 안내는 출력 하나가 한 번만 사용될 수 있다고 설명합니다.
출력은 통째로 사용됩니다. 예전 출력 중 일부 금액만 지출한 것으로 표시하고 나머지를 같은 출력에 그대로 붙여 두지는 않습니다. 출력 금액보다 적게 보내려면 선택한 입력 전체를 소비한 뒤 받는 사람에게 보낼 출력과 남는 금액을 돌려받을 거스름돈 출력을 만듭니다. 새 출력은 지갑 규칙에 따라 사용할 수 있게 되면 각각 다음 거래의 입력 후보가 됩니다.
그래서 송금 후 지갑 잔액의 구성은 달라질 수 있습니다. 이번 거래가 입력으로 선택한 UTXO를 소비하고, 받는 사람에게 새 출력이 생기며, 필요한 경우 지갑이 관리하는 거스름돈 출력도 생깁니다. 거래 내역에서는 한 번의 송금처럼 보여도 실제 온체인 거래에는 입력과 출력이 여러 개 있을 수 있습니다.
송금 거래는 받는 출력과 거스름돈 출력을 함께 만들 수 있습니다
거래의 입력 금액 합계는 출력 금액 합계 이상이어야 합니다. 그 차액이 거래 수수료입니다. 지갑은 송금액보다 큰 UTXO 여러 개를 선택하고 남은 금액을 자신이 관리하는 새 출력으로 돌려줄 수 있습니다. 이 금액이 거스름돈입니다. 거래가 잘못되어 환불되는 것도, 이미 보낸 비트코인을 되돌리는 것도 아닙니다.
예를 들어 지갑이 300,000 sat과 200,000 sat짜리 UTXO 두 개를 선택했다고 가정해 보겠습니다. 입력 합계는 500,000 sat입니다. 받는 사람이 420,000 sat을 받고 거래 수수료가 2,000 sat이면 거스름돈은 78,000 sat입니다. 즉 300,000 + 200,000 = 420,000 + 78,000 + 2,000입니다. 이 계산은 구조를 설명하기 위한 가정이며 현재 수수료 견적이 아닙니다. 거스름돈은 보내는 사람의 지갑이 관리하는 새로운 출력으로 만들어지고, 나중에 송금할 때는 다시 별도의 입력으로 사용됩니다.
모든 거래에 거스름돈이 생기는 것은 아닙니다. 입력 합계가 송금액과 수수료에 거의 맞거나, 여러 수신자에게 한꺼번에 보내거나, 지갑이 작은 잔액을 처리하는 방식이 다를 수 있습니다. 서명하기 전 미리보기에서 받는 금액과 수수료를 확인하세요. 개발자 안내는 거스름돈 출력이 흔한 이유와 많은 지갑이 새 거스름돈 주소를 사용하는 이유를 설명합니다.
입력이 많으면 거래 크기가 커질 수 있습니다
선택한 UTXO는 각각 거래 입력이 됩니다. 네트워크가 지출을 검증하는 데 필요한 데이터도 입력마다 들어가므로 입력이 늘면 거래 크기가 커지는 경우가 많습니다. 정확한 크기는 출력 형식과 서명 데이터에 따라 달라집니다. 수수료는 대체로 가상 크기와 수수료율을 기준으로 계산하며, BIP 141은 SegWit 거래의 가중치와 가상 크기 계산을 정의합니다. 송금하는 비트코인 수량만으로 거래 크기가 정해지지는 않습니다.
수수료율이 같아도 입력이 많거나 큰 거래는 입력이 적은 거래보다 총 수수료가 높을 수 있습니다. 같은 금액을 보내는 거래라도 입력 수, 출력 수, 스크립트 형식, 서명 데이터가 다르면 수수료가 달라집니다. 거스름돈 출력이 추가되면 데이터가 더해집니다. sat/vB와 입력·출력이 수수료에 미치는 영향은 비트코인 거래 수수료 안내에서 다룹니다.
지갑의 입력 선택이나 받는 사람이 달라지면 수수료 미리보기 금액도 바뀔 수 있습니다. 표시된 값은 지금 제안된 거래의 추정 결과로 봐야 합니다. 송금액의 일정 비율이라고 생각하거나 모든 비트코인 거래에 공통으로 적용되는 고정 비용이라고 보면 안 됩니다.
통합은 여러 출력을 새 출력 하나로 소비하는 거래입니다
UTXO 통합은 출력 여러 개를 입력으로 소비하고 수수료를 뺀 금액을 같은 지갑이 관리하는 새 출력 하나로 보내는 거래를 말합니다. 그다음 송금에서는 원래 출력들을 각각 입력으로 쓰는 대신 통합된 출력 하나를 입력으로 쓸 수 있습니다. 통합은 잔액과 거래 기록을 없애지 않고 출력의 구성과 미래 거래에 필요한 입력 수를 바꿉니다.
비용은 언제 낼지의 문제입니다. 통합 거래에는 기존 입력이 모두 포함되므로 크기가 커질 수 있고 지금 수수료를 내야 합니다. 이후 거래에서도 새 출력 하나를 입력으로 쓰는 비용과 다른 거래 데이터에 대한 수수료를 냅니다. 다만 원래 출력들을 전부 각각 입력으로 쓰는 미래 거래보다 입력 수가 적을 수 있습니다. 지금의 수수료율이 이 출력들을 실제로 쓸 때보다 낮다면 비용 일부를 앞당기는 편이 나을 수도 있습니다. 지금 수수료율이 높다면 한 번에 합치는 것이 더 비쌀 수 있습니다. 미래 수수료는 알 수 없으므로 절감은 보장이 아니라 상황별 계산입니다.
사용 가치가 작은 출력은 실제 지출할 때 그 출력의 금액보다 수수료가 더 큰 상황도 생깁니다. 그렇다고 모든 지갑에 통용되는 “이 금액 이하라면 무조건 통합” 기준이 있는 것은 아닙니다. 출력 형식별 지출 크기, 현재 수수료율, 지갑 정책, 출력을 분리해 두어야 하는 이유를 함께 봐야 합니다. 아래 그림은 구조를 이해시키기 위한 것으로, 통합을 권하는 그림은 아닙니다.
지갑마다 출력 선택 방식이 다릅니다
대부분의 지갑은 UTXO를 자동으로 선택합니다. 선택 알고리즘은 송금액, 예상 거래 크기와 수수료, 거스름돈, 그 밖의 제약을 함께 고려할 수 있습니다. 목표가 언제나 “입력 개수를 최소화”하는 것만은 아닙니다. 당장 내는 수수료와 미래에 쓸 거스름돈의 비용을 함께 보거나, 다루기 불편한 잔액과 안전·프라이버시 조건을 고려할 수 있습니다. 선택 방법과 지갑 화면의 명칭은 제품이나 버전에 따라 다릅니다.
일부 지갑에는 코인 제어 기능이 있어 사용자가 출력을 확인하거나 특정 출력 사용을 제외할 수 있습니다. 목적이 다른 자금을 분리해 두거나 아직 쓰지 않을 출력을 보존할 때 도움이 됩니다. 반대로 선택을 잘못하면 거래 크기가 예상보다 커지거나 서로 연결하지 않으려던 출력을 한 거래에서 함께 사용할 수 있습니다. Bitcoin Core의 개발자용 listunspent RPC는 지갑의 미사용 출력을 조회하는 한 가지 방법입니다. 일반 사용자가 지갑 잔액의 원리를 이해하기 위해 RPC를 쓸 필요는 없습니다.
수동 선택을 하기 전에는 지갑이 미확정·잠금 출력을 어떻게 다루는지, 거스름돈이 생기는지, 선택에 따라 수수료 미리보기가 어떻게 바뀌는지 확인하세요. 코인 제어 메뉴가 없다고 지갑이 UTXO를 관리하지 않는 것은 아닙니다. 자동 선택을 화면에서 숨겨 처리할 수 있습니다.
입력을 함께 쓰면 프라이버시 정보도 연결될 수 있습니다
비트코인 거래는 공개됩니다. 거래 하나가 출력 여러 개를 입력으로 소비하면 관찰자는 그 출력들이 함께 사용된 사실을 볼 수 있습니다. 분석자는 공통 입력 지출을 여러 출력의 통제 주체가 같을 수 있다는 단서로 쓰곤 하지만, 그것만으로 현실의 신원을 증명하거나 모든 거래에서 한 사람이 모든 입력을 소유했다고 단정할 수는 없습니다. 공동 참여자가 입력을 제공하는 거래도 있습니다.
따로 유지하려던 출력을 통합하면 공개된 한 거래 안에 기록이 함께 나타나 분리의 의미가 줄어들 수 있습니다. 주소나 결제가 신원과 연결되어 있다면 나중에 다른 거래를 추적하기도 쉬워질 수 있습니다. 새 거스름돈 주소는 주소 재사용을 줄이는 데 도움이 될 수 있지만, 입력 관계나 기존 기록을 숨기지는 않습니다. Bitcoin.org 프라이버시 안내는 비트코인 거래가 공개되고 추적 가능하다는 점, 새 주소를 사용하는 목적을 설명합니다.
프라이버시가 중요하다면 UTXO를 하나로 정리하는 일이 자동으로 더 나은 선택이라고 보지 마세요. 출력이 서로 다른 사람이나 용도, 공개된 주소에서 왔는지 생각해 볼 수 있습니다. 출력을 분리하면 자금 사이 경계를 유지할 수 있지만, 합치면 다음 송금의 입력 선택이 단순해질 수 있습니다. 어느 쪽도 과거 거래를 비공개로 만들지는 않습니다. 선택에 따라 거래 그래프에서 어떤 정보가 서로 연결되는지가 달라집니다.
오늘 수수료와 앞으로의 사용 가능성을 함께 비교하세요
먼저 지갑의 현재 수수료 미리보기와 지갑이 선택한 출력을 확인합니다. 작은 출력들을 곧 함께 쓸 가능성이 있는지, 출력 각각을 따로 쓰는 비용이 금액에 비해 큰지, 지금 수수료를 내고 통합하는 것이 합리적인지 살펴보세요. 그런 다음 앞으로 보낼 거래가 필요한 입력 수와 비교할 수 있습니다. 미래 수수료율과 거래 구성은 확정되지 않으므로 예상 절감액을 확실한 이익으로 보아서는 안 됩니다.
프라이버시와 운영상 필요도 판단에 넣으세요. 분리된 출력이 서로 다른 자금이나 상대방을 나타내고 공개적으로 연결하지 않으려는 상황일 수 있습니다. 수동 코인 선택은 분리를 유지하는 데 도움을 줄 수 있지만, 받는 사람·거스름돈·수수료를 더 세심하게 확인해야 합니다. 지갑 선택 방식이 불분명하다면 모두에게 맞는 “최적 UTXO 크기”를 추측하기보다 지갑 도움말과 거래 미리보기를 확인하세요.
UTXO는 비트코인 온체인 송금에 영향을 주며 Lightning 송금은 결제 채널을 사용하는 별도의 경로입니다. 차이는 Bitcoin Lightning과 온체인 결제 비교에서 확인할 수 있습니다. 네트워크가 다른 암호화폐를 보낼 때도 적용할 점검 항목은 암호화폐 네트워크·주소 체크리스트를 참고하세요.
서명 전에 거래 내용을 다시 확인하세요
거래를 승인하기 전에 네트워크, 받는 주소, 송금액, 화면에 표시되는 경우 선택 입력, 거스름돈의 주소나 금액, 총 수수료를 확인하세요. 거스름돈은 내가 통제하는 지갑으로 돌아오고 받는 사람 출력에는 의도한 금액이 들어가는지 살펴보세요. 수수료가 높아 보인다면 큰 송금액 때문이라고 단정하기보다 입력 수와 각 출력이 거래 크기에 미치는 영향을 확인하세요. 항목이 분명하지 않을 때는 지갑의 미리보기와 공식 안내를 기준으로 판단합니다.
통합 거래를 만들 때는 선택한 출력이 모두 함께 소비된다는 점과 그 기록이 공개적으로 연결되는 점을 이해해야 합니다. 입력을 통합한다고 평생 내는 수수료가 반드시 낮아지지는 않습니다. 지금 입력들에 대한 수수료를 내고, 이후에도 별도 거래를 만들면 그 거래의 수수료를 냅니다. 급하지 않은 거래라면 수수료 상황과 프라이버시 필요에 따라 기다리거나 출력을 분리해 두는 편이 나을 수도 있습니다.
비트코인 지갑 잔액은 여러 출력을 합친 화면입니다. UTXO의 구성을 이해하면 수수료 차이와 거스름돈, 지갑의 입력 선택을 노드를 운영하거나 명령줄 도구를 쓰지 않고 설명할 수 있습니다. 복구와 백업 개념은 지갑 시드 구문·백업 안내에서 확인하세요.
자주 묻는 질문
Q1UTXO 하나가 비트코인 1개와 같은 뜻인가요?
아닙니다. UTXO는 금액과 지출 조건이 있는 미사용 거래 출력 하나입니다. 지갑은 여러 UTXO를 관리할 수 있고, 그 금액을 합쳐 잔액으로 보여줄 수 있습니다.
Q2비트코인을 보낼 때마다 거스름돈 출력이 생기나요?
항상 생기지는 않습니다. 입력 합계가 송금액과 수수료에 맞거나, 여러 수신자에게 보내는 거래일 수 있습니다. 정해진 구조를 가정하지 말고 거래 미리보기에서 확인하세요.
Q3UTXO를 통합하면 수수료가 항상 줄어드나요?
아닙니다. 통합은 입력 여러 개를 소비하므로 지금 수수료를 냅니다. 이후 거래의 입력 수를 줄일 수 있지만 수수료율, 거래 크기, 지갑 규칙과 시점에 따라 결과가 달라집니다.
Q4UTXO 여러 개를 함께 쓰면 한 사람이 소유한다는 사실이 증명되나요?
그 출력들이 같은 거래에서 소비됐다는 사실은 공개됩니다. 공통 통제라는 추정은 단서이지 신원 증명은 아니며, 공동 참여자가 입력을 제공하는 거래도 있을 수 있습니다.
출처와 더 읽을 자료
내용 정정 제보
이 아티클 링크를 담은 이메일 초안을 준비합니다. 직접 보내야 Mark에 제보가 접수됩니다
QUICK CHECK
글을 다 읽었다면, 3문항으로 확인해보세요
Question 01
거래 입력이 300,000 sat과 200,000 sat이고, 송금액이 420,000 sat, 수수료가 2,000 sat이라면 거스름돈은 얼마인가요?
정답을 고르면 바로 설명을 볼 수 있어요