Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

이더리움: 월드 컴퓨터

이더리움을 한 문장으로: “튜링 완전한 스마트 컨트랙트를 실행할 수 있는 분산 세계 컴퓨터”

비트코인이 “분산된 디지털 화폐“라면, 이더리움은 “분산된 컴퓨터“다. 비트코인이 송금이라는 단일 목적으로 설계된 반면, 이더리움은 그 위에 어떤 프로그램이든 실행할 수 있도록 설계되었다.


1. 이더리움의 탄생

1.1 비탈릭 부테린 (Vitalik Buterin)

2013년, 당시 19세의 러시아계 캐나다인 프로그래머 비탈릭 부테린은 비트코인의 한계를 깨달았다.

비탈릭의 관찰:
  비트코인 스크립트 언어는 의도적으로 제한적임
    - 반복문(loop) 없음
    - 복잡한 조건 처리 불가
    - 상태(state) 저장 어려움
  
  → "왜 비트코인 위에 더 복잡한 앱을 못 만드는가?"
  → "일반 목적 블록체인을 만들면 어떨까?"

2013년 말 이더리움 백서(Yellow Paper) 발표, 2014년 ICO로 자금 조달, 2015년 7월 30일 메인넷 출시.

1.2 이더리움의 역사 주요 사건

2015.07  Frontier 출시 — 최초 메인넷 (개발자 전용)
2016.03  Homestead — 첫 안정화 버전
2016.06  The DAO 해킹 — 360만 ETH 도난
2016.07  하드포크 → ETH / ETC(클래식) 분리
2017.10  Metropolis 시작 — EIP-1559 기반 작업 시작
2019.12  비콘 체인 스테이킹 시작
2020.12  비콘 체인(Beacon Chain) 출시
2021.08  EIP-1559 활성화 — 기본 수수료 소각 시작
2022.09  The Merge — PoW → PoS 완전 전환 (에너지 99.95% 절감)
2023.03  Shanghai/Capella — 스테이킹 인출 활성화
2024.03  Dencun — EIP-4844 Blob 트랜잭션 (L2 수수료 90% 절감)
2025.05  Pectra — 계정 추상화(EIP-7702), 검증자 한도 상향

1.3 The DAO 해킹과 하드포크 — 불변성의 역설

2016년 The DAO(탈중앙화 자율 조직) 스마트 컨트랙트가 재진입(Reentrancy) 공격으로 360만 ETH가 도난당했다. 커뮤니티는 갈렸다:

찬성 진영: "코드를 롤백해서 피해자를 구해야 한다"
반대 진영: "코드가 곧 법(Code is Law). 불변성을 지켜야 한다"

결과: 하드포크 실행 → 두 개의 체인으로 분리
  ETH  (이더리움)    - 롤백을 선택한 다수
  ETC  (이더리움 클래식) - 불변성을 고수한 소수

이 사건은 “블록체인은 불변이지만 커뮤니티 합의로 프로토콜을 바꿀 수 있다“는 현실을 보여줬다.


2. 이더리움 vs 비트코인

Node.js 개발자 관점에서 두 시스템의 핵심 차이:

비트코인:
  목적: 디지털 화폐, 가치 저장
  스크립트: 제한적인 스택 기반 언어 (튜링 불완전)
  상태: UTXO 집합
  블록 시간: ~10분
  처리량: ~7 TPS
  언어: Script

이더리움:
  목적: 범용 스마트 컨트랙트 플랫폼
  VM: EVM (튜링 완전)
  상태: 계정 기반 글로벌 상태 트리
  블록 시간: 12초
  처리량: ~15-30 TPS (L2 포함 수천 TPS)
  언어: Solidity, Vyper, Yul

스마트 컨트랙트의 차이

비트코인의 “스크립트“로 할 수 있는 것:

  • 특정 주소로만 전송 가능
  • 다중 서명(MultiSig) 조건
  • 시간 잠금(Timelock)

이더리움의 스마트 컨트랙트로 할 수 있는 것:

  • 조건부 자산 이전 (DeFi)
  • 토큰 발행 (ERC-20)
  • 디지털 소유권 증명 (NFT, ERC-721)
  • 탈중앙화 거래소 (DEX)
  • 대출/차입 프로토콜
  • DAO (조직 거버넌스)
  • 게임, 예측 시장, 보험…

