다음 비트코인 반감기가 2028년 며칠인지는 블록이 나오는 속도에 달려 있어서, 어떤 평균을 쓰느냐에 따라 추정 날짜가 달라질 수 있어요.
그래서 Bitcoin Core 소스와 공개 블록 데이터를 직접 받아 계산해 봤어요. 결론부터 적을게요.
- 코드가 정해 둔 것은 날짜가 아니라 블록 높이 1,050,000이에요. 그 블록부터 보상이 3.125 BTC에서 1.5625 BTC로 줄어요.
- 날짜는 「남은 블록 수 × 블록 하나당 평균 시간」으로 추정할 수밖에 없어요.
- 2026년 9월 24일 오후 1시 57분(한국 시각) 기준으로 남은 81,644블록을 네 가지 평균(목표값·이번 주기·직전 주기·최근 2,016블록)으로 나눴더니, 추정 시점이 2028년 4월 5일부터 13일까지 약 8일 범위에 모였어요.
- 이번 난이도 구간의 짧은 평균만 쓰면 5월 9일로 밀리지만, 이 값은 오래 이어 붙이기 어려운 값이에요. 이유는 아래에 적었어요.
반감기가 무엇인지는 두 문장만 적을게요. 채굴자가 블록 하나를 만들 때 새로 받는 비트코인이 21만 블록마다 절반으로 줄어드는 규칙이에요. 개념과 역대 일정은 비트코인 반감기란 무엇인가에서 따로 정리했어요.
![]()
코드에 들어 있는 것은 높이뿐이에요
보상을 계산하는 함수는 Bitcoin Core 저장소의 validation.cpp 안에 있는 GetBlockSubsidy 예요. 2026년 9월 24일에 master 브랜치 파일을 받아 읽은 핵심 줄은 이래요.
int halvings = nHeight / consensusParams.nSubsidyHalvingInterval;
CAmount nSubsidy = 50 * COIN;
nSubsidy >>= halvings;
반감 횟수는 블록 높이를 반감기 간격으로 나눈 몫으로만 정해져요. 함수에 들어가는 값은 높이와 합의 파라미터뿐이고, 날짜나 시각은 들어가지 않아요.
반감기 간격은 chainparams.cpp 메인넷 설정에 nSubsidyHalvingInterval = 210000 으로 적혀 있어요. 그래서 다섯 번째 반감기는 5 × 210,000 = 1,050,000번째 블록이에요. 이 높이에서 몫이 5가 되고, 50 BTC를 다섯 번 절반으로 줄이면 1.5625 BTC가 나와요.
함수 안의 주석도 날짜를 확정하지 않아요. 원문은 「Subsidy is cut in half every 210,000 blocks which will occur approximately every 4 years」예요. 21만 블록마다라는 부분은 규칙이고, 4년이라는 부분은 대략이라고 코드가 스스로 적어 둔 거예요.
코드가 보장하는 발행량 전체 합계는 비트코인 발행량을 코어 코드대로 끝까지 더한 글에서 다뤘어요. 이 글은 날짜 쪽만 봐요.
날짜 계산에 쓰는 재료
날짜를 추정하려면 세 가지가 필요해요.
- 지금 높이예요. mempool.space 공개 API로 조회한 현재 블록은 968,356이었고, blockstream.info에서 따로 조회해도 같은 높이였어요.
- 남은 블록 수예요. 1,050,000 − 968,356 = 81,644블록이에요.
- 블록 하나당 평균 시간이에요. 여기서 선택지가 여러 개로 갈려요.
추정 시점은 「현재 블록의 시각 + 남은 블록 × 평균 시간」으로 구했어요. 현재 블록 968,356의 시각은 2026년 9월 24일 오후 1시 52분(한국 시각)이었어요.
참고로 4차 반감기 블록 840,000의 시각은 2024년 4월 20일 오전 9시 9분(한국 시각)이었어요. 그 뒤로 128,356블록이 쌓여서 이번 주기의 61.12퍼센트가 지났어요.
투자 정보 안내
본 글은 암호화폐 시장에 대한 객관 데이터·정보 제공 목적이며, 특정 코인 매수·매도 권유가 아닙니다. 암호화폐는 변동성이 매우 크고 원금 전액 손실이 가능하므로 본인 판단과 책임 하에 결정하세요.
다섯 가지 평균으로 나눈 추정 시점
같은 81,644블록을 다섯 가지 평균으로 나눠 봤어요. 모든 시각은 한국 시각이고, 모두 추정이에요.
| 나눈 평균 | 평균 간격 | 남은 기간 | 추정 시점 |
|---|---|---|---|
| 코드의 목표 간격 | 600.0초 | 567.0일 | 2028년 4월 13일 13시쯤 |
| 4차 반감기 이후 전체 | 597.2초 | 564.3일 | 2028년 4월 10일 21시쯤 |
| 직전 주기 전체(3차에서 4차까지) | 592.1초 | 559.5일 | 2028년 4월 6일 2시쯤 |
| 최근 2,016블록 | 591.5초 | 558.9일 | 2028년 4월 5일 11시쯤 |
| 이번 난이도 구간 경과분 | 627.4초 | 592.9일 | 2028년 5월 9일 10시쯤 |
네 줄은 4월 5일에서 4월 13일 사이, 약 8일 범위에 모여요. 마지막 한 줄만 5월로 밀려나서, 이 줄까지 넣으면 차이가 약 34일로 벌어져요. 이 줄을 따로 보는 이유는 아래 「각 평균이 무엇을 재는지」에 적었어요.
평균이 조금만 달라도 날짜가 크게 움직이는 이유는 곱하는 수가 크기 때문이에요. 남은 블록이 81,644개라서 평균이 1초만 달라져도 추정 시점이 약 22.7시간 움직여요. 600초와 591.5초의 차이인 8.5초가 8일 넘는 차이로 커지는 셈이에요.
각 평균이 무엇을 재는지
600초는 코드의 목표값이에요. chainparams.cpp 에 nPowTargetSpacing = 10 * 60 으로 적혀 있어요. 실제 블록이 이 속도로 나온다는 약속이 아니라, 난이도 조정이 맞추려는 목표예요.
4차 반감기 이후 전체 평균 597.2초는 840,000번째 블록부터 지금까지 887.2일 동안의 실제 기록이에요. 이번 주기 전체를 보는 값이라 한 구간의 요동에 덜 흔들려요.
직전 주기 평균 592.1초는 630,000번째 블록(2020년 5월 12일 오전 4시 23분, 한국 시각)부터 840,000번째 블록까지의 기록이에요. 이 21만 블록은 실제로 1,439.2일 걸렸어요. 모든 블록이 600초였다면 1,458.3일이었을 테니 약 19일 빨랐던 셈이에요. 다만 지난 주기의 속도가 이번 주기에 그대로 반복된다는 근거는 없어요.
최근 2,016블록 평균 591.5초는 대략 최근 2주 동안의 속도예요. 2,016이라는 숫자는 난이도 조정 주기에서 나와요. consensus/params.h 는 조정 간격을 목표 기간(14일)을 목표 간격(600초)으로 나눈 값으로 정의하고, 계산하면 2,016블록이에요.
이번 난이도 구간 경과분 627.4초는 mempool.space의 난이도 조정 API 응답에 있는 timeAvg 값이에요. 이 필드의 공식 정의 문서는 찾지 못했어요. 대신 직전 난이도 조정 이후 쌓인 676블록의 경과 시간을 직접 나눠 보니 627.0초로 거의 같은 값이 나왔어요. 즉 이번 조정 구간 안의 짧은 기록이에요. 같은 응답은 다음 조정에서 난이도가 약 4.22퍼센트 내려갈 것으로 표시하고 있었어요. 블록이 느려진 구간에서는 난이도가 내려가서 다시 600초 쪽으로 당기는 구조라, 이 값을 1년 반 넘게 그대로 이어 붙이는 것은 무리가 커요. 표에서 5월 추정이 혼자 떨어져 있는 이유가 이거예요.
투자 정보 안내
본 글은 암호화폐 시장에 대한 객관 데이터·정보 제공 목적이며, 특정 코인 매수·매도 권유가 아닙니다. 암호화폐는 변동성이 매우 크고 원금 전액 손실이 가능하므로 본인 판단과 책임 하에 결정하세요.
블록이 600초에서 벗어나는 이유
코드는 2,016블록마다 실제로 걸린 시간을 재서 난이도를 다시 정해요. pow.cpp 가 첫 블록과 마지막 블록의 시각 차이로 실제 기간을 계산하고, 한 번에 바꿀 수 있는 폭은 4배 범위로 묶여 있어요.
이 구조에서는 조정과 조정 사이에 채굴 참여가 늘면 블록이 600초보다 빨리 나오고, 줄면 느려져요. 다음 조정이 그 차이를 뒤따라 메우지만, 이미 지나간 구간의 시간은 되돌리지 않아요. 그래서 긴 기간의 평균이 600초에서 몇 초씩 비켜나요. 앞으로 채굴 참여가 어떻게 변할지는 어느 출처도 적어 두지 않았고, 이 글도 예측하지 않아요.
한 가지 더 있어요. 블록의 시각은 채굴자가 블록에 적어 넣는 값이에요. 코드가 거르는 조건은 두 개예요. 직전 11개 블록 시각의 중앙값보다 늦어야 하고(validation.cpp 의 time-too-old 검사), 받는 쪽 노드의 현재 시각보다 2시간 넘게 앞서면 안 돼요(chain.h 의 MAX_FUTURE_BLOCK_TIME). 그래서 블록 시각으로 잰 평균에는 이 정도 오차가 섞여 있어요. 몇 달짜리 평균에서는 작은 차이지만, 최근 몇 블록만 보는 계산에서는 무시하기 어려워요.
카운트다운 날짜가 계산마다 다를 수 있는 이유
반감기 카운트다운이 보여 주는 날짜도 같은 높이 1,050,000을 목표로 한다면, 차이는 어떤 평균으로 나누느냐에서 생겨요. 위 표대로라면 목표값 600초로 나누면 4월 중순, 최근 기록으로 나누면 4월 초가 나와요. 짧은 구간의 평균을 쓰면 그 구간의 속도에 따라 날짜가 크게 흔들려요.
그리고 어떤 방식이든 날짜는 매일 조금씩 움직여요. 목표 속도라면 블록이 하루에 144개씩 쌓이고, 그만큼 남은 블록 수와 평균값이 함께 바뀌기 때문이에요. 이 글의 표도 2026년 9월 24일 오후 1시 57분에 조회한 값이에요.
개별 사이트가 어떤 평균을 쓰는지는 이 글에서 확인하지 않았어요. 그래서 특정 사이트의 날짜가 어느 줄에 해당한다고 적지는 않았어요.
확정된 것과 추정인 것
| 구분 | 내용 | 근거 |
|---|---|---|
| 확정 | 5차 반감기 블록 높이 1,050,000 | 반감기 간격 210000과 보상 함수 |
| 확정 | 반감 뒤 블록 보상 1.5625 BTC | 50 BTC를 다섯 번 절반 |
| 조회값 | 2026년 9월 24일 기준 남은 블록 81,644 | 두 곳의 공개 API에서 같은 높이 |
| 추정 | 2028년 4월 5일부터 13일 사이 | 네 가지 평균으로 나눈 계산 |
| 추정(따로 봄) | 2028년 5월 9일 | 이번 난이도 구간의 짧은 평균 |
| 서술 없음 | 반감기 날짜를 확정하는 문장 | 코드 주석은 대략 4년이라고만 적음 |
정리하면, 「2028년 4월 며칠」이라는 한 날짜를 확정해 주는 출처는 없어요. 확정된 것은 높이이고, 날짜는 어떤 평균을 쓰느냐에 따라 달라지는 추정이에요. 이번 측정에서는 목표값·이번 주기·직전 주기·최근 2,016블록, 네 가지 평균으로 나눈 추정이 2028년 4월 5일에서 13일 사이에 모였고, 가장 짧은 구간(이번 난이도 구간 경과분)으로 나눈 추정 하나만 5월 9일이었어요.
반감기 날짜를 챙겨 보려면 사이트가 보여 주는 날짜보다 남은 블록 수를 기준으로 보는 편이 흔들림이 적어요. 남은 블록 수는 코드가 정한 높이에서 현재 높이를 뺀 값이라, 사이트가 최신 블록을 반영하고 있다면 어디서 보든 같은 값이에요.
이 글은 매매 권유가 아닌 정보 제공 글이에요. 반감기와 가격의 관계는 다루지 않았어요. 가상자산은 변동성이 크고 원금 손실 위험이 있으며, 투자 판단은 본인 책임이에요.