미리 알아야 할 내용들
가변 길이 정수(VarInt)
비트코인에서는 큰 수를 보다 효율적으로 표현하기 위해 수의 크기에 따라 표현 형식이 변하는 가변 길이 정수(VarInt)를 사용합니다. 비트코인에서 사용하는 가변 길이 정수의 규칙은 다음과 같습니다.
값 | 가변 길이 정수 형식 |
0 ~ 252(0xFC) | 그대로 사용 (0 ~ 0xFC) |
253(0xFD) ~ 65,535(0xFFFF) | 0xFD + 2바이트(리틀 엔디안) (0xFDFD00 ~ 0xFDFFFF) |
65,536(0x10000) ~ 4,294,967,295(0xFFFFFFFF) | 0xFE + 4바이트(리틀 엔디안) (0xFE00000100 ~ 0xFEFFFFFFFF) |
4,294,967,296(0x100000000) ~ 18,446,744,073,709,551,615(0xFFFFFFFFFFFFFFFF) |
0xFF + 8바이트(리틀 엔디안) (0xFF0000000001000000 ~ 0xFFFFFFFFFFFFFFFFFF) |
가변 길이 정수의 값은 리틀 엔디안이므로 FD, FE, FF를 제외한 값을 뒤에서부터 1바이트(16진수 2자리)씩 읽어야 합니다.
-0xFDFF00(리틀 엔디안) -> FD00FF(빅 엔디안) -> 0x00FF = 255
'비트코인 > 비트코인 구조' 카테고리의 다른 글
[비트코인 구조] 트랜잭션 생성 (5) | 2022.10.25 |
---|---|
[비트코인 구조] 비트코인 테스트넷 Faucet (0) | 2022.10.24 |
[비트코인 구조] 트랜잭션 기본 규칙 (0) | 2022.09.30 |
[비트코인 구조] 세그윗(Segwit), Bech32 주소 (0) | 2022.09.23 |
[비트코인 구조] P2SH (0) | 2022.09.16 |