UTXO(Unspent Transaction Output) 모델과 계정/잔액(Account/Balance) 모델은 블록체인 네트워크에서 자산의 소유 및 이동을 기록하는 두 가지 주요 데이터 저장 방식이다.
⸻
1. UTXO (Unspent Transaction Output) 모델
대표 사례: 비트코인, 카르다노
UTXO 는 각 트랜잭션의 output을 담은 객체라고 생각하면 된다. 이 UTXO 내용을 추적하여 특정 계좌의 잔액을 계산한다.
각 트랜잭션은 입력(Input)과 출력(Output)으로 구성되며, 새로운 잔액은 이전 거래의 UTXO 를 고려하여 새로 계산된다.
위 그림에서 F 는 A, B 로부터 각각 BTC 를 받아 3 BTC를 보유하고 있다.
- 그러나 F 계좌에 3 BTC가 있다고 저장하지 않고, 그냥 [A --(1 BTC)--> F ], [B --(2 BTC)--> F ] 라는 기록들을 그대로 객체로서 저장한다.
- 이 객체가 UTXO 이며, F는 2개의 UTXO 를 담고 있다고 볼 수 있다.
G의 경우, 초기에 3개의 UTXO 정보를 가지고 있으며, 이를 추적해보면 총 17 BTC 를 보유하고 있음을 알 수 있다.
- 3BTC, 4BTC, 10BTC
이때, G 가 H 에게 9개의 BTC 를 보내는 트랜잭션이 발생한다면 다음과 같은 순서로 저장될 것이다.
- G가 가진 3개의 UTXO 중 10BTC짜리를 선택
- 이유: 9BTC 이상이 필요하므로, 가장 적합한 단일 입력값
- 트랜잭션 입력 (input):
- 10 BTC (G의 UTXO)
- 트랜잭션 출력 (output):
- 9BTC → H (수신자)
- 1BTC → G (잔돈 change UTXO)
- 이로 인해 기존 10BTC UTXO는 소멸되며, 새로 2개의 UTXO 가 생성된다.
- H의 지갑에 9BTC UTXO (1개)
- G의 지갑에 1BTC UTXO (1개)
특징
- 거래가 일회성 지불 증거 형태로 구성
- 체계적으로 추적 가능 (출처 추적에 유리)
- 병렬 처리에 강함 (독립적인 UTXO끼리 동시에 처리 가능)
장점
- 높은 보안성: 더 쉽게 이중 지불(double spending) 방지
- 프라이버시 향상: 여러 주소 사용 가능 (익명성 증가)
- 병렬 처리 가능성: 여러 UTXO를 동시에 사용 가능
단점
- 복잡한 구조: 모든 트랜잭션마다 잔돈 처리 필요 (Change address)
- 개발 난이도 높음: 상태 추적이 어렵고 상태 기반 로직이 복잡
2. Account/Balance 모델
UTXO 방식은 가치 전송에 있어서 좋은 구조를 지녔지만,
이더리움은 스마트컨트랙트로 보다 복잡한 로직을 구현해야 하기 때문에 기존 은행 시스템과 유사한 방식인 Account/Balance 모델을 채택했다.
대표 사례: 이더리움, 솔라나, BNB 체인
사용자의 주소(Account)에 잔액(balance) 값이 직접 저장된다. 트랜잭션 내용에 따라, from 계정의 잔액을 줄이고 to 계정의 잔액을 증가시킨다.
계정 단위의 상태(state)를 직접 저장하며, 스마트 컨트랙트와 호환성이 뛰어난 것이 특징이다.
장점
- 개발이 간단: 상태를 직접 조회 및 수정 가능
- 스마트 컨트랙트 친화적: 다양한 상태 기반 로직에 적합
단점
- 병렬 처리에 제약: 동일 계정의 상태를 동시에 업데이트하는 게 어려움 (낙관적 동시성 제어 필요)
- 추적 어려움: 자산의 흐름이 블록체인상에서 단절되어 보일 수 있음
출처:
블록체인 기록 보관 방식의 차이점: 비트코인(UTXO) vs. 이더리움(계좌/잔고)
'Blockchain, Crypto > Tech & Theory' 카테고리의 다른 글
EVM 호환성에 대한 개발자, 사용자 측면 이해 (0) | 2025.07.06 |
---|---|
스마트 컨트랙트와 RPC: 블록체인 네트워크와 상호작용하는 방법 (0) | 2025.07.02 |