비트코인 UTXO란? 일반 계좌와 다른 이유와 거래 구조 쉽게 이해하기 [2026] (moneyfacto 비트코인기초·암호화폐정보 27편)
본문 바로가기
비트코인기술,확장성솔루션

비트코인 UTXO란? 일반 계좌와 다른 이유와 거래 구조 쉽게 이해하기 [2026] (moneyfacto 비트코인기초·암호화폐정보 27편)

by moneyfacto 2026. 5. 30.

들어가며 — 업비트 잔액 "1.5 BTC"는 사실 거짓말입니다

업비트 앱을 열면 이렇게 보입니다.

"보유 자산: 1.5 BTC"

그런데 이것은 사실 정확한 표현이 아닙니다.

비트코인 네트워크 어디에도 "이 사람의 잔액은 1.5 BTC"라고 적힌 칸은 존재하지 않습니다. 대신 이런 게 있습니다.

"1 BTC짜리 영수증 한 장, 0.5 BTC짜리 영수증 한 장."

이 두 영수증을 더하면 1.5가 됩니다. 앱은 이걸 더해서 "1.5 BTC"라고 보여줄 뿐입니다.

이 영수증 시스템이 바로 **UTXO(Unspent Transaction Output, 미사용 거래 출력)**입니다.

13편에서 거래소 지갑과 개인 지갑의 차이를 다뤘습니다. 11편에서 개인키와 공개키를 다뤘습니다. 오늘은 그보다 더 근본적인 질문에 답합니다. "비트코인에는 왜 계좌라는 게 없을까?"


목차

  1. 계좌 모델 — 우리가 익숙한 방식
  2. UTXO 모델 — 비트코인의 진짜 작동 방식
  3. 거스름돈의 비유로 완전히 이해하기
  4. 왜 비트코인은 계좌 모델을 쓰지 않았나
  5. UTXO가 보안에 유리한 이유
  6. UTXO 개수와 수수료의 관계
  7. UTXO와 프라이버시의 관계
  8. 더스트(Dust) UTXO 문제
  9. 코인 컨트롤 — UTXO를 직접 관리하는 법
  10. 이더리움 계좌 모델과의 정밀 비교
  11. 필자의 생각

utxo

1. 계좌 모델 — 우리가 익숙한 방식

먼저 우리에게 익숙한 은행 시스템을 정리합니다.

철수가 영희에게 1,000원을 송금합니다. 은행은 어떻게 처리할까요?

은행은 철수의 계좌에서 1,000원을 깎고 영희의 계좌에서 1,000원을 더하는 방식을 이용합니다.

각 계좌에는 "현재 잔액"이라는 단 하나의 숫자가 있습니다. 거래가 일어나면 이 숫자를 직접 수정합니다. 이것이 **계좌 모델(Account Model)**입니다.

이더리움도 이 방식을 씁니다. 비트코인은 다릅니다.


2. UTXO 모델 — 비트코인의 진짜 작동 방식

비트코인 네트워크에는 "잔액"이라는 개념이 애초에 존재하지 않습니다. 트랜잭션에 의한 출력값들의 집합으로 소유권이 표현됩니다.

UTXO의 정확한 정의

UTXO와 계정 잔액 모델은 자금과 트랜잭션을 추적하는 서로 다른 두 가지 방법입니다. 비트코인은 UTXO를 사용하고 이더리움은 계정 잔액 모델을 사용합니다.

UTXO(Unspent Transaction Output)는 이전 거래에서 생성됐지만 아직 사용되지 않은 출력값입니다.

쉽게 말하면 비트코인 지갑에 남아있는 것이 UTXO입니다. 여러분이 비트코인을 받으면 UTXO 하나가 새로 생기고, 그 UTXO를 다시 보낼 때 사용하면 그 UTXO는 사라지고 새로운 UTXO들이 생깁니다.

거래의 입력과 출력

암호화폐를 사용하려면 계좌 잔액을 직접 차감하는 것이 아니라 본인이 통제하는 하나 이상의 UTXO를 사용합니다. 사용하려는 UTXO는 거래의 "입력(Input)"이 되며, 수취인의 주소가 "출력(Output)"이 됩니다.

