%3C/text%3E%3C/svg%3E">
💻
💻 IT·개발

머클 트리 크기·증명 길이 계산기

입력하면 바로 계산됩니다.

입력값

머클 트리 크기·증명 길이 계산 쉽게 이해하기 — 개념과 원리

머클 트리는 데이터를 두 개씩 묶어 해시하고, 그 결과를 다시 두 개씩 해시하는 일을 반복해 마지막에 하나의 루트 해시를 남깁니다. 이 루트 하나가 집합 전체를 대표합니다. 이 계산기는 잎(leaf) 개수에 따른 트리 높이와, 포함 증명에 필요한 해시 개수와 바이트 수를 알려 줍니다. 블록체인, 인증서 투명성 로그, 파일 동기화처럼 전체 데이터를 보내지 않고 어떤 항목이 큰 집합에 들어 있음을 증명해야 할 때 씁니다.

머클 증명 경로잎 8개 트리에서 증명은 형제 해시 3개이고, 잎 1,000,000개면 높이 20이라 증명은 20 × 32 = 640바이트입니다.증명에는 층마다 해시 하나만 필요합니다루트내 항목증명 해시: 잎 8개면 3개다시 계산잎 1,000,000개 → 20층 (2²⁰ = 1,048,576)해시 20개 × 32바이트 = 640바이트
항목 하나를 증명하려면 층마다 형제 해시 하나만 있으면 됩니다. 잎 백만 개도 해시 20개, 640바이트입니다.

계산 방법

잎이 N개인 이진 머클 트리에서 다음과 같습니다.

⌈x⌉는 올림을 뜻합니다. 단계가 일부만 채워져도 한 단계를 온전히 거쳐야 하기 때문입니다.

원리

한 단계 올라갈 때마다 노드 수가 절반이 되므로 k단계로는 최대 2ᵏ개의 잎을 담을 수 있고, 높이는 2ᵏ ≥ N을 만족하는 가장 작은 k입니다. 어떤 잎이 포함되었음을 증명하려면 각 단계의 형제 해시를 보냅니다. 검증자는 잎과 첫 형제를 해시하고, 그 결과와 다음 형제를 해시하는 식으로 꼭대기까지 올라갑니다. 최종값이 신뢰하는 루트와 같으면 그 잎은 트리에 들어 있다고 확신할 수 있습니다. 다른 경로를 위조하려면 해시 충돌을 찾아야 하기 때문입니다.

예제 풀이

  1. 입력값은 잎 N = 1,000,000개입니다.
  2. log₂ 1,000,000 ≈ 19.93이고, 올림하면 높이는 20입니다(2²⁰ = 1,048,576 ≥ 1,000,000).
  3. 필요한 증명 해시는 20개입니다.
  4. 증명 크기는 20 × 32 = 640바이트입니다.
리프 수 값에 따른 트리 높이 변화리프 수 값에 따른 트리 높이 변화18192021250,000500,000750,0001e+061.25e+061.5e+062e+06예제 값: 20리프 수
다른 값은 그대로 두고 “리프 수”만 바꿔 계산기를 다시 돌린 결과입니다. 금색 점이 예제 값이며, 위에 값을 입력하면 내 값으로 다시 그려집니다.
리프 수트리 높이
250,00018
500,00019
750,00020
1e+0620
1.25e+0621
1.5e+0621
2e+0621

결과 해석

잎 개수가 두 배가 되어도 증명에는 해시 하나(32바이트)만 늘어납니다. 비교하자면 100만 개의 32바이트 해시를 모두 보내면 32 MB가 듭니다. 트리 전체는 약 2N − 1개의 노드를 저장하므로 저장량은 N에 비례하지만 증명은 로그에 비례합니다.

흔한 실수

주의: 균형 잡힌 이진 트리를 가정한 계산입니다. 자식이 더 많은 트리, 희소 머클 트리, 마지막 노드를 복제하는 방식(비트코인)은 크기와 보안 특성이 다를 수 있습니다.

자주 묻는 질문

머클 트리는 누가 만들었습니까?

1979년 디지털 서명 연구에서 랄프 머클이 고안했습니다.

비트코인은 왜 머클 트리를 씁니까?

경량 지갑이 블록 헤더와 짧은 증명만으로 거래가 블록에 들어 있는지 확인할 수 있게 하려는 것입니다.

출처: R. C. Merkle, "A Digital Signature Based on a Conventional Encryption Function", CRYPTO '87 · IETF RFC 6962, Certificate Transparency

2026년 11월 8일 확인. 표준 공식과 RFC/IEEE 정의를 사용해 브라우저 안에서만 계산합니다. 입력한 내용은 어디에도 전송되지 않습니다.

💻 IT·개발 계산기 전체 →🏠 홍라이프 계산기 홈 →