티스토리 뷰

반응형

비트코인 UTXO 뜻 원리 트랜잭션 구조와 스크립트 검증 총정리 - 대표

 

비트코인 네트워크에는 일반 은행이나 이더리움처럼 특정 지갑 주소에 숫자로 된 '잔액'이 누적 저장되는 계정 개념이 존재하지 않습니다. 대신 블록체인에 영구 기록된 과거 거래 내역 중 아직 다른 거래의 입력값으로 사용되지 않고 남아 있는 지출 가능한 출력 묶음들을 합산해 소유권을 증명하게 되는데, 이 핵심 단위를 UTXO(Unspent Transaction Outputs)라고 부릅니다.

쉽게 말해 비트코인의 잔고는 쪼갤 수 없는 지폐와 동전들이 지갑에 들어 있는 구조와 같습니다. 5만 원권 한 장으로 1만 원짜리 물건을 살 때 지폐를 찢어 주는 대신 5만 원권을 통째로 내고 4만 원의 거스름돈 지폐를 새로 받듯이, 비트코인 트랜잭션 역시 이전 UTXO 전체를 해제해 소모하고 새로운 수신용 UTXO와 잔돈용 UTXO를 즉시 생성하는 원리로 작동합니다.

 

비트코인 트랜잭션을 구성하는 4대 필드와 데이터 구조

 

 

 

비트코인 블록체인은 트랜잭션 데이터를 효율적으로 처리하고 노드 간 합의를 유지하기 위해 정밀한 4대 구성 요소를 갖추고 있습니다. 노드는 이 구조를 바탕으로 트랜잭션의 포맷과 유효 기간, 자산 소유권을 순차적으로 판별합니다.

비트코인 UTXO 뜻 원리 트랜잭션 구조와 스크립트 검증 총정리 - 시각

 

트랜잭션 필드 기능 및 프로토콜 역할 노드 처리 방식
트랜잭션 버전 (Transaction Version) 네트워크 내 트랜잭션의 유형 및 포맷 버전을 규정 노드가 버전에 맞게 트랜잭션 필드를 정확히 파싱하도록 지원
입력값 (Inputs) 이전에 생성된 UTXO를 가리키는 포인터와 잠금 해제 키 포함 과거 트랜잭션 ID와 인덱스, 서명(ScriptSig) 검증
출력값 (Outputs) 새롭게 전달될 비트코인 금액과 새로운 잠금 조건 포함 사토시(Satoshi) 단위 액수와 잠금 스크립트(ScriptPubkey) 명시
락 타임 (Lock Time) 트랜잭션이 블록에 포함될 수 있는 최소 시점 지정 지정된 시간 또는 블록 높이 이전에는 블록 승인 보류

이 가운데 Inputs와 Outputs는 비트코인 자산 이전의 알파이자 오메가입니다. 잠겨 있는 출력(Output)을 입력(Input)이 열쇠를 들고 찾아와 잠금을 풀고(해제), 그 즉시 새로운 목적지와 잔돈을 지정한 다음 차례의 출력을 잠가서 네트워크에 기록하는 단일 연쇄 작용이 비트코인의 트랜잭션입니다.

 

UTXO 동작 원리: 10BTC 송금과 거스름돈 4BTC 생성 과정

 

 

 

UTXO(Unspent Transaction Output)는 문자 그대로 '아직 소비되지 않은 트랜잭션 출력값'을 의미합니다. 비트코인 지갑 잔고를 조회할 때 나타나는 액수는 단일 계좌 숫자가 아니라, 사용자의 공개키로 잠겨 있어 개인키로 열 수 있는 UTXO 조각들의 총합입니다.

