본문 바로가기

쉽게 읽는 Web3

머클 트리(Merkle Tree)가 뭘까?

 

머클 트리(Merkle Tree)란?

머클 트리는 데이터를 효율적으로 검증하고 관리하기 위한 **"트리 구조"**예요.
쉽게 말하면, 많은 데이터를 요약해서 하나의 지문(해시)으로 만드는 시스템이에요.


🌳 왜 머클 트리가 중요한가?

  • 데이터 무결성 보장:
    트리에 저장된 데이터가 변조되지 않았음을 빠르게 확인할 수 있어요.
  • 효율적인 검증:
    모든 데이터를 다 확인하지 않고도 특정 데이터가 포함되었는지 빠르게 검증할 수 있어요.
  • 블록체인에 필수:
    머클 트리는 블록체인의 핵심 기술 중 하나로, 거래 데이터를 효율적으로 저장하고 검증하는 데 사용돼요.

🛠️ 머클 트리 동작 방식 (쉬운 비유)

  1. 데이터 블록:
    데이터를 각각 작은 조각(블록)으로 나눠요.
    예:
  2. 데이터 1: A, 데이터 2: B, 데이터 3: C, 데이터 4: D
  3. 해시(Hash) 생성:
    각 데이터를 암호화(해시 함수)해서 고유한 값(해시)을 만들어요.
  4. 해시1: H(A), 해시2: H(B), 해시3: H(C), 해시4: H(D)
  5. 쌍을 합쳐 새로운 해시 생성:
    두 개씩 묶어서 다시 해시를 생성해요.
  6. H(AB) = H(H(A) + H(B)) H(CD) = H(H(C) + H(D))
  7. 최종 머클 루트(Merkle Root):
    이 과정을 반복해서 **하나의 최종 해시 값(머클 루트)**만 남겨요.이렇게 하면 데이터 전체를 대표하는 하나의 해시가 만들어져요!
  8. 머클 루트 = H(H(AB) + H(CD))

💡 머클 트리를 쉽게 이해하는 비유

머클 트리를 시험 성적 확인으로 생각해볼게요:

  1. 학생들이 각 과목의 점수(A, B, C, D)를 받았어요.
  2. 선생님이 각 점수를 암호화(해시)해서 보관했어요.
  3. 학생 1명이 자신의 점수가 정확한지 확인하려면, 전체 점수를 확인하지 않아도 자신의 점수와 해당 해시만으로 검증이 가능해요.
    • 이게 머클 트리의 효율적인 검증이에요.

🔍 블록체인에서 머클 트리의 역할

  1. 효율적인 데이터 검증:
    • 블록체인은 거래 데이터가 많아지면 저장 공간과 처리 속도가 부담돼요.
    • 머클 트리는 거래 데이터를 요약해서 머클 루트 하나만 저장하므로 효율적이에요.
    • 노드들은 루트만 확인해도 거래 데이터의 무결성을 검증할 수 있어요.
  2. SPV(간이검증) 지원:
    • 경량 지갑(스마트폰 지갑 등)은 전체 블록 데이터를 받지 않고 머클 트리를 사용해 특정 거래만 검증할 수 있어요.
  3. 변조 방지:
    • 거래 중 하나라도 변조되면 최종 머클 루트 값이 달라지기 때문에, 데이터 무결성을 쉽게 확인할 수 있어요.

📝 한 줄 정리

머클 트리는 데이터를 효율적으로 검증하고 요약하는 블록체인의 데이터 관리 비법!
거래 데이터가 조작되지 않았음을 빠르고 안전하게 확인할 수 있어요. 🌳