사랑하애오
article thumbnail
블록체인 제네시스 블록 만들기 by JavaScript
BlockChain 2021. 12. 30. 11:22

블록체인 블록 만들기 첫 블록, = Genesis block 은 개발자가 하드코딩을 해야함 블록의 구성 요소 A block is composed of a header and a body, where a header contains the hash of previous block, a timestamp, Nonce and the Merkle root. The Merkle root is the root hash of a Merkle tree which is stored in the block body. Genesis Block(제네시스 블록) 만들기 1. 기본 세팅 사용할 디렉토리 안에(* 경로 주의) (src 상위 디렉토리에서 npm) npm init -src 디렉토리 생성 > block.js 파일 생성 ..

해시트리, 이진트리 차이점
BlockChain 2021. 12. 24. 16:22

이진트리 자식 노드가 최대 2개인 트리 순회 방법 preorder : 루트 - 왼쪽 - 오른쪽 inorder : 왼쪽 - 루트 - 오른쪽 postorder : 왼쪽 - 오른쪽 - 루트 배열로 구현 한다면 자식의 인덱스는 /2, 부모의 인덱스는 *2 이다. 어디에서 사용될까? 1. 효율적인 검색과 정렬을 위해 사용된다. 이진 탐색 트리와 이진 힙 구현에 사용한다. 이진 탐색 트리에서 탐색의 시간 복잡도는 logN이다. 2. 데이터를 분기 구조로 표현할 때 사용한다. 해시트리(머클트리) 데이터의 간편하고 확실한 인증을 위해 사용한다. 아래의 노드들을 해싱하면서 합쳐서 부모 노드를 만들어 가면서 루트 노드인 하나의 데이터로 만들어 주는 것이다. 루트 노드의 해시 값을 알면 데이터가 바꼈는지 검증할 수 있다. ..

article thumbnail
MerkleTree & MerkleRoot
BlockChain 2021. 12. 24. 16:18

머클 트리란 무엇인가요? 머클 트리(Merkle tree)의 개념은 80년대 초 공개 키 암호방식 연구 결과로 잘 알려진 컴퓨터 과학자 랄프 머클(Ralph Merkle)이 제안했습니다. 머클 트리는 일련의 데이터 온전성을 효과적으로 검증하는 데 사용되는 구조입니다. 이는 특별히 피어 투 피어 네트워크 맥락에서 참가자가 정보를 공유하고 독립적으로 검증해야 하는 경우와 관련됩니다. 머클 트리 구조의 핵심에는 해시 함수가 있습니다. 머클 트리는 어떻게 작동하나요? 여러분이 커다란 파일을 다운로드하고 싶다고 해보겠습니다. 여러분은 보통 오픈 소스 소프트웨어를 통해 다운로드하고자 하는 파일의 해시가 개발자에 의해 공개된 것과 일치하는지 확인할 것입니다. 두 해시가 일치한다면 여러분은 컴퓨터에 존재하는 파일이 개..