본문 바로가기
  • 개발 / 공부 / 일상

BlockChain41

(BlockChain) Merkle(머클) 머클(merkle) 이란 블록의 내용이 맞는지 검증 내용의 값이 달라지면 해시값 또한 변하기 때문에 블록의 거래에 대한 기록 정보를 가지고 있는 데이터의 모음 거래내역(트랜잭션)을 트리로 해싱작업을 통해 암호화 이진트리 형태로 보이며 각 데이터를 암호화해서 하나의 암호화된 데이터가 남을 때까지 두 개씩 합쳐서 암호화한다 머클은 거래 정보 목록들을 효율적으로 암호화, 확인하기 위해 쓰는 것 const merkle = require("merkle"); const data = [ "123125", "12312sdgjks", "adfsgjsiodhgfsd", "생일축하해", ]; // 머클트리 // 인자값 : 암호화 방법 // sync(data) 함수로 트리를 만들어 준다. const merkleTree = m.. 2023. 1. 8.
(BlockChain) Hash 해시(Hash) 란? 단방향 암호화 기법으로 해시함수(혹은 해시 알고리즘)를 이용하여 고정된 길이의 암호화된 문자열로 바꾸는 것 해시함수 (Hash Function) 임의의 길이를 갖는 메세지를 입력받아 그 고정된 길이의 해시값을 출력하는 함수 목적은 메세지의 오류나 변조를 탐지를 위해, 데이터의 무결성을 제공하기 위해이다 특징 어떤 입력 값에도 항상 고정된 길이의 해시 값을 출력한다 입력 값의 아주 일부만 변경되어도 전혀 다른 결과 값을 출력한다 출력된 결과 값을 토대로 입력 값을 유추할 수 없다 SHA256 현 블록체인 암호 방식 중 가장 많이 사용하고 있는 알고리즘 출력 속도가 빠르며 단방향성 암호화 방식이다 복호화는 불가능하지만, 아직까지는 안정성도 큰 단점이 발견되지 않았다 const SHA25.. 2023. 1. 8.
(BlockChain) 블록의 구성 1. 구성 - 블록은 특정 정보들을 담아놓은 객체라고 보면 쉽게 이해할 수 있다. - 블록 자체가 생성될 때 Header와 Body 가 나뉘어서 생성이 되지는 않는다. 다만 블록에 대한 이해도를 높이기 위해 Header와 Body로 명칭을 나누어서 구분을 해놓는다. Header : Version, PreviousblockHash, MerkleRoot, Timestamp, Difficulty, Nonce, Height, Hash Body : Data(Transaction) 2.Create GenesisBlock const blockData = { version: "1.0.0", height: 0, timestamp: Date.now(), previousHash: "0".repeat(64), // 이전 블록.. 2023. 1. 8.
(BlockChain) 블록체인의 핵심 4대 기술 1. 블록과 트랜잭션 - 트랜잭션은 사용자의 송금 내역이고 송금 내역들을 하나의 블록에 포함시켜야지만 안정성을 보장할 수 있는 기반을 만들 수 있다. 그 블록들이 해시 알고리즘과 POW(퀴즈를 푸는 방식) 통해서 연결하는 형태가 블록체인이다. 2. 분산 네트워크 - 사용자들이 언제든지 네트워크에 참여할 수 있고 나갈 수 있는 것을 뜻 한다. 3. 암호화 - 거래가 위변조 되지 않았다고 증명할 수 있다. 4. 합의 알고리즘 - 분산 네트워크에서 중앙화된 기관이 없으니까 하나의 체인을 구성하는 것이 매우 중요하고 그리고 분산화된 네트워크에서 모든 사용자들이 납득할 수 있는 하나의 거래내역이 필요한데 이걸 하나로 정의해주는 알고리즘. (제일 긴 체인이 맞다고 알려주는 알고리즘) 2023. 1. 8.