목표값 (Target)
목표값(타깃)은 작업 증명(PoW) 블록체인에서 블록 헤더의 해시가 그 값 이하여야 블록이 유효해지는 256비트 임계값입니다. 비트코인 블록 헤더에는 이 값이 "nBits"라는 4바이트 압축 형식으로 들어 있습니다.
자세히 알아보기
채굴자는 블록 헤더의 논스(nonce) 등을 바꿔 가며 SHA-256을 두 번 적용한 해시를 계산하고, 그 결과를 256비트 정수로 보아 목표값과 비교합니다. 해시가 목표값 이하이면 블록이 유효합니다. 목표값이 작을수록 조건을 만족하는 해시가 드물어져 채굴이 어려워집니다.
난이도(difficulty)는 목표값의 다른 표현입니다. 난이도 = 최대 목표값 ÷ 현재 목표값으로 계산되므로, 목표값이 절반이 되면 난이도는 두 배가 됩니다. 비트코인은 2016블록마다 직전 기간의 실제 소요 시간을 보고 목표값을 다시 조정해 평균 블록 간격을 약 10분으로 유지합니다.
nBits는 앞 1바이트가 지수, 뒤 3바이트가 가수인 압축 표기입니다. 목표값 = 가수 × 256지수 − 3으로 복원합니다. 노드는 블록을 받을 때 nBits가 규칙대로 조정된 값인지, 그리고 헤더 해시가 그 목표값 이하인지 함께 검증합니다.
목표값은 비교 기준일 뿐 채굴자가 고를 수 있는 값이 아닙니다. 블록 헤더의 nBits가 규칙에 맞지 않으면, 해시가 아무리 작아도 다른 노드들이 그 블록을 거부합니다. 또 "해시가 목표값 이하"라는 조건을 만족하는 해시를 찾는 데 드는 평균 시도 횟수는 약 2256 ÷ 목표값으로, 이것이 블록 하나에 들어간 작업량의 척도가 됩니다.
블록체인·암호화폐에서는
비트코인 제네시스 블록의 nBits는 0x1d00ffff로, 이것이 최대 목표값(난이도 1)에 해당합니다. 해시 레이트가 늘면 블록이 빨리 나오므로 다음 조정에서 목표값이 낮아지고, 해시 레이트가 줄면 높아집니다. 라이트코인 등 다른 PoW 체인도 같은 원리를 쓰지만 조정 주기와 알고리즘은 체인마다 다릅니다.
참고로 트레이딩에서는 "목표가(price target)"라는 말도 쓰는데, 분석가가 예상하는 가격 수준을 뜻하는 별개의 의미입니다.
쉽게 말하면
목표값은 "이 숫자보다 작은 번호표를 뽑아야 당첨"이라는 기준선이고, 기준선을 낮출수록 당첨되기 어려워집니다.
예시
nBits = 0x1d00ffff이면 지수는 0x1d(29), 가수는 0x00ffff이므로 목표값 = 0xffff × 25626입니다. 16진수로 쓰면 앞에 0이 8자리(32비트) 이어지는 수이며, 해시가 이 값 이하여야 합니다.
이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.