비트코인 상한은 2,100만 개가 아니다 — 코드가 정한 값은 20,999,999.9769

웨일로그 편집팀

“비트코인은 2,100만 개가 전부”라는 문장은 어디에나 있지만, 비트코인 코어 소스코드가 실제로 발행할 수 있게 적어 둔 상한은 20,999,999.9769 BTC다. 2,100만 개보다 2,310,000사토시(0.0231 BTC)가 모자란다. 2026년 10월 5일 오전 기준으로 이 글은 그 숫자를 코어 코드에서 직접 계산해 확인했고, 거기서 다시 168.75000001 BTC가 이미 아무도 쓸 수 없게 된 것도 블록 익스플로러로 실측했다. 심지어 코어 코드 안에는 “2,100만은 총발행량이 아니다”라고 개발자들이 직접 적어 둔 주석이 있다.

📌 오늘의 헤드라인 — 2026년 10월 5일 아침

이 블록은 발행일인 2026년 10월 5일 아침 기준 스냅샷입니다. 이후 시세와 상황은 달라지므로, 지난 글을 보고 계신 경우 아래 수치는 현재 값이 아닙니다. 본문 내용은 발행일 기준으로 작성됐습니다.

주말을 지난 월요일 아침 크립토판은 큰 사건 없이 조용했다. 아래는 10월 5일 오전까지 확인한 소식이다.

  • 비트코인은 10월 5일 오전 9시 38분(KST) 기준 24시간 전 대비 1.73% 오른 8만 6,267.33달러였다(코인마켓캡). 이더리움은 같은 기준 1.04% 오른 2,720.69달러였다.
  • 알트코인은 XRP 1.51달러(+1.62%), 솔라나 120.98달러(+0.77%), 도지코인 0.10달러(+2.89%)로 24시간 기준 대체로 소폭 올랐다(코인마켓캡, 10월 5일 오전 9시 37분 KST 기준).
  • 전체 암호화폐 시가총액은 2조 9,311억 달러, 비트코인 시장 점유율은 59.14%, 이더리움은 11.33%로 집계됐다(코인마켓캡, 같은 시각 기준).
  • 미 현물 비트코인 ETF에는 8,300만 달러가 순유입된 반면 이더리움 ETF에서는 1억 1,400만 달러가 순유출됐다고 토큰포스트가 10월 5일 팟캐스트에서 전했다. ETF 일일 자금 흐름은 집계 사이트 수치를 매체가 인용한 것으로, 운용사 공식 집계와는 별개 수치다.
  • 솔라나 기반 거래소 드리프트는 10월 2일 피해 보상 청구를 열었는데, 보상 풀이 311만 달러로 시작해 1달러 손실당 약 0.01달러를 돌려주는 수준이라고 더블록이 보도했다. 4월 1일 사고 피해 규모는 약 2억 9,540만 달러였고, 테더가 약속한 1억 2,750만 달러는 보도 시점까지 풀에 들어오지 않은 상태였다.

2,100만이라는 숫자는 ’검사용 상한’이다

비트코인 코어 저장소의 src/consensus/amount.h 파일에는 이렇게 적혀 있다. 10월 5일 직접 내려받아 확인한 내용이다.

inline constexpr CAmount MAX_MONEY{21'000'000 * COIN};

여기까지만 보면 “역시 2,100만 개”다. 그런데 이 한 줄 바로 위에 붙은 주석이 본문의 출발점이다.

이 상수는 총통화량이 아니고, 비트코인의 총통화량은 현재 여러 이유로 21,000,000 BTC보다 적다. 이 값은 그저 온전성 검사(sanity check)용이다.

영어 원문 주석을 옮긴 것으로, 개발자들이 직접 “2,100만은 발행량이 아니라 검사용 기준선”이라고 적어 둔 것이다. MAX_MONEY는 어떤 금액이 터무니없이 큰 값은 아닌지 걸러 내는 울타리일 뿐이고, 실제로 몇 개가 세상에 나오는지는 다른 함수가 결정한다.

발행량을 정하는 함수를 직접 계산해봤다

실제 발행량을 결정하는 것은 src/validation.cpp의 GetBlockSubsidy 함수다. 핵심은 두 줄이다.

CAmount nSubsidy = 50 * COIN;
nSubsidy >>= halvings;

