본문 바로가기
코인투자

블록체인이란 무엇인가, 해시 그리고 머클트리와 머클루트의 정의

by 차트는말한다 2024. 5. 11.
반응형

블록체인(Block Chain)이란 무엇인가 그리고 해시(Hash), 머클 트리(Merkle Tree)에 대해 간략하게 알아보는 시간을 가져 보도록 하겠습니다.

 

블록체인(Block Chain) 이란

블록체인이란 블록(Block)과 체인(Chain)이라는 2개의 단어가 합쳐진 용어로, 일반적으로 비트코인에 비유하여 설명을 하고 있지만 그 정의에는 다소 차이가 있습니다.

 

블록체인이라는 용어가 널리 알려지게된 계기는 비트코인이 시장에서 거래가 되고, 가격 상승이 이루어지면서 많은 사람들로부터 관심을 갖게 되었습니다만, 정작 블록체인과 비트코인을 혼용하여 사용하는 경우가 많습니다.

 

1. 블록체인 정의

블록체인 이란 무엇인가에 대한 정의를 내린다면, 블록체인(Blockchain)이란 사용자의 모든 거래 내역 등의 데이터를 분산, 저장하는 기술로, 분산 컴퓨팅 기술 기반의 데이터 위변조 방지 기술로 정의할 수 있겠습니다.

 

이 블록체인의 위변조 방지 기술에서 핵심이 되는 블록과 체인에 대한 개념을 살펴보면, 블록(Block)은 모든 거래 참여자들의 거래내역을 담은 정보를 의미하고, 이 블록은 참여자 모두에게 공유되게 되는데, 이를 두고 분산원장 데이터 또는 공공거래장부라고 부릅니다.

 

블록 또는 공공거래장부는 시간의 순서대로 참여자들의 거래내역을 담고 있고 또 저장되며, 이 저장된 블록들은 시간의 순서에 따라 순차적으로 연결된 구조를 갖게 되는데, 이렇게 블록(Block)들이 상호 연결된 구조를 갖는다 하여 블록체인이라 합니다.

 

이러한 블록체인이 공공거래장부로써의 기능을 갖기 위해서는 거래 데이터의 기록, 저장 및 보관, 신뢰성, 무결성, 투명성, 보안 등이 갖추어져야 하는데, 이를 위해 암호화 알고리즘이 사용되게 되며, 비트코인의 경우 SHA-256이라는 암호화 알고리즘을 채택하고 있습니다.

 

2. 블록체인 탄생의 배경

블록체인은 다름이 아닌 하나의 IT 기술로, 1970년대 후반 랄프 머클(Ralph Merkle) 이라는 컴퓨터 과학자가 해시 트리 또는 머클 트리(Merkle Tree)에 대한 특허를 낸 데 그 뿌리를 두고 있으며, 이 트리는 암호화된 블록을 연결하여 데이터를 저장하는 컴퓨터 과학 구조이자 알고리즘입니다.

 

1990년대 후반 스튜어트 하버(Stuart Haber)와 스콧 스토르네타(W. Scott Stornetta)가 머클 트리를 사용하여 문서 타임 스탬프를 변경할 수 없는 시스템을 구현하게 되는데 즉, 전자 문서의 생성과 수정 시간의 기록을 임의로 위조 및 변조를 하지 못하도록 하는 개념을 제시하게 되고, 이것이 블록체인 기술의 역사상 최초의 사례가 됩니다.

 

그리고 머클 트리(Merkle Tree)란 블록체인에서 블록 하나에 포함된 모든 거래 정보들을 요약하여 트리(Tree) 형태로 표현한 데이터 구조를 말하며, 블록체인에서 하나의 각 블록들은 블록 해시(Hash), 헤더(Header), 바디(Body)로 구성이 됩니다.

 

블록체인의 구성과 블록(Block)

블록체인을 구성하는 '블록(Block)'은 크게 헤더, 바디 그리고 해시로 구분이 되며, 각 특징들을 살펴보면 다음과 같습니다.

 

블록 구성
블록 구성

반응형

1. 블록 해시 (Hash)

블록 해시(Hash)는 특정 블록에 담겨 있는 거래내역을 해시 함수를 활용하여 데이터의 크기 유형 또는 길이와 관계없이 항상 임의의 길이나 고정된 출력값을 갖도록 하는 것을 말합니다.

 

비트코인 해시는 SHA-256 해시 함수를 사용하며, 16진수의 64자리 문자열로 변환을 하게 됩니다.

 

예시로 '사랑해'라는 단어를 사용하여 해시 함수를 테스트해 본 결과 c5510D로 시작하는 문자열을 얻을 수 있었습니다.

 

SHA-256 해시 함수 생성기
PasswordsGenerator닷넷 제공 SHA-256 해시 함수 생성기

 

SHA-256 생성기 테스트

 

