본문으로 건너뛰기

이더리움 백서 해설: 스마트 컨트랙트 플랫폼

2013년 말, 비탈릭 부테린(Vitalik Buterin)이라는 19세 프로그래머가 블록체인 지형을 바꿔놓을 문서를 공개했습니다. *“Ethereum: A Next-Generation Smart Contract and Decentralized Application Platform”*이라는 제목의 이 백서는 단순히 돈을 전송하는 것을 넘어 훨씬 더 많은 일을 할 수 있는 블록체인을 제안했습니다. 그가 그린 미래는 범용(General-purpose) 프로그래머블 블록체인이었습니다. 상상할 수 있는 어떤 애플리케이션이든 실행할 수 있는, 탈중앙화된 월드 컴퓨터였죠.

이 가이드는 이더리움 백서의 핵심 개념과 설계 결정, 그리고 장기적 영향을 따라가며, 비탈릭의 비전이 급진적인 제안에서 출발해 수천억 달러 규모 생태계의 기반으로 자리 잡기까지의 과정을 설명합니다.

역사적 배경

비트코인의 한계

2013년까지 비트코인은 탈중앙화되고 신뢰가 필요 없는 가치 전송 시스템이 가능하다는 것을 증명했습니다. 하지만 비트코인의 스크립팅 언어는 의도적으로 제한되어 있었습니다. 멀티시그, 타임락 같은 단순 조건은 처리할 수 있었지만 복잡한 애플리케이션을 지원하지는 못했습니다. 부테린은 이렇게 썼습니다:

"비트코인에 구현된 스크립팅 언어는 몇 가지 중요한 측면에서 제한되어 있다 — 본질적으로 스택 기반이며, opcode 집합이 매우 제한적이고, 기술적으로 '튜링 불완전(Turing-incomplete)'하지만 이는 버그가 아니라 기능으로 여겨진다."

탈중앙화 애플리케이션을 만들고 싶던 개발자들은 비트코인의 제한된 스크립팅을 억지로 활용해 해결책을 ‘땜질’하거나, 아예 새로운 블록체인을 처음부터 만들어야 했습니다. 그러면 각각 고유의 합의 메커니즘, 네트워크, 보안 모델을 갖게 되어 비효율적이고 생태계가 파편화됩니다.

범용 플랫폼의 필요

부테린은 어떤 탈중앙화 애플리케이션이든 지원할 수 있는 단일 플랫폼의 기회를 포착했습니다. 파일 저장용 블록체인, 신원용 블록체인, 예측 시장용 블록체인을 각각 따로 만드는 대신, 모든 것을 해낼 수 있는 하나의 프로그래머블 블록체인을 만들면 어떨까요?

그가 든 비유는 컴퓨팅입니다. 덧셈, 뺄셈, 곱셈을 위해 각각 다른 계산기를 만드는 대신, 어떤 프로그램이든 실행할 수 있는 범용 컴퓨터를 만들죠. 이더리움은 범용 블록체인이 되려 했습니다.

이전의 시도들

이더리움 이전에도 블록체인 기능 확장을 시도한 프로젝트들이 있었습니다:

  • Colored Coins: 비트코인 트랜잭션에 메타데이터를 붙여 다른 자산을 표현
  • Metacoins: 비트코인 위에서 동작하는 프로토콜(카운터파티, 마스터코인/옴니)
  • Namecoin: 탈중앙화 도메인 등록을 위한 비트코인 포크
  • Ripple: 디지털 결제 네트워크(중앙화된 합의)

각 시도는 한계를 가지고 있었고, 이더리움의 설계는 이를 극복하려 했습니다.

백서의 핵심 개념

UTXO가 아니라 계정(Accounts)

부테린은 이더리움을 비트코인과 구분 짓는 근본적인 설계 선택을 했습니다. 비트코인의 UTXO 모델 대신 계정 기반 모델을 채택한 것입니다.

