머클트리
머클트리란 1979년 컴퓨터 과학자 Ralph Merkle가 발명한 해시 트리로, 이진 트리 구조이며 각 노드 값이 해시값 입니다.
그렇기 때문에 머클루트 값을 이용하여 빠른 데이터 검증이 가능합니다.
from : ihpark92.tistory.com/57
머클루트
머클루트는 머클트리의 루트 노드 값을 리틀 엔디언(Little Endian) 방식으로 바꾼 것입니다.
만일 머클트리에서 하나의 노드라도 값이 변경되었다면, 같은 입력으로 머클트리를 다시 생성했을 때 머클루트의 값 또한 변경되기 때문에 트리를 순회하지 않아도 데이터가 변경되었음을 확인할 수 있습니다.
머클트리 생성 과정
- 최초 데이터를 SHA256형태의 해시값으로 변환합니다.
- 가장 가까운 노드 2개를 한쌍으로 묶어 합친 후 그 값을 해시값으로 변환합니다.
- 하나가 남을때까지 2번 과정을 계속 반복되며 하나의 값만 남았을 때까지 이 과정을 반복합니다.
- 최종적으로 남는 하나의 블록은 모든 거래를 합친 해시값을 포함하고 있으며 이를 머클루트(Merkle Root)라 합니다.
from : wiki.hash.kr/index.php/%EB%A8%B8%ED%81%B4%ED%8A%B8%EB%A6%AC
머클트리 - 해시넷
머클트리(Merkle Tree)는 블록에 포함된 거래 내역을 나무 형태로 요약한 것이다. 1979년 머클트리를 개발한 랄프 머클(Ralph Merkle)의 이름을 따서 머클트리라고 부르며 해시트리(Hash Tree), 혹은 이진트
wiki.hash.kr
비트코인 블록체인에서 모든 노드가 블록체인을 저장 하는 것은 공간 비용을 발생시키며,
검증 또한 많은 연산을 필요로 하기 때문에 시간 비용이 발생합니다.
그래서 노드는 전체 블록체인을 저장하는 풀노드(Full Node)와 일부분을 저장하는 라이트노드(Light Node)로 분류됩니다.
라이트노드는 풀노드에게 머클트리 값을 요청하여 거래를 검증할 수 있습니다. 트랜잭션을 전부 확인해볼 필요 없이 머클트리 값만 비교하면 트랜잭션의 변조를 확인할 수 있기 때문입니다.
이것은 검증 속도를 개선할 수 있는 방법입니다.
'Blockchain > Bitcoin' 카테고리의 다른 글
[Bitcoin] 비트코인 UTXO (0) | 2021.04.13 |
---|---|
[Bitcoin] 비트코인 작업 증명 (PoW) (0) | 2021.03.23 |
[Bitcoin] 비트코인 거래 과정 (0) | 2021.03.19 |
[Bitcoin] 비트코인 블록체인 특징 (0) | 2021.03.19 |
[Bitcoin] 비트코인 블록체인 블록 구조 (0) | 2021.03.18 |