카테고리 없음

블록헤더 - Unix timestamp 고갈, 2038년 문제

3min⚡️bitcoin 2025. 12. 14. 12:21

2038년 문제

2025.12.07 - [분류 전체보기] - 비트코인 블록 헤더 구조 분석

 

비트코인 블록 헤더 구조 분석

비트코인은 블록체인으로 만들어져 있다는 얘기는 이제는 너무 유명하다.블록체인이란 블록을 해싱해서 체인으로 연결했기에 이와 같이 불린다.사토시가 제시한 백서에서는 공식적으로 블록

3min-bitcoin.tistory.com

비트코인 블록 헤더에는 time 값이 있다.

이는 난이도 조절을 할 때 블록이 채굴된 시간을 확인하기 위해 사용된다.

 

time 필드에는 현재 시간을 입력하는데, Unix timestamp 초단위 포맷으로 입력한다.

유닉스 타임스탬프는 1970년 1월 1일 00시 UTC 를 기준으로 몇 초가 지났는지를 계산해서 저장하는 방식이다.

시간이 흐를수록 숫자는 무한히 계속 커지는 시스템이다.

 

time 필드는 총 4바이트(32비트)로 용량이 정해져있다.

시간이 계속 흐르다보면 4바이트안에 표기할 수 없는 날이 도달한다. (이를 overflow라고 한다)

이를 2038년 문제라고 한다.

 

컴퓨터에서 integer는 32비트이고, 맨 앞자리는 +, - 부호를 나타내기 위해 사용하기 때문에 2^31 정도 크기의 수를 표현할 수 있고 이는 21억이다. 1970년부터 21억초를 더하면 2038년 1월쯤이 되서 이 문제를 2038년 문제라고 부른다. 비트코인은 음수가 필요 없는 시간값을 다루기 때문에 정확히 두 배인 2106년까지 버틸 수 있게 된다.

대응법?

아직 먼 미래라서 뚜렷한 대응책이 급한 상황은 아니다.

현재는 이정도 대응이 되고 있는 것으로 보인다.

  1. 우선 2106년이 너무 먼 미래라서 개발자들이 적극적으로 토론이나 대응을 안하고 있음. (있다면 알려주세요...)
  2. BitBlend라는 Softfork 할 수 있는 논문도 있음 (헤더엔 32비트로 쓰는데, 실제로는 64비트로 해석하자는 방식)
    https://bitblend2106.github.io/bitcoin/BitBlend2106.pdf https://x.com/NathanLevy10/status/1778476745487691801
  3. 현재 채굴자들은 자발적으로 coinbase 거래에 시각을 입력하고 있음 (강제X)

만약 비트코인 time값을 64비트로 늘린다면 어마어마한 시간을 커버할 수 있지만,

이는 블록 헤더의 근본 합의를 깨는 문제가 되므로 썩 좋아보이진 않는다.

참고문헌

https://www.youtube.com/watch?v=p0Ek-x4KUnE&t=4s

https://www.reddit.com/r/Bitcoin/comments/17nwc4p/bitcoins_2106_problem_how_to_fix_when_to_fix/

 

Reddit의 Bitcoin 커뮤니티

Bitcoin 커뮤니티에서 이 게시물을 비롯한 다양한 콘텐츠를 살펴보세요

www.reddit.com