주소 오염(Address Poisoning)은 주소 오염 공격이라고도 하며, 사용자의 조작 습관을 이용하는 온체인 공격입니다. 공격자는 평소 자주 사용하는 주소와 매우 유사한 가짜 주소를 생성하여 여러 방법으로 거래 기록에 심어놓고, 송금 시 실수로 복사하기를 기다립니다. 이 공격은 2022년부터 대규모로 발생하기 시작했으며 현재까지도 자산 손실의 중요한 원인입니다.
주소 오염 공격의 작동 원리
주소 오염의 핵심 논리는 유사성을 이용한 속임수입니다. 공격은 단계별로 진행됩니다:
1단계: 타겟 선정
공격자는 자동화 스크립트로 온체인 거래를 모니터링하여 대규모 송금을 자주 하는 활성 주소를 타겟으로 선별합니다.
2단계: 유사 주소 생성
주소 충돌 도구를 사용하여 타겟 주소와 앞뒤 몇 자리가 동일한 주소를 대량 생성합니다. 예를 들어:
- 실제 주소: 0x71C7abcd1234efgh5678F3
- 공격자 주소: 0x71C7XXXXXXXXXXXX5678F3
대부분의 지갑은 주소의 앞 6자리와 뒤 4자리만 표시하므로, 두 주소가 화면에서 완전히 동일하게 보입니다.
3단계: 거래 기록 오염
공격자는 다음 방법으로 가짜 주소를 거래 기록에 심습니다:
- 제로 밸류 전송: 가짜 주소에서 0개의 토큰을 전송
- 소액 전송: 극소액의 토큰(예: 0.001 USDT) 전송
- 위조된 Transfer 이벤트: 특정 토큰 컨트랙트의 특성을 이용하여 "당신이 가짜 주소로 송금한" 기록을 위조
4단계: 수확 대기
이러한 가짜 거래가 기록에 나타나면, 공격자는 다음 송금 시 당신이 기록에서 주소를 복사하기만을 기다립니다. 가짜 주소를 실수로 복사하고 송금을 확인하면 자금이 도난당합니다.
왜 주소 오염 공격이 효과적인가?
이유 1: 사용자 습관
사람들은 매번 전체 주소를 새로 가져오기보다 거래 기록에서 "사용했던" 주소를 복사하는 경향이 있습니다. 공격자는 이 편리한 습관을 정확히 이용합니다.
이유 2: 주소 줄임 표시
깔끔한 인터페이스를 위해 지갑과 블록체인 탐색기는 보통 주소의 앞부분과 뒷부분만 표시합니다. 공격자는 이 보이는 부분만 일치시키면 됩니다.
이유 3: 시각적 확인의 어려움
주소를 비교하려 해도, 42자리 16진수 문자열을 육안으로 정확히 확인하기는 극히 어렵습니다. 특히 중간 부분이 숨겨진 경우에는 더욱 그렇습니다.
이유 4: 극히 낮은 공격 비용
유사 주소 대량 생성과 제로 밸류 전송의 비용은 매우 낮으며, BSC나 Polygon 같은 가스비가 저렴한 체인에서는 특히 그렇습니다. 공격자는 수천 개의 주소를 동시에 오염시킬 수 있습니다.

실제 피해 사례
2024년 5월, 한 사용자가 주소 오염 공격으로 6,800만 달러 상당의 WBTC를 잃었습니다. 거래 기록에서 익숙해 보이는 주소를 복사하여 대규모 송금을 했지만, 실제로는 공격자의 유사 주소였습니다. 이것은 현재까지 주소 오염으로 인한 최대 단일 손실 사례 중 하나입니다.
이 외에도 수많은 중소규모 피해 사례가 있지만, 금액이 "충분히 크지 않아" 대부분의 피해자가 공개하지 않고 있습니다.

