개발하기좋은날

머클트리(Merkle tree)란? 본문

BlockChain

머클트리(Merkle tree)란?

devbi 2022. 7. 8. 16:48
반응형

머클트리란 무엇인가?

- 머클트리는 여러 데이터데 대해 단계적으로 해시 함수를 적용하여 하나의 해시값으로 나타내는 데이터 구조 

 

머클트리는 블록체인에 있는 데이터의 위변조를 방지, 데이터가 변하지 않았음을 보장하는데 사용 

 

머클트리의 동작방식

머클트리 예시

머클 트리는 위의 그림과 같이 여러개의 데이터(A,B,C,D)를 여러 단계를 거쳐서 하나의 해시값으로 만드는 트리 

결과적으로 하나의 해시값을 만드는데 이것을 머클루트(Merkle Root) 라고함

 

그렇다면 머클트리를 사용하여 무결성을 보장하는 방법에 알아보자 

 

만약 데이터C의 변조가 일어났다고 생각해보자 

데이터 C의 내용이 1바이트라도 변경되었다면, 해시함수 특징상 해시값 hC도 변경된다 

당연히 hc가 바뀌었으니 hD와 해싱한 hC.hD 해시값도 달라지겠고 최종적으로 머클루트 까지 값까지 변경되게된다

결과적으로 머클루트 값 하나만으로 데이터에 문제가 생긴것을 확인이 가능 

 

그렇다면 블록체인에서 머클트리는 어떻게 사용될까?

비트 코인 블록구조

모든 블록은 고유한 해시값을 가지고 있다 

블록체인 특징상 위 그림의 #1 블록 해시값은 #2 블록 헤더에 포함이 되는구조다 

#1은 #2 블록헤더에 포함

그렇다면 머클루트값은 어떻게 생성이되었냐?

바로 트랜잭션을 사용해 머클트리로 만든다

 

트랜잭션을 이용한 머클루트

 

이러한 사용때문에 블록체인에서 위변조가 굉장히 힘든데 

#1의 트랜잭션 변경으로 쇄도 효과

위 그림처럼 #1 트랜잭션2 데이터가 변조되면 머클루트값도 변경되며 #1 Header의 모든값을 해싱한 #1 BlackHash도 변경될것이고 그렇다면 이후의 #2 블록해시값도 다르고 이것을 해싱한 #3의 해시값도 달라지기 떄문에 모든 블록을 수정해야만 하기 떄문에 위변조가 쉽지가 않다 

반응형

'BlockChain' 카테고리의 다른 글

암호화폐 -2 (코인과 토큰)  (0) 2022.07.11
암호 화폐 - 1 (암호 화폐)  (0) 2022.07.11
세그윗(SegWit)이란?  (0) 2022.07.07
분산 원장과 블록체인  (0) 2022.07.06
분산 원장 기술의 기초 분산 데이터베이스  (0) 2022.07.06
Comments