본문 바로가기
투자/코인

블록체인 - 머클트리란?

by 큰공 2021. 10. 8.
728x90
반응형

들어가며

 IT 최신 기술의 화두인, 블록체인을 단순히 투자상품이 아닌 기술로써 공부해보고자 블록체인 관련 카테고리를 하나 생성해 보았습니다.

 IT 전공자 이긴하지만, 블록체인 / 암호화 등에 대한 지식이 전무해서 하나씩 알아가보면서 나름대로 정리하는게 공부에 도움이 되지 않을까 합니다.

 오늘은 블록체인의 기본 개념중에 하나인 트리 자료 구조 "머클 트리 (Merkle Tree)" 에 대해서 알아보고자 합니다.

 

 

머클 트리란?

 일단, 머클 트리의 정의에 대해서 한 번 읽어보자.

 머클트리는 블록 내에서 다수의 원장(ledger)들을 암호화하고 합치는 과정을 반복하여 최종적으로 하나의 유닛(Unit)으로 암호화하는 방법이다. 머클트리의 형태는 블록이 보유하고 있는 거래 내역들의 해시값을 가장 가까운 거래내역끼리 쌍을 지어 해시화하고, 쌍을 지을 수 없을 때까지 해당 과정을 반복하여 완성되는데, 이 과정을 통해 다수의 데이터를 하나로 묶어 용량을 절약할 수 있다.
머클트리에서는 모든 거래내역들을 해시화한 머클루트를 통해 거래내역의 변동여부를 쉽게 확인할 수 있고 이 머클루트를 헤더에 담아 트랜잭션의 유효성을 보장한다. 또한 머클 경로(Merkle path)를 제공받아 특정한 트랜잭션이 블록에 유효하게 있는 효율적인 검사가 가능하다. 즉, 머클트리는 모든 정보를 압축하여 간단하게 표현한 데이터로서 머클트리를 통해 데이터의 간편하고 확실한 인증이 가능하다.
출처 : http://wiki.hash.kr/index.php/%EB%A8%B8%ED%81%B4%ED%8A%B8%EB%A6%AC

 

 여러번 읽어도 탁하고 와닿지 않는 설명이긴하다. 큰공이 한 줄도 한번 요약을하면

 

"머클트리는 하위 뿌리 두개씩 쌍을 묶어서, 최종적으로 하나의 루트를 만드는 트리이다"

 

 

https://steemit.com/kr/@easyblockchain/merkle-trees

 

왜 사용할까?

 일단, 결론 부터 왜 사용할까에 대한 목적을 한마디로 정의하면

 

"데이터의 간편하고 확실한 인증" 

 

을 위해서이다.

 

 블록체인을 이용한 원장 거래에서는 위의 그림과 같이 거래1 ~ 거래8 까지의 거래 내역이 존재한다.

 

 비트코인 거래는 모든 거래가 투명성있게, 그리고 모든 참여자가 거래내역을 다가지고 있기때문에 이 거래가 진짜 거래인지 사실 인지 아닌지 확인하는 절차가 필요하다.

 

 어떻게 하면 이 많은 양의 거래데이터를 일일히 확인하지 않고, 한번에 간편하고 그리고 정확하게 확인 할수 있을까 하고 고안해낸것이 바로 이 "머클 트리" 이다.

 

 

어떻게 간편하게 인증할수 있을까?

 세부적으로 좀 더 들어가게 되면 해시함수나 해시에 대한 개념을 알아야 하긴하나, 딱 "머클트리" 만 놓고 보았을 때, 머클트리의 최상단에 있는 것 (노드) 를 "머클 루트" 라고 한다.

 

 이 "머클 루트" 는 하위 노드의 모든 거래 내역의 요약본을 가지고 있다. 즉, "머클 루트" 하나만 검사를 한다면, 해당 하위의 모든 거래 내역이 확실하다는 것을 인증 받을 수 있게 된다.

 

 "머클 루트" 하나로 "머클 트리" 의 모든 데이터를 간편하게 인증한다.

 

풀노드 vs 라이트 노드

 풀 노드(full node)는 제네시스 블록부터 현재 시점의 형성된 블록이 연결된 블록체인 전체를 유지하는 노드이다. 그와 대조적으로 라이트 노드(Light node)는 일부 블록만 소유하고 풀 노드에게서 필요한 정보만을 받아서 유지하는 노드이다.[5] 머클트리는 라이트 노드에서 거래를 검증하기 위해 사용된다.

 

 블록체인의 모든 거래는 각 참여자가 각각 가지고 있다고 했다. 블록체인 거래에 있어서 계속적으로 지속적인 거래가 계속해서 일어나게 되면, 이 거래 장부의 용량은 기하 급수적으로 늘어날 것이다.

 

 이에, 어떻게 하면 용량을 줄이되, 거래 장부를 다가지고 있는 효과를 낼까? 하고 고민하다 나온 개념이 "라이트 노드" 이다. 

 이 "라이트 노드" 가 바로 "머클 루트" 의 집합 이라고 보면 된다.

 

이상 간단한 블록체인의 기본 구성요소인 머클 트리와 왜 머클트리를 사용해야 하는지에 대해서 알아 보았습니다.

 

 

 

728x90
반응형

댓글