최적 헤더 체인 (Best Header Chain)

고급블록체인수정일

최적 헤더 체인(Best header chain)은 각 블록 헤더가 직전 헤더의 해시를 담아 이어진 헤더 체인 가운데, 다시 만들어 내기 가장 어려운 체인, 즉 누적 작업 증명(PoW)이 가장 큰 체인을 말합니다. 비트코인 노드는 이 체인을 기준으로 어떤 블록이 정식 기록인지 판단합니다.

자세히 알아보기

비트코인 블록 헤더는 80바이트로, 이전 블록 헤더의 해시, 머클 루트, 타임스탬프, 난이도 목표값(nBits), 논스 등을 담고 있습니다. 각 헤더가 앞 헤더의 해시를 포함하므로 헤더들만으로도 하나의 사슬이 만들어지고, 중간의 헤더 하나를 바꾸면 그 뒤 모든 헤더의 작업 증명을 다시 해야 합니다.

네트워크에서는 두 채굴자가 거의 동시에 블록을 찾는 등의 이유로 체인이 잠시 갈라질 수 있습니다. 이때 노드는 블록 '개수'가 가장 많은 체인이 아니라 각 블록 난이도에 해당하는 작업량을 모두 더한 '누적 작업량(chainwork)'이 가장 큰 체인을 선택합니다. 흔히 '가장 긴 체인 규칙'이라고 부르지만, 정확히는 가장 많은 작업이 투입된 체인 규칙입니다. 누적 작업량이 같다면 먼저 받은 쪽을 유지합니다.

'헤더' 체인이라는 점이 중요합니다. 헤더는 블록 전체보다 훨씬 작아 빠르게 내려받고 작업 증명을 검증할 수 있습니다. 비트코인 코어는 헤더 우선 동기화(headers-first sync) 방식으로 먼저 최적 헤더 체인을 확정한 뒤, 그 체인에 속한 블록 본문을 여러 피어에게서 병렬로 내려받아 검증합니다. 단, 헤더가 유효해도 블록 안 트랜잭션이 합의 규칙을 어기면 그 블록은 거부되므로 최종 '최적 블록체인'과는 구분됩니다.

최적 헤더 체인이 바뀌는 현상을 재구성(reorg)이라고 합니다. 다른 가지에 더 많은 작업이 쌓이면 노드는 기존 체인 끝의 블록을 버리고 새 가지로 갈아타며, 버려진 블록은 스테일 블록이 됩니다. 그 블록에 들어 있던 트랜잭션은 다시 메모리 풀로 돌아가 새 체인에 포함되기를 기다립니다. 한두 블록 깊이의 재구성은 정상적으로 일어날 수 있지만, 깊은 재구성은 51% 공격의 신호일 수 있습니다.

블록체인·암호화폐에서는

SPV 지갑(라이트 지갑)도 블록 전체 대신 최적 헤더 체인만 내려받아, 트랜잭션이 포함된 블록이 가장 많은 작업이 쌓인 체인 위에 있는지 확인합니다. 거래소가 입금 시 일정 수의 컨펌을 요구하는 것도, 그 블록 위에 작업량이 충분히 쌓여 최적 체인에서 밀려날 가능성이 낮아질 때까지 기다리는 것입니다.

참고로 최적 헤더 체인은 노드마다 잠시 다를 수 있습니다. 새 블록이 네트워크 전체에 전파되는 데 시간이 걸리기 때문이며, 대부분의 경우 몇 초에서 몇 분 안에 모든 노드가 같은 체인으로 수렴합니다.

쉽게 말하면

여러 팀이 동시에 벽돌 탑을 쌓을 때, 벽돌 개수가 아니라 들어간 노력의 총량이 가장 큰 탑을 '진짜'로 인정하는 규칙입니다.

이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.