시리즈: 파이썬 개발자가 블록체인을 파헤치다
기초 프로그래밍 지식이 있는 분들을 위한 시리즈입니다. 코드 예시도 나오지만, 읽는 것만으로도 충분히 이해할 수 있습니다.
“블록체인(Blockchain)”은 두 단어의 합성어입니다.
쉽게 말하면, 전 세계 노드들이 함께 관리하는 분산 장부(Distributed Ledger) 입니다. 중앙 서버가 없어도 위조가 불가능한 이유가 바로 이 구조에 있습니다.
블록 하나를 실제로 열어보면 크게 두 부분으로 나뉩니다.
┌──────────────────────────────────┐
│ 블록 헤더 │
│ - 이전 블록 해시 (prevHash) │ ← 체인 연결의 핵심
│ - 타임스탬프 │
│ - 트랜잭션 머클루트 (Merkle Root)│
│ - 난이도 / Nonce │
├──────────────────────────────────┤
│ 트랜잭션 목록 │
│ TX1: Alice → Bob 10 ETH │
│ TX2: Charlie → Dave 5 ETH │
│ TX3: ... │
└──────────────────────────────────┘ 여기서 prevHash가 핵심이에요. 각 블록은 이전 블록 전체 내용의 해시값을 담고 있어서, 중간 블록 하나를 변조하면 그 이후 블록의 prevHash가 전부 맞지 않게 됩니다. 위조를 하려면 그 블록부터 현재까지의 모든 블록을 다시 계산해야 합니다.
트랜잭션 목록을 효율적으로 검증하기 위한 구조입니다.
[루트 해시]
/ \
[Hash AB] [Hash CD]
/ \ / \
[Hash A][Hash B][Hash C][Hash D]
| | | |
TX_A TX_B TX_C TX_D 특정 트랜잭션 하나만 변조돼도 루트 해시가 바뀌기 때문에, 수천 개의 트랜잭션 중 특정 것만 빠르게 검증할 수 있습니다. 라이트노드가 이 방식을 활용합니다.
ARK 블록체인을 예로 들어볼게요. 2017년 3월에 런칭한 체인입니다.
현재(2026년 6월) ARK 블록체인에는 약 3,620만 개의 블록이 있습니다.
# 계산해보면:
block_time = 8 # 초
seconds_per_day = 86400
daily_blocks = seconds_per_day / block_time # 10,800개
years = 9
total = daily_blocks * 365 * years # 약 3,550만개 ✓ 비교해보면:
| 블록체인 | 블록 생성 주기 | 현재 블록 수 |
|---|---|---|
| 비트코인 | 10분 | ~85만 개 |
| 이더리움 | 12초 | ~2,000만 개 |
| ARK | 8초 | ~3,620만 개 |
블록 #1부터 현재까지 전체 블록 데이터를 저장하고, 모든 트랜잭션을 직접 검증합니다.
저장 용량: ARK 기준 수십 GB
역할: 독립적 검증 가능 → 누구도 믿을 필요 없음
운영 비용: 서버 + 전기 (월 2,000원 ~ 수만 원) 블록 헤더만 저장하고, 트랜잭션 검증은 머클 증명을 이용해 풀노드에 의뢰합니다.
저장 용량: 풀노드의 수천분의 1
검증 방식: 머클 증명(Merkle Proof)으로 특정 트랜잭션만 확인
단점: 풀노드를 신뢰해야 함 MetaMask, ARK 모바일 지갑 같은 앱은 블록을 하나도 저장하지 않고, 풀노드 서버에 RPC(Remote Procedure Call) 로 질의합니다.
앱 → RPC 요청 → 풀노드 서버 → 응답
"이 주소의 잔액이 얼마야?" "이 TX가 컨펌됐어?" ARK는 DPoS(Delegated Proof of Stake) 방식을 씁니다.
ARK 토큰 보유자 투표
↓
득표 상위 51명 → Active Delegate 선출
↓
8초마다 한 명씩 돌아가며 블록 생성
(라운드마다 순서 랜덤 셔플) Delegate가 자기 차례에 블록을 못 만들면 missed block으로 기록되고, 신뢰도가 떨어져 투표를 잃을 수 있습니다.
51명이라는 숫자가 너무 적다는 점은 알고 있어야 합니다.
과반수 장악에 필요한 수: 26명
→ 대규모 자본이 ARK를 매수해 투표권 장악 시 가능
→ 실제로 EOS(2019), Steem(2020)에서 유사 사건 발생 반면 이더리움 PoS는 검증자가 100만 명 이상이라 이런 공격이 현실적으로 불가능합니다.
| 개념 | 설명 |
|---|---|
| 블록 | 트랜잭션 묶음 + 이전 블록 해시 |
| 머클 트리 | 트랜잭션 효율적 검증 구조 |
| 풀노드 | 전체 블록 저장, 독립 검증 |
| 라이트노드 | 헤더만 저장, 머클 증명 활용 |
| DPoS | 투표로 선출된 소수 대표자가 블록 생성 |
2편에서는 이더리움 채굴(PoW)의 핵심인 Ethash 알고리즘을 파헤쳐봅니다. Cache → DAG → Hashimoto로 이어지는 구조와, GPU가 왜 필수였는지 코드 수준에서 살펴봅니다.
질문이나 피드백은 댓글로 남겨주세요. 최대한 빠르게 답변드릴게요!
중고거래 안전결제, 다들 써보셨죠? AI 결제에도 이게 필요합니다. 문제는, 생각보다 훨씬 까다롭다는 거예요. 중고거래를 떠올려…
앞 편의 x402가 자판기였다면, 이번 두 방식은 '용돈 한도'와 '술집 외상장부'에 가깝습니다. 앞 편 복습:…