코인 주소 포이즈닝, 거래내역에서 복사한 주소가 왜 위험할까
페이지 정보
본문
지갑 거래내역에 모르는 0원 전송이나 비슷한 주소가 찍히면 해킹처럼 느껴질 수 있습니다. 하지만 주소 포이즈닝의 핵심은 그 기록 자체보다 다음 송금 때 잘못된 주소를 복사하게 만드는 데 있습니다. 그래서 낯선 기록을 지우는 일보다, 어디서 주소를 다시 복사할지 바꾸는 일이 먼저입니다.
코인 주소는 이메일 주소처럼 눈으로 외우기 어렵습니다. 그래서 많은 사람이 지갑이나 블록익스플로러의 거래내역에서 예전에 쓴 주소를 다시 복사합니다. 공격자는 바로 그 습관을 노립니다. 내 주소와 처음 몇 글자, 끝 몇 글자가 비슷한 주소를 만들어 놓고 아주 작은 전송이나 0개 전송 기록을 남기면, 거래내역에는 익숙해 보이는 주소가 하나 더 생깁니다.
거래내역에 섞인 함정
MetaMask의 주소 포이즈닝 설명은 이 공격이 보통 주소 자체를 깨뜨리는 방식이 아니라고 봅니다. 공개 블록체인에서는 누구나 내 주소로 거래를 보낼 수 있고, 공격자는 비슷하게 보이는 주소를 거래내역에 끼워 넣습니다.
이 기록이 보인다고 해서 곧바로 지갑 비밀번호나 시드구문이 유출됐다는 뜻은 아닙니다. 문제는 다음 행동입니다. 내가 거래소에서 개인지갑으로 출금하거나, 개인지갑에서 다른 주소로 보내려고 할 때 거래내역에서 주소를 복사하면 공격자가 만든 주소를 붙여 넣을 수 있습니다. 그러면 화면에는 정상적인 긴 주소처럼 보이지만, 실제 목적지는 전혀 다른 지갑입니다.
처음과 끝만 보는 습관
주소 포이즈닝이 먹히는 이유는 대부분의 화면이 긴 주소를 줄여 보여 주기 때문입니다. `0x1234...abcd`처럼 앞뒤만 보이면 사람은 가운데를 거의 확인하지 않습니다. 공격자가 앞부분과 끝부분이 비슷한 주소를 만들면, 사용자는 “전에 보낸 그 주소”라고 착각하기 쉽습니다.
그래서 앞 네 글자와 뒤 네 글자만 맞는지 보는 습관은 충분하지 않습니다. 큰 금액을 보낼 때는 전체 주소를 원본에서 다시 복사하고, 붙여 넣은 뒤에도 처음·중간·끝을 나눠 확인해야 합니다. 같은 주소를 자주 쓴다면 거래내역이 아니라 지갑의 주소록이나 거래소의 저장된 출금 주소를 기준으로 삼는 편이 낫습니다. 다만 거래소 출금 주소 화이트리스트도 새 주소 등록과 대기 시간을 따로 확인해야 하므로, 저장됐다는 사실만으로 모든 검증이 끝나는 것은 아닙니다.
0원 전송의 의미
주소 포이즈닝에서 보이는 0원 전송은 독자를 겁주기 위한 신호라기보다 거래내역을 더럽히는 흔적에 가깝습니다. 공격자는 내 지갑을 직접 움직인 것이 아니라, 공개 주소로 표시될 수 있는 거래를 보낸 것입니다. 이 차이를 알아야 불필요하게 시드구문을 입력하거나 가짜 복구 사이트를 찾는 실수를 줄일 수 있습니다.
하지만 “그냥 무시해도 된다”로 끝내면 부족합니다. 거래내역에 낯선 주소가 섞였다는 사실은 앞으로 그 내역을 주소록처럼 쓰면 안 된다는 경고입니다. 특히 거래소 출금 화면에서 개인지갑 주소를 붙여 넣을 때, 예전 거래내역에서 복사한 주소인지 공식 receive 화면에서 방금 복사한 주소인지가 중요합니다. 주소 포이즈닝은 돈을 바로 가져가는 공격보다, 사용자가 직접 잘못 보내게 만드는 공격에 가깝습니다.
붙여넣은 뒤의 한 번 더
주소를 올바른 곳에서 복사했더라도 붙여넣은 뒤 확인은 필요합니다. MetaMask의 클립보드 해킹 안내처럼, 악성 프로그램이 클립보드의 지갑 주소를 다른 주소로 바꾸는 경우도 있기 때문입니다. 주소 포이즈닝은 거래내역을 이용하고, 클립보드 해킹은 복사·붙여넣기 과정을 이용하지만, 둘 다 마지막 화면에서 주소를 다시 보는 습관이 없으면 피해로 이어집니다.
작은 금액을 먼저 보내 보는 소액 테스트도 여전히 의미가 있습니다. 수수료가 한 번 더 들 수는 있지만, 처음 보내는 주소이거나 큰 금액이라면 테스트 전송이 주소와 네트워크가 맞는지 확인해 줍니다. 다만 테스트에 성공한 뒤에도 다음 큰 금액 전송에서 거래내역의 다른 주소를 복사하면 소용이 없습니다. 테스트한 주소를 저장해 두고 같은 출처에서 다시 불러와야 합니다.
잘못 보낸 뒤의 현실
이미 잘못된 주소로 보냈다면 기대할 수 있는 선택지는 제한적입니다. MetaMask의 잘못된 주소 전송 안내는 거래가 아직 pending 상태라면 취소를 시도할 수 있지만, 확정된 온체인 거래는 되돌리기 어렵다고 설명합니다. 상대 주소의 주인을 알고 있지 않다면 돌려받을 길은 더 좁아집니다.
그래서 주소 포이즈닝 대응은 사고 뒤 복구보다 사고 전 확인에 가깝습니다. 모르는 0원 전송을 발견했을 때 할 일은 그 토큰을 만지거나 복구 링크를 누르는 것이 아니라, 앞으로 주소를 어디서 복사할지 기준을 바꾸는 것입니다. 지갑의 receive 화면, 거래소 주소록, 하드웨어 지갑 확인 화면, 소액 테스트 기록처럼 출처가 분명한 곳을 기준으로 삼아야 합니다. 코인 지갑 서명 요청을 볼 때 권한 문구를 따로 확인하듯, 송금 화면에서는 주소의 출처와 전체 문자열을 따로 확인해야 합니다.
다음 송금 전 기준
주소 포이즈닝은 복잡한 해킹처럼 보이지만 실제로는 조급함을 겨냥합니다. 거래내역에서 주소를 찾고, 앞뒤 글자만 보고, 그대로 붙여 넣는 몇 초가 공격자가 기다리는 지점입니다.
다음 송금 전에는 세 가지만 남겨도 충분합니다. 거래내역에서 주소를 복사하지 말 것, 붙여 넣은 주소를 원본과 다시 대조할 것, 처음 보내는 큰 금액은 소액 테스트로 확인할 것. 모르는 0원 전송이 보였다는 사실보다 더 중요한 것은 그 기록을 주소록처럼 믿지 않는 습관입니다.
스테이블코인, 거래소 서비스, 지갑 전송, 예치 상품은 가격 괴리, 출금 지연, 체인 선택 오류, 정책 변경 같은 위험이 있을 수 있습니다. 이 글은 정보 제공용이며 특정 자산 매수, 예치, 전송을 권유하지 않습니다. 실제 실행 전에는 공식 공지와 본인 계정 조건을 다시 확인해야 합니다.