블록 헤더 (Block Header)
블록 헤더는 비트코인에서 각 블록에 속한 80바이트 크기의 헤더로, 블록의 핵심 정보를 요약합니다. 채굴자는 작업 증명을 찾아 채굴 보상을 받기 위해 이 헤더를 반복해서 해싱합니다.
블록 헤더의 구조
블록 헤더는 해당 블록에 대한 핵심 정보를 담은 80바이트 요약이며, 다음 여섯 개 필드로 이루어집니다.
- 버전: 블록이 따르는 규칙 버전을 나타내는 4바이트 값입니다.
- 이전 블록 해시: 이전 블록 헤더의 해시를 담은 32바이트 값으로, 블록을 체인으로 연결합니다. 중간 기록을 바꾸면 이후 모든 블록의 연결이 깨지므로 기록 변조가 어려워집니다.
- 머클 루트: 머클 트리 형식으로 구성된 블록 내의 모든 트랜잭션을 하나의 값으로 요약한 32바이트 값입니다.
- 타임스탬프: 블록이 생성된 시기를 기록하는 4바이트 필드로, 연대순 정렬에 도움이 됩니다.
- NBits(난이도 목표): 이 블록의 해시가 만족해야 하는 목표값(타깃), 즉 채굴 난이도를 압축해 나타내는 4바이트 값입니다.
- 논스(Nonce): 채굴자가 현재 난이도 조건을 만족하는 해시를 찾기 위해 바꿔 가며 대입하는 4바이트 값입니다.
해싱 및 작업 증명의 역할
채굴자는 네트워크 난이도가 정한 기준을 충족하는 해시를 찾을 때까지 이 헤더 전체를 반복해서 해싱합니다. 이 과정을 “작업 증명”이라고 합니다.
- 채굴자가 헤더의 모든 필드를 가져와 SHA-256을 두 번 적용해 해시를 만듭니다.
- 이 해시는 현재 목표값(타깃)보다 작거나 같아야 합니다.
- 그렇지 않으면 채굴자는 논스 값 등을 바꾸고 조건을 만족하는 결과를 얻을 때까지 해싱을 반복합니다.
- 채굴자가 유효한 해시를 찾으면 새 블록을 네트워크 전체에 전파하고, 블록이 체인에 추가되면 블록 보상을 받습니다.
블록 헤더 사용의 장점:
- 효율성: 전체 블록체인을 다운로드하는 대신 블록 헤더만 확인하여 시간과 리소스를 절약할 수 있습니다. 이는 모든 기사를 읽는 대신 제목만 읽는 것과 같습니다.
- 보안: 블록 헤더를 변조하면 해시가 변경되어 즉시 부정 행위가 드러납니다. 제품의 위조 방지 씰과 같습니다.
블록 헤더 사용의 단점:
- 제한된 정보: 블록 헤더는 전체 그림이 아닌 요약을 제공합니다. 특정 트랜잭션의 세부 정보를 보려면 블록 본문을 살펴봐야 합니다.
블록 헤더의 응용:
- 채굴: 채굴자는 블록 헤더의 해시가 목표값을 만족하도록 경쟁하여 그 과정에서 보상을 받습니다.
- 경량 클라이언트: 저장 공간이 제한된 장치는 블록 헤더와 머클 증명을 사용하여 전체 블록체인을 다운로드하지 않고도 트랜잭션이 블록에 포함되었는지 검증할 수 있습니다(SPV).
블록 헤더는 블록체인의 동작 원리를 이해하는 데 기본이 되는 개념입니다. 효율성과 보안에 필수적이지만 고려해야 할 제한 사항도 있습니다.
이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.