50 BTC를 사토시 단위(50억 사토시)로 두고, 반감기 횟수만큼 비트 오른쪽 이동(>>)으로 절반씩 깎는다. 여기가 요점이다. 이 연산은 정수만 다루기 때문에 나누다 남는 소수점 아래는 버려진다. 사토시는 비트코인의 가장 작은 단위여서 그보다 더 쪼갤 칸이 아예 없기 때문이다.

그래서 보상은 50 → 25 → 12.5로 깔끔하게 내려가다가, 끝에 가면 9사토시 → 4사토시 → 2사토시 → 1사토시로 떨어진다. 9를 반으로 나누면 4.5가 아니라 4가 된다. 버려진 0.5사토시가 영원히 발행되지 않는 몫이다.

210,000블록마다 보상이 절반이 되는 규칙에 이 버림을 전부 반영해 더해 봤다. 보상이 0이 아닌 구간은 33개이고, 합계는 2,099,999,997,690,000사토시 = 20,999,999.9769 BTC다. 2,100만에서 정확히 2,310,000사토시가 빈다. 그리고 블록 6,929,999번을 지나면 보상이 1사토시에서 0으로 떨어져 신규 발행이 끝난다.

이미 사라진 168.75 BTC를 체인에서 찾았다

상한이 2,100만이 아닌 이유는 버림만이 아니다. 채굴된 뒤 아무도 쓸 수 없게 된 코인이 체인에 실제로 박혀 있다. 멤풀(mempool.space) API로 블록을 직접 내려 확인한 사례는 이렇다.

첫 블록의 50 BTC. 2009년 1월 3일 18시 15분(UTC)에 생성된 0번 블록의 코인베이스 거래(4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b)는 50 BTC를 만들었다. 그런데 코어 코드의 ConnectBlock 함수에는 “제네시스 블록은 거래 연결을 건너뛴다(그 코인베이스는 쓸 수 없다)“는 주석과 함께 이 블록만 따로 빼놓는 분기가 들어 있다. 노드가 관리하는 ’쓸 수 있는 돈 목록’에 이 50 BTC는 애초에 들어가지 않는다. 사토시가 안 썼기 때문이 아니라 구조상 쓸 수 없다. 이 블록에 새겨진 신문 헤드라인은 첫 블록 문장을 확인한 글에 따로 정리해 뒀다.

같은 거래번호를 두 번 쓴 블록 2개, 100 BTC. 익스플로러로 실측해 보니 91,812번과 91,842번 블록의 코인베이스 거래번호가 d5d27987d2a3dfc724e359870c6644b40e497bdc0589a033220fe15429d88599로 완전히 같았고, 91,722번과 91,880번도 e3bf3d07d4b0375638d5f1db5255fe07ba2c4cb067cd81b84ee974b6585fb468로 같았다. 각각 50 BTC씩이다. 당시 소프트웨어는 거래번호가 겹칠 수 있다는 가정을 하지 않아서, 나중 블록의 코인베이스가 앞선 블록의 것을 덮어썼다. 결과적으로 앞선 50 BTC 두 건이 지워졌다. 이 사고를 막기 위해 만든 규칙이 BIP30인데, 그 원문에도 “91842번과 91880번 두 역사적 블록만은 예외로 인정해 줘야 했다”고 적혀 있다.

보상을 0으로 받아 간 블록. 2017년 12월 30일 12시 55분(UTC)에 채굴된 501,726번 블록의 코인베이스는 출력이 딱 하나인데 금액이 0사토시다. 그 시기 블록 보상은 12.5 BTC였고, 그 블록에는 코인베이스 외에 거래가 한 건도 없었다. 받을 수 있는 12.5 BTC를 통째로 안 받고 넘긴 것이다.

절반만 받아 간 블록. 2018년 6월 8일 14시 52분(UTC)의 526,591번 블록은 6.25 BTC만 청구했다. 이때도 정해진 보상은 12.5 BTC였으니 6.25 BTC가 그대로 발행되지 않았다.

1사토시를 덜 받은 블록. 2011년 5월 18일 00시 21분(UTC)의 124,724번 블록은 4,999,999,999사토시, 즉 49.99999999 BTC를 받았다. 50 BTC에서 딱 1사토시가 빈다.

