[코린이 상식백과] 블록체인에는 머클트리가 있다?
[코린이 상식백과] 블록체인에는 머클트리가 있다?
  • 윤해리 기자
  • 승인 2018.12.03 14:03
  • 댓글 0
이 기사를 공유합니다

블록체인은 거래 내역이 담긴 블록을 체인 형태로 연결해 저장하는 기술을 말하죠. 그런데 블록에 저장되는 거래 내역이 무한정 많아지게 되면 우리는 원하는 데이터를 어떻게 찾아야 할까요? 

오늘은 블록체인 데이터 저장 용량을 줄여주고, 데이터 위변조 검증 과정을 간편하게 해주는 머클트리에 대해서 알아보겠습니다. 

◆머클트리(Merkle Tree)란?

[출처=데일리토큰]
[출처=데일리토큰]

블록체인에서는 거래 내역이 SHA-256 해시 함수 알고리즘을 거쳐 하나의 해시값으로 암호화돼 저장되죠. 이 때 하나의 블록에 저장된 거래 내역을 모두 합쳐 하나의 '해시 루트(Hash Root)'를 도출하게 되는데요. 해시 루트를 구하기 위해 뻗어가는 구조를 바로 '머클트리(Merkle Tree)' 또는 '해시트리(Hash Tree)'라고 합니다. 

머클트리는 하나의 뿌리에서 여러 가지로 뻗어 나가는 형태를 보입니다. 각 거래 내역에 부여된 해시값을 거래1, 거래2이라고 한다면 거래 1과 거래 2 해시값은 SHA-256 연산 과정을 거쳐 또 하나의 새로운 해시값을 생성 시킵니다. 이렇게 상위 해시값이 또다시 합쳐져 새로운 해시값을 만들어 내죠. 

이러한 과정을 반복해 최종적으로 복잡한 사슬 구조 최상위에 하나의 해시값인 해시 루트가 생성됩니다. 복잡한 구조의 최상위에 위치한 모습이 거꾸로 보면 나무의 뿌리와 닮았다고 해 머클루트(Merkel Root)라고 부르죠. 

◆머클루트(Merkle Root)란?

블록 하나에서 일어난 모든 거래 내역을 하나의 해시값으로 변환한 데이터를 말합니다. 하나의 블록에 저장된 '거래 장부 요약본'이라고 생각할 수 있죠.  

[출처=셔터스톡]
[출처=셔터스톡]

1979년 컴퓨터 과학자인 랄프 머클(Ralph Merkle)은 여러 디지털 서명 알고리즘을 효율적으로 처리하기 위해 이러한 구조를 고안해냈습니다. 디지털 서명이 생성될 때마다 새로운 보안키를 생성해야 한다는 단점이 있었는데, 이를 머클 트리로 묶어 효율적으로 데이터를 저장할 수 있도록 한 거죠. 

◆머클트리 장점은?

블록체인은 시간이 지날수록 블록체인에 저장된 데이터가 늘어나 용량이 커진다면, 거래 처리속도도 느려 질 수밖에 없겠죠. 따라서 모든 거래 내역을 저장하고 있는 풀 노드(Full Node)와 데이터 일부만을 처리해 보관하는 라이트 노드(Light Node)를 분리해 거래 처리 속도를 높이는 방법을 택하는 블록체인도 있습니다. 

머클루트는 바로 이 '라이트 노드'와 같은 역할을 해줍니다. 개별 거래 내역에 해당하는 해시값을 일일이 저장하지 않고도 하나의 블록에 하나의 해시값 만을 저장해 저장 용량을 줄여주죠. 

또한 특정 거래 내역을 확인하기 위해 모든 거래내역을 일일이 검사 해야 하는 번거로움을 줄여줍니다. 모든 거래내역이 합쳐져 하나의 해시값으로 나타난 것이 머클루트 이기 때문에 기존 거래 내역 일부에 작은 변화가 있기만 해도, 상위 해시값이 모두 변환되죠. 이 경우 일부 거래 내역이 위·변조되는 네트워크 이상을 빠르게 감지할 수 있습니다. 

 



댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.