[블록체인] 머클 트리란? (Merkle Trees)
본문 바로가기
Block Chain

[블록체인] 머클 트리란? (Merkle Trees)

by 쏠수있어ㅤ 2021. 9. 1.
반응형

 

 

https://www.salesforceben.com/salesforce-blockchain-for-dummies/

 

블록으로 연결된 (= 체인) 것이 = 블록체인! Linked list 

각 하나 하나의 블록을 구성하는 요소들은 아래와 같다

 

블록 1개의 구성 요소 

1. 블록헤더(Block Header) : 블록의 정체성 (비전, 이전 블록의 해시, 머클루트, 타임스탬프, 난이도 목표, 난스) 
2. 거래카운터 : 거래의 개수
3. 거래 : 블록에 기록된 거래내역 (한 블록 당 평균 500개의 거래) 

 

이 중 1번 블록헤더를 구성하는 3가지 요소 

1. 이전 (previous) 블록들과 연결되어 있음을 나타내는 이전 블록의 해시(Hash)값을 갖는 데이터 
2. 난이도, 타임스탬프, 난스 : 채굴 경쟁과 직접적 연관이 되는 부분
3. 머클루트 (Merkle Root) 

* 난스(nonce)란? 임의로 생성되는 암호화 토큰으로 재생 공격 방지하는데 사용 

 

 

 

블록헤더의 세 번째 요소 -  머클루트, Merkle Root 란 무엇일까? 

 

 

 

머클루트 Merkle Root , 머클 트리 Merkle Tree

 

1) 머클 트리, Merkle Tree

머클 트리는 = 이진 트리 (binary trees) 이다. 두 개의 거래를 한 쌍으로 묶는다. 각 쌍은 하나의 뿌리를 가지고 있다. 

 

위의 과정은 두 개씩 묶은 다음 SHA256 암호화 방법을 통해 해시값을 나타내고 그렇게 묶은 값들을 다시 두 개씩 묶기를 반복하면 결국 한 개의 꼭대기(root)에 위치한 데이터가 만들어진다. 즉, 거래가 아무리 많아도 결국 두쌍이 합쳐지고 또 그 합쳐진 것들이 두 쌍을로 또 짝지어지기를 반복하면서 하나만 함축되며 결국 요약된 2) 머클루트 Merkle Root 의 용량은 32bytes로 항상 같다. 

 

 

머클 트리는 특정 거래를 찾을 때 쉽고 효율적이다. 거래량이 기하급수적으로 많더라도 결국 하나를 찾기위한 경로는 단순해진다. (완전탐색 (모든 경우를 찾는 방법)이 아닌 이진 트리 방법으로 위에서 아래로 해싱한 경우의 수만큼만 찾으면 된다.) 거래의 수가 N 증가할 때마다 특정 거래를 찾는 경우의 수는 log2(N)으로 늘어난다. 

 

거래가 1024개라면 특정 거래를 찾기위해 log2(1024) = 10 이므로 10번의 경로만 확인해보면 된다. 또한 거래 내역을 위조하는 경우, 또는 그러한 시도가 있따고 해도 머클트리의 경로를 따라가다 보면 해시값을 추적하고 확인할 수 있기 때문에 거래 위변조도 쉽고 빠르게 알 수 있다. 

 

블록체인의 용량은 시간이 지날수록 늘어난다. 거래가 전 세계 이곳저곳에서 늘어나고 따라서 노드가 생기므로 모든 노드를 보유할 수 있는 컴퓨터는 성능이 매우 좋은 컴퓨터이다. 하지만 위의 머클 트리의 이진 트리 방식은 블록데이터의 일부만 보유하는 'light node' 로 우리의 핸드폰, 노트북으로도 쉽고 빠르게 특정 거래를 찾을 수 있다. 

 

 

즐, 간단하게 말하자면 

1) 머클 트리, Merkle Tree

블록에서 머클 트리의 역할은 거래를 쉽고 효율적으로 거래를 찾을 수 있게하고 확실한 인증을 위한 이진트리 기반의 데이터 구조

 

2) 머클루트 Merkle Root 

머클트리의 root, 뿌리 노드, 가장 위에 있는 노드이다. 

 

 

 

 

 

 

https://www.banksalad.com/contents/%EC%89%BD%EA%B2%8C-%EC%84%A4%EB%AA%85%ED%95%98%EB%8A%94-%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8-%EB%A8%B8%ED%81%B4%ED%8A%B8%EB%A6%AC-Merkle-Trees-%EB%9E%80-ilULl

 

쉽게 설명하는 블록체인 : 머클트리(Merkle Trees)란 | 뱅크샐러드

 

www.banksalad.com

 

반응형

댓글