이더리움으로 로그인(SIWE)은 지갑으로 정해진 형식의 메시지에 서명해 웹사이트에 로그인하는 방식이며, ERC-4361(Final)이 그 메시지 형식을 정합니다. 메시지는 “example.com wants you to sign in with your Ethereum account:”로 시작하고 도메인·주소·URI·체인 ID·논스·발행 시각을 담습니다. 로그인 서명은 거래가 아니어서 자산을 옮기지 않지만, 지갑은 요청한 사이트가 메시지의 도메인과 같은지 확인해야 합니다. 이 글은 ERC-4361 원문에 적힌 형식과 보안 요구만 정리했습니다.
확인 기준일 2026-10-27 · 다음 확인 예정 2027-01-27
SIWE 메시지에 들어가는 항목
| 항목 | 필수 여부 | 뜻 |
|---|---|---|
| domain | 필수 | 로그인을 요청한 사이트(예: example.com) |
| address | 필수 | 서명하는 이더리움 주소 |
| statement | 선택 | 사용자에게 보여 줄 설명 문장 |
| URI | 필수 | 서명의 대상이 되는 자원 주소 |
| Version | 필수 | 메시지 형식 버전 |
| Chain ID | 필수 | 계약 계정을 확인할 네트워크 |
| Nonce | 필수 | 재사용 공격을 막는 무작위 문자열, 영숫자 8자 이상 |
| Issued At | 필수 | 메시지를 만든 시각(RFC 3339) |
| Expiration Time·Not Before | 선택 | 서명이 유효한 기간 |
| Request ID·Resources | 선택 | 요청 식별자와 함께 승인할 자원 목록 |
표준의 목표는 중앙화된 신원 제공자 대신 스스로 보관한 지갑으로 로그인하는 방법을 주고, 이더리움 기반 인증의 상호운용성을 높이며, 지갑이 일관되게 읽을 수 있는 메시지 형식을 정하는 것입니다.
서명하기 전에 확인할 것
- 도메인: 표준은 지갑이 요청의 출처를 메시지의 scheme·domain과 대조해 피싱을 막아야 한다고 정합니다. 화면의 사이트 주소와 메시지 첫 줄의 도메인이 같은지 봅니다.
- 형식: 표준은 지갑이 형식에 완전히 맞지 않는 메시지를 SIWE로 처리하지 않아야 한다고 적습니다. 로그인이라면서 형식이 다르면 다른 종류의 서명일 수 있습니다.
- 기간과 논스: 만료 시각과 논스는 같은 서명이 다시 쓰이는 것을 막는 장치입니다.
SIWE 로그인 서명은 거래를 보내지 않지만, 모든 서명 요청이 로그인은 아닙니다. 토큰 사용 권한을 넘기는 서명은 permit 서명은 무엇을 승인할까: EIP-2612 권한 읽기 글에서, 에어드롭을 미끼로 서명을 유도하는 수법은 매도 안 되는 토큰(허니팟) 글에서 다뤘습니다.
자주 묻는 질문
이더리움으로 로그인하면 자산이 빠져나갈 수 있나요?
ERC-4361 형식의 로그인 서명은 거래가 아니어서 자산을 옮기지 않습니다. 다만 로그인처럼 보이는 다른 종류의 서명 요청일 수 있으므로 메시지 형식과 도메인을 확인해야 합니다.
SIWE 메시지의 논스는 왜 필요한가요?
ERC-4361은 논스를 재사용 공격을 막기 위한 무작위 문자열로 정하고, 영숫자 8자 이상을 요구합니다.
지갑은 피싱을 어떻게 막나요?
표준은 지갑이 요청의 실제 출처를 메시지의 scheme·domain과 대조해야 한다고 정합니다. 예를 들어 example.com 메시지라면 요청이 https://example.com에서 왔는지 확인합니다.



