해시레이트와 채굴 난이도의 차이: 추정값과 조정 규칙 구분하기
이 페이지의 내용
비트코인 해시레이트가 올랐는데 채굴 난이도는 그대로일 수 있습니다. 해시레이트는 초당 해시 계산을 시도하는 속도이고, 네트워크 전체 수치는 블록 기록으로 추정합니다. 채굴 난이도는 현재 블록을 찾기 위한 목표값이 기준보다 얼마나 엄격한지를 나타내는 비율입니다.
두 숫자는 산출 방식도, 바뀌는 시점도 다릅니다. 차트를 읽을 때는 네트워크 해시레이트 추정값, 현재 적용 중인 난이도, 다음 조정에 대한 예상치부터 구분하세요. 어느 하나만으로 비트코인 가격이나 채굴 수익을 예측할 수는 없습니다.
이 글은 비트코인 메인넷을 다룹니다. 구현 설명은 Bitcoin Core v30.0을 기준으로 하며, 테스트넷이나 다른 작업증명 네트워크에 그대로 적용하지 않습니다.
먼저 단위와 산출 방식을 비교하세요
해시 계산 한 번은 조건에 맞는 블록 헤더를 찾기 위한 한 번의 시도입니다. 해시레이트는 이런 시도를 초당 얼마나 하는지 나타냅니다. 난이도는 난이도 1의 기준 목표값과 현재 목표값을 비교합니다. 블록 헤더 문서와 난이도 계산 구현에서 이 구분을 확인할 수 있습니다.
| 비교할 항목 | 네트워크 해시레이트 | 네트워크 채굴 난이도 |
|---|---|---|
| 무엇을 나타내나요? | 정해진 관측 구간의 네트워크 해시 계산 속도 추정값 | 난이도 1의 기준에 비해 현재 작업증명 목표값이 얼마나 엄격한지 나타내는 비율 |
| 단위는 무엇인가요? | 초당 해시 수인 H/s, 또는 TH/s·PH/s·EH/s | 물리적 단위가 없는 비율 |
| 무엇을 바탕으로 계산하나요? | 체인에 포함된 블록의 누적 작업량과 타임스탬프 | 블록 헤더에 기록된 목표값과 합의 규칙 |
| 언제 바뀌나요? | 새 블록, 관측 구간, 제공기관의 계산 방식에 따라 추정값이 달라질 수 있음 | 메인넷에서는 2,016블록마다 오는 조정 경계에서 바뀔 수 있음. 조정 후에도 값이 같을 수 있음 |
| 무엇을 알 수 없나요? | 모든 채굴자의 실패한 시도까지 정확히 센 결과가 아니며, 전력 사용량·가격·수익도 직접 알려주지 않음 | 현재 해시 계산 속도나 전력 사용량·가격·채굴자 수익을 직접 알려주지 않음 |
1 TH/s는 초당 10¹²회, 1 PH/s는 10¹⁵회, 1 EH/s는 10¹⁸회의 해시 계산 시도를 뜻합니다. 따라서 1 EH/s = 1,000 PH/s = 1,000,000 TH/s입니다.
반면 난이도를 ‘몇 조’라고 표시해도 초당 몇 조 번을 계산한다는 뜻은 아닙니다. 숫자에 같은 T 표기가 보이더라도, 단위가 붙은 TH/s와 난이도 비율을 섞어 읽으면 안 됩니다.
네트워크 해시레이트가 추정값인 이유
블록체인에는 채굴자의 실패한 시도가 모두 기록되지 않습니다. 확인할 수 있는 것은 체인에 포함된 블록과 그 목표값, 타임스탬프입니다. 네트워크 해시레이트는 이 기록을 바탕으로 작업량과 시간을 계산해 추정합니다. 모든 채굴기에 계량기를 달아 측정한 합계가 아닙니다.
Bitcoin Core 30.0의 getnetworkhashps 문서는 기본 관측 범위를 이전 120블록으로 지정합니다. nblocks를 -1로 설정하면 마지막 난이도 조정 이후 구간을 사용합니다. 별도 인자인 height에 과거 블록 높이를 지정하면 그 시점의 추정값을 구할 수 있습니다. nblocks=-1은 구간 선택이고, height=-1은 현재 체인 끝을 기준으로 삼는 설정입니다.
해시레이트 추정 구현은 관측 구간 양 끝의 누적 작업량 차이를 구한 뒤, 표본에 포함된 블록 타임스탬프의 최댓값과 최솟값 차이로 나눕니다. 여기서 작업량은 블록 목표값으로 계산하는 기대 해시 작업량이지, 실제 시도 횟수를 전부 센 값이 아닙니다.
작업량이 같아도 추정 속도는 달라집니다
두 가상 관측 구간의 기대 해시 작업량이 모두 7.2 × 10²⁴라고 가정해 보겠습니다.
| 가상 구간 | 경과 시간 | 작업량 ÷ 시간 | 해시레이트 추정값 |
|---|---|---|---|
| A | 72,000초, 즉 20시간 | 7.2 × 10²⁴ ÷ 72,000 | 100 EH/s |
| B | 60,000초, 즉 16시간 40분 | 7.2 × 10²⁴ ÷ 60,000 | 120 EH/s |
B의 추정값은 A보다 20% 높습니다. 하지만 이것만으로 채굴기가 20% 늘었다고 결론 내릴 수는 없습니다. 블록 발견에는 우연성이 있어, 같은 해시 계산 능력에서도 관측 구간이 짧아지거나 길어질 수 있습니다. 위 숫자는 계산 원리를 보여 주는 가상 예시이며 실제 비트코인 관측값이 아닙니다.
짧은 구간은 변화에 빨리 반응하는 대신 우연한 변동의 영향을 많이 받습니다. 긴 구간은 변동을 완화하지만 실제 변화가 반영되기까지 더 오래 걸릴 수 있습니다. 사이트끼리 비교할 때는 단위뿐 아니라 관측 구간, 끝 블록 높이, 계산 방식도 맞춰야 합니다.
난이도는 목표값과 반대로 움직입니다
작업증명 조건을 충족하려면 블록 헤더의 해시값이 정해진 목표값 이하여야 합니다. 목표값이 작아질수록 성공으로 인정되는 해시값의 범위가 좁아집니다. 해시 계산 자체가 다른 종류의 연산으로 바뀌는 것은 아닙니다.
관계는 다음처럼 정리할 수 있습니다.
난이도 = 난이도 1의 기준 목표값 ÷ 현재 목표값
목표값이 절반이 되면 난이도는 두 배가 됩니다. 한 채굴자의 해시레이트가 그대로라면 조건에 맞는 해시를 찾는 데 걸리는 기대 시간은 늘어납니다. 다만 ‘기대 시간’은 개별 블록의 대기 시간을 보장하지 않습니다. 어떤 블록은 빨리 발견되고, 어떤 블록은 오래 걸릴 수 있습니다. 비트코인 작업증명 설명도 이 확률적 과정을 다룹니다.
난이도가 두 배가 됐다는 사실만으로 전력 사용량도 두 배가 됐다고 볼 수는 없습니다. 이 비율에는 현재 가동 중인 기계 수, 하드웨어 효율, 전기요금이 들어 있지 않습니다.
해시레이트가 먼저 움직이고 난이도가 뒤따르는 이유
비트코인 메인넷의 목표 평균 블록 간격은 600초, 즉 10분입니다. 난이도 조정 주기는 2,016블록이고, 계산에서 비교하는 목표 기간은 1,209,600초, 즉 14일입니다. 메인넷 설정에 정해진 수치입니다.
14일은 목표 기간입니다. 매번 같은 요일에 조정되거나, 블록 하나가 정확히 10분마다 만들어진다는 뜻은 아닙니다.
- 조정 구간 안에서는 목표값이 유지됩니다. 그동안 채굴자는 장비를 켜거나 끌 수 있습니다.
- 실제 해시 계산 능력이 늘면 블록이 더 빨리 발견되는 경향이 생깁니다. 반응이 빠른 해시레이트 추정값은 먼저 오를 수 있습니다. 다만 짧은 구간에서 빨리 발견된 블록은 우연의 결과일 수도 있습니다.
- 다음 조정 경계에서 정해진 타임스탬프로 목표값을 다시 계산합니다. 측정된 기간이 짧으면 난이도가 높아지는 방향, 길면 낮아지는 방향으로 조정됩니다. 제한값과 반올림 등의 구현 조건도 적용됩니다.
조정 전에 보이는 ‘다음 난이도 조정 예상치’는 아직 적용된 난이도가 아닙니다. 남은 블록과 타임스탬프에 따라 바뀔 수 있습니다. 조정 코드는 차트 제공기관의 해시레이트 추정값을 읽어 다음 목표값을 정하지 않습니다.
14일 대신 12일이 걸렸다면
조정 계산에 사용하는 두 타임스탬프 사이가 12일이라고 가정하겠습니다. 목표 기간은 14일입니다. 목표값의 압축 표현에 따른 반올림을 무시하고, 제한값에 걸리지 않는 경우의 예시입니다.
- 새 목표값 ≈ 기존 목표값 × 12 ÷ 14 = 기존의 85.714%
- 새 난이도 ≈ 기존 난이도 × 14 ÷ 12 = 기존의 116.667%
- 가상 난이도 지수를 100으로 두면 약 116.667이 됩니다. 상승률은 약 16.667%입니다.
목표값은 약 14.286% 내려갔지만 난이도는 약 16.667% 올라갑니다. 서로 역수 관계이므로 변화율 계산의 분모도 달라집니다. 목표값의 하락률을 그대로 난이도의 상승률로 옮기면 틀립니다.
실제 계산에서는 경과 시간 입력을 목표 기간의 4분의 1부터 4배까지, 즉 302,400초에서 4,838,400초 사이로 제한합니다. 정수 연산, 목표값의 압축 인코딩, 허용되는 최대 목표값도 결과에 영향을 줍니다. 위 예시는 방향과 비율을 이해하기 위한 계산이며 합의 규칙의 정확한 계산 결과를 대신하지 않습니다.
기술 참고: 2,016블록과 2,015개 간격
조정에는 직전 2,016블록 구간의 첫 블록과 마지막 블록 타임스탬프를 사용합니다. 두 끝점 사이에는 블록 간 간격이 2,015개 있습니다. 그래도 비교 기준은 1,209,600초입니다. ‘2,016블록마다 조정’이라는 주기를 ‘타임스탬프 간격 2,016개를 빼서 계산’한다는 뜻으로 바꾸어 읽지 마세요.
풀의 셰어 난이도는 따로 확인하세요
채굴 풀은 참여자의 기여 작업량을 확인하기 위해 네트워크 목표값보다 충족하기 쉬운 별도 목표값을 사용할 수 있습니다. 이 조건을 만족해 제출한 결과를 셰어라고 합니다. 비트코인 채굴 문서는 풀의 셰어와 네트워크 블록을 구분합니다.
대부분의 셰어는 네트워크의 작업증명 목표값을 충족하지 못합니다. 네트워크 목표값까지 만족하는 셰어라도, 다른 블록 유효성 조건을 모두 충족해야 유효한 블록이 될 수 있습니다. 제출된 셰어 수가 곧 발견한 비트코인 블록 수는 아닙니다.
풀 대시보드의 ‘난이도’는 네트워크 난이도가 아니라 참여자에게 설정한 셰어 난이도일 수 있습니다. 셰어 난이도를 바꿔도 비트코인의 합의 목표값은 바뀌지 않습니다. 보고 있는 숫자가 한 대의 기계, 채굴 풀, 전체 네트워크 중 어느 범위인지 먼저 확인하세요.
채굴 차트를 읽을 때 확인할 여섯 가지
- 네트워크: 비트코인 메인넷인가요? 다른 체인이나 테스트넷은 규칙이 다를 수 있습니다.
- 수치와 단위: 네트워크 해시레이트 추정값, 네트워크 난이도, 풀의 셰어 난이도, 다음 조정 예상치 중 무엇인가요?
- 관측 구간: 120블록 기준인가요, 하루 기준인가요, 더 긴 이동평균인가요?
- 관측 시점과 끝 블록 높이: 두 사이트가 같은 시점을 비교하나요? 캐시된 값인지도 확인하세요.
- 계산 방식: 누적 작업량을 쓰나요, 단순화한 공식을 쓰나요, 기계나 풀이 별도로 보고한 속도인가요?
- 내리려는 결론: 이 수치만으로 가격 전망이나 비용 차감 후 수익을 판단하고 있지는 않나요?
채굴 사업의 수익성을 계산하려면 본인의 유효 해시레이트, 장비 효율, 전기요금과 기타 비용, 풀 지급 조건, 블록 보조금, 거래 수수료, 수입을 환산할 때 쓰는 통화 가격까지 필요합니다. 네트워크 난이도 차트만으로는 이 계산을 끝낼 수 없습니다.
해시레이트 추정값이 오르는 동안 비트코인 가격이 떨어질 수도 있습니다. 난이도는 지나간 구간을 바탕으로 조정되는 값입니다. 가격 변동의 원인이나 다음 움직임을 자동으로 설명해 주지는 않습니다.
자주 묻는 질문
해시레이트가 오르면 난이도도 바로 오르나요?
바로 오르지는 않습니다. 구간 중 실제 해시 계산 능력이 바뀌어도 목표값은 다음 조정 경계까지 유지됩니다. 난이도는 경계에서 정해진 타임스탬프로 다시 계산합니다. 짧은 구간의 해시레이트 추정값 상승은 우연한 블록 발견 속도 차이일 수도 있습니다.
사이트마다 해시레이트가 다른 이유는 무엇인가요?
단위, 관측 구간, 끝 블록 높이, 계산 방식을 비교해 보세요. 네트워크 해시레이트는 채굴자를 빠짐없이 조사해 얻은 값이 아닙니다. 같은 블록체인을 사용해도 관측 구간이 다르면 추정값이 달라질 수 있습니다.
난이도가 정해지면 블록은 정확히 10분마다 나오나요?
아닙니다. 10분은 목표 평균 간격입니다. 난이도는 해시 계산 한 번이 성공할 확률에 영향을 주지만, 성공하는 시각을 예약하지는 않습니다.
난이도 숫자가 블록 하나에 필요한 해시 계산 횟수인가요?
아닙니다. 난이도는 기준에 대한 비율이고, 성공할 때까지 실제로 시도하는 횟수는 달라집니다. 목표값에서 기대 작업량을 계산할 수는 있지만, 난이도 자체를 해시 시도 횟수로 읽으면 단위를 혼동하게 됩니다.
반감기가 오면 난이도도 절반이 되나요?
반감기는 별도의 블록 높이 규칙에 따라 블록 보조금을 줄입니다. 난이도는 2,016블록 주기의 조정 계산을 따릅니다. 보조금 변화에 따른 채굴자의 행동이 블록 발견 속도에 간접적으로 영향을 줄 수는 있어도, 반감기가 난이도를 직접 절반으로 나누지는 않습니다.
다음 차트에서는 네 가지를 기록해 보세요
수치의 이름, 단위, 관측 구간, 끝 블록 높이를 적어 보세요. 이어서 보고 있는 것이 추정값인지, 현재 적용 중인 규칙에 따른 값인지, 다음 조정의 예상치인지 구분하면 됩니다. 이렇게 읽으면 상승하는 선을 모두 같은 신호로 받아들이는 실수를 줄일 수 있습니다.
출처 확인일과 설명 범위
- 비트코인 개발자 가이드: 작업증명과 블록 생성
- 비트코인 블록 헤더 참고 문서: 목표값과 유효한 해시의 조건
- Bitcoin Core 30.0 RPC 문서: 추정값의 관측 구간과 인자
- Bitcoin Core v30.0 구현: 해시레이트 추정, 난이도 계산, 메인넷 설정, 난이도 조정, 블록 보조금
- 비트코인 개발자 가이드: 채굴 풀과 셰어
원자료 확인일은 이며, RPC 문서와 관련 구현의 추가 확인 기록은 기준입니다. 이 날짜들은 글의 발행일이나 갱신일을 뜻하지 않습니다. 구현 버전을 v30.0으로 고정한 것은 설명을 재확인할 수 있게 하기 위한 것이며 최신 버전이라는 뜻이 아닙니다. 계산 예시는 모두 가상입니다. 실시간 해시레이트·난이도·채굴 수익성 수치는 제공하지 않습니다.
이 가이드 공유