비트코인의 난이도 구하는 방법 (How to calculate the difficulty of bitcoin)

loum(59)
Published in
#bitcoin
Words
107
Reading
1 min
Listen
Play
10y

아래 그림은 비트코인의 블럭 헤더부에 포함된 bits로부터 난이도(difficulty)를 구하는 방법을 보여줍니다.


여기서 난이도는 새로운 블럭을 발견하기 얼마나 어려운지를 보여주는 숫자를 말합니다.

일단 bits에서 target을 구합니다. 먼저, bits를 16진수로 바꾸고, 앞의 두개의 수와 뒤의 6개의 수를 분리하여 target 공식에 넣고 계산을 하면 됩니다.


그림의 빨간색, 파란색 부분에 해당하는 16진수 bits를 넣어주면 되며, 이때 계산된 값이 current_target 이 됩니다.

그리고 maximum_target은 상수로서, 0x00000000FFFF0000000000000000000000000000000000000000000000000000 로 미리 정해져 있습니다.


이때, 난이도는 아래 수식으로 구합니다.


difficulty = maximum_target / current_target


따라서, current_target이 작으면 비트코인의 난이도가 높아지며, current_target이 maximun_target일 때 난이도가 1이 됩니다.

최대 난이도는 maximum_target / 1이며, 약 2^(224)입니다.


비트코인의 난이도는 https://bitcoinwisdom.com/bitcoin/difficulty 에서 볼 수 있습니다.


아래 그림에 난이도에 내용을 확인할 수 있습니다.


비트코인의 난이도 구하는 방법 (How to calculate the difficulty of bitcoin) | Ecency