본문 바로가기
블록체인/크립토 월렛

03. 이론적 배경 - 블록체인의 개요

by 비트코기 2023. 9. 17.

크립토 월렛 분석과 검토를 통한 개인키 관리 및 사례 연구

02. 이론적 배경  


제2절 블록체인의 개요

1. 블록체인의 개념

블록체인(Blockchain)은 데이터나 정보를 분산시켜 저장하는 기술로 탈중앙화, 위·변조 불가, 확장성, 투명한 추적관리, Global 플랫폼과 같은 특징을 갖고 있다. 이 개념은 2008년 사토시 나카모토(Satoshi Nakamoto)에 의해 만들어진 암호화폐인 비트코인의 백서(White Paper)에서 처음 등장하였다. 따라서 이어지는 제2절에서는 비트코인을 기준으로 블록체인에 관해 설명한다.

 

2. 블록체인의 구조

블록체인에서 블록(Block)은 데이터베이스의 블록과 유사하다. 트랜잭션(Transaction)이라는 서비스 실행 최소 데이터를 일정한 크기로 묶어 놓은 단위를 블록이라 한다. 블록의 구조는 크게 3개의 영역으로 나뉘는데 블록체인의 구조는 <그림2-1>과 같다.

<그림 2-1> 블록체인의 구조

 

블록은 3가지 영역으로 구성된다. 그중 Body는 모든 거래 내역이 저장되는 영역이며, Header는 트랜잭션에 대한 정보 요약과 블록과 관련된 정보가 담긴 영역이다. 마지막으로 Block Hash는 Header를 해시함수를 이용하여 하나의 값으로 표현한 대푯값으로, 블록체인에서 해당 블록을 식별하는 기준이 된다. 거래 내역이 계속 발생하면 블록이 계속 생성되고, Block Hash를 통해 체인 형태로 블록체인에 연결된다. 블록의 3가지 영역에 대한 세부 구성요소는 <표 2-1>에 설명한다.

 

<표 2-1> 블록체인의 블록구성요소

영역 구성요소 설명
Block Hash Block Hash 해당 블록의 고유한 식별자로 256비트 크기의 해시값이다.
Block Hash는 헤더와 해당 블록에 포함된 모든 거래의 정보를 기반으로 계산된다.
Header 이전 블록 Hash 32바이트로 구성
해당 블록의 직전 Block Hash 값을 나타낸다.
이전 블록 Hash를 통해 블록체인의 연결성을 유지한다.
버전 4바이트로 구성
해당 블록의 버전을 식별하는 숫자로 소프트웨어 업그레이드나 호환성 유지를 위해 사용된다.
난이도 4바이트로 구성
블록을 생성하는 작업 증명의 난이도를 나타낸다.
난이도를 통해 블록 생성 속도가 일정하게 유지된다.
머클루트 32바이트 구성
해당 블록에 포함된 모든 거래의 머클 트리 루트 해시값을 의미한다.
머클루트를 통해 해당 블록에 포함된 모든 거래가 유효하다는 것을 검증할 수 있다.
Time 4바이트 구성
해당 블록이 생성된 시간을 의미한다.
Nonce 4바이트 구성
작업 증명을 위한 임의의 숫자로 블록 해시를 만드는 데 사용된다.
Body Transaction 비트코인과 같은 화폐 시스템에서 송금을 위해 필요한 일련의 작업 단위(거래)를 의미한다.

 

3. 블록체인 작동원리

블록체인 네트워크에 참여하는 각각의 컴퓨터를 노드라고 한다. 이 노드는 크게 개인키와 공개키를 보관하는 지갑(Wallet)과 전파된 트랜잭션(Transaction)이 신규 블록 생성 이전까지 대기하는 저장소인 메모리 풀(Memory Pool), 장부가 저장되는 블록체인으로 구성된다. 이 노드들의 기능적 역할은 트랜잭션 생성, 검증, 블록 생성 및 채굴, 저장이다.

 

<표 2-2> 노드의 기능적 역할

역할 설명
트랜잭션 생성 지갑의 개인키와 공개키를 이용하여 새로운 트랜잭션을 생성한다.
검증 트랜잭션이 네트워크 전체에 전파되었을 경우 검증한다.
블록 생성 및 채굴 후보 블록을 생성하고 채굴 과정을 거쳐 최종 블록을 생성한다.
저장 합의를 마친 블록을 블록체인에 연결하여 저장한다.

 

트랜잭션을 생성하고 검증이 완료되면 트랜잭션은 Memory Pool에 잠시 대기하고 트랜잭션이 모여서 블록을 생성하면 바로 블록체인에 연결되는 것이 아니라 Memory Pool에 저장된 트랜잭션들을 이용하여 후보 블록을 생성한다. 그리고 후보 블록 중 합의를 위한 네트워크에 참여한 모든 노드끼리 경쟁 과정을 거쳐 하나의 최종 블록이 선정되고 최종 블록 하나만 블록체인에 최종적으로 연결된다. 이때 노드 중 4가지 역할을 모두 수행하는 때도 있지만 일부 역할만 수행하는 노드도 존재할 수 있다. 저장공간과 CPU의 능력이 부족한 스마트폰으로 노드에 참여하면 일반적으로 지갑이나 검증 역할만 수행하고 채굴이나 블록체인 장부 역할은 수행하지 않는다.

 

중앙시스템과 블록체인의 가장 큰 차이는 장부의 형태이다. 중앙시스템은 하나의 장부를 관리하면서 장부의 상태를 갱신하지만, 블록체인은 장부가 분산되어 있어 분산된 장부 사이에 합의 과정이 필요하다. 결국 블록체인에서 새로운 트랜잭션이 발생하면 이를 전체 네트워크에 전파하고 장부를 일치시키는 합의 과정이 필요하다. <표 2-3>은 블록체인 작동 절차를 설명한다.

 

<표 2-3> 블록체인 작동 절차

작동 절차 순서 설명
트랜잭션 생성·전파 및 검증 1 지갑을 통해 트랜잭션(거래)을 생성한다.
2 생성된 트랜잭션은 네트워크를 통해 모든 노드에 전파한다.
3 각 노드는 수신된 트랜잭션을 검증한다.
후보 블록 생성 4 검증된 트랜잭션을 Memory Pool 잠시 저장한다.
5 각 노드는 일정 시간 동안 쌓인 트랜잭션을 모아서 노드별 후보 블록을 생성한다.
대표 블록 선정 6 채굴을 통해 후보 블록 중 대표 블록을 생성한다.
정식 블록 전파
및 블록체인 연결
7 선정된 대표 블록은 다시 네트워크를 통해 모든 노드에 전파된다.
8 각 노드는 수신된 대표 블록을 검증한다.
9 검증된 대표 블록은 각 노드에 저장된 블록체인에 연결된다.

 

블록체인은 시스템적으로 탈중앙화되어 있고 분산된 장부를 구현하며 탈중앙화·분산 구조를 기반으로 화폐 시스템을 구현한 것이다. 이러한 장부 구현에 집중된 화폐로서의 비트코인에 비탈릭 부테린이 블록에 프로그래밍 코드를 삽입하여 스마트 컨트랙트(Smart Contract) 기능을 구현하여 이더리움은 분산 원장이 아닌 분산 컴퓨팅 플랫폼으로 확장된다. 이에 따라 암호화폐의 관리 기능에 집중된 크립토 월렛은 Web3와 DApp을 통해 기능이 확장되게 된다.

 

반응형

댓글