이더리움: 월드 컴퓨터
이더리움을 한 문장으로: “튜링 완전한 스마트 컨트랙트를 실행할 수 있는 분산 세계 컴퓨터”
비트코인이 “분산된 디지털 화폐“라면, 이더리움은 “분산된 컴퓨터“다. 비트코인이 송금이라는 단일 목적으로 설계된 반면, 이더리움은 그 위에 어떤 프로그램이든 실행할 수 있도록 설계되었다.
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 코드와 함께 깊이 분석한다.