Blockchain

The Lifecycle Of A Transaction

읽는 시간: 3

이더리움 트랜잭션의 생명주기 (The Complete Lifecycle of an Ethereum Transaction)#

📌 핵심 개념#

트랜잭션은 계정 소유자가 네트워크에 특정 작업을 수행하도록 지시하는 서명된 메시지입니다. 궁극적인 목표는 블록체인의 **상태(State)**를 변경하는 것입니다.

예시:

  • 초기 상태: Ciara 1 ETH, Patrick 0 ETH
  • 트랜잭션: Ciara가 Patrick에게 1 ETH 전송
  • 최종 상태: Ciara 0 ETH, Patrick 1 ETH

🔄 트랜잭션 6단계 과정#

Step 1: 트랜잭션 생성#

지갑(MetaMask 등)이 자동으로 트랜잭션 객체를 구성합니다.

필드설명
Chain ID대상 블록체인 식별 번호 (메인넷=1, Sepolia=111555111). 리플레이 공격 방지
Nonce계정의 트랜잭션 카운터. 0부터 시작하며 순차적으로 증가. 중복/순서 오류 방지
Max Priority Fee Per Gas검증자에게 주는 "팁" (우선 처리 인센티브)
Max Fee Per Gas지불 의향이 있는 최대 총 수수료 (초과분은 환불)
Gas Limit트랜잭션이 소비할 수 있는 최대 가스량 (안전장치)
Recipient Address (to)수신 계정/스마트 컨트랙트 주소
Value전송할 ETH 양
Data스마트 컨트랙트 호출 시 인코딩된 함수와 파라미터
Access List가스 비용 절감을 위한 사전 선언 (고급 기능)

Step 2: 트랜잭션 서명#

  1. 트랜잭션 데이터를 표준 형식으로 직렬화
  2. 해시 처리 → Transaction Hash 생성 (고유 식별자)
  3. 개인키로 서명 → 디지털 서명 생성 (소유권 증명)

Step 3: 트랜잭션 브로드캐스팅#

  • 지갑이 RPC(Remote Procedure Call) 엔드포인트를 통해 이더리움 노드에 서명된 트랜잭션 전송

Step 4: 멤풀(Mempool) 진입#

노드가 수행하는 검증:

  • 디지털 서명 유효성 확인
  • 잔액 확인 (전송 금액 + 최대 가스비)

✅ 검증 통과 시 → 멤풀에 추가 (대기실 역할) → 네트워크 전파

Step 5: 블록 선택#

  • 12초(슬롯) 마다 하나의 검증자가 블록 생산자로 선정
  • 검증자는 Max Priority Fee가 높은 트랜잭션 우선 선택 (경제적 동기)
  • 트랜잭션 실행 → 상태 업데이트 → 블록 구성 → 서명 후 브로드캐스트

Step 6: 증명(Attestation) 및 최종화(Finalization)#

단계설명
Attestation다른 검증자들이 블록을 검증하고 투표
Inclusion스테이킹된 ETH의 2/3 이상 동의 시 블록이 체인에 추가 (확인됨)
Finalization전체 네트워크 검증자의 2/3 초다수 증명 후 최종화 (~12.8분, 2 에폭)

💡 1 에폭 = 32 슬롯 ≈ 6.4분


📊 트랜잭션 상태#

상태설명
Pending멤풀에서 대기 중
Confirmed (Success)블록에 포함됨 (~12초)
Finalized되돌릴 수 없는 상태 (~12.8분)
Reverted (Failed)실행 실패 (상태 롤백, 가스비는 소모)
Dropped멤풀에서 제거됨 (낮은 가스비 또는 동일 nonce로 대체)

🔑 결론#

이 모든 과정은 EOA(Externally Owned Account) 에서 시작된 트랜잭션에 적용됩니다. 암호화 서명부터 네트워크 전체의 증명까지, 각 단계는 이더리움의 상태 변경이 승인되고, 유효하며, 영구적임을 보장합니다.