코인 지갑 서명 요청, 전송 버튼이 아닌데 왜 위험할까
페이지 정보
본문
지갑에서 서명 요청이 뜨면 코인을 보내는 화면이 아니라서 가볍게 눌러도 될 것처럼 보입니다. 하지만 서명은 주소 주인 확인을 넘어서, 어떤 사이트에는 나중에 행동할 근거가 될 수 있습니다. 전송 버튼이 없어도 메시지를 먼저 읽어야 합니다. 수수료가 안 보여도 안전하다는 뜻은 아닙니다.
코인 지갑의 서명 요청은 송금과 같은 말이 아닙니다. 화면에 네트워크 수수료가 보이지 않고, 받는 주소나 보낼 수량이 나오지 않는 경우도 많습니다. 그래서 처음에는 로그인 확인처럼 느껴집니다.
문제는 서명이 지갑 주소의 도장처럼 쓰인다는 점입니다. 어떤 서명은 서비스에 로그인하는 데 쓰이고, 어떤 서명은 특정 주문이나 권한을 나중에 실행하는 근거가 될 수 있습니다. 돈이 즉시 빠지지 않는다는 말과 위험이 없다는 말은 다릅니다.
전송 버튼 밖의 권한
거래를 보낼 때는 보통 받을 주소, 수량, 네트워크 수수료가 함께 보입니다. 반대로 서명 요청은 블록체인에 바로 기록되지 않는 메시지 확인처럼 보일 수 있습니다. MetaMask 문서도 서명 방식이 `personal_sign`, `eth_signTypedData_v4`처럼 여러 형태로 나뉜다고 설명합니다.
이 차이 때문에 초보자는 서명을 단순 확인으로 받아들이기 쉽습니다. 그러나 지갑 입장에서는 내가 이 주소를 제어하고 있다는 증거를 만들어 주는 일입니다. 그 증거를 어떤 사이트가 어디에 쓰는지까지 봐야 위험을 줄일 수 있습니다.
정상적인 예도 있습니다. Sign-In with Ethereum처럼 지갑 주소로 로그인할 때는 사이트가 내 주소의 주인인지 확인하려고 서명을 요구할 수 있습니다. 이때의 핵심은 로그인하려는 사이트, 표시된 도메인, 메시지 목적이 내가 기대한 행동과 맞는지입니다.
로그인처럼 보여도 먼저 볼 것
정상 로그인 서명은 보통 내가 접속한 사이트와 연결됩니다. 방금 누른 로그인 버튼 때문에 뜬 요청이고, 메시지 안에도 서비스 이름이나 주소 확인 목적이 보이면 이해하기 쉽습니다. 그래도 낯선 사이트에서 갑자기 뜬 요청이라면 멈추는 편이 낫습니다.
특히 지갑 팝업에 긴 데이터, 알아보기 어려운 hex 문자열, 주문·판매·허가처럼 보이는 단어가 섞이면 로그인 확인으로만 보면 안 됩니다. MetaMask는 서명 피싱에서 공격자가 오프체인 서명을 얻어 나중에 자산을 훔치는 데 활용할 수 있다고 경고합니다.
서명 요청은 취소해도 보통 거래 수수료가 들지 않습니다. 애매하면 취소하고, 주소창을 다시 확인하고, 공식 사이트에서 같은 행동을 다시 시작하는 편이 안전합니다. 서명을 누른 뒤에야 의미를 찾아보는 순서가 가장 위험합니다.
토큰 승인과 닮은 지점
서명과 토큰 승인은 같은 버튼은 아닙니다. 토큰 승인은 특정 컨트랙트가 내 토큰을 쓸 수 있는 한도를 주는 작업이고, 대개 블록체인 거래로 남습니다. 서명은 그보다 가볍게 보이지만, 어떤 서비스에서는 주문 체결, NFT 판매, 권한 위임 같은 행동의 근거로 쓰일 수 있습니다.
그래서 화면에서 봐야 할 것은 이름보다 결과입니다. 이 요청이 단지 로그인인지, 특정 자산을 쓰게 하는지, 나중에 누군가가 내 서명을 제출할 수 있는지 구분해야 합니다. 지갑이 보여 주는 위험 경고나 세부 정보가 있으면 접지 말고 끝까지 봐야 합니다.
이 기준은 거래소 API 키를 만들 때 출금 권한을 켤지 보는 감각과 비슷합니다. 권한 화면은 익숙해질수록 빨리 넘기게 되지만, 실제로는 작은 체크 하나가 할 수 있는 일을 바꿉니다.
이미 눌렀다면 남는 일
서명을 한 번 눌렀다고 항상 자산이 빠지는 것은 아닙니다. 정상 로그인 서명이라면 아무 문제가 없을 수 있습니다. 하지만 이상한 사이트에서 서명했다면 그 뒤에는 지갑 연결 해제만으로 충분한지, 토큰 승인까지 같이 줬는지, 낯선 주문이나 목록 등록이 생겼는지 확인해야 합니다.
먼저 해당 사이트와 지갑 연결을 끊고, 지갑의 활동 내역과 토큰 승인 내역을 봅니다. 승인 거래가 같이 있었다면 승인 취소에는 별도 네트워크 수수료가 들 수 있습니다. 서명만 있었는지, 실제 거래나 승인도 있었는지를 나눠 봐야 대응이 과해지거나 부족해지지 않습니다.
x402 결제처럼 지갑 서명이 결제 흐름 일부로 쓰이는 경우도 있습니다. 이런 흐름에서는 서명 자체보다 요청한 서비스, 결제 토큰, 네트워크, 금액 조건이 내가 기대한 것과 맞는지가 중요합니다.
서명 전 마지막 세 가지
서명 요청을 봤을 때는 세 가지만 먼저 나눠 보면 됩니다. 내가 방금 시작한 행동 때문에 뜬 요청인지, 메시지 안의 사이트와 목적이 맞는지, 이 서명이 자산 사용이나 주문 같은 결과로 이어질 수 있는지입니다.
답이 흐리면 취소해도 됩니다. 코인 지갑에서는 모르는 요청을 거절하는 것이 실수보다 낫습니다. 서명은 전송 버튼이 아니지만, 내 주소가 어떤 행동을 허락했다는 증거가 될 수 있습니다. 그래서 수수료가 안 보여도, 지갑 팝업은 그냥 넘길 화면이 아닙니다.
스테이블코인, 거래소 서비스, 지갑 전송, 예치 상품은 가격 괴리, 출금 지연, 체인 선택 오류, 정책 변경 같은 위험이 있을 수 있습니다. 이 글은 정보 제공용이며 특정 자산 매수, 예치, 전송을 권유하지 않습니다. 실제 실행 전에는 공식 공지와 본인 계정 조건을 다시 확인해야 합니다.