이더리움에서 상태(state)는 계정들로 구성되며, 각 계정은 다음을 가집니다:

  • Nonce: 각 트랜잭션이 한 번만 처리되도록 보장하는 카운터
  • 이더 잔액(Ether balance): 보유한 ETH의 양
  • 컨트랙트 코드(Contract code): (해당 시) 스마트 컨트랙트 바이트코드
  • 스토리지(Storage): 영구 데이터(컨트랙트 계정의 키-값 저장소)

계정은 두 종류입니다:

  1. 외부 소유 계정(EOA): 개인키로 제어되며 코드가 없음
  2. 컨트랙트 계정: 코드로 제어되며 메시지를 받으면 활성화됨

이 설계는 잔액과 상태를 이해하기 쉽게 만듭니다. 개별 미사용 출력(unspent output)을 추적하는 대신, 은행 원장처럼 계정 잔액을 추적하면 됩니다(단, 탈중앙화되고 투명합니다).

메시지와 트랜잭션

백서는 트랜잭션(EOA가 서명)과 메시지(컨트랙트 간 내부 호출)를 구분합니다:

  • 트랜잭션은 외부 사용자가 시작하며 수신자, ETH 값, 데이터, 가스 한도, 가스 가격을 포함합니다.
  • 메시지는 한 컨트랙트가 다른 컨트랙트를 호출할 때 생성되는 가상 객체로, 직렬화되지 않으며 실행 중에만 존재합니다.

이 구분 덕분에 복잡한 다단계 작업이 가능합니다. 사용자 트랜잭션 한 번이 컨트랙트 사이의 내부 메시지 연쇄(cascade)를 촉발해, 정교한 디파이(DeFi) 프로토콜과 조합 가능한(composable) 애플리케이션을 구현할 수 있습니다.

이더리움 가상 머신(EVM)

EVM은 이더리움의 심장입니다. 스마트 컨트랙트 코드를 실행하는 런타임 환경이죠. 부테린은 EVM을 다음과 같은 핵심 속성으로 설계했습니다:

스택 기반 아키텍처: EVM은 256비트 정수 스택을 사용합니다. 연산은 스택에 값을 푸시하거나 팝합니다. 구현과 이해가 비교적 단순합니다.

결정적 실행(Deterministic execution): 동일한 상태와 동일한 트랜잭션이 주어지면, 어떤 노드에서 실행하든 EVM은 항상 같은 결과를 냅니다. 합의(consensus)에 필수입니다. 모든 노드는 결과에 동의해야 합니다.

가스 계량(Gas metering): 모든 EVM 연산에는 정해진 가스 비용이 있습니다. 트랜잭션이 소비한 총 가스는 송신자가 ETH로 지불합니다. 이 메커니즘은:

  • 무한 루프를 방지합니다(가스가 바닥나면 프로그램은 중단)
  • 서비스 거부(DoS) 공격을 어렵게 합니다(공격자는 소비한 자원만큼 비용을 지불)
  • 계산 자원 시장을 만듭니다(사용자는 트랜잭션 우선순위를 위해 가스 가격을 경쟁)

샌드박스(Sandboxed): 스마트 컨트랙트는 자신의 스토리지, 블록체인 상태, 그리고 입력으로 제공된 데이터에만 접근할 수 있습니다. 파일 시스템, 네트워크, 기타 외부 자원에는 직접 접근할 수 없습니다. 오라클(oracle)이 오프체인 데이터를 온체인으로 가져오며 이 간극을 메웁니다.

오퍼코드 집합(Opcode Set)

