블록체인

BiteSnail·2023년 12월 11일
0

개념 및 정의

블록체인(Blockchain)이란 하나 이상의 블록(Block)들이 체인(Chain)처럼 결합되어 있는 것을 의미합니다.

블록이란?

블록은 블록체인 내부에 정보를 저장하고 있는 객체들로 블록 헤더(Block header)와 블록 데이터(Block Data)로 이루어져있습니다.
아래 그림은 블록체인에 대한 간단한 모식도입니다.

블록 헤더에는 블록에 대한 정보들이 들어있는데 특이하게도 블록 해쉬(Block Hash)라는 값을 가지고 있습니다. 그리고 이전 블록 해쉬를 통해 각 블록들이 연결되고 있다는 것을 알 수 있습니다.

블록 헤드

블록헤드에는 해쉬 값 이외에도 블록에 대한 다양한 정보가 포함되어 있습니다.
1. 버전 번호 - 블록체인 프로토콜의 버전
2. 머클 루트(Merkel Root) - 블록에 포함된 모든 거래들의 해시값을 이용하여 생성된, 특별한 형태의 해쉬로 블록 내 모든 거래들이 변경되지 않았음을 보장합니다.
3. 타임스탬프(Timestamp) - 블록이 생성된 시간을 기록합니다.
4. 난이도 목표(Difficulty Target) - 블록을 생성하기 위해 충족해야 하는 작업 증명 알고리즘의 난이도를 나타냅니다.
5. 논스(Nonce) - 블록을 채굴하기 위해 변경하는 수치로 흔히 채굴이라는 것은 이 값을 찾기 위한 시도라고 할 수 있습니다.

머클루트

블록에서 데이터는 여러 개의 트랜잭션으로 구성되어 있습니다. 이 트랜잭션들로 만들어진 해쉬 값들을 이용해 머클 루트라고 하는 해쉬 값을 만듭니다.

위 그림에서 Tx는 Block Data 내부의 각 트랜잭션입니다. 이것은 하나의 해쉬값으로 나타내지게 되고 이 해쉬값들은 재귀적으로 합쳐지게 됩니다.
위 그림에서 Hash0과 Hash1을 합친 것이 새로운 번호로 나타나지 않고 Hash01로 표현되는 것은 그 이유 때문입니다.
Hash01은 Hash0의 앞 절반과 Hash1의 뒷 절반을 이용해 만든 새로운 해쉬값으로 최종적인 연산 결과는 머클 루트에 저장되게 됩니다.

논스

새로운 블록을 체인에 추가하는 작업에 대한 증명이 필요한데, 이를 PoW 혹은 작업증명이라고 합니다. 새로운 블록에 대한 블록 해쉬를 구할 때에는 블록 헤더 값을 사용하는데, 논스(Nonce)는 이 블록 해쉬가 특정 값보다 작아지게 만드는 어떤 값 입니다.
이런 논스 값을 구하는 것이 우리가 채굴이라고 부르는 과정이고 이것은 난이도 목표라고 불리는 비트수에 따라 결정됩니다.

난이도 목표

난이도 목표는 비트 수로 결정되는데 비트 수가 많으면 많을 수록 난이도가 낮아집니다. 왜냐하면 해쉬 전체 길이가 64bit라고 할 때 63bit보다 작아지게 만드는 어떤 값들은 263/264 만큼 존재합니다. bit수가 적으면 적을 수록 이를 만족하게 되는 값들이 줄어들게 됩니다. 하지만 그만큼 블록을 만들 수 있는 개수 또한 줄어들기 때문에 적절한 선택이 필요합니다.

보상

논스 값을 구하는 과정은 랜덤한 값을 이용해 난이도 목표를 달성하는 해쉬 값을 계속해서 찾아가는 과정으로 많은 컴퓨팅 파워가 필요합니다. 채굴 머신이 여러 대의 그래픽카드를 이용해서 만들어지는 이유입니다. 간단한 계산이지만 많은 양의 계산이 필요하기 때문입니다.

출처: https://www.ddengle.com/mining/151887

트랜잭션

트랜잭션이란 하나의 거래를 말합니다. 하지만 단순한 문자열의 나열이 아닌 특정한 패턴으로 이루어진 스크립트라고 할 수 있습니다.

출처: https://learnmeabitcoin.com/technical/script
이는 데이터 영역과 스크립트 부분으로 나뉩니다. 데이터는 내부적으로 스택에 저장되고 스크립트는 왼쪽에서부터 오른쪽으로 실행됩니다.

사용 이유

블록체인은 데이터의 무결성을 강력하게 보장하는 기술입니다. 누군가 악의적으로 내부 값을 변경하려고 한다면 그와 연관된 모든 블록들의 해쉬값을 계산하고 수정해야 합니다. 가능은 하겠지만 매우 큰 컴퓨팅 자원을 필요로 합니다. 이는 비효율적인 작업이므로 시도되지 않을 것이고 블록체인으로 구성된 데이터들은 무결성을 가지게 된다고 할 수 있습니다.

profile
느리지만 조금씩

0개의 댓글

관련 채용 정보