주소 오염은 공격자가 피해자의 과거 상대 주소와 앞뒤가 비슷한 주소를 만든 뒤 0원 또는 극소액 거래를 보내 거래 이력에 노출하는 수법입니다. 이후 사용자가 이력에서 주소를 복사하면 공격자에게 송금하게 됩니다. 최근 거래 목록을 주소록처럼 쓰지 말고 신뢰한 원문에서 주소를 다시 가져와 전체 주소와 네트워크를 대조해야 합니다.
거래 이력에 나타났다고 신뢰한 주소는 아니다
블록체인 거래 이력은 누가 누구에게 전송했는지를 보여 주지만 상대방의 신원을 보증하지 않습니다. 누구나 공개된 주소로 0원 토큰 전송이나 극소액 거래를 만들 수 있고, 지갑 화면은 이를 최근 활동으로 표시할 수 있습니다. 공격자는 이 표시 기능을 이용해 자신이 만든 주소를 정상 상대처럼 보이게 합니다.
MetaMask의 보안 문서는 공격자가 피해자가 자주 쓴 주소와 앞부분과 뒷부분이 비슷한 vanity 주소를 만든 뒤 거래 이력에 끼워 넣는 방식을 설명합니다. 피해자가 과거 송금 주소를 다시 입력하려고 이력을 열면 진짜 주소와 공격 주소가 가까이 놓입니다. 거래 이력은 증거 자료로 읽어야 하며 다음 송금의 주소 출처로 사용하면 안 됩니다.
| 경로 | 무엇을 보장하는가 | 추가 확인 |
|---|---|---|
| 최근 거래 이력 | 과거에 해당 문자열과 거래가 기록됨 | 원래 수취인인지 별도 확인 |
| 직접 저장한 주소록 | 저장 당시 붙인 이름과 주소 | 변경 공지와 네트워크 확인 |
| 상대의 공식 청구 화면 | 현재 요청 주소 | 도메인·별도 채널 대조 |
| 기기 신뢰 화면 | 실제로 서명할 목적지 | 상대 소유 여부는 직접 확인 |
공격자는 사람이 생략해서 읽는 습관을 노린다
긴 16진수 주소를 매번 전부 비교하기 어려워 사람과 일부 지갑은 처음과 끝 몇 글자만 보여 줍니다. 공격자는 목표 주소의 공개 정보를 보고 같은 접두·접미를 가진 후보를 반복 생성합니다. 가운데 문자가 달라도 축약 표시는 거의 같아 보일 수 있습니다. 클립보드에 복사된 전체 문자열은 결국 공격자 주소이므로 붙여넣기 자체가 정확성을 보장하지 않습니다.
체크섬은 입력 중 글자 하나가 바뀌거나 대소문자 규칙이 틀린 일부 오류를 찾는 장치입니다. 공격자가 유효한 개인키로 만든 주소에도 올바른 체크섬이 붙습니다. 따라서 체크섬 통과는 주소 형식의 유효성을 말할 뿐, 그 주소가 내가 의도한 수취인의 것임을 인증하지 않습니다.
유효한 주소와 올바른 수취인은 서로 다른 확인 항목이다.
JOBCOIN 해설
0원 토큰 거래와 극소액 입금을 경고 신호로 읽는다
주소 오염 흔적은 네이티브 코인 소액 입금, 0-value 토큰 전송, 이름만 익숙한 가짜 토큰 등 여러 형태로 나타날 수 있습니다. 잔액 변화가 없거나 금액이 작다고 안전한 활동으로 분류하면 안 됩니다. 거래 세부 화면에서 발신자·수신자·토큰 계약·호출 함수·네트워크를 확인하면 내가 시작하지 않은 기록인지 판단하기 쉽습니다.
모르는 거래를 지우기 위해 토큰을 보내거나 낯선 사이트에 지갑을 연결할 필요는 없습니다. 스팸 토큰의 링크를 열거나 승인 거래를 만들면 별도의 피싱·토큰 승인 위험이 생길 수 있습니다. 지갑이 제공하는 숨기기·신고 기능이 있다면 화면에서만 정리하고, 온체인 기록은 그대로 두는 편이 안전합니다.
- 거래 이력에서 주소를 복사하지 않는다.
- 금액이 0이거나 지나치게 작은 낯선 거래를 경고로 본다.
- 토큰 이름 대신 계약 주소와 호출 내용을 확인한다.
- 스팸 토큰을 없애려 추가 서명이나 승인을 하지 않는다.
송금 주소는 신뢰한 원문에서 매번 다시 얻는다
반복 송금 상대는 첫 거래 때 검증한 주소를 지갑 주소록에 저장하고 이름만 아니라 네트워크와 용도를 함께 기록합니다. 주소 변경 요청이 오면 기존 연락 채널로 재확인합니다. 거래소 입금 주소는 해당 거래소의 로그인된 입금 화면에서 다시 열고, 코인과 네트워크가 맞는지 확인합니다. 메신저 검색 결과나 과거 거래 내역을 원문으로 삼지 않습니다.
큰 금액은 수취인에게 주소의 임의 구간을 읽어 달라고 별도 채널에서 확인하고, 먼저 소액 시험 전송을 합니다. 시험 거래가 도착했다는 확인 뒤에도 본 송금 주소를 다시 대조합니다. 악성 프로그램이 두 번째 복사 때 문자열을 바꿀 수 있기 때문입니다. 승인된 수취인 목록이나 출금 화이트리스트 기능이 있으면 대기 시간을 감수하고 활성화합니다.
서명 직전 신뢰 화면에서 전체 목적지를 대조한다
하드웨어 지갑 화면은 컴퓨터나 브라우저가 만든 거래와 별도로 기기가 실제 서명할 주소·금액을 보여 주는 마지막 확인 지점입니다. 화면의 하드웨어 지갑 주소를 원래 청구서나 검증한 주소록과 비교합니다. 기기 화면도 상대가 그 주소를 소유하는지는 알려 주지 않으므로 출처 확인을 앞 단계에서 끝내야 합니다.
스마트 계약 호출은 일반 송금보다 목적지가 복잡합니다. 표시된 주소가 토큰 수취인이 아니라 라우터 계약일 수 있으므로 함수·승인 대상·금액 한도를 확인합니다. 읽을 수 없는 데이터만 보이거나 blind signing을 요구하면 거래를 멈추고 공식 문서와 검증된 인터페이스에서 다시 시작합니다.
잘못 보냈다면 추가 피해부터 차단한다
블록에 확정된 전송은 일반적으로 은행 이체처럼 취소할 중앙 창구가 없습니다. 즉시 거래소나 보관 서비스가 관련됐다면 공식 지원 채널에 거래 해시를 제공하고, 관할 기관 신고에 필요한 화면과 통신 기록을 보존합니다. 공격자에게 돌려주겠다는 메시지나 복구 수수료 요구는 추가 사기일 수 있습니다.
단순 전송만 했다면 개인키가 자동으로 유출된 것은 아니지만, 그 과정에서 피싱 사이트에 연결하거나 토큰 승인을 했다면 위험 범위가 다릅니다. 연결 세션과 승인을 검토하고 필요한 승인만 철회합니다. 이후 주소록 절차와 시험 송금 규칙을 기록해 같은 실수를 반복하지 않도록 합니다.
자주 묻는 질문
거래 이력의 주소가 예전과 앞뒤가 같으면 안전한가요?
아닙니다. 공격자가 앞뒤가 비슷한 유효 주소를 생성할 수 있습니다. 원래 저장한 전체 주소와 네트워크를 대조해야 합니다.
주소 체크섬이 맞으면 수취인도 맞나요?
체크섬은 일부 오타를 찾을 뿐 주소 소유자의 신원을 인증하지 않습니다. 공격자 주소도 유효한 체크섬을 가질 수 있습니다.
낯선 0원 거래를 지울 수 있나요?
온체인 기록 자체는 지울 수 없습니다. 지갑의 숨기기 기능은 쓸 수 있지만, 없애려는 목적으로 낯선 링크·승인·서명을 실행하지 마세요.