블록체인은 모든 UTXO를 저장합니다. 누구나 볼 수 있습니다. 각각은 "아웃포인트(Outpoint)"라는 고유 식별자를 가집니다. 이전 트랜잭션의 해시와 그 트랜잭션 내 출력의 위치로 구성됩니다.


3. 거스름돈의 비유로 완전히 이해하기

업비트 공식 설명이 가장 직관적입니다.

만약 보내야 할 금액보다 큰 UTXO를 가지고 있다면 이를 전송한 뒤 남은 금액(거스름돈)을 받게 되며, 이 과정에서 남은 잔액은 새로운 UTXO로 생성되어 다시 반환됩니다.

구체적 예시

친구에게 4 BTC를 전송하려는데 가지고 있는 UTXO가 3 BTC짜리 하나와 2 BTC짜리 하나, 총 두 개라고 합시다.

1단계: 4 BTC를 보내려면 3 BTC와 2 BTC를 둘 다 사용해야 합니다(합쳐서 5 BTC).
2단계: 잔돈 1 BTC가 다시 돌아옵니다(새로운 UTXO 생성).
3단계: 거래가 끝난 후 기존에 가지고 있던 2개의 UTXO(3 BTC, 2 BTC)는 사라집니다.
4단계: 새롭게 2개의 UTXO가 생성됩니다(친구 지갑에 4 BTC짜리 1개, 내 지갑에 1 BTC짜리 1개).

현금으로 비유하면 완벽히 같습니다

5만 원짜리 지폐 한 장을 들고 3만 원짜리 물건을 산다고 생각해 보세요. 점원이 5만 원을 "쪼개서" 3만 원만 가져가는 게 아닙니다. 5만 원 지폐를 통째로 건네고 2만 원을 거스름돈으로 받습니다.

UTXO도 똑같습니다. 한 번 만들어진 UTXO는 절대 "부분적으로" 쓸 수 없습니다. 전체를 입력으로 사용하고 남은 만큼을 거스름돈 UTXO로 돌려받습니다.


4. 왜 비트코인은 계좌 모델을 쓰지 않았나

사토시 나카모토가 계좌 모델 대신 UTXO 모델을 선택한 이유가 있습니다.

이유 1: 중앙 관리자가 없어도 작동해야 했다

계좌 모델은 "현재 잔액"이라는 하나의 숫자를 누군가 관리해야 합니다. 은행이라면 은행이 관리합니다. 그런데 비트코인은 중앙 관리자가 없습니다. 전 세계 수만 개의 노드가 각자 독립적으로 검증해야 합니다.

UTXO 모델은 "이 UTXO가 존재하는가, 이미 사용됐는가"만 확인하면 됩니다. 각 노드가 독립적으로 검증하기 훨씬 쉬운 구조입니다.

이유 2: 병렬 처리가 가능하다

계좌 모델에서는 같은 계좌에 대한 여러 거래가 동시에 들어오면 순서를 정확히 지켜서 처리해야 합니다(순서가 바뀌면 잔액 계산이 틀어집니다).

UTXO 모델에서는 서로 다른 UTXO를 사용하는 거래들은 순서와 무관하게 독립적으로 검증할 수 있습니다. 이것이 처리 효율성에 유리합니다.

이유 3: 이중 지불 방지가 더 명확하다

같은 UTXO를 두 번 사용하려는 시도는 즉시 감지됩니다. 이미 사용된 영수증을 다시 내려고 하면 바로 거부되는 것과 같습니다. 6-1편에서 다룬 이중 지불 문제를 해결하는 또 다른 핵심 메커니즘입니다.


5. UTXO가 보안에 유리한 이유

일반적으로 대부분의 개발자는 UTXO 모델이 더 안전하다고 생각합니다. 계좌 모델보다 큰 데이터 블록에 더 많은 저장 공간이 필요하지 않다는 장점도 있습니다.

구체적인 보안 이점

① 거래의 독립적 검증: 각 UTXO 거래는 자체적으로 완결됩니다. 이전 거래 전체 역사를 다시 계산할 필요 없이 "이 UTXO가 존재하고 아직 사용 안 됐다"만 확인하면 됩니다.