주소 오염 공격을 방어하는 방법
방법 1: 주소록 사용
자주 사용하는 송금 주소를 지갑이나 거래소의 주소록에 미리 저장하세요. 송금 시 항상 주소록에서 선택하고, 거래 기록에서 복사하지 마세요.
방법 2: 전체 주소 확인
복사 붙여넣기가 필요한 경우 전체 주소를 펼쳐서 한 글자씩 비교하세요. 최소한 앞 12자리와 뒤 12자리를 확인하세요.
방법 3: 테스트 송금 실시
대규모 송금 전에 목표 주소로 극소액을 먼저 보내세요. 상대방이 수령을 확인한 후 큰 금액을 송금하세요.
방법 4: ENS 등 도메인 서비스 활용
이더리움 네임 서비스(ENS)를 사용하면 긴 주소 문자열 대신 "alice.eth"와 같은 읽기 쉬운 이름으로 송금할 수 있습니다. 도메인 이름을 통한 송금은 주소 오염을 효과적으로 방지합니다.
방법 5: 지갑 최신 버전 유지
일부 지갑은 의심스러운 제로 밸류 전송을 식별하고 표시하는 알고리즘을 추가했습니다. 지갑 앱을 항상 최신 버전으로 유지하세요.
보안 주의사항
주소 오염 공격은 기술적 취약점이 아닌 인간의 부주의를 이용합니다. 예방의 핵심은 좋은 습관을 기르는 것입니다:
- 거래 기록에서 직접 주소를 복사하지 마세요: 주소록을 사용하거나 전체 주소를 수동으로 확인하세요
- 대규모 송금 전 반드시 테스트 송금을 하세요: 모든 유형의 주소 오류에 대한 마지막 방어선입니다
- 전체 주소를 확인하세요: 앞뒤 몇 자리만 보지 마세요
- 출처 불명의 입금을 무시하세요: 알 수 없는 출처의 제로 밸류나 소액 입금은 오염 공격일 수 있습니다
- 주소 라벨링을 지원하는 도구를 사용하세요: 자주 사용하는 주소에 라벨을 붙이면 빠른 식별에 도움됩니다
- 높은 집중력을 유지하세요: 송금은 고위험 작업이므로 조작 시 집중력을 유지하세요
거래소를 통해 송금할 때는 플랫폼의 화이트리스트 기능을 활용하여 보안을 강화할 수 있습니다. 바이낸스에서 출금 화이트리스트를 활성화하거나, 바이낸스 공식 앱을 다운로드하고, 아이폰 사용자는 iOS 설치 가이드를 참고하여 안전하게 운영하세요.
주소 오염으로 자산이 직접 도난당할 수 있나요?
아닙니다. 주소 오염 자체로는 자금을 이동시킬 수 없습니다. 거래 기록에 함정을 심어놓을 뿐입니다. 손실은 당신이 능동적으로 가짜 주소를 복사하고 거래를 실행했을 때만 발생합니다. 의심스러운 거래 기록을 무시하면 아무런 영향이 없습니다.
거래 기록의 거래가 오염 시도인지 어떻게 판단하나요?
자신이 시작하지 않은 송금 기록(보통 금액이 0)을 발견하거나, 출처 불명의 극소액 입금을 받았으며, 관련 주소가 자주 사용하는 주소와 앞뒤가 유사하다면 높은 확률로 오염 공격입니다.
어떤 블록체인에서 주소 오염이 가장 흔한가요?
이더리움, BSC, TRON이 가장 흔합니다. BSC와 TRON은 가스비가 극히 낮아 공격자가 최소 비용으로 대규모 오염을 실행할 수 있습니다. 이더리움은 공격 비용이 높지만, 자산 가치가 크기 때문에 고가치 계정은 여전히 표적이 됩니다.
지갑 앱에서 오염 거래를 필터링할 수 있나요?
일부 지갑(MetaMask 최신 버전 등)은 제로 밸류 전송 필터링 기능을 추가하여 의심스러운 오염 거래를 숨길 수 있습니다. 하지만 이 기능은 100% 신뢰할 수 없으며, 사용자 자신의 경계심도 필요합니다. 지갑에서 사용 가능한 모든 보안 필터링 옵션을 활성화하세요.