해시의 특징은 글자를 구성하는 단어의 한 글자 또는 하나의 숫자만 바뀌어도 전혀 다른 해시 값을 갖도록 하며, 직접 SHA-256 생성기 테스트를 원하시는 분들은 사용해 보시기 바랍니다.

 

2. 블록 헤더 (Header)

블록 헤더(Header)는 각 블록마다 버전, 이전 블록의 해시, 머클 해시, 블록 생성 시간, 난이도, 논스 등의 정보를 담고 있으며, 블록 헤더는 이전 블록의 해시 정보를 담고 있어 블록들 간 서로 연결 구조를 갖게 됩니다.

 

블록 헤더와 블록 바디는 서로의 정보를 비교해 가면서 데이터의 위변조 유무를 확인하고, 무결성을 검증하게 됩니다.

 

3. 블록 바디 (Body)

블록의 바디(Body)는 블록에 담기는 일정 시간 동안의 거래정보로, 이 거래내역들을 트랜잭션(Transaction)이라고 합니다.

 

 

머클 트리(Merkle Tree)

머클 트리, 머클 루트에 대한 정의와 그 생성 과정에 대해서 살펴보면 다음과 같습니다.

 

1. 머클트리 (Merkle Tree), 머클루트 (Merkle Root)

머클트리는 블록에 포함된 모든 거래내역을 나무 형태로 요약한 것으로, 블록 내의 거래 원장들을 암호화하고 합치는 과정으로 더 이상 쌍을 지을 수 없을 때까지 반복하게 되는데, 이렇게 트리 구조를 형성하는 암호화 과정을 머클 트리라고 합니다.

 

이러한 머클 트리를 통해 얻게 되는 최종의 해시값을 머클 루트(Merkle Root)라 하고, 머클 루트는 아무리 많은 거래가 발생한다 할지라도 그 용량은 하나의 압축된 일정한 값을 갖는 특징이 있습니다.

 

2. 머클 트리의 유래 및 배경

머클트리는 블록의 바디(Body) 영역에 포함되는 모든 거래 정보를 특정 크기의 단위로 암호화 알고리즘(예 : SHA-256)을 적용하고, 또 여러 단계를 거쳐 해시값이 만들어지는데, 이 해시값들이 트리 형태의 구조를 이루고 있어 고안자 랄프 머클 (Ralph Merkle)의 이름을 딴 '머클 트리(Merkle Tree)'라고 부르게 되었습니다.

 

네이버 지식백과 제공 머클 트리
네이버 지식백과 제공 머클 트리

 

3. 머클 트리 및 루트 생성 과정

머클 트리의 최상위에 위치하는 해시값을 머클 루트라고 하고, 머클 트리 루트를 생성하는 과정은 다음과 같습니다.

 

첫 번째, 블록 내의 모든 거래 정보들(트랜잭션)의 해시값을 계산하고, 이 해시값을 리프(Leaf)라고 합니다.

두 번째, 두 개의 리프 데이터를 연결하여 해시값을 구하는데, 이를 리프 데이터에 대한 부모 데이터라고 합니다.

세 번째, 가장 가까운 거래내역끼리 쌍을 지어 해시화 하고, 쌍을 지을 수 없을 때까지 반복하여 해시값을 구하게 되는데, 이때 맨 아래 최종 해시값이 머클 루트가 됩니다.

 

 

지금까지 블록체인이란 무엇인가에 대한 블록체인 정의, 블록과 블록해시 그리고 머클루트 및 머클 트리에 대해서 알아보는 시간을 가져 보았습니다.

 

 

2024.02.06 - [코인] - 비트코인이란 무엇인가, 비트코인 투자를 하는 이유는?

 

비트코인이란 무엇인가, 비트코인 투자를 하는 이유는?

비트코인 시세와 그 전망 분석에 대한 내용의 글은 그동안 꾸준히 포스팅을 하고 있습니다만, 정작 비트코인 투자를 위한 비트코인 하는 법 또는 비트코인 투자방법에 대해서는 포스팅을 하지

iluilukr.tistory.com

 

2024.03.20 - [코인] - NFT 란 무엇인가?

 

NFT 란 무엇인가?

NFT 란 무엇인가?NFT란 Non-Fungible Token의 약자로 블록체인 기술을 활용한 자산의 고유성과 소유권을 증명하는 핵심 기술로, '대체 불가 토큰' 이라고 합니다. NFT는 디지털 자산마다 고유번호가 부여

iluilukr.tistory.com

 

2022.03.21 - [코인] - NFT의 세계관 그리고 WEB 3.0 시대의 도래

 

NFT의 세계관 그리고 WEB 3.0 시대의 도래

NFT 간략 정의 오늘은 짧은 지식이지만 NFT에 대한 내용과 WEB 3.0의 의미를 알아가는 시간으로 꾸며 보도록 하겠습니다. NFT 라는 말은 많이 들었는데, 도데체 이게 무엇이고 또 어떻게 발전하고 있

iluilukr.tistory.com

반응형

댓글