비트코인의 개요
- 비트코인의 등장
- 2008년 사토시 나카모토의 백서 공개
- 2009년 소스코드 공개 (C++ 기반)
- 특징
- 중앙 기관 없이 P2P(피어 투 피어) 방식
- 중앙서버 없음, 참가자들이 거래 기록을 공유하고 저장 (분산원장)
- 실제로 '코인'은 존재하지 않음, 거래 내역만 존재
- 동일 거래 내역을 블록체인(blockchain) 이라는 방식으로 다수의 노드에 분산 저장
중앙형 vs 분산형 원장
- 중앙형 데이터베이스
- 은행 등 중앙 기관이 통제, 기밀성과 무결성 보장
- 해킹 위험이 중앙 집중됨
- 분산 원장 (Distributed Ledger)
- 모든 참여자가 거래 내역을 복사하고 저장
- 하나가 해킹되어도 전체 시스템은 무너지지 않음
- 무결성은 있지만 기밀성은 없음 (공개 거래)
비트코인의 주요 개념
- 거래(Transaction)
- 주소(Bitcoin address)
- 지갑(Bitcoin wallet)
- 블록(Block), 블록체인(Blockchain)
- 채굴(Mining)과 보상
- 작업증명(Proof of Work, PoW)
거래와 주소의 개념
- 거래(Transaction) = 비트코인의 흐름
- 주소(Bitcoin Address) = 익명 ID (실명 대신 사용), 공개키를 사용
- 거래는 체인 형태로 연결됨
- UTXO(미사용 잔액)를 기반으로 누가 얼마를 어디로 보냈는지 파악 가능
주소 개념 요약
- 주소는 가명이며, 공개키로 생성됨
- 송신자는 개인키로 서명 → 누구에게 얼마 보냈는지 증명
비트코인 지갑(wallet)
- 개인키를 저장하는 장치 또는 프로그램
- 종류: 소프트웨어 지갑, 하드웨어 지갑, 종이 지갑
- 지갑 = 소유 증명 도구 + 거래 기록 추적 도구
블록(Block)
- 여러 개의 트랜잭션을 모아 순서대로 기록
- 블록에는 트랜잭션들의 모음이 포함됨
- 블록이 연결되어 블록체인 형성
블록체인 구조와 원리
- 블록은 이전 블록의 해시(hash) 값을 포함
- 조작 방지 기능:
- 변경 시 이후 블록의 해시도 바뀌므로 감지 가능
- 많은 노드가 동일한 사본을 보유 → 조작이 어려움
비트코인 네트워크와 노드
- 비트코인은 P2P 네트워크
- 노드 종류:
- Full Node: 전체 블록 저장
- Lightweight Node: 전체 블록 미보유, 일부만 저장
거래 및 블록 생성
- 거래를 만들고 주변 노드에 전파 (broadcast)
- 각 노드는 받은 거래를 transaction pool에 저장
- 이 거래들을 모아 블록으로 만들고 블록체인에 추가
거래 처리 및 블록 생성
🔸 블록 생성 과정
- 거래 발생 → 각 노드의 트랜잭션 풀에 대기
- 각 노드가 일부 트랜잭션을 선택하여 블록 생성 시도
- 여러 노드가 동시에 블록 생성 경쟁 → 누가 먼저 성공하느냐에 따라 체인에 연결됨
- 먼저 생성된 블록만 인정, 나머지 블록은 무효(취소됨)
채굴과 작업 증명 (Proof of Work, PoW)
🔸작업증명(채굴)의 개념
- SHA-256 해시 함수를 사용하여 새 블록의 해시 값을 만듦
- 이 해시 값이 목표 값 이하(difficulty target)일 때 유효
- 이걸 맞추기 위해서 nonce 값을 계속 바꾸며 시도 (무작위 시도, brute force)
- 성공하면 블록체인에 추가됨
🔸 예시
- 해시 값의 앞부분에 0이 많이 나와야 함 (ex: 앞 20비트 이상이 0일 확률)
난이도(Difficulty)와 해시 타겟 변화
- 난이도 계산 공식:
- Difficulty = Max Target / Current Target
- 난이도가 높을수록 블록 생성이 어려워짐 (성공 확률 낮음)
연도별 예시 (블록 높이)
- 2025년 5월 기준 난이도: 1.21 × 2⁶⁶
- 2024년 5월: 8.38 × 2⁶⁶ -> 가장 높은해
- 2023년 5월: 4.95 × 2⁶⁵
- 2022년 5월: 1.0 × 2⁶⁴
-> 시간이 갈수록 난이도 상승 중!
채굴에 필요한 작업(Work)
- PoW는 '유효한 nonce 값을 찾는 것'
- 많은 연산을 필요로 하므로 전문 장비(CPU, GPU, ASIC) 필요
- 운(무작위성) + 계산 능력(자원)의 경쟁
채굴 보상
🔸채굴 보상의 종류:
- 코인베이스 트랜잭션: 새 비트코인 생성 (기본 보상)
- 거래 수수료(Transaction Fee): 블록 안의 거래에서 나오는 수수료
🔸예시:
- 현재 보상: 3.125 BTC (2024년 반감기 이후)
- 과거에는 6.25 → 12.5 → 25 → 50 BTC → 점점 반감됨
- 채굴자는 수수료가 높은 거래를 선호
블록 생성 경쟁과 취소
- 여러 노드가 블록을 동시에 만들 수 있음
- 하지만 가장 먼저 만들어진 블록만 인정
- 다른 블록은 취소되고, 그 안에 있던 거래는 다시 대기
반감기와 비트코인 총 발행량
- PoW 난이도 조절: 10분당 블록 생성 유지
- 보상 반감기(Halving): 약 4년마다 보상량 반으로 줄음
- 총 발행량:→ 수학적 수렴으로 인해 발행량은 약 2100만 개로 제한
- 50 × (1 + 1/2 + 1/4 + ...) ≈ 21,000,000 BTC
Bitcoin: Issues
⚠️ 확장성 문제 (Scalability Issue)
- 블록 크기 제한: 1MiB (약 100만 바이트)
- 하나의 블록에 들어갈 수 있는 트랜잭션 수가 제한적
- 약 10분에 하나의 블록 → 초당 처리 가능 거래 수는 10건 이하
- 해결방안: 오프체인 거래(off-chain transactions)
⚠️ 마이닝 풀 집중 문제
- 소수의 마이닝 풀이 전체 해시파워를 차지하면 중앙화 위험
⚠️ 노드 종류 이슈
- Full node는 전체 블록체인 저장
- Thin client는 Merkle Tree 활용하여 일부 데이터만 저장
Merkle Tree 구조
Merkle Tree란?
- 모든 트랜잭션의 해시를 트리 구조로 만들어, 하나의 **루트 해시(root hash)**로 요약
- 블록헤더에 루트 해시만 저장
- 어떤 트랜잭션이 블록에 있는지 부분 정보만으로 증명 가능
- 일부 트랜잭션을 제거해도 블록 구조는 유지됨 (공간 절약)
Other Blockchains
블록체인 원리 복습
- 중앙 없이 참여자가 거래 기록을 나누어 저장
- 위조 방지, 무결성 유지, 탈중앙화
블록체인의 개념 확장
- 단순한 거래 기록 → 분산 컴퓨팅 플랫폼
- 예: 블록체인 위에서 스마트 계약 프로그램 실행
Ethereum 개요
- EVM (Ethereum Virtual Machine): 이더리움의 가상 컴퓨터
- 스마트 컨트랙트: 조건 충족 시 자동 실행되는 코드
- 언어: Solidity
- 가스(gas): 스마트 계약 실행 비용
- PoW → PoS로 전환 (The Merge, 2022)
Ethereum yellow paper 요약
🔸이더리움 구조
- 상태 기반 머신 (state machine)
- 트랜잭션을 처리하며 상태 변화 저장
🔸Block
- 블록은 일련의 트랜잭션을 저장하는 저널
- 상태 자체는 저장하지 않고 변화만 기록
🔸World State
- 주소와 상태를 매핑하는 데이터 구조 (Merkle Patricia Tree 사용)
🔸주요 필드
- gasPrice, gasLimit, to, value, data 등
이더리움의 PoS 전환
PoS (Proof of Stake) 작동 방식
- 검증자(validator)가 블록 생성
- 최소 32 ETH 스테이킹 필요
- 보상과 패널티 존재 (오프라인이면 패널티)
- 이점: 속도, 보안, 확장성 개선
Hyperledger
하이퍼레저 개요
- 비공개/허가형 블록체인
- 기업 간 협업 목적
- 공개 블록체인의 자원 낭비, 속도 문제 극복
- 대표 플랫폼: Hyperledger Fabric
NFT
- 대체 불가능한 토큰 (Non-Fungible Token)
- 고유한 메타데이터와 소유권을 블록체인에 기록
🔸NFT 구성 요소
- 대부분 ERC-721 또는 ERC-1155 표준 사용
- 콘텐츠 자체가 아니라 참조(reference)만 기록 (off-chain)
- 스마트 컨트랙트로 민팅, 전송, 소각 가능
'컴퓨터 보안' 카테고리의 다른 글
| Topic 05. Artificial Intelligence and Security (2) | 2025.06.06 |
|---|---|
| 13장-Digital Signature (0) | 2025.05.30 |
| 10장-기타 공개키 암호 시스템 (1) | 2025.05.27 |
| 9장-공개키 암호 & RSA (0) | 2025.05.13 |
| 12장-MAC (0) | 2025.05.11 |