비트코인 첫 블록에 새겨진 문장, 직접 확인해봤다
사실입니다. 비트코인의 첫 블록에는 “The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”라는 69글자 영문 문장이 실제로 들어 있고, 이 문장은 비트코인 코어(Bitcoin Core) 소스코드에 상수로 박혀 있어 지금도 누구나 열어 볼 수 있습니다. 다만 이 이야기에 따라붙는 곁가지 주장들은 사실 여부가 제각각입니다. 아래 내용은 2026년 8월 31일 오전(KST)에 비트코인 코어 저장소의 소스코드를 직접 내려받아 확인하고, 블록 해시를 손으로 다시 계산해 대조한 결과입니다.
그 문장은 정확히 어디에 들어 있나
비트코인의 0번 블록, 흔히 제네시스 블록이라 부르는 첫 블록은 다른 블록처럼 채굴로 만들어져 네트워크에 전파된 것이 아닙니다. 프로그램 안에 값이 통째로 적혀 있습니다. 비트코인 코어 저장소의 src/kernel/chainparams.cpp 파일 71행에 이렇게 있습니다.
const char* pszTimestamp = "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks";
같은 파일 43행을 보면 이 문자열이 어디로 들어가는지가 나옵니다. 첫 거래의 입력란(scriptSig)에 그대로 밀어 넣습니다.
txNew.vin[0].scriptSig = CScript() << 486604799 << CScriptNum(4)
<< std::vector<unsigned char>(...pszTimestamp...);
scriptSig는 원래 “이 돈을 쓸 자격이 있다”는 증명을 담는 칸입니다. 그런데 채굴 보상 거래(코인베이스 거래)에는 가져다 쓸 이전 거래가 없어서 이 칸이 비어 있고, 그래서 채굴자가 아무 데이터나 넣을 수 있는 자유 공간이 됩니다. 문장이 여기 들어간 이유입니다.
떠도는 이야기와 직접 확인한 결과
| 흔히 하는 이야기 | 이번에 확인한 결과 |
|---|---|
| 첫 블록에 신문 헤드라인이 새겨져 있다 | 사실. 소스코드 상수로 확인, 아래 재계산으로 교차 검증 |
| 그 문장이 블록 해시에 실제로 반영돼 있다 | 사실. 문장에서 출발해 계산한 값이 코드에 박힌 해시와 일치 |
| 첫 블록의 50 BTC는 쓸 수 없다 | 사실. 코드가 그렇게 동작함(아래 항목). 다만 “일부러 그랬는지”는 코드만으로 알 수 없음 |
| 첫 블록은 2009년 1월 3일에 만들어졌다 | 조건부 사실. 헤더 시각은 UTC 기준 1월 3일, 한국시간으로는 1월 4일 새벽 |
| 다음 블록까지 6일이 비어 있다 | 직접 확인 실패. 아래 “확인하지 못한 것” 참고 |
| 그 신문 1면이 실제로 존재한다 | 직접 확인 실패. 신문사 원문에 접근하지 못함 |
재계산이라고 한 것은 이런 과정입니다. 코드에 적힌 문장과 보상 수령용 공개키만 가지고 첫 거래를 바이트 단위로 다시 조립했더니 거래 식별자가 4a5e1e4b...deda33b가 나왔고, 이 값은 같은 파일 161행이 “머클 루트는 이 값이어야 한다”고 못박아 둔 값과 같았습니다. 이어서 그 값과 시각(1231006505), 난이도(0x1d00ffff), 논스(2083236893)로 80바이트짜리 블록 헤더를 만들어 해시를 두 번 돌리자 000000000019d668...b60a8ce26f가 나왔습니다. 160행이 적어 둔 제네시스 블록 해시와 정확히 같습니다.
즉 문장 한 글자만 달라져도 이 해시는 전혀 다른 값이 됩니다. 문장이 “블록에 새겨져 있다”는 표현은 비유가 아니라, 계산으로 되짚을 수 있는 사실입니다. 같은 방식으로 코드에 적힌 공개키에서 주소를 유도하면 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa가 나오는데, 첫 블록 보상 50 BTC가 지정된 주소입니다.
그 50 BTC를 왜 못 쓰나
이 부분은 “사토시가 상징적으로 봉인했다”는 식으로 설명되는 일이 많지만, 확인할 수 있는 것은 코드가 그렇게 동작한다는 사실까지입니다. 비트코인 코어 src/validation.cpp 2347행에 주석과 함께 이런 처리가 있습니다.
// Special case for the genesis block, skipping connection of its transactions
// (its coinbase is unspendable)
블록을 체인에 이을 때 노드는 그 안의 거래들을 처리해 “쓸 수 있는 잔액 목록”에 새 항목을 등록합니다. 그런데 제네시스 블록은 이 단계를 통째로 건너뜁니다. 그래서 첫 블록의 50 BTC는 장부상 존재하지만 잔액 목록에 등록된 적이 없고, 결과적으로 어떤 거래로도 꺼낼 수 없습니다. 소프트웨어 초기 구조에서 비롯된 성질인지 의도된 설계인지는 코드와 주석만으로는 갈리지 않으므로, 이 글에서는 단정하지 않습니다.
확인하지 못한 것
두 가지는 이번에 확인에 실패했고, 실패한 대로 적어 둡니다.
첫째, 다음 블록까지 6일 가까이 비어 있다는 이야기입니다. 0번 블록의 시각은 소스코드에서 직접 읽었지만, 1번 블록의 시각은 블록 익스플로러에서 조회해야 하는데 글을 쓴 환경에서 익스플로러 접속이 막혀 실측하지 못했습니다. 널리 인용되는 이야기이지만 이 글은 근거로 삼지 않습니다.
둘째, 더 타임스 2009년 1월 3일자 1면 원문입니다. 신문사 아카이브 페이지에 접근하지 못했습니다. 문장이 코드에 있다는 것과 그 문장이 실제 신문 1면과 일치한다는 것은 서로 다른 주장이며, 앞의 것만 확인된 상태입니다.
이 이야기가 지금 남기는 것
이 소재가 오래 회자되는 이유는 문장 자체가 극적이어서만은 아닙니다. 17년이 지난 지금도 아무나 같은 절차를 그대로 반복해 확인할 수 있다는 점이 더 중요합니다. 코드는 공개돼 있고, 계산 방식은 문서로 정해져 있고, 결과값은 전 세계 노드가 똑같이 들고 있습니다. 누군가의 증언이나 기관의 확인서가 없어도 검증이 끝납니다.
이건 초보 투자자에게 실용적인 함의가 있습니다. 코인 시장에서 도는 이야기 중에는 원문을 찾아가면 5분 만에 판별되는 것이 많고, 반대로 아무리 여러 곳에서 같은 문장이 반복돼도 원출처를 찾을 수 없는 것도 많습니다. 위 표에서 여섯 줄 중 세 줄은 확인됐고, 한 줄은 조건이 붙었고, 두 줄은 확인하지 못했습니다. 널리 알려진 이야기일수록 이 비율이 잘 안 보인다는 것이 이 글의 요점입니다. 온체인 데이터를 직접 열어 보는 방법은 블록 익스플로러 사용법에 정리해 두었고, 첫 블록의 50 BTC 같은 발행 구조는 비트코인 반감기 가이드에서 다뤘습니다.
앞으로 확인해 볼 만한 것을 남겨 둡니다. 익스플로러 접근이 되는 환경이라면 1번 블록의 헤더 시각을 직접 조회해 위 표의 다섯째 줄을 채울 수 있고, 도서관이나 신문 아카이브 서비스를 쓸 수 있다면 여섯째 줄도 확인 가능합니다. 두 칸이 채워지면 이 표는 완성됩니다.
이 글은 정보 제공 목적으로 작성되었으며 투자 권유가 아닙니다. 투자 판단과 책임은 본인에게 있습니다.
새 글 받아보기
암호화폐 기초 개념부터 세금·규제까지, 새 글이 올라오면 바로 받아보세요.