3. 이더리움 생태계 개요

3.1 레이어 구조

┌──────────────────────────────────────────────────────────┐
│                    레이어 3 (L3)                          │
│              앱별 특화 롤업 (App-specific)                │
├──────────────────────────────────────────────────────────┤
│                    레이어 2 (L2)                          │
│  Arbitrum │ Optimism │ Base │ zkSync │ Starknet │ Scroll  │
│         (이더리움의 확장 솔루션 — 빠르고 저렴)             │
├──────────────────────────────────────────────────────────┤
│                 이더리움 메인넷 (L1)                       │
│          (보안과 탈중앙화의 최종 기준점)                   │
└──────────────────────────────────────────────────────────┘

3.2 DeFi (탈중앙화 금융)

전통 금융:         DeFi:
  은행 (중개자)      스마트 컨트랙트 (코드)
  영업 시간          24/7 운영
  계좌 개설 필요     지갑만 있으면 됨
  국경 제한          글로벌 접근

주요 DeFi 프로토콜:
  Uniswap    — 탈중앙화 거래소 (DEX)
  Aave       — 대출/차입
  MakerDAO   — 스테이블코인(DAI) 발행
  Compound   — 이자 농사(Yield Farming)
  Curve      — 스테이블코인 간 교환
  
TVL(총 잠긴 가치): 수백억 달러 규모

3.3 NFT (Non-Fungible Token)

대체 가능 (Fungible):
  1 ETH == 1 ETH (동등한 가치)
  
대체 불가능 (Non-Fungible):
  토큰 #1 ≠ 토큰 #2 (각각 고유한 속성)

ERC-721 표준으로 구현:
  - 디지털 아트 소유권
  - 게임 아이템
  - 도메인 이름 (ENS)
  - 실물 자산 토큰화

3.4 L2 생태계 (2025 현재)

이더리움 확장성 문제를 해결하기 위한 레이어 2 솔루션이 폭발적으로 성장했다:

Optimistic Rollup (낙관적 롤업):
  원리: 트랜잭션을 오프체인 처리, 결과만 L1에 기록
  사기 증명(Fraud Proof)으로 검증
  예시: Arbitrum, Optimism, Base (Coinbase 운영)
  인출 대기: 7일 (챌린지 기간)

ZK Rollup (영지식 롤업):
  원리: 영지식 증명(ZK-SNARK/STARK)으로 유효성 수학적 증명
  즉각적 최종성
  예시: zkSync Era, Starknet, Scroll, Polygon zkEVM
  인출: 즉시 가능
  
2025 현재 L2 일일 트랜잭션:
  이더리움 L1: ~100만 TX/일
  전체 L2 합산: ~1000만+ TX/일 (이미 L1의 10배 이상)

4. 현재 상황 (2025-2026)

4.1 Pectra 업그레이드 (2025년 활성화)

Pectra(Prague + Electra)는 이더리움의 최신 주요 업그레이드다:

주요 EIP (개선 제안):

EIP-7702: 계정 추상화
  - EOA(일반 지갑)가 임시로 스마트 계정처럼 동작
  - 가스비를 다른 토큰으로 지불 가능
  - 트랜잭션 일괄 처리
  - 소셜 복구 등 고급 기능

EIP-7251: 검증자 최대 잔액 상향
  - 기존: 검증자당 최대 32 ETH (고정)
  - 변경: 최대 2,048 ETH까지 누적 가능
  - 효과: 검증자 수 감소, 네트워크 효율 향상

EIP-7549, EIP-7685: 검증자 통신 최적화

4.2 이더리움의 로드맵 (The Surge, The Scourge…)

비탈릭 부테린은 이더리움 발전 단계를 색으로 표현했다:

The Merge   ✅ 완료 — PoS 전환
The Surge   🔄 진행중 — L2 확장 (목표: 100,000 TPS)
The Scourge 🔜 예정 — MEV 문제 해결, 검열 저항성
The Verge   🔜 예정 — Verkle 트리 도입 (상태 경량화)
The Purge   🔜 예정 — 히스토리 데이터 정리
The Splurge 🔜 예정 — 기타 개선사항

