머클트리(Merkle Tree)와 머클루트(Merkle Root)의 정의와 개념을 알아보기
블록체인의 원소 역할을 수행하는 블록의 부분에 저장된 트랜잭션들의 해시트리.
말이 어려운데 쉽게 좀 더 풀어 쓰자면 체인형태로 이어진 각각의 블록 안에는 여러개의 거래정보(트랜잭션)들이 담겨져 있다.
그 여러 개의 거래 정보들은 해시화(*SHA-256 사용)되어 저장되고 해시화 된 거래 정보들은 최신 순서대로 2개씩 짝을 지어 해쉬값을 결합해 새로운 한 쌍의 해시값으로 상위에 저장된다. 상위의 정보들은 또 짝을 지어 상위에 새로운 해쉬값 생성하고 반복...
그러다보면 최상위에 한 개의 해쉬값이 구해지게 되는데 이를 '머클루트'라고 부른다.
*SHA-256은 뭐지?
- 알고리즘 종류중 하나로 블록체인에서 가장 많이 채택되어지는 암호화 방식이다.
- 256비트로 구성되며 64자리 문자열을 반환.
- 입력값이 조금만 변동하여도 출력값이 완전히 달라지기 때문에 출력값을 토대로 입력값을 유추하는 것은 거의 불가능
- 복호화가 불가능한 단방향 알고리즘
블록에 포함된 거래정보(트랜잭션)들을 나무 형태로 요약한 것.
머클루트를 구하기까지의 반복되어 트리구조를 형성하고 있는 해시화 과정이며 머클루트에서 풀어서 설명한 과정들이 머클트리의 과정이다.
*라이트 노드(Light node)와 풀 노드(full node)
풀 노드 - 최초 블록부터 현재 시점 형성된 블록까지 연결된 체인 전체를 유지하는 노드.
라이트 노드 - 일부 블록만 소유하고 풀 노드에게서 필요한 정보만 받아서 유지하는 노드.
참고 사이트
https://steemit.com/kr/@yahweh87/4-merkle-tree-merkle-root
http://wiki.hash.kr/index.php/%EB%A8%B8%ED%81%B4%ED%8A%B8%EB%A6%AC