04 / 736BLK·0

Genesis Block

Block 0

비트코인은 거래소에서의 매매가 아니라 신문 제목을 담은 블록에서 시작됐습니다. 2009년 1월 3일의 Genesis Block은 네트워크에 공통 출발점을 제공했습니다. 그 이야기를 따라가면 확인 가능한 데이터와 해석의 차이, 그리고 최초의 50 BTC를 쓸 수 없는 이유를 알 수 있습니다.

Genesis Block은 비트코인 메인넷에 고정된 최초 블록입니다. 헤더 날짜는 2009년 1월 3일입니다. 50 BTC 출력을 만드는 거래 하나가 들어 있지만, 이 출력은 특별히 처리되어 지출할 수 없습니다.

2009년 1월 3일 토요일, 런던의 The Times는 영국 재무장관 앨리스터 달링과 두 번째 은행 구제금융 가능성을 보도했습니다. 헤더의 타임스탬프에 따르면 비트코인의 첫 블록도 이날 만들어졌습니다. Satoshi Nakamoto는 블록에 들어 있는 유일한 트랜잭션에 그 제목을 넣었습니다. 이 문장은 누구나 읽을 수 있는 데이터로 남았습니다. 아직 시장도 거래소도 수많은 채굴자도 없었습니다. 우선 존재한 것은 다음 블록이 이어질 수 있는 체인의 출발점이었습니다. 신문 제목은 그 시작을 특정 날짜와 연결하고, 새로운 화폐 실험을 금융위기라는 배경 속에 놓았습니다. [1] [6]

Genesis에는 이전 블록이 없으므로 해당 헤더 필드는 0입니다. Bitcoin Core는 고정된 매개변수로 데이터를 구성하고 예상 해시, 즉 블록 데이터의 디지털 지문과 일치하는지 확인합니다. 노드는 다른 참여자가 보낸 임의의 블록에서 시작하지 않습니다. 높이 1의 블록은 이미 Genesis Block의 해시를 참조하므로 출발점이 다르면 기록도 달라집니다. 백서는 Proof of Work로 보호되는 체인을 설명했습니다. 유효한 작업증명을 갖춘 실제 블록이 만들어지면서 설계는 실행 중인 프로그램이 이어 갈 수 있는 기록이 됐습니다. [1] [8]

헤더에는 1231006505, 즉 2009년 1월 3일 18:15:05 UTC가 기록돼 있습니다. 이는 블록 생성자가 넣은 값이지 생성 시각을 독립적으로 측정한 결과는 아닙니다. 또 다른 단서는 coinbase 트랜잭션의 입력에 있습니다. “The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”라는 문구입니다. Coinbase는 기존 출력을 소비하지 않고 블록 보상을 만들며, 특수한 입력에 다른 데이터를 넣을 수 있습니다. Satoshi는 여기에 제목을 기록했습니다. 이는 보도가 공개되기 전에 블록이 만들어진 것은 아니라는 판단을 뒷받침하지만, 채굴의 정확한 초 단위 시각이나 작성자의 실제 신원까지 증명하지는 않습니다. [1] [5] [6]

기사는 2008년 금융 충격 이후 영국 은행을 다시 지원할 것인지를 다뤘습니다. 금융 중개자 없는 결제를 설명한 백서와 함께 이를 구제금융 비판으로 읽는 것은 타당합니다. 다만 Satoshi는 왜 이 문장을 골랐는지 명확한 공개 설명을 남기지 않았습니다. 기록된 문구는 사실이고 정치적 메시지는 해석입니다. 제목은 블록을 특정 신문 호와도 연결합니다. 작성자의 컴퓨터 바깥에서 벌어진 사건에 연결하는 셈입니다. 두 의미는 함께 성립할 수 있지만 프로토콜이 여기서 정치적 규칙을 도출하지는 않습니다. 역사적 기록과 후대의 해석은 구분해야 합니다. [1] [8]

뒤따르는 모든 블록에는 직전 블록의 해시가 들어 있습니다. Genesis Block에는 이 연결이 없기에 소프트웨어가 출발점을 명시적으로 정합니다. Bitcoin Core는 신문 제목, 공개키, 시각 1231006505, nonce 2083236893, 난이도 1, 보상 50 BTC 등을 이용해 블록을 구성합니다. 결과 해시는 알려진 값과 같아야 합니다. 처음에는 Satoshi가 유일하게 알려진 구현을 관리했고, 유일한 활성 노드도 운영했을 가능성이 있습니다. 하지만 이후 참여하는 각 Full Node가 독립적으로 검증할 수 있는 규칙이었습니다. Genesis Block은 기술적 출발점이었으며, 이미 완성된 탈중앙 경제는 아니었습니다. Nonce는 헤더의 숫자로, 채굴자가 유효한 블록을 찾으며 바꿀 수 있습니다. 난이도는 이 탐색에 필요한 작업의 크기를 나타냅니다. [1] [6]

