[BlockChain] 머클트리(Merkle Tree)와 머클루트(Merkle Root)

김동욱·2021년 12월 24일
0

Block Chain

목록 보기
1/2
post-thumbnail

목표

머클트리(Merkle Tree)와 머클루트(Merkle Root)의 정의와 개념을 알아보기


머클루트(Merkle Root)란?

정의

블록체인의 원소 역할을 수행하는 블록의 부분에 저장된 트랜잭션들의 해시트리.

말이 어려운데 쉽게 좀 더 풀어 쓰자면 체인형태로 이어진 각각의 블록 안에는 여러개의 거래정보(트랜잭션)들이 담겨져 있다.
그 여러 개의 거래 정보들은 해시화(*SHA-256 사용)되어 저장되고 해시화 된 거래 정보들은 최신 순서대로 2개씩 짝을 지어 해쉬값을 결합해 새로운 한 쌍의 해시값으로 상위에 저장된다. 상위의 정보들은 또 짝을 지어 상위에 새로운 해쉬값 생성하고 반복...
그러다보면 최상위에 한 개의 해쉬값이 구해지게 되는데 이를 '머클루트'라고 부른다.

*SHA-256은 뭐지?

  • 알고리즘 종류중 하나로 블록체인에서 가장 많이 채택되어지는 암호화 방식이다.
  • 256비트로 구성되며 64자리 문자열을 반환.
  • 입력값이 조금만 변동하여도 출력값이 완전히 달라지기 때문에 출력값을 토대로 입력값을 유추하는 것은 거의 불가능
  • 복호화가 불가능한 단방향 알고리즘

머클트리(Merkle Tree)란?

정의

블록에 포함된 거래정보(트랜잭션)들을 나무 형태로 요약한 것.
머클루트를 구하기까지의 반복되어 트리구조를 형성하고 있는 해시화 과정이며 머클루트에서 풀어서 설명한 과정들이 머클트리의 과정이다.

사용 목적

  • 일반적인 트리 알고리즘들이 검색을 위한 용도로 사용된다면 머클트리는 데이터의 간편하고 확실한 인증을 위해 사용.
  • *라이트 노드 에서 거래를 검증하기 위해 사용된다.

    *라이트 노드(Light node)와 풀 노드(full node)
    풀 노드 - 최초 블록부터 현재 시점 형성된 블록까지 연결된 체인 전체를 유지하는 노드.
    라이트 노드 - 일부 블록만 소유하고 풀 노드에게서 필요한 정보만 받아서 유지하는 노드.

장점

  1. 머클루트값을 알면 최소한의 정보로 필요한 정보를 가져올 수 있기 떄문에 거래 내역 검증이 간편함
  2. 거래내역에 작은 변화만 생겨도 상위 해시값이 모두 변하기 때문에 거래내역 변화 생길 시 모든 거래내역을 검사해야하는 번거로움이 없고 이로 인해 높은 보안성을 가진다.

참고 사이트
https://steemit.com/kr/@yahweh87/4-merkle-tree-merkle-root
http://wiki.hash.kr/index.php/%EB%A8%B8%ED%81%B4%ED%8A%B8%EB%A6%AC

profile
웹 개발 관련 공부한 내용 기록하는 블로그입니다.

0개의 댓글