BlockChain

BlockChain - 머클 루트(MerkleRoot)

char1ey 2023. 4. 25. 17:44

MerkleRoot

 

블록체인의 원리

 

블록체인은 여러 개의 트랜잭션 데이터(거래정보)를 블록 단위로 묶어서 관리한다.

 

각 블록은 자신의 데이터뿐 아니라 이전 블록의 해시값을 포함하고 있다.

 

따라서 블록체인의 무결성을 검증하려면,

 

이전 블록의 데이터를 변경하지 않은 채로 현재 블록의 데이터를 변경하지 않았는지 확인해야한다.

 

 

데이터가 변경되었는지를 확인하기 위해서 머클 트리(MerkleTree)라는 데이터 구조를 활용한다.

 

머클 트리는 아래와 같이 블록 데이터(트랜잭션 데이터) 를 계층적으로 묶어 나가는 구조이다.

 

머클 트리(Merkle Tree)

 

블록에 있는 트랜잭션 데이터들을 해쉬화한다.

 

해시화된 데이터(노드)들을 2개씩 묶에 하나로 해시화한다.

 

이 과정을 반복하면 최상위 노드에는 하나의 해시화된 데이터가 생긴다.

 

이를 머클 루트(MerkleRoot)라고 하며 이 데이터는 블록에 저장된다.

 

거래가 저장될 때마다 머클 루트는 업데이트된다.

 

위의 구조로 인해서 중간에 있는 블록 데이터들 중 하나라도 변경된다면, 머클 루트는 완전히 바뀌어 버린다.

 

이를 통해서 블록 내의 모든 트랜잭션에 대한 유효성을 검증할 수 있다.

 

 

 


※ 해시화

 

임의 크기의 데이터를 고정된 크기의 고유한 데이터로 변환하는 것

 

입력값이 조금이라도 변경되면 크게 달라진다.