
9
장
블록
251
>>> exponent = bits[-1]
>>> coefficient = little_endian_to_int(bits[:-1])
>>> target = coefficient*256**(exponent-3)
>>> difficulty = 0xffff * 256**(0x1d-3) / target
>>> print(difficulty)
888171856257.3206
비트코인 최초 블록의 난이도는
1
이었습니다. 이것은 현재 메인넷이 얼마나 어려워졌는지를
수치화할 수 있게 합니다. 난이도는 처음 채굴을 시작할 당시와 비교해서 현재 채굴이 얼마나
어려워졌는지를 보여주는 지표입니다. 위에서 예를 든 채굴 난이도는 비트코인 시초보다 약
8880
억 배에 해당합니다.
난이도는 비트코인 블록 탐색기와 가격 차트 서비스에서 종종 볼 수 있습니다. 이는 난이도가
새로운 블록을 생성하는 데 필요한 노력을 훨씬 직관적으로 보여주기 때문입니다.
연습문제
9.10
Block
클래스의
difficulty
메서드를 작성하시오.
9.3.4
작업증명 유효성 확인
지금까지 블록 헤더의
hash256
해시값을 계산하고 이것을 리틀엔디언 정수로 읽어서 작업증
명을 계산하는 것을 배웠습니다. 이 숫자가 목푯값보다 낮으면 유효한 작업증명이 되고, 그렇
지 않으면 유효하지 않은 작업증명이 되며 ...