머클트리 (Merkle Tree)

I. 블록체인의 데이터 구조, 머클트리

가. 머클트리 (Merkle Tree)의 개념

  • Leaf 노드는 데이터로 구성되고, 상위 노드는 자식 노드의 해시값으로 구성된 데이터 구조

나. 머클트리의 특징

무결성 보장Root 노드의 해시 값으로 모든 Leaf 노드의 데이터 변경 확인 가능
동일 해시값 크기해시 함수 기반 데이터 노드 수와 관계없이 동일한 크기
빠른 검증 속도이진 트리 구조 기반 빠른 속도의 검증 가능 O(log N)

 

II. 머클트리의 구성도, 구성요소 및 매커니즘

가. 머클트리의 구성도

나. 머클트리의 구성요소

구성 요소트리 요소상세 설명
Merkle RootRoot Node최종 Hash 병합 결과로 데이터 무결성 검증 대상
Hash BlockNon-Leaf Node자식 노드 2개의 Hash Data 병합 Hash 함수 결과
Data BlockLeaf Node트랜잭션, 파일 등의 원본 데이터
Hash DataNode Data하위 노드 데이터 기반 Hash 함수값

다. 머클트리의 매커니즘

구분적용 기술세부 동작
생성SHA-256 해시 함수– Data a H(a), Data b → H(b) 생성
– H(a) + H(b) → H(ab) 생성
– 머클트리로 머클루트 H(abcd) 생성
검증Binary Tree 구조 머클패스 탐색– Data b → Data b1로 변경
– 머클트리로 H(ab1cd) 생성
– 머클루트 불일치 : H(abcd)와 H(ab1cd)

 

III. 머클트리의 활용 분야

  • 다수 블록으로 분리되어 데이터 전송 시 데이터가 변조 여부를 검증하여 데이터 무결성을 보장

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^