사랑하애오
Published 2021. 12. 24. 16:22
해시트리, 이진트리 차이점 BlockChain

이진트리

자식 노드가 최대 2개인 트리

순회 방법

  • preorder : 루트 - 왼쪽 - 오른쪽
  • inorder : 왼쪽 - 루트 - 오른쪽
  • postorder : 왼쪽 - 오른쪽 - 루트

배열로 구현 한다면 자식의 인덱스는 /2, 부모의 인덱스는 *2 이다.

어디에서 사용될까?
1. 효율적인 검색과 정렬을 위해 사용된다.
이진 탐색 트리와 이진 힙 구현에 사용한다.
이진 탐색 트리에서 탐색의 시간 복잡도는 logN이다.
2. 데이터를 분기 구조로 표현할 때 사용한다.

해시트리(머클트리)

데이터의 간편하고 확실한 인증을 위해 사용한다.

아래의 노드들을 해싱하면서 합쳐서 부모 노드를 만들어 가면서 루트 노드인 하나의 데이터로 만들어 주는 것이다.

루트 노드의 해시 값을 알면 데이터가 바꼈는지 검증할 수 있다.

여러 블록으로 나뉜 데이터를 전송할 때 데이터가 변조되지 않았음을 보장하는 용도로 사용된다.

블록체인에서 주로 사용

 

출처

https://velog.io/@jisoo1170/%ED%95%B4%EC%8B%9CHash%EB%9E%80-%EB%AC%B4%EC%96%B8%EC%9D%B8%EA%B0%80

 
 

 

'BlockChain' 카테고리의 다른 글

블록체인 블록 만들어보기  (0) 2021.12.29
blockchain 맛 보기  (0) 2021.12.27
PoS(Proof of Stake) 고찰  (0) 2021.12.26
MerkleTree & MerkleRoot  (0) 2021.12.24
블록체인 합의 알고리즘  (0) 2021.12.24
profile

사랑하애오

@사랑하애

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!