백서는 EVM의 연산 집합을 설명하며, 예시는 다음을 포함합니다:

  • 산술: ADD, MUL, SUB, DIV, MOD, EXP
  • 비교: LT, GT, EQ, ISZERO
  • 비트 연산: AND, OR, XOR, NOT, BYTE
  • SHA3: Keccak-256 해싱(이더리움은 Keccak-256을 사용하며 흔히 SHA-3로 불립니다)
  • 스택/메모리/스토리지: PUSH, POP, MLOAD, MSTORE, SLOAD, SSTORE
  • 제어 흐름: JUMP, JUMPI, STOP, RETURN
  • 환경: ADDRESS, BALANCE, CALLER, CALLVALUE, CALLDATALOAD
  • 블록 정보: BLOCKHASH, COINBASE, TIMESTAMP, NUMBER, DIFFICULTY
  • 로깅: LOG0-LOG4(이벤트 발생을 위해)
  • 외부 호출: CALL, DELEGATECALL, CREATE

이 명령 집합은 최소한이면서도 어떤 계산이든 표현할 수 있도록 설계되었습니다. Solidity 같은 고급 언어는 결국 이 오퍼코드들로 컴파일됩니다.

상태 전이 함수(State Transition Function)

부테린은 이더리움을 상태 전이 시스템으로 정식화했습니다. 전역 상태는 모든 계정의 잔액, nonce, 코드, 스토리지를 매핑한 것입니다. 각 트랜잭션은 명확히 정의된 전이 함수에 따라 상태를 바꿉니다:

STATE' = APPLY(STATE, TX)

전이 함수는:

  1. 트랜잭션 형식이 올바른지 확인(유효한 서명, 올바른 nonce)
  2. 가스 수수료를 계산하고 송신자 잔액에서 차감
  3. 가스 카운터를 초기화하고 트랜잭션 데이터 바이트마다 가스를 차감
  4. 지정된 ETH 값을 송신자에서 수신자로 전송
  5. 수신자가 컨트랙트라면 완료 또는 가스 소진까지 컨트랙트 코드를 실행
  6. 실행이 실패하면(가스 부족, 에러) 가스 지불을 제외한 모든 상태 변경을 되돌림(revert)
  7. 남은 가스를 송신자에게 환불하고, 소비된 가스 수수료는 채굴자/검증자에게 전달

이 상태 전이 모델은 일반성이 뛰어납니다. 어떤 계산도 상태 전이의 연속으로 표현할 수 있고, 가스 메커니즘이 자원 안전성을 보장합니다.

백서가 상상한 애플리케이션

부테린은 이더리움이 가능하게 할 애플리케이션 범주를 여러 가지로 제시했습니다. 놀랍게도 거의 모두 현실이 되었습니다.

토큰 시스템

"온체인 토큰 시스템은 USD나 금 같은 자산을 나타내는 하위 통화부터 회사 주식까지 다양한 응용이 있다."

백서는 훗날 ERC-20 토큰 표준이 된 것을 예견했습니다. 수천 개의 토큰, ICO, 디파이 프로토콜, 스테이블코인의 기반이죠. 백서에서 설명한 단순 토큰 컨트랙트는 잔액 매핑과 전송 함수로 구성되는데, 이는 ERC-20이 동작하는 방식과 정확히 맞아떨어집니다.

금융 파생상품

부테린은 가격 피드 같은 외부 데이터를 참조해 금융 상품을 결제(settle)하는 컨트랙트를 설명했습니다. 이 비전은 디파이 파생상품 생태계로 구체화되었습니다. Synthetix, dYdX, GMX 등은 이더리움에서 파생상품, 옵션, 선물을 탈중앙화 방식으로 거래할 수 있게 합니다.

신원(Identity) 및 평판 시스템

백서는 중앙 기관 없이 사용자가 통제하는 자기주권 신원(self-sovereign identity)을 논의했습니다. ENS(Ethereum Name Service), 소울바운드 토큰(Soulbound Tokens), 탈중앙 신원(DID) 표준 등은 이 비전을 부분적으로 구현했습니다.

탈중앙 파일 저장

