Tech Lab2 min read

블록체인 코스 #8: 머클 트리·루트 가이드

해시를 단계적으로 결합해 하나의 머클 루트를 만드는 과정과, 그 값이 블록 검증·SPV·무결성 보증에 쓰이는 이유를 실무 관점으로 설명합니다.

#머클#트리#머클#루트#SPV#비트코인#블록#헤더

이 글은 많은 트랜잭션을 빠르게 요약하고 검증하는 기술인 머클 트리를 직관적으로 설명합니다. 읽고 나면 블록 헤더의 머클 루트가 왜 중요한지, SPV 검증이 어떻게 가능한지 연결해 이해할 수 있습니다.

머클루트 구조도

왜 머클 트리가 필요한가

블록에는 수천 건의 트랜잭션이 들어갑니다. 매번 전부 비교하면 검증이 비싸지므로, 우리는 해시를 계층적으로 묶어 한 개의 대표값(머클 루트) 으로 축약합니다. 이렇게 하면 “특정 트랜잭션이 이 블록에 포함되었는가?”를 소수의 해시 연산만으로 확인할 수 있어 네트워크 비용이 크게 줄어듭니다.

어떻게 계산되는가

각 트랜잭션의 txid를 잎(leaf)으로 두고, 인접한 둘을 이어 붙여 이중 해시합니다. 상위 노드는 다시 쌍을 이뤄 해시되고, 마지막에 남는 값 하나가 머클 루트입니다. 잎 개수가 홀수면 마지막 해시를 복제해 짝을 맞춘 뒤 계산합니다. 비트코인에서는 관례적으로 SHA256(SHA256(L||R))를 사용하며, 이 값이 블록 헤더에 기록됩니다.

핵심 용어 한눈에

  • 잎(Leaf): 각 트랜잭션의 해시(txid)
  • 내부 노드: 자식 두 해시를 연결해 이중 해시한 값
  • 머클 루트: 트리의 최상단 해시, 블록 거래 집합을 대표
  • 머클 경로(Proof): 포함 증명에 필요한 형제 해시의 모음

SPV와 머클 경로

경량 노드(SPV) 는 전체 블록을 받지 않고 헤더 체인만 내려받습니다. 사용자가 제시한 txid형제 해시들로 루트를 재계산해 헤더의 루트와 일치하는지만 본 뒤, 작업증명 난이도를 확인합니다. 이 방식은 저장공간과 대역폭을 크게 절약하면서, 결제 수신·거래 확인 같은 실무 시나리오에 충분한 신뢰도를 제공합니다. 보다 기초가 필요하다면 트랜잭션 구조 이해를 먼저 읽어도 좋습니다.

변조 탐지와 보안 효과

트랜잭션 하나라도 바뀌면 잎 해시가 달라지고 변화가 상위 노드→루트로 전파됩니다. 루트가 바뀌면 블록 헤더 해시도 달라져 체인 연결이 끊기며, 이후 블록들의 ‘이전 블록 해시’까지 연쇄적으로 무효화됩니다. 공격자가 이 변조 체인을 유효로 만들려면 막대한 해시 파워로 정직한 체인을 추월해야 하므로, 경제적으로 실현 가능성이 낮습니다.

루트가 블록 헤더로 들어가는 흐름

실무 팁

  • 첫째, 정렬 규칙을 엄격히 고정하세요. 입력 순서가 달라지면 루트가 달라집니다.
  • 둘째, 홀수 처리(마지막 해시 복제)를 구현에 명확히 반영하세요.
  • 셋째, 디버깅 시에는 잎→루트까지의 중간 노드 로그를 남기면 재현이 쉬워집니다.
  • 넷째, 문서에는 “머클 경로 예시”를 함께 제시하면 독자의 이해가 비약적으로 좋아집니다.

참고 링크

다음으로 읽어볼 글