② 재진입 공격(Re-entrancy Attack) 원천 차단: 이더리움의 계좌 모델 기반 스마트 컨트랙트에서는 재진입 공격이라는 유명한 취약점이 존재합니다(2016년 The DAO 해킹이 대표적). UTXO는 거래가 끝나면 그 UTXO가 완전히 소멸되므로 이런 유형의 공격이 구조적으로 불가능합니다.

③ 검증 단순성: "이 입력값에 해당하는 서명이 맞는가"와 "이 UTXO가 이미 소비됐는가"라는 단순한 두 가지 질문만으로 거래의 유효성을 검증할 수 있습니다.


6. UTXO 개수와 수수료의 관계

많은 분들이 모르는 실용적인 내용입니다.

내 비트코인이 많은 UTXO로 구성되어 있다면, 다른 주소로 비트코인을 보낼 때 사용할 UTXO의 개수도 많아질 것이므로 byte 수가 많아져 수수료가 더 커질 수 있습니다.

비유로 설명

$100를 지불하는데 $100 지폐 한 장을 쓰는 게 아니라 1 페니 동전 10,000개를 쓴다면 계산하는 사람이 정말 짜증 나겠죠?

9편에서 배운 sat/vB 수수료 계산을 떠올려보세요. 거래의 크기(vByte)가 클수록 수수료가 올라갑니다. 그런데 UTXO를 입력으로 쓸 때마다 거래 크기가 커집니다.

구체적 예시

1 BTC를 보내야 하는데 0.1 BTC짜리 UTXO가 10개 있다면, 이 10개를 모두 입력으로 사용해야 합니다. 1 BTC짜리 UTXO 하나만 있는 경우보다 거래 크기가 훨씬 커지고 수수료도 더 비쌉니다.

실용적 시사점

소액을 자주 받는 분(예: 팁, 마이닝 풀 보상)은 UTXO가 잘게 쪼개진 형태로 누적됩니다. 나중에 한꺼번에 보내려면 수수료 부담이 커집니다. 이런 경우 멤 풀이 한가한 시점(9편 참조)에 미리 UTXO를 합쳐두는 것이 좋습니다.


7. UTXO와 프라이버시의 관계

UTXO 구조는 프라이버시에도 직접적인 영향을 미칩니다.

소유권 추적의 어려움과 쉬움

블록체인 익스플로러에서 주소 A에는 1 BTC, 주소 B에는 2 BTC만 기록되어 있지만, 지갑 소프트웨어는 그 모든 주소들을 다 관리해 주기 때문에 그 금액들의 합인 3 BTC가 보입니다.

만약 소유자가 이 두 주소를 하나의 UTXO로 합치지 않는다면 타인은 그것이 동일 인물이 소유한 비트코인인지 알 수가 없습니다.

합치는 순간 신원이 연결된다

내 비트코인이 여러 UTXO로 이루어져 있다면 각각이 서로 다른 트랜잭션에 속할 수 있어 소유권 추적이 더 어렵습니다. 그러나 어느 거래에서 여러 UTXO를 입력으로 함께 사용하는 순간, 그 모든 UTXO가 같은 사람 소유라는 것이 블록체인에 영구히 기록됩니다.

실용적 시사점

프라이버시를 생각한다면 지갑 소프트웨어가 매번 새로운 주소를 생성해 비트코인을 받도록 하는 것이 좋습니다. 그리고 가능하면 여러 출처에서 받은 UTXO를 한 거래에서 함께 사용하는 것을 피해야 합니다. 이것이 노출되면 그 주소들이 모두 같은 사람의 것임이 드러납니다.


8. 더스트(Dust) UTXO 문제

UTXO 시스템에서 발생하는 흥미로운 부작용입니다.

더스트 UTXO란?

매우 적은 금액의 UTXO를 의미합니다(예: 0.00000001 BTC 같은 극소량). 이 금액은 너무 적어서 그것을 사용하기 위한 거래 수수료가 오히려 그 UTXO의 가치보다 비싸지는 경우가 많습니다.

왜 생기는가

거래소나 채굴 풀에서 매우 작은 단위의 보상을 자주 받으면 더스트 UTXO가 누적됩니다. 일부 악의적 행위자가 추적 목적으로 다른 사람의 지갑에 더스트를 일부러 보내는 "더스트 공격(Dust Attack)"도 있습니다. 누군가 더스트를 보낸 후 그것이 다른 UTXO와 합쳐지는지 추적해서 지갑 소유자의 다른 주소를 알아내려는 시도입니다.