부테린은 이더리움 스마트 컨트랙트를 사용해 탈중앙 파일 저장을 조율하는 방식을 제안했습니다. 이더리움 자체는 대용량 파일 저장에 적합하지 않습니다(너무 비쌉니다). 하지만 저장 네트워크를 조정(coordinate)할 수는 있습니다. IPFS, Filecoin, Arweave 같은 프로젝트는 이 개념에서 영감을 받았습니다.

탈중앙 자율 조직(DAO)

"‘탈중앙 자율 조직(decentralized autonomous organization)’의 일반 개념은, 일정한 구성원 또는 주주 집합을 가진 가상 엔티티이며, 아마도 67% 과반으로 엔티티의 자금을 지출하고 코드를 수정할 권리를 가진다."

DAO는 이더리움 생태계의 중요한 거버넌스 모델이 되었습니다. MakerDAO부터 유니스왑 거버넌스, 트레저리(재무) 관리 프로토콜까지, 온체인 조직 거버넌스에 대한 부테린의 비전은 널리 채택되었습니다.

저축 지갑(Savings Wallet)과 멀티시그

백서는 출금 한도, 다자 승인, 소셜 복구 같은 안전한 저축을 위한 스마트 컨트랙트를 설명했습니다. 이러한 개념은 스마트 컨트랙트 지갑, 멀티시그 지갑(예: Safe/Gnosis Safe), 그리고 계정 추상화(account abstraction) 흐름의 발전에 직접적인 영향을 주었습니다.

설계 결정과 트레이드오프

왜 튜링 완전성(Turing-Completeness)인가?

부테린은 비트코인의 의도적으로 제한된 Script와 달리, 이더리움 언어를 튜링 완전(계산 가능한 모든 함수를 계산할 수 있음)하게 만들었습니다. 이는 논쟁적이었습니다. 튜링 완전성은 무한 루프 위험과 복잡한 공격 표면을 가져옵니다.

해결책은 가스였습니다. 모든 계산 단계마다 비용을 요구함으로써, 이더리움은 표현력을 제한하지 않으면서 계산량을 제한합니다. 영원히 실행하려는 프로그램은 결국 가스가 소진되어 중단됩니다. 복잡한 스마트 컨트랙트에서 버그와 취약점 위험은 여전히 남지만, 이는 프로토콜 계층이 아니라 애플리케이션 계층의 보안 문제입니다.

왜 계정 모델인가?

부테린은 여러 이유로 UTXO 대신 계정을 택했습니다:

  1. 공간 절약: 계정은 상태를 한 번 저장하지만, UTXO는 여러 미사용 출력에 걸쳐 데이터가 반복될 수 있음
  2. 단순성: 스마트 컨트랙트 로직에서 계정 잔액은 이해하기 쉬움
  3. 대체 가능성(Fungibility): 계정의 모든 ETH는 동일하지만, UTXO는 각각의 이력을 가짐

트레이드오프는 병렬성 감소(같은 계정에 영향을 주는 트랜잭션은 순서가 필요)와 더 복잡한 상태 관리입니다.

왜 비트코인 위에 만들지 않았나?

부테린은 비트코인을 확장하는 것으로는 충분하지 않은 이유를 설명했습니다:

  1. 제한된 스크립팅: 비트코인 Script에는 루프, 복잡한 상태, 풍부한 데이터 타입이 없음
  2. 가치-맹(Value-blindness): 비트코인 스크립트는 정밀한 금액 제어가 어려움
  3. 블록체인-맹(Blockchain-blindness): 스크립트가 블록체인 메타데이터(타임스탬프, 블록 번호)에 접근할 수 없음
  4. 상태 없음: 단순한 사용/미사용 이진 상태를 넘어, 비트코인 트랜잭션에는 영구 상태가 없음

이 한계들 때문에 복잡한 애플리케이션은 근본적으로 다른 플랫폼을 필요로 했습니다.

백서가 맞춘 것들

스마트 컨트랙트 수요

