BLOCKCHAIN
BLOCKCHAIN
BLOCKCHAIN 은 중앙 기관 없이도 단일한 진실(Single Source of Truth)을 합의하기 위한 프로토콜(protocol)이며, 중앙 기관 없이 여러 참여자들이 거래 이력을 함께 관리하는 분산 장부(Distributed Ledger) 이다.
기존 전자 결제에서는 이중 지불 문제(double spending problem) 가 존재한다. 이중 지불 문제란 화폐를 두 번 이상 무단으로 사용되는 경우를 의미한다. 예를 들면 트랜잭션의 비명시적 일관성(e.g 계좌 이체에서, A 계좌에서 출금이 일어나고 그 돈이 B 계좌로 입금된다 했을 때, 트랜잭션의 전과 후 두 계좌 잔고의 합이 같아야 한다.)이 깨져서 발생할 수도 있다. 이러한 문제를 막기위해 중앙화된 신뢰 기관을 두었다. 이는 중앙 기관 관리자가 데이터를 조작하지 않을 것이라는 신뢰가 바탕이 되어야 한다. 즉, 금융 기관에 대한 의존성(trust-based model)을 바탕으로 한다. 하지만 이러한 centralized 특징은 중앙 기관을 신뢰할 수 없게 되는 경우 시스템 전체가 붕괴되는 SPOF(Single Point Of Failure)가 발생한다.
이러한 문제를 해결하기 위해서 블록체인 기술을 최초로 실용화한 디지털 화폐 시스템인 Bitcoin: A Peer-to-Peer Electronic Cash System 이 탄생하였으며, 이를 만든 Satoshi Nakamoto 는 기존 전자 결제가 다음과 같은 5가지 문제점을 갖는다고 하였고, 이를 암호학적 증명으로 대체하고자 했다.
- 금융기관에 대한 의존성 (Trust-based model)
- 이중지불(Double-spending) 문제
- 중개기관의 수수료 및 거래 제한
- 소액결제의 비효율성
- 거래의 비가역성 부족
비트코인은 은행도 없고, 물리적 지폐도 없다. “누가 이 돈의 진짜 주인인가를 중앙 기관 없이 어떻게 증명할 수 있을까?” 에 대한 해답은 Digital Signature Chain 이다.
Bitcoin Core Solution
비트 코인의 핵심 솔루션은 Digital Signature Chain(소유권 증명) + Timestamp Server(거래 순서 증명) + Proof-of-Work(합의와 보안의 핵심) 이다.
Digital Signature Chain
전자 화폐는 디지털 서명들의 체인이다. 즉, 비트코인의 소유권은 ‘서명된 거래 기록이 끊임없이 이어진 체인’으로 증명된다는 뜻이다.
예시를 살펴보자. A는 현재 비트코인 주인이다. (과거 거래 기록들을 따라가면 가장 마지막에 A에게 유효하게 서명된 거래가 있다는 의미이다.) 그리고 A가 B에게 비트코인을 보내고 싶은 경우
A는 [이전 거래 정보 + 다음 소유자 B의 공개키] 를 A의 자신 개인키로 서명한다. 이 행위는 "이 비트코인을 소유한 내가 B에게 넘기는 것을 동의한다"라는 의미를 가지고 있다.
이 서명은 위조가 불가능하다. 왜냐하면 A의 개인키는 A만 알고 있고, 공개키로 서명을 검증하면 송신자인 A가 정말 서명했는지를 누구나 검증할 수 있기 때문이다. 즉, A가 아닌 다른 누군가는 이 거래를 만들 수 없다.
B는 소유권을 얻기 위해서 이 거래(transaction)를 A의 공개키로 검증한다. 그리고 다음 거래에서, B는 자신의 개인키로 서명하여 또 다른 사람에게 넘길 수 있다.
각 거래가 이전 거래를 참조하는 chain 형태는 한 거래라도 조작하면 그 이후 모든 서명이 깨지게 된다.
정리하면 디지털 서명 체인은 다음과 같은 특징을 갖는다.
- 누가 진짜 소유자인지 증명
- 중앙 기관 없이 소유권 이전 가능
- 개인키 없이는 위조 불가능
하지만, 어느 거래가 먼저였는지 ?, 같은 코인을 두 번 쓰지 않았다는 걸 어떻게 증명할지에 대한 문제는 해결되지 않는다. 이 문제를 해결하기 위한것이 Timestamp Server 이다.
Timestamp Server
Timestamp Server 는 거래 순서 증명을 위한 것으로 여러 거래를 하나로 묶고 그 묶음에 '시간'과 '이전 기록'을 함께 고정한다.
구체적인 방식은 다음과 같다. 일정 시간 동안 발생한 여러 거래(Transaction)를 모은다. 이 거래들을 하나의 해시값으로 요약한다. 이 해시는 거래 묶음의 지문(fingerprint) 역할을 한다. 그 다음 거래 해시 + 생성 시각(timestamp) + 기타 메타 정보들을 하나의 블록(Block) 으로 만든다. 새 블록은 이전 블록의 해시를 포함한다.
Blockchain Structure:

