EIP-55는 이더리움 주소의 철자는 그대로 두고 a~f 글자를 대문자로 쓸지 소문자로 쓸지로 검증 정보를 싣는 방식입니다. 소문자 주소를 keccak-256으로 해시해, 해시의 해당 자리 값이 8 이상(비트로 보면 4×i번째 비트가 1)이면 그 자리 글자를 대문자로 씁니다. 문서가 밝힌 효과는 주소당 평균 15비트의 확인 정보이고, 무작위로 잘못 입력한 주소가 우연히 검사를 통과할 확률이 0.0247%라는 것입니다. 길이는 40자 그대로입니다. 표준에 적힌 범위는 오타 탐지이고, 상대가 의도한 주소인지는 증명하지 않습니다.
확인 기준일 2026-10-27 · 다음 확인 예정 2026-11-26
규칙은 한 문장입니다
EIP-55 본문(2016년 1월 14일 작성, 상태 Final)은 주소를 16진수로 바꾸되, 해당 자리가 a~f이고 소문자 16진 주소 문자열의 해시에서 같은 위치의 값이 8 이상이면 대문자로 인쇄한다고 정의합니다. 숫자 0~9는 대소문자가 없으니 바꿀 수 없습니다. 문서의 예시 코드는 주소의 0x를 뗀 소문자 문자열을 ASCII 텍스트로 보고 keccak으로 해시하며, 그 외 문자가 나오면 오류를 냅니다. 주소를 만든 쪽이 아니라 보내는 쪽 지갑이 같은 계산을 다시 해서 대소문자 패턴이 맞는지 대조하는 구조입니다.
문서 속 예시를 세어 보면
EIP-55의 시험 주소 중 하나인 0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed를 보겠습니다. 0x 뒤 40자 가운데 a~f 글자는 18개이고 그중 대문자는 9개입니다. 나머지 글자는 숫자라 규칙의 대상이 아닙니다. 소문자만 있는 같은 주소는 같은 20바이트를 가리키지만 대소문자 정보가 없어, 지갑은 검사할 패턴이 없습니다.
| 항목 | 문서·계산 기준 |
|---|---|
| 주소 길이 | 40자 그대로(0x 제외) |
| 확인 정보 | 주소당 평균 15비트(문서 기재) |
| 오타 통과 확률 | 무작위로 잘못 입력한 주소가 우연히 통과할 확률 0.0247%(문서 기재) |
| 기존 도구와의 호환 | 혼합 대소문자를 받는 16진 파서와 하위 호환, 점진적 도입 가능(문서 기재) |
| 비교 대상 | ICAP보다 약 50배 개선, 4바이트 확인 코드보다는 약함(문서 기재) |
0.0247%는 ‘우연한 오타’를 전제로 한 수치입니다. 누군가 일부러 비슷한 주소를 만들어 내미는 경우에는 그 주소도 정상적으로 대소문자가 맞게 만들어지므로, 검사 통과가 안전을 뜻하지 않습니다. 앞뒤 글자를 흉내 낸 주소 문제는 주소 오염 공격 글에서, 복사 단계의 바꿔치기는 클립보드 악성코드 글에서 다뤘습니다.
실제로 확인할 때
지갑이 대소문자 불일치를 경고하면 한 글자라도 다른 주소로 보지 말고 멈춰야 합니다. 반대로 소문자로 붙여 넣은 주소는 경고가 없을 뿐 검증된 것이 아닙니다. 형식 전반의 체크섬 비교는 주소 체크섬이 막아 주는 오류 글에, 이름으로 보낼 때의 확인은 ENS 이름 전송 확인 글에 있습니다. 체인별 추가 규칙이 있는지는 이번에 읽은 EIP-55 본문에서 확인하지 못해 확정하지 않습니다.
자주 묻는 질문
대문자가 섞이지 않은 주소는 틀린 주소인가요?
EIP-55 문서는 기존 파서와의 하위 호환을 장점으로 들 뿐 소문자 주소를 틀렸다고 하지 않습니다. 다만 검사할 대소문자 정보가 없습니다.
대소문자를 손으로 바꾸면 어떻게 되나요?
대소문자 패턴은 해시로 정해지므로 임의로 바꾸면 규칙과 달라집니다. 지갑이 이를 불일치로 처리할 수 있습니다.
EIP-55가 맞으면 받는 사람 주소가 맞는 건가요?
아닙니다. 문서가 밝힌 효과는 잘못 입력한 주소가 통과할 확률을 낮추는 것이며, 수취인 인증은 범위에 없습니다.



