핵심 인사이트 (3줄 요약)

  1. 본질: 스마트 컨트랙트(Smart Contract)는 EVM(Ethereum Virtual Machine, 이더리움 가상 머신)에서 실행되는 자율 프로그램으로, 코드가 곧 계약서이자 집행자다.
  2. 가치: 가스(Gas) 시스템은 튜링 완전(Turing Complete) 언어의 무한루프 문제를 경제적으로 해결하며, EIP-1559의 기본 수수료(Base Fee) 소각 메커니즘은 ETH 디플레이션 효과를 만든다.
  3. 판단 포인트: Solidity → Bytecode → EVM Opcode 변환 흐름을 이해하면 재진입 공격(Reentrancy)·정수 오버플로우 등 스마트 컨트랙트 취약점의 발생 원인을 논리적으로 추론할 수 있다.

Ⅰ. 개요 및 필요성

스마트 컨트랙트의 등장

Nick Szabo가 1994년 제안한 스마트 컨트랙트 개념은 "조건 충족 시 자동 실행되는 계약 코드"다. 이더리움은 이를 탈중앙화 월드 컴퓨터로 구현했다.

전통 계약의 문제: 중개자 필요, 이행 강제 비용, 불투명성 → 스마트 컨트랙트는 코드가 자동 집행되므로 신뢰 비용을 제거한다.

  • 📢 섹션 요약 비유: — "자판기가 가장 단순한 스마트 컨트랙트다 — 동전 넣으면(조건 충족), 음료 나온다(자동 실행), 중간에 사람 필요 없다.

Ⅱ. 아키텍처 및 핵심 원리

컴파일·실행 흐름

┌─────────────────────────────────────────────────────────┐
│         스마트 컨트랙트 실행 파이프라인                  │
│                                                         │
│  Solidity (.sol)                                        │
│       │  solc 컴파일러                                   │
│       ▼                                                 │
│  Bytecode (0x606060...)      ABI (인터페이스 정의)       │
│       │                           │                     │
│       ▼                           ▼                     │
│  EVM(Ethereum Virtual Machine)                          │
│  ┌───────────────────────────────────────────┐          │
│  │ Stack (256bit × 1024) │ Memory (바이트배열) │          │
│  │ Storage (영구 키-값)   │ Opcode 실행 엔진   │          │
│  └───────────────────────────────────────────┘          │
│       │ 가스(Gas) 차감                                    │
│       ▼                                                 │
│  상태 변경(State Change) → 블록체인 기록                 │
└─────────────────────────────────────────────────────────┘

가스(Gas) 구조

구성 요소설명EIP-1559 이후
Gas Limit트랜잭션 최대 허용 연산량동일
Gas Price단위 가스당 지불 ETH(Gwei)폐지
Base Fee네트워크 혼잡도 기반 소각 수수료✅ 도입
Priority Fee(Tip)채굴자/검증자 팁✅ 도입
실제 비용Gas Used × (Base Fee + Tip)예측 가능

주요 Opcode 가스 비용 예시

SSTORE (스토리지 쓰기): 20,000 gas
SLOAD  (스토리지 읽기): 2,100 gas
ADD    (덧셈 연산):        3 gas
CALL   (외부 호출):    2,600 gas
  • 📢 섹션 요약 비유: — "EVM은 미터기 달린 택시다 — 이동 거리(연산량)마다 요금(Gas)이 나오고, 잔액 떨어지면 멈춘다.

Ⅲ. 비교 및 연결

EVM 호환 체인 비교

체인EVM 호환특징
Ethereum기준원조 EVM, 최고 보안
Polygon낮은 가스비, 이더리움 L2
BNB Chain빠른 블록, 중앙화 우려
Arbitrum옵티미스틱 롤업 L2
SolanaSVM, Rust 기반

재진입 공격(Reentrancy) 원리

// 취약한 패턴
function withdraw() {
    uint amount = balances[msg.sender];
    (bool sent,) = msg.sender.call{value: amount}(""); // ← 외부 호출
    balances[msg.sender] = 0; // ← 업데이트가 호출 이후 → 위험!
}

EVM의 CALL Opcode가 외부 컨트랙트 실행을 허용하기 때문에, 상태 업데이트 전 외부 호출은 재진입 취약점을 만든다.

  • 📢 섹션 요약 비유: — "ATM에서 '잔액 차감' 전에 '현금 지급'을 먼저 하면, 현금 받는 즉시 다시 출금 요청할 수 있다 — 이것이 재진입 공격이다.

Ⅳ. 실무 적용 및 기술사 판단

가스 최적화 실무 기법

  1. 스토리지 읽기 최소화: SLOAD는 비싸므로 로컬 변수에 캐싱
  2. 이벤트 로그 활용: 히스토리 데이터는 Storage 대신 Event(로그) 사용
  3. 배치 처리: 여러 작업을 단일 트랜잭션에 묶어 기본 비용 절감
  4. Solidity 버전 최신화: 컴파일러 최적화 개선

EIP-1559 의미

  • Base Fee 소각 → ETH 공급량 감소 → 인플레이션 방어
  • 가스비 예측 가능 → UX 개선
  • 검증자 팁(Priority Fee)만 수령 → 기존 수익 감소, 장기 보안 모델 변화

기술사 핵심 판단

  • 튜링 완전성과 무한루프 방지: 가스 한도가 Halting Problem의 실용적 해결책

  • 형식 검증(Formal Verification) 도구(Certora, Mythril) 필요성

  • 업그레이드 패턴: 불변 컨트랙트의 한계 → 프록시 패턴(Proxy Pattern)으로 우회

  • 📢 섹션 요약 비유: — "스마트 컨트랙트 버그는 '배포 후 수정 불가'가 원칙 — 은행 ATM 코드를 배포 전에 완벽히 검증해야 하는 것과 같다.


Ⅴ. 기대효과 및 결론

효과 항목내용
중개 비용 제거계약 집행 자동화로 법적 비용 절감
투명성모든 실행 결과가 온체인 공개
프로그래머블 화폐조건부 지불, 탈중앙 금융(DeFi) 기반
새 취약점 등장재진입·오라클 조작·플래시론 공격 등

EVM과 가스 시스템은 이더리움 생태계의 실행 엔진이다. 튜링 완전성을 경제적 가스 메커니즘으로 안전하게 제공함으로써 DeFi, NFT, DAO 등 모든 Web3 서비스의 근간을 형성한다.

  • 📢 섹션 요약 비유: — "EVM은 전 세계가 공유하는 단 하나의 컴퓨터 — 연산 자원을 가스로 경매하여 공정 배분한다.

📌 관련 개념 맵

개념연결 포인트
연결 개념관계 설명
SolidityEVM 스마트 컨트랙트 주요 언어
EIP-1559가스 수수료 개혁 제안
재진입 공격EVM CALL 순서 오류 취약점
ABI스마트 컨트랙트 외부 인터페이스 정의

📈 관련 키워드 및 발전 흐름도

[관계 설명] → [스마트 컨트랙트 EVM과 가스 실행 구조] → [스마트 컨트랙트 외부 인터페이스 정의]

👶 어린이를 위한 3줄 비유 설명

  1. 스마트 컨트랙트는 조건을 만족하면 자동으로 실행되는 로봇 계약서예요.
  2. 가스(Gas)는 이 로봇이 작동하는 데 필요한 연료인데, 연료가 떨어지면 작동을 멈춰 무한 루프를 막아요.
  3. 자판기처럼 동전 넣으면 음료가 나오듯, 스마트 컨트랙트는 조건이 맞으면 자동으로 돈이나 토큰을 보냅니다.