여기까지가 50 + 100 + 12.5 + 6.25 + 0.00000001 = 168.75000001 BTC다. 다만 이것이 전부라고 쓸 수는 없다. 97만 개에 가까운 블록을 전수 조회한 것이 아니라 알려진 사례를 하나씩 확인한 것이므로, 덜 받아 간 블록이 더 있는지는 이 글에서 확인하지 않았다. 지갑 열쇠를 잃어버려 묶여 있는 코인은 이 숫자와 아예 별개이고, 그 규모는 성질상 확정할 수 없다.

지금은 몇 개나 나와 있나

10월 5일 오전 멤풀 API로 조회한 비트코인 최신 블록 높이는 969,925번이었다. 여기까지의 발행 일정을 그대로 더하면 누적 발행량은 20,093,518.75 BTC다. 현재 블록 보상은 3.125 BTC이고, 다음 반감기 지점인 1,050,000번 블록까지는 80,075블록이 남았다.

같은 시각 코인마켓캡은 비트코인 유통량을 20,093,487개로 표기했다. 일정에서 계산한 값과 31.75 BTC 차이인데, 이는 3.125 BTC 보상 기준으로 블록 10개 정도에 해당하는 양이다. 집계 시점이 조금 앞선 것으로 보이며, 위에서 확인한 168.75 BTC가 이 수치에서 빠져 있는지는 공개 데이터만으로 확인되지 않았다. 유통량을 발행 일정으로 계산하는지 실제 쓸 수 있는 잔액으로 계산하는지는 집계처마다 다를 수 있다.

이 숫자가 초보 투자자에게 의미하는 것

솔직히 말하면 0.0231 BTC와 168.75 BTC는 2,100만 개 앞에서 거의 아무것도 아니다. 이 글의 요점은 “비트코인이 생각보다 적다”가 아니다. 가격에 영향을 줄 크기가 전혀 아니고, 그렇게 읽으면 오히려 틀린 독해다.

중요한 건 다른 쪽이다. 비트코인의 희소성은 누가 약속해서 생긴 것이 아니라 코드 몇 줄과 그 코드를 돌리는 노드들의 합의로 생긴 것이다. 그래서 “상한 2,100만”처럼 모두가 아는 문장도 코드에서 확인해 보면 반올림된 요약이고, 코드가 정한 실제 값은 끝자리가 딱 떨어지지 않는다. 심지어 코어 개발자들이 그 사실을 주석으로 적어 두기까지 했다.

이 사이트가 백서·소장·공시 원문을 자꾸 들춰 보는 이유도 같다. 둥근 숫자는 외우기 쉽지만, 어디서 나왔는지 확인하지 않으면 “2,100만 개”와 “곧 2,100만 개가 다 채굴된다”처럼 사실과 과장이 한 문장에 섞여 들어오기 쉽다. 전체 발행량의 95.7%가 나왔다는 사실과, 남은 발행이 2140년 무렵까지 100년 넘게 이어진다는 사실은 둘 다 참인데 느낌은 완전히 반대다. 과거 수수료 실수 사례를 추적한 83 BTC 수수료 글도 같은 방식으로 “들어 본 이야기”를 체인에서 다시 재 본 기록이다.

앞으로 확인할 일정

  • 다음 반감기: 1,050,000번 블록. 10월 5일 기준 80,075블록이 남았고, 블록 생성 속도가 평균 10분을 유지한다면 2028년 상반기로 계산된다. 실제 도달 시점은 해시레이트에 따라 달라지므로 날짜를 못 박을 수 없다.
  • 발행 종료 시점: 보상이 0이 되는 구간은 6,930,000번 블록부터다. 같은 속도 가정으로는 2140년 전후다.
  • 상한 자체의 변경 가능성: MAX_MONEY와 반감기 간격은 합의 규칙이라 바꾸려면 네트워크 전체의 동의가 필요하다. 2026년 10월 5일 기준으로 이를 바꾸려는 제안이 진행되고 있다는 사실은 확인되지 않았다.
  • 코어 코드와 BIP 원문은 누구나 열어 볼 수 있다. 이 글의 근거는 비트코인 코어 저장소의 src/consensus/amount.h·src/validation.cpp, BIP30 원문, 그리고 멤풀 API로 조회한 블록 데이터다.

이 글은 정보 제공 목적으로 작성되었으며 투자 권유가 아닙니다. 투자 판단과 책임은 본인에게 있습니다.