UTXO 집합은 아직 소비하지 않은 거래 출력, 즉 금액과 그 지출 조건을 기록합니다. Genesis를 연결할 때 Bitcoin Core는 그 거래의 연결을 건너뛰므로 원래 출력은 UTXO 집합에 들어가지 않습니다. 이는 일반적인 채굴 보상 성숙 대기와 다르며 추가 확인으로도 풀리지 않습니다. 해당 개인 키를 알아도 누락된 지출 가능 출력을 만들어 낼 수는 없습니다. [2]

탐색기는 genesis와 연관된 주소로 나중에 들어온 지급을 표시할 수 있습니다. 그것들은 블록 0의 원래 출력이 아니며 각각 거래 식별자와 지출 조건을 갖습니다. Genesis의 특별 제외가 자동으로 적용되지는 않습니다. 따라서 주소 잔액과 최초 50 BTC의 지출 가능성을 혼동해서는 안 됩니다. [2] [5]

다음 높이 1의 블록은 2009년 1월 9일 02:54:25 UTC라는 타임스탬프를 갖습니다. 첫 두 블록 사이에는 며칠의 간격이 있으며 통상적인 10분 목표보다 훨씬 깁니다. 시각 기록만으로는 이유를 알 수 없고, Satoshi의 특정 의도를 단정하는 것은 추측입니다. 이메일 토론 목록 Cryptography Mailing List에 올라온 버전 0.1의 공개 발표 시각은 그보다 앞선 2009년 1월 8일 19:27:40 UTC입니다. Peer-to-peer 시스템을 설명하고 다운로드 링크와 실행 방법을 제공했습니다. 이제 Bitcoin에는 최초의 기록과 함께 다른 사람도 실행하면서 규칙을 직접 검증할 수 있는 프로그램이 생겼습니다. [7] [1] [9]

자신의 메인넷 노드에서 getblockhash 0은 000000000019d668로 시작하는 식별자를 반환합니다. 이 해시와 상세 수준 2로 getblock을 호출하면 블록과 디코딩된 거래를 볼 수 있습니다. Bitcoin Core 매개변수와 비교할 수 있으며 탐색기 화면 캡처만으로 데이터 검사를 대신할 수는 없습니다. [3] [4]

테스트 네트워크와 regtest에는 자체 매개변수와 다른 genesis 해시가 있습니다. 비교 전에 높이 0뿐 아니라 네트워크를 확인해야 합니다. 첫 블록이 같다는 사실은 공통 출발점만 보여 주며, 모든 후속 블록의 유효성이나 지갑 안전성, 현재 누가 키를 통제하는지를 증명하지는 않습니다. Genesis Block은 시작점을 정합니다. 다음 블록들은 노드 운영자가 고른 소프트웨어의 규칙에 맞아야 합니다. Satoshi가 첫 블록을 만들었다고 해서 다른 사람이 그 프로그램을 실행하거나 이후 모든 블록을 자동으로 받아들이도록 강제할 수는 없었습니다. [1] [8]

더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Bitcoin, Satoshi Nakamoto, Bitcoin Whitepaper, Block Subsidy, Timechain / Blockchain. 다음 항목에서도 이 글을 참조합니다 Bitcoin, Satoshi Nakamoto, Timechain / Blockchain, Block Subsidy.

DOC · 001Bitcoin Core v29.0 — chain parameters1차 출처 DOC · 002Bitcoin Core v29.0 — genesis validation exception1차 출처 DOC · 003Bitcoin Core — getblockhash RPC1차 출처 DOC · 004Bitcoin Core — getblock RPC1차 출처 DOC · 005Bitcoin Developer Reference — Block Chain1차 출처 DOC · 006Mastering Bitcoin — The Genesis Block문서 DOC · 007Satoshi Nakamoto Institute — Bitcoin v0.1 released1차 출처 DOC · 008Bitcoin whitepaper1차 출처 DOC · 009mempool.space — mainnet block 11차 출처
개정일: 1차 출처 우선 · 투자 조언이 아닙니다