대응 방법

더스트로 의심되는 소액을 받으면 사용하지 않고 그대로 두는 것이 안전합니다. 그 더스트를 다른 UTXO와 합쳐서 쓰면 추적자에게 정보를 제공하는 것과 같습니다.


9. 코인 컨트롤 — UTXO를 직접 관리하는 법

14편에서 소개한 스파로우 월렛(Sparrow Wallet) 같은 고급 지갑은 코인 컨트롤(Coin Control) 기능을 제공합니다.

코인 컨트롤이란?

거래를 보낼 때 어떤 UTXO를 입력으로 사용할지 사용자가 직접 선택하는 기능입니다.

일반 지갑(업비트, 블루월렛 등)은 자동으로 UTXO를 선택해서 보냅니다. 사용자는 이 과정을 볼 수 없습니다. 스파로우 같은 고급 지갑은 이것을 사용자가 직접 결정할 수 있게 해 줍니다.

왜 직접 관리하면 좋은가

수수료 최적화: 작은 UTXO 여러 개보다 큰 UTXO 하나를 골라 쓰면 거래 크기가 줄어 수수료가 절약됩니다.

프라이버시 보호: 서로 다른 출처(거래소 출금, 마이닝 풀, 친구에게 받은 것 등)의 UTXO를 의도적으로 분리해서 사용할 수 있습니다.

UTXO 합치기(Consolidation): 멤 풀이 한가한 시점에 여러 작은 UTXO를 미리 합쳐서 나중에 비싼 수수료로 합치는 것을 방지합니다.

15편에서 다룬 멀티시그 설정 시에도 코인 컨트롤 개념이 PSBT 처리 과정에서 활용됩니다.


10. 이더리움 계좌 모델과의 정밀 비교

항목    비트코인 (UTXO)      이더리움 (계좌 모델)

 

잔액 표시 방식 UTXO들의 합계로 계산 계좌에 직접 기록된 숫자
거래 처리 입력 UTXO 소멸 + 새 UTXO 생성 계좌 숫자 직접 수정
이중 지불 방지 이미 소비된 UTXO 재사용 차단 nonce(순서 번호)로 순서 보장
거래 병렬 검증 서로 다른 UTXO는 독립적 검증 가능 같은 계좌의 거래는 순서 의존
프라이버시 새 주소 생성 시 추적 어려움 계좌 주소가 고정되어 추적 쉬움
스마트 컨트랙트 제한적(17편 BitVM 참조) 네이티브 지원
재진입 공격 위험 구조적으로 불가능 가능(The DAO 해킹 사례)

핵심 차이를 한 문장으로: 비트코인은 "각각의 코인 뭉치를 추적"하고 이더리움은 "각각의 계좌 잔액을 추적"합니다.


11. 필자의 생각

💡 "잔액"이라는 개념 자체가 인간이 만든 추상화였다

UTXO를 배우면서 가장 충격적이었던 깨달음은 이것입니다. "잔액"이라는 개념은 우리가 너무 당연하게 여겨서 의심조차 하지 않았던 것입니다. 그런데 비트코인은 이 개념 자체를 버렸습니다. 실제로 존재하는 것은 "누가 무엇을 보냈고 아직 안 썼다"는 기록들뿐입니다. 잔액은 그 기록들을 합산한 결과일 뿐, 그 자체로 저장되는 데이터가 아닙니다. 이것이 비트코인 지갑 앱이 "잔액"을 보여줄 때 사실은 뒤에서 UTXO를 모두 더하는 계산을 매번 하고 있다는 뜻입니다.

💡 UTXO 모델이 왜 "오래된 기술"이 아니라 "더 견고한 설계"인지

