블록체인/레벨 I · 화폐/1.3 제네시스/수업 2
제네시스 블록과 그 헤드라인
사용할 수 없는 기원, 그리고 그 시점을 못 박은 헤드라인
준비물블록 탐색기 인터페이스16진수 뷰어 또는 ASCII 변환기비트코인 코어 소스 코드(chainparams.cpp)
호기심
- 첫 번째 블록에는 그날 아침 신문의 헤드라인을 의역한 내용이 왜 포함되어 있나요?
- 제네시스 블록의 출력은 어떻게 구조적으로 사용 가능한 데이터베이스에서 제외될까요?
- 제네시스 블록의 타임스탬프와 v0.1 발표 사이의 6일 간격은 어떻게 설명할 수 있을까요?
탐구
- 0번 블록은 2009년 1월 3일에 채굴되었습니다. 이 블록의 코인베이스 입력에는 ‘The Times 03/Jan/2009 Chancellor on brink of second bailout for banks’라는 문구가 담겨 있는데, 이는 그날 앨리스테어 달링 재무장관에 관한 신문 1면 헤드라인을 바꾸어 표현한 것입니다. 이 메시지는 두 가지 기능을 합니다. 첫째, 블록의 시점을 영국 신문의 특정 호에 묶어 가능한 가장 이른 생성일을 증명하고, 둘째, 같은 시기에 진행되던 영국 은행 구제금융을 언급합니다. 이 메시지는 이 시스템이 거리를 두고자 했던 은행 위기에 대한 논평으로 널리 해석됩니다.
- 제네시스 블록의 코인베이스 거래에는 50 BTC의 보상이 포함되어 있습니다. 하지만 이 출력은 미사용 트랜잭션 출력(UTXO) 집합에 추가되지 않습니다. 사용 가능한 코인의 데이터베이스에 들어가지 않기 때문에, 이 50 BTC는 창시자를 포함한 누구도 영구히 접근하거나 사용할 수 없습니다. 이것이 의도된 것인지 초기 코드의 특이점 때문인지는 한 번도 확인된 적이 없습니다.
- 사토시 나카모토는 2009년 1월 8일과 9일 사이에 암호학 메일링 리스트를 통해 비트코인 v0.1을 발표했습니다. 블록 1의 타임스탬프는 2009년 1월 9일입니다. 제네시스 블록의 날짜(1월 3일)와 이 발표 사이에는 약 6일의 간격이 있는데, 이 공백은 소프트웨어의 초기 역사에서 공개적으로 설명되거나 기록된 적이 없습니다.
- 제네시스 블록 헤더는 모든 비트코인 코어 소프트웨어에 하드코딩되어 있습니다. 노드가 네트워크에 참여할 때 채굴하는 것이 아니라, 체인의 루트로 미리 로드되어 있습니다. 이후의 모든 블록은 해시를 통해 이전 블록과 연결되므로, 현재의 어떤 블록이든 부모 해시를 따라 거슬러 올라가면 바로 이 기원점에 도달합니다.
- 코인베이스 입력의 스크립트 필드는 2바이트에서 100바이트 사이의 임의 데이터를 받아들입니다. 제네시스 블록에서 이 필드에는 신문 헤드라인의 ASCII 문자열이 담겨 있습니다. 오늘날 채굴자들은 이 공간을 추가 논스나 풀 식별 문자열에 사용하지만, 제네시스 블록은 이 공간을 메시지에 사용했습니다.
- 블록 탐색기를 열고 블록 높이 0으로 이동하세요. 코인베이스 텍스트를 원시 16진수와 ASCII 표현으로 읽어 헤드라인의 정확한 문자 인코딩을 확인하세요. 제네시스 키와 연결된 주소로 헌정 송금이 이루어져 왔지만, 이러한 송금이 원래의 사용 불가능한 출력을 활성화하지는 않는다는 점에 유의하세요. 이는 알려진 공개 키로 보내진 별개의 거래입니다.
핵심 사실
- 제네시스 블록은 2009년 1월 3일에 채굴되었습니다.
- 코인베이스 텍스트의 내용은 다음과 같습니다: ‘The Times 03/Jan/2009 Chancellor on brink of second bailout for banks’
- 제네시스 블록에 있는 50 BTC 보상은 사용할 수 없으며 영구적으로 접근할 수 없습니다.
- 블록 1의 타임스탬프는 제네시스 블록 날짜로부터 6일의 간격을 두고 2009년 1월 9일로 찍혔습니다.
- 사토시 나카모토는 2009년 1월 8일과 9일 사이에 암호학 메일링 리스트를 통해 비트코인 v0.1을 공개했습니다.
- 제네시스 블록 헤더는 체인의 루트로서 모든 노드의 소프트웨어에 하드코딩되어 있습니다.
연습 아홉, 여섯, 셋, 하나
9모으기시스템 출시와 관련된 역사적 또는 기술적 자료 9가지(예: 백서, 첫 거래, 창립자의 이메일)를 나열하세요. 각 자료의 날짜와 내용도 적어 보세요.
6묶기9개 항목을 기능에 따라 신원 확인, 타임스탬프 부여, 규칙 정의, 인센티브 분배, 커뮤니케이션, 구조적 제약의 6개 범주로 분류하세요.
3추리기6개 그룹을 새로운 시스템의 정당성과 기술적 경계를 확립하는 3가지 핵심 메커니즘으로 압축하세요.
1결정화제네시스 블록의 헤드라인이 그 날짜에 대해 증명하는 것과 증명하지 못하는 것을 한 문장으로 써 보세요.
팩트 체크
날짜, 수치 및 주장은 아래에 명시된 출처들을 통해 확인되었습니다.
- S. Nakamoto, 'Bitcoin: A Peer-to-Peer Electronic Cash System' (2008)
- Bitcoin Core source code, chainparams.cpp
- The Times, front page (January 3, 2009)
- S. Nakamoto, 'Bitcoin v0.1 released', cryptography mailing list (January 2009)