EIP-155는 서명할 내용에 체인 ID를 넣어 한 체인에서 서명한 거래가 다른 체인에서 그대로 유효해지는 일을 막습니다. 이 규칙을 쓰면 서명의 v 값이 CHAIN_ID×2+35 또는 +36이 됩니다. 이 글은 2026-10-27에 연 EIP-155 원문(상태 Final)으로 확인한 범위만 다룹니다.
확인 기준일 2026-10-27 · 다음 확인 예정 2026-11-26
서명 해시에는 무엇이 더해질까?
원문 Specification은 기존 여섯 항목 대신 nonce, gasprice, startgas, to, value, data, chainid, 0, 0의 아홉 항목을 RLP로 인코딩해 해시하라고 정합니다. 활성화 기준 블록은 2,675,000입니다.
| 구분 | 원문 내용 |
|---|---|
| 해시 항목 수 | 아홉 개(기존 여섯 개에 chainid, 0, 0 추가) |
| v 공식 | {0,1} + CHAIN_ID × 2 + 35, {0,1}은 y 값의 홀짝 |
| 허용되는 다른 값 | CHAIN_ID × 2 + 36 |
| 기존 방식 | v = 27, 28은 계속 유효 |
| 이더리움 메인넷 체인 ID | 1 (원문 표) |
기존 서명은 사라졌을까?
아닙니다. v가 27 또는 28인 기존 서명 방식도 유효하다고 원문이 적습니다. 이런 거래는 체인 ID가 없어 여러 체인에서 재전송될 수 있습니다. 수신 쪽은 v가 CHAIN_ID×2+35 또는 +36일 때만 아홉 항목 해시로 복구합니다.
실제로는 어디서 확인할까?
거래 대기와 교체는 이더리움 거래가 대기할 때 nonce와 교체 거래 읽기 글에, 서명 데이터에 도메인을 넣는 다른 방식은 EIP-712 타입 데이터 서명은 무엇을 사람이 읽게 만드는가 글에 있습니다. 네트워크를 추가할 때 체인 ID가 맞는지 보는 이유가 여기에 있습니다.
원문의 예시 거래는 무엇을 보여 줄까?
원문에는 nonce 9, gasprice 20 gwei, startgas 21000인 거래를 서명하는 예가 있고, 체인 ID 1에서 v가 27 대신 37이 됩니다. 서명 대상 내용에 체인 ID가 포함되므로 같은 필드 값이라도 체인 ID가 다르면 해시가 달라지고, 한 체인에서 만든 서명은 다른 체인 ID를 가진 체인에서 복구되는 주소가 달라지거나 거래로 인정되지 않습니다. 원문은 이더리움 메인넷 거래가 이더리움 클래식이나 Morden 테스트넷에서는 유효하지 않게 하려는 목적을 밝히고, 다른 네트워크도 자기 고유 체인 ID를 쓰도록 권장합니다.
이 글에서 확인하지 못한 것은?
체인 ID를 어떤 체인에 어떻게 배정하는지에 대한 일반 절차는 원문이 chainid.network와 ethereum-lists 저장소를 가리키는 데서 그쳐 이번에 열지 않았습니다. 이후에 도입된 거래 유형에서 체인 ID가 서명 안에 어떻게 들어가는지도 이 EIP의 범위가 아닙니다. 원문의 체인 ID 표는 2026-10-27에 열람한 내용이며 폐기된 테스트넷도 포함합니다. 정리하면 체인 ID는 서명자가 어느 네트워크를 위해 서명하는지를 서명 안에 못 박는 값이고, v 값에서 역산할 수 있습니다. 다만 열람한 원문 기준으로 v가 27 또는 28이면 체인 ID가 없는 서명이라는 점은 알아 두어야 합니다.
자주 묻는 질문
체인 ID가 1이면 v는 몇이 되나요?
공식에 대입하면 37 또는 38입니다. 원문에는 v가 37인 예시 거래가 실려 있습니다.
EIP-155 서명이면 다른 체인에서 절대 못 쓰나요?
원문은 체인 ID가 다른 체인에서 유효하지 않게 하는 것이 목적이라고 설명합니다. 같은 체인 ID를 쓰는 체인끼리는 이 방식으로 구분되지 않습니다.
이 EIP는 어느 하드포크에 들어갔나요?
원문 머리말에 Spurious Dragon이 적혀 있습니다.



