쿠쿠더님의 블로그

이더리움 네트워크의 구조 본문

blockchain(solidity)

이더리움 네트워크의 구조

쿠쿠더 2025. 7. 31. 16:25
  1. 이더리움 네트워크의 등장 배경
  2. 이더리움 백서의 핵심 제안
  3. 상태 변환 시스템과 UTXO의 차이
  4. 비트코인의 스크립팅 한계와 이더리움의 스마트 컨트랙트
  5. 이더리움 계정 구조: EOA와 CA
  6. EVM과 튜링 완전성
  7. 트랜잭션과 메시지의 차이
  8. 이더리움에서의 GAS 개념
  9. 실습 준비: 메타마스크 설치 및 테스트넷 환경

1. 이더리움 네트워크의 등장 배경

이더리움은 비탈릭 부테린이 설계한 블록체인 기반 네트워크로, 단순한 화폐 송금이 아닌 분산 애플리케이션을 구현할 수 있는 플랫폼을 지향한다. 비탈릭은 게임 아이템이 한순간 사라지는 경험에서 영감을 받아, 영구적으로 신뢰할 수 있는 시스템에 대한 고민 끝에 이더리움을 설계했다.

비트코인은 디지털 화폐에 집중된 네트워크라면, 이더리움은 스마트 컨트랙트를 통해 다양한 앱을 탈중앙화 환경에서 운영할 수 있는 플랫폼이다.


2. 이더리움 백서의 핵심 제안

이더리움 백서의 제목은 “차세대 스마트 컨트랙트와 탈중앙화된 어플리케이션 플랫폼”이다.
비트코인이 단순 송금 구조에서 머문 반면, 이더리움은 상태 기반의 트랜잭션과 스마트 컨트랙트 실행 환경(EVM)을 제공함으로써 다양한 탈중앙 서비스를 가능하게 한다.

비트코인의 트랜잭션 = 화폐 이전
이더리움의 트랜잭션 = 상태 변화


3. 상태 변환 시스템과 UTXO의 차이

비트코인은 UTXO(Unspent Transaction Output) 모델을 사용하여 잔액을 관리한다. 이는 사용하지 않은 출력값들을 추적하는 방식이다. 반면 이더리움은 ‘상태(state)’라는 개념으로 모든 계정(Account)에 대한 정보를 기록한다.

상태란?

예를 들어 쇼핑몰의 구매 과정을 생각해보면,

  • 주문 접수 → 결제 확인 → 상품 준비 → 발송 → 배송 완료

이와 같은 상태의 흐름이 이더리움 트랜잭션을 통해 구현될 수 있다.
즉, 상태 기반 시스템은 단순한 입출금이 아닌 복잡한 상태 변화가 가능한 구조이다.


4. 비트코인의 스크립팅 한계와 이더리움의 스마트 컨트랙트

비트코인은 제한적인 스크립트를 지원하며, 다중 서명(MultiSig) 등의 기능 구현이 가능하지만 실용성이 떨어진다.
이더리움은 이러한 제약을 극복하고, 프로그래밍 가능한 계약 구조를 제안했다.
결과적으로 스마트 컨트랙트를 통해 누구나 자동화된 로직을 작성하고 실행할 수 있게 되었다.


5. 이더리움 계정 구조: EOA와 CA

이더리움의 계정(Account)은 두 가지가 있다.

  • EOA(Externally Owned Account): 사용자 지갑, 개인키를 보유
  • CA(Contract Account): 스마트 컨트랙트 계정, 코드 기반 동작
interface Account {
    nonce: number;
    balance: string;
    storageRoot: string;
    codeHash: string;
}

 

EOA는 트랜잭션을 직접 발생시킬 수 있으며, CA는 메시지를 통해서만 동작한다.
즉, 상태를 변화시키려면 반드시 EOA에서 서명된 트랜잭션이 필요하다.


6. EVM과 튜링 완전성

EVM(Ethereum Virtual Machine)은 스마트 컨트랙트를 실행하는 가상 머신이다. 튜링 완전성을 갖추고 있으며, 다양한 계산을 수행할 수 있다.
EVM은 세 가지 주요 공간을 이용한다.

  • 스택: 계산을 위한 임시 데이터
  • 메모리: 휘발성 공간
  • 저장소: 상태 저장을 위한 영구 공간

모든 컨트랙트 코드는 바이트코드로 변환되어 저장되고, EVM이 이를 해석하여 명령어(opcode) 단위로 실행한다.

 

7. 트랜잭션과 메시지의 차이

이더리움에서 상태를 바꾸는 단위는 트랜잭션이며, EOA만이 생성할 수 있다.
CA는 자체적으로 트랜잭션을 생성할 수 없으며, 트랜잭션을 통해 전달된 데이터를 메시지 형태로 받아서 동작한다.

interface Message {
    from: string;
    to: string;
    gas: number;
    gasPrice: number;
    value: number;
    data: string;
    nonce: number;
}

interface Transaction extends Message {
    v: number;
    r: string;
    s: string;
}

트랜잭션은 메시지를 포함하며, 메시지는 내부 호출로만 발생할 수 있다.

 

8. 이더리움에서의 GAS 개념

이더리움의 자원은 무한하지 않다. 연산, 저장, 트랜잭션 처리 등에는 가스(GAS)가 소비된다.
GAS는 이더로 지불되며, 코드의 복잡도에 따라 예측 불가능한 경우도 많다.

  • 1 ETH = 1,000,000,000 Gwei
  • 기본 전송 가스: 21,000
  • 연산 및 저장 시 가스: 각 opcode마다 다름

GAS 가격이 높을수록 트랜잭션 처리 우선순위가 올라가므로 빠른 처리가 가능하다.


9. 실습 준비: 메타마스크 설치 및 테스트넷 환경

스마트 컨트랙트 개발을 위한 실습에는 메타마스크(MetaMask)를 활용한다.

절차:

  1. 크롬 웹스토어에서 MetaMask 설치
  2. 새 지갑 생성 및 복구 구문 백업
  3. 네트워크 설정에서 ‘Sepolia Testnet’ 활성화
  4. 세폴리아 수도꼭지(faucet)에서 테스트 이더 수령

이후 스마트 컨트랙트 배포나 트랜잭션 테스트를 자유롭게 수행할 수 있다.