가장 핵심적인 예측, 즉 프로그래머블 블록체인 애플리케이션에 대한 막대한 수요가 있을 것이라는 예측은 놀랄 만큼 정확했습니다. 디파이, NFT, DAO, 게임, 엔터프라이즈 애플리케이션은 이더리움에서 수천억 달러 규모의 경제 활동을 만들어냈습니다.

조합 가능성(Composability)

백서가 그린 “컨트랙트가 다른 컨트랙트와 상호작용하는” 비전(일명 머니 레고)은 이더리움의 정의적 특징이 되었습니다. 대출 프로토콜, 거래소, 수익 최적화기가 매끄럽게 맞물리는 디파이의 조합성은 이 비전의 직접적 구현입니다.

네트워크 효과

부테린은 범용 플랫폼이 개발자를 끌어들이고, 개발자는 사용자를 끌어들이며, 사용자는 더 많은 개발자를 끌어들이는 플라이휠 효과를 예상했습니다. 이 효과는 이더리움을 가장 큰 개발자 커뮤니티, 가장 많은 애플리케이션, 가장 많은 유동성을 가진 지배적 스마트 컨트랙트 플랫폼으로 만들었습니다.

백서 이후 달라진 것들

합의 메커니즘

원래 백서는 비트코인과 유사한 작업증명(PoW) 합의 메커니즘을 설명했습니다. 이더리움은 2015년 PoW로 출시했지만, 항상 **지분증명(PoS)**으로 전환할 계획이었습니다. 더 머지(The Merge)는 2022년 9월 이 전환을 완료하며, 이더리움의 보안 모델과 환경적 특성을 근본적으로 바꾸었습니다.

확장(Scaling) 접근

백서는 이더리움이 직면할 확장성 문제를 완전히 예측하지 못했습니다. 초기 비전은 베이스 레이어 처리량만으로 충분하다고 가정했지만, 2020-2021년 디파이와 NFT 활동 폭증은 레이어 2 확장의 필요성을 드러냈습니다. 이더리움 로드맵은 롤업 중심(rollup-centric) 접근으로 전환했고, 베이스 레이어는 데이터 가용성에 최적화하며 레이어 2가 실행(execution)을 담당합니다.

MEV(Maximal Extractable Value)

백서는 MEV를 예견하지 못했습니다. MEV는 블록 생산자가 트랜잭션을 재정렬하거나 포함/제외함으로써 추출할 수 있는 가치입니다. MEV는 중요한 연구 분야가 되었고, Flashbots, PBS 같은 MEV 보호 메커니즘 개발로 이어졌으며, 지금은 이더리움 인프라의 핵심 요소가 되었습니다.

가스 가격 메커니즘

원래 백서는 단순한 1차 가격 경매(first-price auction)로 가스를 설명했습니다. EIP-1559는 이를 소각되는 베이스 수수료(base fee)와 팁(tip)을 포함한 더 정교한 메커니즘으로 바꿔, 수수료 예측 가능성을 높이고 ETH 공급에 디플레이션 압력을 만들었습니다.

원문 읽기

이더리움 백서는 ethereum.org/en/whitepaper/에서 볼 수 있습니다. 비트코인 백서보다 길고 기술적이지만, 기본적인 프로그래밍과 암호학 지식이 있는 독자라면 충분히 접근 가능합니다. 비탈릭은 또한 수많은 블로그 글과 에세이를 공개했으며, 더 최근에는 개빈 우드(Gavin Wood)가 EVM 명세를 정식화한 기술 문서인 옐로 페이퍼(yellow paper)도 발표했습니다.

SafeSeed Tool