Timestamp Server 로 인해서 거래 순서가 증명된다. 또한 이 거래 순서 덕분에 이중 지불 문제를 방지할 수 있게 된다. 하지만 "누가 블록을 만들 권한을 가지는가?", "악의적인 노드가 가짜 체인을 만들면?" 과 같은 문제가 남아있다. 이러한 문제를 해결하는 것이 Proof-of-Work 이다.
Proof-of-Work
작업증명(Proof of Work, PoW) 은 블록체인에서 복잡한 수학 문제를 가장 먼저 푸는 참여자(채굴자)에게 블록을 기록할 권한을 주고 보상을 주는 합의 메커니즘으로, 비트코인 등에서 네트워크 보안과 거래 검증의 핵심 역할을 한다.
PoW는 '노력(Work)'을 증명하여 '합의(Consensus)'를 이루는 방식이며, 이는 블록체인 네트워크의 신뢰와 보안을 유지하는 근간이 된다.
작동 원리 (채굴 과정):
- 데이터 수집: 채굴자들은 거래 데이터를 모아 하나의 블록으로 만든다.
- 문제 풀이 경쟁: 이 블록의 데이터를 특정 조건을 만족하는 해시(hash) 값으로 바꾸는 '논스(nonce)'라는 숫자를 찾기 위해 무작위로 계산을 반복(해시 연산).
- nonce 값을 바꿔가며 블록 해시를 계산을 하며, 조건을 만족할 때까지 무한 반복한다. 이것이 바로 작업(work) 이다.
- 정답은 운에 가깝지만 시도 횟수는 CPU 파워에 비례하기 때문에 더 많은 연산 자원을 가진 노드일수록 블록을 만들 확률이 높아진다.
- 정답 발견: 가장 먼저 '어려운' 조건을 만족하는 해시 값을 찾은 채굴자가 승리한다.
- 블록 추가 및 보상: 승리한 채굴자는 해당 블록을 네트워크에 전파하고, 다른 참여자들이 이를 검증한다. 검증이 완료되면 블록이 체인에 추가되고, 승리한 채굴자는 새로 발행된 코인과 거래 수수료를 보상으로 받는다.
특징:
- 에너지 소비: 높은 연산 요구량 때문에 에너지 소비가 많고, 고사양 장비가 필요해 일부 채굴 집중 현상(중앙화)을 유발하기도 한다.
Double Spending Problem
이중 지불 공격 시나리오 (Double Spending Attack)를 살펴보자.
해커가 시스템을 속이려 할 때 벌어지는 일을 "경주(Race)"에 비유할 수 있다. 공격자의 체인과 정상적인 체인은 계속되는 작업증명을 통해 격차를 늘리거나 줄이며 경주를 하게된다.
- 상황: 해커가 A에게 1 BTC를 보내고 물건을 받음 (Block 100에 기록).
- 공격: 해커는 동시에 자기 자신에게 1 BTC를 보내는 비밀 블록체인(Fork)을 몰래 만든다.
- 목표: 비밀 체인을 공개 체인보다 더 길게(무겁게) 만들어서 네트워크에 전파하면, 네트워크는 "더 긴 체인"을 선택하므로 A에게 보낸 거래는 무효화된다.
- 방어 (Longest Chain Rule):
- 전체 네트워크의 연산력(Hash Power)이 100이고, 해커가 10을 가졌다고 가정한다.
- 정상 네트워크는 10분마다 90의 힘으로 블록을 쌓고, 해커는 10의 힘으로 쌓는다.
- 시간이 지날수록 정상 체인과 해커 체인의 길이 차이는 지수 함수적으로 벌어진다.
- 따라서 해커가 기존 체인을 추월하려면 전 세계 연산력의 51% 이상을 가져야만 한다(51% Attack).
비트코인은 가장 많은 작업 증명이 누적된 체인을 올바른 체인이라고 판단한다. 이를 “가장 긴 체인(Longest Chain Rule)” 이라고 한다. 더 긴 체인이란 더 많은 연산 비용을 투입한 것이다. 비트코인 개발자인 사토시는 이 상황을 도박꾼의 파산 문제와 유사하다고 말한다. 도박꾼의 파산 문제란 유한한 자산을 가진 도박꾼이 무한한 자본을 가진 카지노를 상대로 도박을 한다면 결국 파산하게 된다는 이론이다. 이와 비슷하게 공격자가 정상적인 체인보다 자신의 체인을 더 길게 만들기 위해 무한대로 시도한다면 결국 실패할 것이라는 내용이다.
이 규칙은 분산 시스템에서의 "동기화(Synchronization) 전략" 이다.
- 비동기 네트워크의 딜레마: 전 세계 노드는 네트워크 지연(Latency) 때문에 서로 다른 최신 블록을 볼 수 있다(일시적 분기, Fork).
- 단순한 해결책 (Protocol): "일단 가장 힘든 작업(PoW)이 들어간 체인을 선택하라."
- 이것이 왜 합리적인가? -> "비용(Cost)" 때문
- 가짜 역사를 만드는 비용 > 조작으로 얻는 이익
- 이 경제적 인센티브 구조가 시스템 보안의 핵심
이러한 프로토콜이 "물리적 에너지(연산)가 디지털 불변성(보안)으로 치환되는 과정" 을 갖는다.