처음에는 UTXO가 계좌 모델보다 복잡하고 불편해 보입니다. 거스름돈 개념, UTXO 합치기, 코인 컨트롤 같은 것들을 신경 써야 합니다. 그런데 이 복잡함이 보안을 위한 의도적 설계라는 것을 알게 되면 생각이 달라집니다. 재진입 공격이 구조적으로 불가능하고, 각 거래가 독립적으로 검증 가능하다는 것은 큰 강점입니다. 17편에서 다룬 비트코인 레이어 2 생태계가 이더리움보다 발전이 느린 이유 중 하나도 바로 이 UTXO 모델의 제약 때문입니다. 단순함과 안전함을 위해 일부 유연성을 희생한 트레이드오프입니다.

💡 더스트 공격을 알고 나서 지갑을 보는 시선이 달라졌다

더스트 공격의 존재를 알게 된 후로 갑자기 들어온 작은 비트코인을 그냥 받아서 합쳐 쓰지 않게 됐습니다. 별것 아닌 것 같은 0.00001 BTC가 누군가의 추적 시도일 수 있다는 것. 비트코인의 투명성(누구나 블록체인을 볼 수 있다는 것)이 양날의 검이라는 것을 다시 느꼈습니다. 투명함이 신뢰를 만들지만 동시에 프라이버시 보호를 위한 추가적인 노력이 필요하다는 교훈입니다.


자주 묻는 질문 (FAQ)

Q1. 제 비트코인 지갑에 UTXO가 몇 개나 있는지 알 수 있나요?

스파로우 월렛(Sparrow Wallet) 같은 고급 지갑에서 확인할 수 있습니다. "UTXO" 또는 "Coins" 탭에서 보유한 모든 UTXO 목록과 각각의 금액, 받은 날짜를 볼 수 있습니다. 업비트 같은 거래소 지갑은 이 정보를 보여주지 않습니다.

Q2. UTXO를 합치면 수수료가 발생하나요?

네. UTXO를 합치는 것도 하나의 거래이므로 일반 거래와 동일하게 수수료가 발생합니다. 다만 멤 풀이 한가한 시점(낮은 sat/vB일 때)에 합쳐두면 비용을 최소화할 수 있습니다.

Q3. 이더리움도 비트코인처럼 UTXO 방식으로 바꿀 수 있나요?

기술적으로 매우 어렵습니다. 이더리움 생태계 전체가 계좌 모델을 기반으로 설계됐기 때문에 UTXO로 전환하려면 스마트 컨트랙트 구조 전체를 다시 만들어야 합니다. 현실적으로 일어나지 않을 변화입니다.

Q4. 더스트 공격을 받았다는 것을 어떻게 알 수 있나요?

지갑에 출처를 알 수 없는 매우 적은 금액(보통 수백~수천 사토시 수준)이 입금된 것을 발견하면 더스트일 가능성이 있습니다. 이 금액을 사용하지 않고 무시하는 것이 가장 안전한 대응입니다.

Q5. 비트코인 보유량이 같다면 UTXO 개수와 무관하게 가치는 같은가요?

네, 가치는 동일합니다. 1 BTC를 한 개의 UTXO로 가지고 있든 0.1 BTC짜리 10개로 가지고 있든 총가치는 같습니다. 다만 나중에 보낼 때의 수수료와 프라이버시 측면에서 차이가 발생할 수 있습니다.


결론 — 비트코인에는 잔액이 없다, 기록만 있다

UTXO를 한 문장으로 정리합니다.

"비트코인은 계좌의 잔액을 관리하지 않고, 아직 사용되지 않은 거래 출력값(UTXO)들의 집합으로 소유권을 표현한다. 지갑이 보여주는 잔액은 이 UTXO들을 모두 더한 계산 결과일 뿐이다."

이 구조 덕분에 비트코인은 중앙 관리자 없이도 이중 지불을 방지하고, 거래를 독립적으로 검증하고, 재진입 공격 같은 취약점을 구조적으로 차단할 수 있습니다.

대신 UTXO 개수 관리, 수수료 최적화, 프라이버시 보호라는 새로운 과제가 사용자에게 주어집니다.

다음 편에서는 비트코인 채굴자 항복(Miner Capitulation) — 해시레이트 급락 후 벌어지는 일을 다룹니다.


 

※ 이 글은 정보 제공을 목적으로 작성된 것이며, 특정 자산에 대한 투자를 권유하지 않습니다. 투자에 대한 모든 결정과 책임은 투자자 본인에게 있습니다.