이더리움의 키 파생(key derivation)을 이해하는 것은 ETH를 안전하게 관리하는 데 필수입니다. SafeSeed Key Derivation Tool을 사용해 하나의 BIP-39 시드 문구가 BIP-44 경로(m/44'/60'/0'/0/x)를 통해 서로 다른 이더리움 주소들을 어떻게 파생하는지 확인해 보세요. 하나의 시드 문구로 모든 이더리움 계정을 안전하게 보호할 수 있습니다.

FAQ

누가 이더리움 백서를 썼나요?

이더리움 백서는 2013년 말, 당시 19세였던 비탈릭 부테린이 작성했습니다. 비탈릭이 주요 저자였지만, 이더리움 개발에는 많은 공동 창립자가 참여했습니다. 예를 들어 개빈 우드(정식 EVM 명세를 기술한 “옐로 페이퍼” 작성), 찰스 호스킨슨(이후 카르다노 설립), 조셉 루빈(ConsenSys 설립) 등이 있습니다.

이더리움 백서는 언제 공개되었나요?

백서는 2013년 말과 2014년 초에 처음 회람되었습니다. 이더리움 크라우드세일(ICO)은 2014년 7-8월에 진행되어 약 1,800만 달러를 모았습니다. 이더리움 메인넷은 2015년 7월 30일에 출시되었습니다.

이더리움 백서는 어떤 문제를 해결하나요?

백서는 기존 블록체인(주로 비트코인)이 복잡한 애플리케이션을 지원하는 데 가진 한계를 다룹니다. 비트코인은 가치 전송을 가능하게 하지만, 탈중앙 거래소, 대출 프로토콜, 자동 실행 계약 같은 프로그래머블 애플리케이션을 지원하지 못합니다. 이더리움은 어떤 탈중앙 애플리케이션이든 만들 수 있는 범용 플랫폼을 제공합니다.

이더리움 백서와 옐로 페이퍼의 차이는 무엇인가요?

백서(whitepaper)(비탈릭 부테린)는 이더리움의 비전, 설계, 응용을 설명하는 개념 문서입니다. 옐로 페이퍼(yellow paper)(개빈 우드)는 EVM, 상태 전이 함수, 가스 비용에 대한 정확한 수학적 정의를 포함하는 이더리움 프로토콜의 공식 기술 명세서입니다. 옐로 페이퍼는 참고 구현(레퍼런스) 가이드에 해당합니다.

이더리움 백서는 지금도 유효한가요?

핵심 개념인 스마트 컨트랙트, EVM, 계정, 가스는 여전히 이더리움 작동 방식의 근간입니다. 다만 공개 이후 큰 변화도 있었습니다. 지분증명 전환, EIP-1559 수수료 메커니즘, 레이어 2 확장 접근, 계정 추상화 등이 그것입니다. 백서는 필수적인 맥락을 제공하지만, 더 최근의 문서와 함께 읽는 것이 좋습니다.

이더리움 백서는 비트코인 백서와 어떻게 비교되나요?

비트코인 백서(9페이지)는 P2P 전자 현금에 초점을 좁게 맞춥니다. 이더리움 백서는 더 길고 범위가 넓으며, 범용 계산 플랫폼을 제안합니다. 비트코인은 이중지불(double-spending) 문제를 해결했고, 이더리움은 블록체인 개념을 프로그래머블 애플리케이션으로 확장했습니다. 둘 다 암호화폐를 진지하게 이해하려는 사람이라면 읽어야 할 기초 문서입니다.

백서에서 가장 논쟁적이었던 부분은 무엇인가요?

이더리움을 튜링 완전하게 만들겠다는 결정이 가장 큰 논쟁거리였습니다. 비판자들(특히 비트코인 커뮤니티)은 튜링 완전성이 지나치게 큰 공격 표면을 만든다고 주장했습니다. 옹호자들은 가스 계량이 위험을 충분히 통제하면서도 광범위한 설계 공간을 열어준다고 보았습니다. 역사는 양쪽 모두 타당한 지점이 있었음을 보여줍니다. 이더리움의 표현력은 놀라운 혁신을 가능하게 했지만, 스마트 컨트랙트 취약점(The DAO 해킹, 재진입 공격, 오라클 조작)으로 큰 손실이 발생한 것도 사실입니다.

관련 가이드