비트코인 UTXO 뜻 원리 트랜잭션 구조와 스크립트 검증 총정리 - 시각

 

  • 불가분성(Non-divisibility): 특정 UTXO에 10BTC가 들어있다면, 그중 6BTC만 떼어서 보낼 수 없습니다. 반드시 10BTC UTXO 전체를 트랜잭션 입력으로 소모해야 합니다.
  • 거스름돈 생성 메커니즘: 소모된 UTXO는 네트워크 상에서 '사용 완료' 처리되어 소멸하며, 수신자에게 지급할 6BTC UTXO 1개와 본인에게 돌려받을 4BTC UTXO 1개 등 총 2개의 새로운 UTXO가 출력으로 등록됩니다.
  • 동시성 및 이중 지불 방지: 한 번 입력으로 소모된 UTXO는 네트워크의 모든 노드에 의해 재사용이 영구 차단되므로 위변조와 이중 지불이 원천 차단됩니다.

예를 들어 Alice가 10BTC 크기의 UTXO 1개를 보유한 상태에서 Bob에게 6BTC를 전송하는 트랜잭션을 생성한다고 가정해 보겠습니다. 이 트랜잭션은 기존 10BTC UTXO를 해제한 뒤, Bob의 주소로 6BTC 출력과 Alice의 거스름돈 주소로 4BTC 출력을 동시에 만들어냅니다. 트랜잭션이 컨펌되면 기존 10BTC UTXO는 사라지고, 6BTC와 4BTC라는 2개의 신규 UTXO가 블록체인 원장에 안착합니다.

 

Input의 ScriptSig와 Output의 ScriptPubkey 연계 구조

 

 

 

비트코인 트랜잭션의 입력(Input)과 출력(Output)은 암호학적 자물쇠와 열쇠로 정교하게 맞물려 있습니다. 각 블록체인 노드는 거래를 승인하기 위해 입력에 포함된 포인터를 역추적하여 이전 블록의 해당 출력을 찾아냅니다.

비트코인 UTXO 뜻 원리 트랜잭션 구조와 스크립트 검증 총정리 - 시각

 

구분 포함 데이터 핵심 기술적 역할
트랜잭션 Input Prev. Tx ID, Tx Index, ScriptSig(디지털 서명) 소비할 이전 출력값을 정확히 지칭하고 소유권을 증명하는 열쇠 제공
트랜잭션 Output Amount(사토시 단위 자산), ScriptPubkey(잠금 조건) 전송되는 사토시 가치 저장 및 다음 소비자가 충족해야 할 잠금 조건 명시

노드는 트랜잭션을 수신하면 Input의 ScriptSig와 이전 Output의 ScriptPubkey를 연속으로 이어붙여 하나의 실행 스크립트(<ScriptSig><ScriptPubkey>)를 구성합니다. 이 스크립트 검증을 통과해야만 트랜잭션이 유효한 것으로 처리됩니다.

 

스택 머신 기반의 비트코인 스크립트 실행 절차

 

 

 

비트코인 가상 머신(Script Engine)은 보안을 위해 의도적으로 튜링 불완전(Turing Incomplete)하게 설계된 스택 기반 언어(Script)를 사용합니다. 루프(반복문)가 없어 무한 루프 공격의 위험이 없으며, 오직 데이터와 Op코드를 스택(LIFO)에 넣고 빼는 방식으로 유효성을 평가합니다.

비트코인 UTXO 뜻 원리 트랜잭션 구조와 스크립트 검증 총정리 - 시각

 

  1. 데이터 푸시: 스크립트 실행 포인터가 데이터 항목을 만나면 스택 메모리에 순차적으로 밀어 넣습니다.
  2. 연산자 실행: 스크립트 포인터가 Op코드를 만나면 스택에서 필요한 개수만큼 데이터를 꺼내어 연산을 수행합니다.
  3. 최종 판정: 모든 스크립트 연산이 종료되었을 때 스택 최상단에 1(True)이 남아 있으면 트랜잭션이 정상 승인되고, 0(False)이거나 비어 있으면 즉각 기각됩니다.

노드는 이와 같은 스택 사전 검증을 통과한 트랜잭션만을 피어(Peer) 노드들에게 전파하며, 검증에 실패한 잘못된 트랜잭션은 블록체인 전파망에서 즉시 드롭됩니다.

 

