“왜 어떤 블록체인은 ‘잔액’으로 보여주고, 또 어떤 블록체인은 ‘사용 가능한 출력(UTXO)’ 방식으로 보여주는가?”라는 질문은 블록체인 설계의 핵심에 닿아 있다. 우리가 ‘암호화폐 지갑에 2 BTC가 있다’고 말할 때, 실제로는 각기 다른 모델 속에서 그 2 BTC가 어떤 형태로 존재하고 관리되는지에 대한 설계적 선택이 숨어 있다.
예컨대 Bitcoin은 UTXO(Unspent Transaction Output)라는 단위를 중심으로 잔액을 계산하고, Ethereum은 계정(account)이라는 단위로 잔액과 상태(state)를 관리한다. 이 두 모델은 단순히 ‘잔액을 기록하는 방식’ 이상으로, 확장성, 병렬처리 가능성, 스마트컨트랙트 연계성, 개인정보 보호 등 다양한 설계 트레이드오프(trade-off)를 수반한다.
예컨대 비트코인의 UTXO 모델은 각각의 출력이 ‘한 번만 사용 가능(spent once)’하고, 이후에는 새 출력으로 전환되므로 중복 사용(double-spending)을 막는 데 강점을 보인다. Investopedia+2Kraken+2 반면, 이더리움의 계정모델(account-based model)은 각 계정의 잔액과 상태가 지속적으로 업데이트되는 구조로, 스마트컨트랙트가 여러 계정 상태를 참조하고 수정하기에 보다 적합하다. Alchemy
그렇다면 두 모델은 구체적으로 어떤 메커니즘을 띠며, 각각 어떤 장단점이 있는가? 본문에서는 먼저 UTXO 모델과 계정모델의 작동 원리를 살펴보고, 이어서 양자 간의 비교·분석을 통해 설계 상의 함의를 정리한다.


1. UTXO 모델의 작동 원리

1-1. 개념 정의

UTXO(“Unspent Transaction Output”)란, 이전 거래에서 생성되어 아직 소비되지 않은 출력(output)을 의미한다. Investopedia+1 즉 사용자가 잔액 X BTC를 보유했다고 할 때, 내부적으로는 여러 개의 UTXO들이 존재하며 각 UTXO가 특정 수량을 담고 있다.
예컨대 A가 B에게 3 BTC를 보내려면, A의 지갑에 있는 UTXO 중 하나 또는 여러 개를 입력(input)으로 사용해서 해당 금액을 소비(spend)하고, B에게 3 BTC를 출력으로 생성하며, 남은 잔액에 대해 ‘거스름(change)’ 출력이 다시 A에게 되돌아가는 방식이다. kaleido.io+1

1-2. 거래 흐름

  1. 이전 UTXO들이 입력으로 참조된다.
  2. 거래가 검증되면 해당 UTXO들은 ‘소비(spent)’ 상태로 전환된다.
  3. 새로운 출력들이 생성되어 사용 가능한 UTXO가 된다.
  4. 잔액은 이 사용 가능한 UTXO들의 합산으로 계산된다. cryptoapis.io+1

1-3. 특징 및 설계 함의

2. 계정 기반(account-based) 모델의 작동 원리

2-1. 개념 정의

계정 기반 모델은 각 주소(account)가 잔액(balance)과 상태(state)를 직접 보유하고, 거래가 발생하면 해당 계정의 상태가 직관적으로 수정되는 방식이다. Alchemy+1
예컨대 A가 B에게 5 ETH를 보낼 경우, A의 계정 잔액이 5만큼 감소하고 B의 잔액이 5만큼 증가한다. 별도의 출력 / 입력 구조를 신경 쓸 필요가 없다. dev.cube.exchange

2-2. 거래 흐름

  1. 송신 계정이 충분한 잔액을 갖추었는가 검증한다.
  2. 송신 계정의 nonce(거래 순서를 위한 카운터)가 올바른지 확인한다. blog.defichain.com
  3. 송신 계정 잔액이 감소하고, 수신 계정 잔액이 증가한다.
  4. 상태(state)는 글로벌 루트(state root) 형태로 커밋된다. Cube Exchange

2-3. 특징 및 설계 함의

3. 두 모델의 비교

| 구분 | UTXO 모델 | 계정 기반 모델 | |---|---|---| | 잔액 표현 방식 | 개별 출력의 집합으로 잔액을 산출 [Investopedia+1](https://www.investopedia.com/terms/u/utxo.asp?utm_source=chatgpt.com) | 계정별로 직접 잔액을 기록 [blog.defichain.com](https://blog.defichain.com/2023/12/what-is-ethereums-accounts-based-model.html?utm_source=chatgpt.com) | | 거래 구조 | 입력 → 출력, 잔액 반환(Change) 필요 | 송신계정 잔액 감소 → 수신계정 잔액 증가 | | 병렬 처리 | 독립 UTXO 기반 처리 가능 → 확장성 유리 [kaleido.io](https://www.kaleido.io/blockchain-blog/utxo-vs-account-model?utm_source=chatgpt.com) | 계정 상태 공유 → 동시성 제약 존재 | | 스마트컨트랙트 적합성 | 상태 중심 설계에 불리 | 상태 저장/호출 구조에 최적 | | 프라이버시 및 분석 | 입력/출력 추적 가능하나 주소 재사용 회피 시 유리 | 계정 잔액집약으로 분석이 상대적으로 쉬움 [arXiv](https://arxiv.org/abs/2005.14051?utm_source=chatgpt.com) | | 잔액 관리 복잡도 | 다수 UTXO 관리 필요 | 단일 잔액으로 관리 간편 | | 설계 목적 | 가치 이전에 초점 (“전자화폐”에 가까움) | 상태 변화, 계약 실행에 초점 |

4. 설계적 선택이 갖는 의미


이상으로 UTXO 모델과 계정 기반 모델의 작동원리와 차이점을 구조적으로 살펴보았다. 각각의 모델은 단순히 잔액을 기록하는 방식이 아니라, 블록체인 프로토콜이 어떤 목표를 갖고 설계되었는지를 반영한다.
아래는 핵심 요약이다.

이 글을 모두 읽은 당신을 위해 3줄 요약 제공한다.

  1. UTXO는 “사용 가능한 출력”을 연결해 잔액을 구성하는 방식이다.
  2. 계정 모델은 “계정 잔액 + 상태”를 직접 기록하고 수정하는 방식이다.
  3. 선택된 모델은 블록체인 설계 목표(가치이전, 스마트컨트랙트 등)에 따라 상이한 트레이드오프를 갖는다.