본 글은 비트코인의 작동 원리를 이해하기 쉽게 설명해 놓은 해외 사이트 Learn me a bitcoin 내에 있는 Transaction Data 페이지를 번역한 글입니다. 읽은 것을 개인적으로 이해하기 쉽게 정리하여 작성한 글이다 보니, 어색한 부분이 있을 수도 있습니다. 원문을 읽고자 하시는 분은 위의 링크를 참조해 주세요. 😀
비트코인 트랜잭션은 비트코인의 이동을 설명하는 데이터 모음입니다.
Input을 받아서, 새로운 Output을 생성합니다.
구조
트랜잭션 데이터의 구조를 살펴보겠습니다.
- 예시 트랜잭션 : c1b4e695098210a31fe02abffe9005cffc051bbe86ff33e173155bcbdc5821e3
- 트랜잭션 내에 있는 모든 데이터는 hexadecimal 형태를 따릅니다.
01000000017967a5185e907a25225574544c31f7b059c1a191d65b53dcc1554d339c4f9efc01000000
6a47304402206a2eb16b7b92051d0fa38c133e67684ed064effada1d7f925c842da401d4f22702201f1
96b10e6e4b4a9fff948e5c5d71ec5da53e90529c8dbd122bff2b1d21dc8a90121039b7bcd0824b9a91
64f7ba098408e63e5b7e3cf90835cceb19868f54f8961a825ffffffff014baf2100000000001976a914
db4d1141d0048b1ed15839d0b7a4c488cd368b0e88ac00000000
필드명 | 데이터 | 사이즈 | 설명 | |
Version | 01000000 | 4 bytes | 트랜잭션 데이터 구조의 버젼 | |
Input Count | 01 | 변동 | 다음에 오는 Input의 Size | |
Input(s) | TXID | 796...efc | 32 bytes | 기존 트랜잭션 참조 (Output을 불러오기 위함) |
VOUT | 01000000 | 4 bytes | 트랜잭션 Output에 대한 인덱스 번호(Index number) | |
ScriptSig Size | 6a | 변동 | 다음에 오는 잠금 해제 코드의 Size | |
ScriptSig | 473...825 | Input의 잠금을 해제하는 스크립트 | ||
Sequence | ffffffff | 4bytes | ||
Output Count | 01 | 변동 | 다음에 오는 Output의 개수 | |
Output(s) | Value | 4baf210000000000 | 8 bytes | output 에 담을 값 (satoshi 단위) |
ScriptPubKey Size | 19 | 변동 | 다음에 오는 잠금 해제 코드의 Size | |
ScriptPubKey | 76a9...88ac | Output의 잠금을 해제하는 스크립트 | ||
Locktime | 00000000 | 4 bytes | 이 트랜잭션을 포함할 수 있는 최소 블록 높이 또는 Unix Time |
다이어그램
1. 블록체인으로부터 Output을 선택해서 가져옵니다. (기존 TXID, VOUT를 이용해서)
2. 가져온 Output을 개인키로 잠금 해제합니다. (해당 Output은 공개키로 잠금 되어 있음)
위의 과정을 필요한 만큼 반복하고 나서,
3. 새로운 Output을 생성하고, 담고 싶은 만큼의 비트코인을 담습니다. (satoshi 단위)
4. 생성한 Output을 lockingscript로 잠급니다. (받는 사람자의 공개키를 사용해서)
즉, 거래 데이터는 이전 트랜잭션에서의 비트코인 패키지를 해제하는 방법과 새로운 패키지로 다시 잠그는 방법을 알려준다고 할 수 있습니다.
Notes
✏️ 로우 트랜잭션(Raw transaction)은 때때로 "직렬화된 트랜잭션"이라고도 불립니다. 왜냐하면 그것은 여러 개의 개별 데이터 조각들이 하나의 데이터 문자열로 묶여있기 때문입니다.
'블록체인 > 비트코인' 카테고리의 다른 글
비트코인 기술 가이드 (Bitcoin Technical Guide) (0) | 2023.04.13 |
---|---|
트랜잭션 수수료(Transaction Fee) (1) | 2023.04.13 |
Target(목표값) (1) | 2023.04.08 |
채굴(Mining) (0) | 2023.04.08 |
VOUT (0) | 2023.04.07 |