
1. 트랜잭션의 정의
트랜잭션은 디지털 지갑에 들어있는 디지털 자산을 다른 디지털 지갑으로 이동시키는 과정을 의미 합니다.
2. 트랜잭션의 구조
(1) 입력
- txid : 이전 트랜잭션의 고유 식별자(ID) 입니다.
- vout : UTXO 의 위치 인덱스 입니다. 디지털 자산의 사용가능한 상태를 나타내는데 사용됩니다.
- scriptsig : 송금자 자신의 개인키로 만든 서명과 공개키로 이루어져있습니다.
(2) 출력
- value : 수량을 나타냅니다.
- scriptPubKey : 입력에서 쓰인것과 같이, 수취자 자신의 개인키로 만든 서명과 공개키로 이루어져있습니다.
(3) locktime: 트랜잭션 실행 지연 설정입니다. 예약 결제, 조건부 결제, 다중 서명 등 다양한 거래 유형에 활용됩니다.
3. UTXO란?
쉽게 설명하면 "사용 가능한 상태의 확인도장입니다" 라는 확인도장의 역할 입니다. 디지털 자산은 일반적인 은행계좌와는 달리, UTXO의 집합으로 저장 됩니다. UTXO는 한번 사용하면 사라지며, 새로운 디지털 자산을 얻었을 경우, 그 자산을 증명하는 새로운 UTXO를 발급받게 됩니다.
EX)
(1) 은행: 계좌에 100만원, 200만원, 300만원이 입급되었을 경우
=> 600만원으로 저장
(2) 디지털 지갑: 내 디지털 지갑에 1비트, 2비트 3비트가 입금 되었을 경우
=> 1비트의 UTXO, 2비트의 UTXO, 3비트의 UTXO 만 저장된다.
4. UTXO 구조
- 금액 : 비트코인의 양,단위는 사토시
- 소유자 정보
- 트랜잭션 ID
- 출력 인덱스 : 몇번째 출력인지를 나타내는 번호
5. UTXO의 장단점
(1) 장점
- 보안성: 이중 지불 방지, 네트워크 무결성 보장
- 병렬 처리 가능 : 각 돈 마다 UTXO를 가지고 있어, 병렬적으로 한번에 처리 가능합니다
(2) 단점
- 복잡한 잔돈 관리: UTXO는 모든 돈에 생기기 때문에, 아주 작은 단위의 잔돈이라도 생기게 됩니다. 그래서 UTXO수는 빠르게 증가합니다.
- 저장소 : 그렇게 빠르게 증가하는 UTXO 데이터 때문에 저장소의 부담이 올수 있습니다.
7. 트랜잭션 흐름 정리
(0) 내 지갑 상태:
A: 2 BTC B: 3 BTC C: 4 BTC
(A,B,C는 각 비트의 UTXO입니다.)
총 9 BTC 보유
"나는 친구에게 6BTC를 보내고 싶어!"
(1) 지갑 소프트 웨어를 가장 효율적으로 B (3 BTC) + C (4 BTC) 조합을 고름
(2) 트랜잭션구성
Input (입력):
나: B (3 BTC) + C (4 BTC)
Output (출력):
→ 친구: 6 BTC → UTXO D
→ 나: 0.9 BTC 잔돈 → UTXO E
→ 채굴자: 0.1 BTC 수수료 → UTXO F
(3) 서명
내 개인키로 트랜잭션의 디지털 서명을 함 => 내가 한 거래라는 것을 증명
(4) 전파
트랜잭션이 네트워크를 통해 전파됨
(5) 블록 등록
채굴자가 블록을 만들어 내면, 트랜잭션은 이 블록에 영구히 기록됨
'공부 내용 정리' 카테고리의 다른 글
| 분산원장과 노드란? (0) | 2025.04.28 |
|---|---|
| 머클 트리란? (0) | 2025.04.25 |
| 디지털 서명이란? (2) | 2025.04.24 |
| 해시(Hash)란? (0) | 2025.04.24 |
| 비트코인의 탄생 스토리 (0) | 2025.04.23 |