5. Node.js 개발자를 위한 이더리움 생태계 지도

여러분이 접하게 될 주요 도구들:

개발 언어:
  Solidity    — 스마트 컨트랙트 (주력)
  Vyper       — 더 간결한 대안
  JavaScript  — DApp 프론트엔드, 테스트
  TypeScript  — Hardhat, ethers.js 생태계
  Rust        — 성능 크리티컬 도구 (이 가이드!)

개발 프레임워크:
  Hardhat     — Node.js 기반, 가장 인기 있음
  Foundry     — Rust 기반, 빠른 테스트
  Truffle     — 레거시, 점차 사용 줄어드는 중

라이브러리:
  ethers.js   — JS/TS에서 이더리움 상호작용 (현대적)
  web3.js     — 구버전 대안 (점차 교체 중)
  viem        — 타입 안전한 최신 라이브러리
  alloy       — Rust 생태계의 ethers.js

노드 클라이언트:
  Geth        — Go 언어, 가장 널리 사용
  Besu        — Java, 엔터프라이즈 (이 가이드의 실습 환경!)
  Nethermind  — C#
  Reth        — Rust, 고성능 신예
               (Rust 선택 이유: Go 기반 Geth와 성능 경쟁하면서 합의 임계 코드의
                메모리 안전성 확보. tokio 비동기 런타임으로 수천 개 P2P 피어를
                효율적으로 처리. 병렬 블록 실행을 데이터 레이스 없이 구현)

블록 익스플로러:
  Etherscan   — 메인넷 트랜잭션/계정 조회
  Beaconcha.in — 스테이킹/검증자 조회

6. 왜 이더리움인가? (Node.js 개발자 관점)

// Node.js 백엔드 개발자가 이미 아는 것:
//   - REST API 서버 구축
//   - 데이터베이스 CRUD
//   - 비즈니스 로직 구현
//   - 서드파티 API 연동

// 이더리움으로 확장하면:
//   - 스마트 컨트랙트 = 비즈니스 로직 (백엔드)
//   - 이더리움 상태 = 데이터베이스
//   - ABI = REST API 명세 (OpenAPI)
//   - ethers.js = axios/fetch (클라이언트)
//   - 가스비 = 서버 비용 (하지만 사용자가 냄)
//   - 이벤트(Event) = WebSocket 알림

// Node.js 서버 vs 스마트 컨트랙트:
const expressServer = {
  코드변경: '언제든지 재배포 가능',
  데이터수정: 'UPDATE/DELETE 자유',
  접근제어: 'JWT, 세션',
  비용: '서버 호스팅 비용',
  신뢰: '서버 운영자를 신뢰',
};

const smartContract = {
  코드변경: '배포 후 수정 불가 (업그레이드 패턴 별도 존재)',
  데이터수정: '이벤트로만 기록, 과거 변경 불가',
  접근제어: '개인키(서명) 기반',
  비용: '트랜잭션 가스비 (사용자 부담)',
  신뢰: '코드 자체를 신뢰 (오픈소스, 검증 가능)',
};

7. 핵심 정리

  • 이더리움 = 월드 컴퓨터: 튜링 완전한 스마트 컨트랙트를 실행하는 탈중앙화 플랫폼
  • 비트코인과의 차이: 단순 화폐 기능을 넘어 임의의 프로그램 실행 가능
  • 생태계: DeFi(수백조 원 규모), NFT, L2(이미 L1 트랜잭션의 10배)
  • The Merge: 2022년 PoW → PoS 전환으로 에너지 99.95% 절감
  • Pectra (2025): 계정 추상화(EIP-7702)로 사용자 경험 혁신 진행 중
  • 실습 환경: 우리는 Hyperledger Besu(IBFT 2.0)를 사용해 프라이빗 이더리움 네트워크를 구축

다음 챕터에서는 이더리움의 핵심 구성요소인 계정과 트랜잭션을 ethers.js 코드와 함께 깊이 분석한다.