카테고리 없음

비트코인 블록 헤더 - 난이도 목표 비트값

3min⚡️bitcoin 2025. 12. 12. 00:52

비트코인 블록 헤더값 중 난이도 목표 비트값에 대해서 알아보자.

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

 

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

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

3min-bitcoin.tistory.com

블록 헤더에 대해서는 위 글에서 소개해두었다.

 

난이도 목표 비트값

난이도 목표 비트값에는 총 4바이트 용량이 할당된다.

4바이트면 총 32비트로 계속 어려워지는 난이도를 표기하기엔 분명 임계점이 있을 것이라는걸 눈치챌 수 있다.

따라서 난이도 목표 비트값은 일반 숫자가 아니라 아래와 같이 지수와 계수 형식으로 표기된다.

 

첫 1바이트는 지수값이다.

그리고 나머지 3바이트는 계수가 된다.

난이도 목표 target값 구하는 수식

위 식은 target값을 지수와 계수로 구하는 공식이다. x가 지수, s가 계수다.

 

십진법에서 10^5 라고 한다면 지수 5는 뒤에 붙는 0의 개수가 된다. --> 100000

이진법에서도 마찬가지로 2^N 하면 N은 뒤에 붙는 0의 개수가 된다.

위 예시에서는 이진법이 아니라 16진법이므로 2^4이 기본이 되고 나머지는 0의 개수를 뜻한다.

따라서 8(x-3)이 아니라 2(x-3)이 뒤에 붙는 0의 개수가 된다.

 

이를 인지하고, 위 그림을 다시 보면 지수 17은 0의 개수가 총 34개임을 뜻한다.

그러나, 계수가 총 6칸을 차지하기 때문에 0의 개수는 28개다. (즉 6칸 밀렸다는 얘기)

이게 수식에서 x-3으로 표시하는 이유다.

 

57043 피자데이 난이도 분석

https://blockchain.info/block-height/57043?format=json

 

57043번 블록 난이도 값을 위 사이트에서 보면 "bits": 471178276 으로 되어있다.

이는 10진수로 표기된 것이고, 16진수로 나타내면 0x1C159C24 이다.

 

그 타겟값을 위 공식에 대입하여 실제 난이도로 치환해보면 아래 값이 나온다.

00000000159C24 0000000000 0000000000 0000000000 0000000000 0000000000

 

 1C는 10진수로 28이고, 2(x-3) 에 대입하면 위 치환값처럼 50이 나오는 것을 확인할 수 있다.

 

참고문헌

https://learnmeabitcoin.com/technical/block/bits/

 

Bits | Block Header Field

Bits Compact representation of the target The bits field contains a compact representation of the target. It indicates what the block hash has to be below for the block to be mined, and it has to represent the correct target value for the height of the blo

learnmeabitcoin.com