비트코인/비트코인 구조

[비트코인 구조] 블록 버전

라이튼 2022. 12. 12. 22:48

미리 알아야 할 내용들


 

[비트코인 구조] 비트코인 블록 기본 규칙

미리 알아야 할 내용들 [비트코인 구조] 비트코인 블록(Block) 기초 미리 알아야 할 내용들 [비트코인 기본 구조] 2. 타임스탬프(Timestamp) [비트코인 기본 구조] 1. 이중 지불 문제 익명의 비트코인 개

kwjdnjs.tistory.com

 

[비트코인 구조] 빅 엔디안(Big endian)과 리틀 엔디안(Little endian)

빅 엔디안(Big endian)과 리틀 엔디안(Little endian) 엔디안(Endian)은 바이트가 저장되는 순서입니다. 빅 엔디안은 일반적으로 사람이 읽는 순서로, 리틀 엔디안 빅 엔디안의 역순으로 저장합니다. 예를

kwjdnjs.tistory.com


블록 버전

 

 비트코인 블록체인은 지금까지 여러 차례의 소프트포크를 통해 업그레이드 되어왔습니다. 이 과정에서 새로운 소프트포크에 대응하는 노드와 블록을 구별하는 방법과 규칙이 필요해졌습니다. 따라서 비트코인 개발자들은 비트코인 블록의 버전을 작성하는 표준을 만들었습니다.

 

버전 1~4

 비트코인 블록은 4바이트(16진수 8자리)의 버전으로 시작합니다. 최초의 비트코인 블록은 다음과 같은 버전을 가지고 있습니다.

 

 비트코인 제네시스 블록 버전: 01000000

 

 블록의 버전은 리틀 엔디안 값이므로 실제 버전은 1 임을 알 수 있습니다.

 

비트코인 제네시스 블록 버전(빅 엔디안): 00000001

 

 이후 몇 차례의 소프트포크를 통해 블록의 버전은 4로 증가하였습니다. 그리고 이 과정에서 보다 효율적인 버전 관리가 필요성이 제기되어 BIP0009가 등장하게 되었습니다.

 

BIP0009

 BIP0009는 블록 버전 4 이후의 블록의 버전에 관한 표준을 다루고 있습니다. 지금부터는 이 표준에 대해 알아보겠습니다.

 

 BIP0009를 따르는 블록은 해당 표준을 만족한다는 의미로 첫 3비트(바이트가 아닌 비트)를 001로 설정합니다. 블록 버전의 크기인 4바이트는 32비트이므로, 실제 사용할 수 있는 크기는 3비트를 제외한 29비트가 됩니다.

 

 실제 소프트포크는 이 29개의 비트를 일부 활성화하여 진행됩니다. 소프트포크를 진행할 채굴자들은 시작시간과 종료시간을 정하고 이 기간 동안 블록의 버전 필드의 비트 활성화 여부를 통해 소프트포크 준비 여부를 확인합니다. 95% 이상의 노드가 준비 완료를 표시하게 된다면 소프트포크는 성공적으로 진행됩니다.

 

 다음은 실제 최근에 채굴된 어떤 블록의 버전입니다.

  • 버전(16진수): 20600000
  • 버전(비트): 00100000011000000000000000000000

 이를 분석해보면 다음과 같습니다. 비트의 순서는 뒤에서 0부터 세어야 합니다.

  • BIP0009 표준을 뜻하는 비트(31~29): 001
  • 활성화된 비트: 22, 21번 비트

 

 활성화된 비트를 이용하면 해당 블록을 채굴한 노드가 어떤 BIP에 대한 소프트포크에 대응하고 있는지에 대해 알 수 있습니다.

 

 지금까지 비트코인 블록 버전에 대해 간단하게 살펴봤습니다. 감사합니다.

 

이어지는 글들


 

[비트코인 구조] 머클 트리(Merkle Tree)

미리 알아야 할 내용들 [비트코인 구조] 비트코인 블록 기본 규칙 미리 알아야 할 내용들 [비트코인 구조] 비트코인 블록(Block) 기초 미리 알아야 할 내용들 [비트코인 기본 구조] 2. 타임스탬프(Tim

kwjdnjs.tistory.com