P2PK 스크립트와 OP_CHECKSIG의 ECDSA 서명 검증 원리

 

 

 

비트코인 초기 버전에 주로 채택되었던 P2PK(Pay To PubKey)는 UTXO 잠금 해제 스크립트 중 가장 직관적인 구조를 보여줍니다. 비록 수신자의 공개키(Public Key)가 블록체인에 직접 노출되어 현대에는 해시 기반의 P2PKH(Pay To PubKey Hash) 등으로 대체되었지만, 검증 메커니즘의 뼈대를 이해하는 데 가장 이상적인 표준 모델입니다.

비트코인 UTXO 뜻 원리 트랜잭션 구조와 스크립트 검증 총정리 - 시각

 

비트코인 UTXO 뜻 원리 트랜잭션 구조와 스크립트 검증 총정리 - 시각

 

P2PK 검증에서는 Input에서 추출한 서명(<signature>)과 Output에서 추출한 공개키 및 검증 연산자(<public key><OP_CHECKSIG>)가 순차 결합되어 '<signature><public key><OP_CHECKSIG>' 스크립트를 완성합니다. 노드는 이 스크립트를 아래 순서로 연산합니다.

순독 순서 스크립트 토큰 스택 내부 상태 변화 및 처리 내용
1단계 <signature> (서명 데이터) 데이터이므로 스택에 push → [signature]
2단계 <public key> (공개키 데이터) 데이터이므로 스택에 push → [signature, public key]
3단계 <OP_CHECKSIG> (Op코드) 스택에서 public key와 signature를 pop하여 ECDSA 서명 일치 여부 연산
4단계 결과값 반환 (1 또는 0) 타원 곡선 서명 검증이 성공하면 스택에 최종 1을 push → 유효성 확인 완료

ECDSA(타원 곡선 디지털 서명 알고리즘) 검증을 거쳐 스택 최상단에 1이 반환되는 순간, 지정된 UTXO의 잠금이 공식적으로 해제되어 소비(소멸)되며, 새로운 트랜잭션 출력 목록에 기재된 신규 UTXO들이 네트워크의 합의 아래 정식 생성됩니다.

비트코인의 UTXO 아키텍처는 계정 기반 장부 체계에 익숙한 사용자에게는 다소 낯설게 느껴질 수 있지만, 이중 지불 방지와 병렬 처리 검증이라는 블록체인 본연의 목적을 가장 단순하고 견고하게 구현한 기술적 기반입니다. 트랜잭션의 입력과 출력이 맞물리며 디지털 서명 스택이 검증되는 원리를 이해하는 것은 향후 비트코인 네트워크 수수료 최적화 및 온체인 데이터 분석의 중요한 기준점이 됩니다.

공식 제휴 가이드

비트코인(BTC) 거래 및 시장 대응을 준비 중이신가요?

비트코인(BTC) 거래를 준비 중이라면 관련 거래소의 거래 수수료와 진행 중인 혜택 조건을 함께 확인해 보세요. 공식 제휴 링크를 통해 신규 가입 및 KYC 인증 완료 시 거래 수수료 할인과 웰컴 보너스 혜택이 적용됩니다. 실제 거래를 시작하기 전 공식 가이드에서 세부 지급 조건과 적용 절차를 먼저 확인하시기 바랍니다.

[안내: 본 안내는 제휴 링크를 포함하고 있으며, 가입 및 이용 조건 충족 시 소정의 파트너 혜택이 발생할 수 있습니다. 모바일 앱 이용자는 APK 설치 가이드를 참고하세요.]

[투자 유의 안내] 본 글은 단순 정보 제공을 목적으로 하며 특정 가상자산에 대한 투자 권유나 자문이 아닙니다. 암호화폐 거래는 높은 가격 변동성과 원금 손실 위험을 수반하므로 모든 투자 판단과 책임은 투자자 본인에게 있습니다.

반응형