머클 루트는 어떻게 만들어질까요?
블록에 있는 모든 거래의 ID부터 시작해요. 거래 ID 자체도 이중 SHA-256 해시예요. 코인베이스 거래를 맨 앞에 두고 순서대로 나열해요. 이웃한 해시끼리 쌍을 지어 합친 뒤 해시하면 해시 수가 절반으로 줄어요. 하나만 남을 때까지 반복하면 머클 루트가 돼요.
한 단계의 해시 개수가 홀수라면 마지막 해시를 자기 자신과 짝지어요. 거래 내용을 사토시 1개만큼이라도 바꾸면, 그 거래에서 맨 위까지 이어지는 경로의 모든 해시가 바뀌고 머클 루트도 달라져요. 위 데모에서 직접 확인해 보세요.
왜 해시 하나가 아니라 트리일까요?
증명. 거래가 블록에 포함됐다는 걸 증명하려면 블록 전체가 아니라 해당 거래에서 이어지는 경로의 해시만 있으면 돼요. 거래가 약 4,000건인 블록이라면 해시 12개만 필요해요. 크기는 수백 바이트에 불과하죠. 사토시의 백서는 블록 헤더만 저장하면서 이런 방식으로 결제를 확인하는 경량 지갑을 설명해요.
머클 루트는 채굴에도 중요해요. 채굴자가 코인베이스 거래의 추가 논스를 바꾸면 머클 루트도 바뀌고, 블록 헤더에 새 논스 값들이 들어가 다시 시도할 수 있어요.
출처
- Bitcoin: P2P 전자 현금 시스템 · Satoshi Nakamoto, 2008
- 블록체인 참고 자료: 헤더, 머클 트리, 목표값 · Bitcoin 개발자 문서
- 머클 트리 · Bitcoin Wiki
이 페이지의 실시간 수치는 CloudMineCrypto API와 공개 블록체인 데이터를 바탕으로 하며, 정기적으로 갱신되고 각 수치가 표시된 곳에 출처가 안내됩니다. 교육 목적으로만 제공되며 금융 조언이 아닙니다.