본문 바로가기
블록체인/블록체인이란?

블록체인에서 머클트리를 어떻게 사용할까?

by 제이제이_은재 2022. 6. 22.
반응형

 

💡 블록체인에서의 머클트리

 

 

비트코인의 블록 구조는 대략 다음과 같다.

 

모든 블록은 고유한 해시값을 가지고 있다. 헤더에는 이전 블록의 해시값, 버전, 난이도, 머클루트, 블록 생성 시간, 논스 등 블록에 대한 내용이 들어있다. 그리고 트랜잭션들이 담겨 있다. 블록의 해시값은 블록 헤더의 모든 값들을 연결하여 해싱한 값이 블록의 고유한 해시값이 된다. 또한 1번 블록의 해시값은 그 다음으로 이어디는 2번 블록의 헤더에 포함된다. 따라서 블록은 자신 바로 앞의 블록 해시값을 가지고 있다. 이 때, 블록 헤더의 머클루트는 트랜잭션을 사용해 머클 트리를 만들고 그 결과로 나온 값이 머클 루트 값이 되는 것이다. 즉, 블록에 담긴 모든 트랜잭션에 대한 무결성을 보장하는 머클루트 값이 블록 해시에도 들어가게 된다.

 

만약 악의적인 노드가 블록의 트랜잭션을 조작한다면, 머클트리의 특성에 따라 머클루트 값도 변경된다. 그리고 머클 루트를 변경하면, 블록 헤더의 모든 값을 연결하여 해싱한 값인 블록 해시값도 변경된다. 블록은 체인으로 연결되어 있기 때문에 다음 블록의 해시값도 변경되기 때문에 트랜잭션을 조작한 블록 이후에 연결된 모든 블록을 수정해야 한다. 블록의 논스값을 찾는데 10분정도 걸리기 때문에, 트랜잭션을 하나 수정하기 위해서는 연결된 모든 블록의 논스값을 다시 찾는 것은 매우 비용이 많이 들 것이다. 그렇기 때문에 블록체인에 올라간 데이터를 수정하는데 많은 비용이 들기 때문에, 위변조를 하기가 매우 어렵다.

 

 

반응형

댓글