피드로 돌아가기
What Is a Nonce in Blockchain? Transaction Nonces Explained
Dev.toDev.to
Backend

Account Nonce 설계를 통한 Transaction 순서 보장 및 Replay Attack 방지

What Is a Nonce in Blockchain? Transaction Nonces Explained

Cyrbuzz2026년 5월 21일12intermediate

Context

Account-based blockchain 구조에서 트랜잭션의 실행 순서 보장과 중복 실행 방지가 필수적인 상황. 분산 환경의 여러 Worker가 동일한 Hot Wallet을 사용할 때 Nonce 충돌로 인한 Transaction 실패가 발생하는 아키텍처적 한계 존재.

Technical Solution

  • Transaction Nonce를 계정별 Sequence Number로 설계하여 트랜잭션의 엄격한 순서 제어
  • Nonce 값을 0부터 1씩 증가시키는 구조를 통해 동일 Nonce의 중복 제출을 원천 차단하는 Replay Attack 방지 메커니즘 구현
  • Block Nonce와 Transaction Nonce를 분리하여 합의 알고리즘(PoW)과 계정 상태 업데이트 로직의 책임 분리
  • 공유 상태(Shared State) 관리를 위해 Nonce 할당 프로세스를 직렬화(Serialization)하여 Worker 간 충돌 제거
  • Pending Transaction 추적 및 Stable RPC Endpoint 활용을 통한 Nonce 상태 동기화 최적화
  • Gas Fee 조절을 통한 Pending Transaction 교체(Replacement) 전략 수립으로 큐 정체 해소

1. 다중 Worker 환경에서 동일 Sender 계정 사용 시 Nonce 할당을 위한 중앙 집중형 큐 또는 Signing Service 도입 검토

2. 단순 Retry 로직 대신 Pending Transaction 상태를 확인한 후 Nonce를 재할당하는 상태 기반 재시도 전략 적용

3. RPC Provider의 상태 지연(Stale State) 가능성을 고려하여 Confirmed Nonce와 Pending Nonce를 구분하여 관리

원문 읽기