용어집 / 채굴과 합의
목표 임계값
별칭은 Target입니다.
- 목표 임계값이란 무엇입니까?
- 목표 임계값은 블록 헤더 해시가 블록을 유효한 작업 증명으로 인정받으려면 이 값 이하로 내려가야 하는 256비트 숫자입니다.
채굴은 정답이 있는 퍼즐이 아니라 비교입니다. 채굴업자는 후보 헤더를 해시하고, 32바이트 결과를 숫자로 읽은 뒤 그것이 충분히 작은지 확인합니다. 유효한 해시는 설계상 희귀하므로, 찾는 유일한 방법은 계속 시도하는 것입니다. 그리고 그 반복된 시도가 전력을 체인의 보안으로 바꾸는 일입니다.
작동 방식
목표 임계값은 숫자에 대한 상한이며, 그 숫자는 80바이트 블록 헤더의 이중 SHA-256 해시입니다.
노드는 헤더를 해시하고, 결과를 리틀 엔디언 정수로 읽은 뒤, 헤더의 nBits 필드에서 디코딩한 목표 값과 비교합니다. 목표가 낮을수록 허용되는 해시가 적어지고 더 많은 시도가 필요해집니다. 메인넷이 허용하는 가장 쉬운 상한은 0x00000000FFFF0000 뒤에 영이 이어지는 형태이며, 이는 난이도 1에 해당하고 시도 42.95억회당 약 한 개의 유효한 해시에 해당합니다. 여기에 현재 난이도를 곱하면 블록당 예상 작업량이 나옵니다. 2025년의 마지막 난이도 조정에서 기록된 148.2조 난이도에서는 평균 블록 하나에 네트워크 전체가 약 640 zettahash를 소모합니다.
잘못 알기 쉬운 세부 사항이 두 가지 있습니다. 첫째, 검사 기준은 "작거나 같음"이므로 목표 값과 정확히 같은 해시도 유효합니다. 둘째, 블록 해시에서 모두가 가리키는 앞자리의 영들은 해시를 표시하는 방식에서 생긴 결과일 뿐 규칙 자체가 아닙니다. 탐색기는 해시를 바이트 순서를 뒤집어 출력하므로 작은 숫자가 왼쪽의 연속된 영으로 보이지만, 합의 검사는 산술적이며 결코 문자를 세지 않습니다.
규칙에 명시된 절대 상한도 있으며, 이를 powLimit라고 부르고 어떤 재조정도 이 값을 넘을 수 없습니다. 네트워크의 큰 비중이 한꺼번에 꺼져도 임계값이 무한정 느슨해지지 않게 하는 장치입니다.
확인할 수 있는 곳
목표 임계값은 거의 그 자체로 출력되지 않으므로, 다음 세 가지 형태 중 하나로 접하게 됩니다.
블록 탐색기는 이를 난이도로 표시하는데, 난이도는 허용되는 가장 쉬운 목표를 현재 목표로 나눈 값일 뿐입니다. 채굴 소프트웨어는 getblocktemplate 응답 안에서 target 필드로 이를 받습니다. 풀은 자신의 장비에 네트워크 목표보다 의도적으로 훨씬 쉬운 셰어 목표를 보내, 장비가 실제 블록을 먼저 찾지 않고도 작동 중임을 증명할 수 있게 합니다. Bitcoin Core는 CheckProofOfWork에서 이 규칙을 적용하며, nBits를 디코딩하고 powLimit을 넘거나 영 이하인 값을 거부한 뒤 비교하는 몇 줄의 코드입니다.
테스트 네트워크는 의도적으로 이를 느슨하게 합니다. 테스트넷은 20분 동안 블록이 없으면 최소 난이도 블록을 허용하며, 그래서 테스트 코인은 채굴이 아주 쉬우면서도 가치는 전혀 없습니다.
목표 임계값 vs 난이도
목표 임계값은 원시적인 한도이고, 난이도는 같은 사실을 읽기 쉽게 표현한 것이며, 둘은 반대 방향으로 움직입니다. 난이도가 두 배가 되면 목표는 절반이 됩니다. 난이도가 존재하는 이유는 64자리 16진수 상한은 한눈에 비교할 수 없고, 비율은 여러 해를 거쳐 의미를 전하기 때문입니다. 2009년 1월의 난이도 1과 2025년 말의 148.2조를 비교하면 16진수 문자열 두 개로는 전할 수 없는 이야기가 드러납니다.