주소 포이즈닝(Address Poisoning) 사기 — 지갑 기록에서 주소를 복사하면 안 되는 이유
지갑의 거래 기록을 열어 보니 내가 보낸 적 없는 거래가 하나 떠 있습니다. 금액은 0이거나 1원도 안 되는 토큰입니다. 신경 쓸 가치가 없어 보여서 그냥 넘깁니다. 문제는 그 거래의 상대 주소가 내가 평소에 실제로 돈을 보내던 주소와 앞뒤 글자가 똑같다는 데 있습니다. 다음에 그 주소로 다시 돈을 보낼 때, 기록에서 익숙한 걸 찾아 복사하면 진짜 피해가 시작됩니다.
0원짜리 거래가 왜 위협이 되는가
주소 포이즈닝(Address Poisoning)은 공격자가 내 지갑의 거래 기록을 오염시키는 수법입니다. 공격자는 내가 실제로 돈을 주고받은 적 있는 주소를 하나 찾아내고, 그 주소와 앞 몇 글자·뒤 몇 글자가 똑같은 가짜 주소를 따로 만듭니다. 그다음 그 가짜 주소에서 내 지갑으로 0원이거나 1원도 안 되는 토큰을 보냅니다. 받는 사람 입장에서는 손해가 전혀 없는 거래입니다. 문제는 이 거래 한 건이 내 지갑 앱의 "최근 거래 내역" 목록에 영구히 남는다는 것입니다.
사람은 주소 전체(보통 40자리 안팎)를 한 글자씩 대조하지 않습니다. 메타마스크를 포함한 대부분의 지갑 앱도 화면에는 앞 6자리와 뒤 4자리만 줄여서 보여줍니다. 앞뒤만 맞으면 눈으로는 구분이 안 됩니다.
비슷한 주소, 실제로 만들 수 있나 — 확률 계산
이더리움 계열 주소는 0x 뒤에 16진수(0~9, a~f) 40자리가 옵니다. 공격자가 원하는 건 전체 일치가 아니라 앞 4자리와 뒤 4자리만 내가 아는 주소와 같은 가짜 주소입니다. 중간 32자리는 아무렇게나 나와도 상관없습니다.
16진수 1자리 경우의 수 16
맞춰야 할 자리 8자리(앞4+뒤4)
일치 확률 = 1 ÷ 16⁸
= 1 ÷ 4,294,967,296
GPU 1대 생성 속도 초당 100만 개 가정
평균 시도 횟수 43억 ÷ 2 ≈ 21.5억
소요 시간 = 21.5억 ÷ 100만
≈ 2,147초 ≈ 약 36분
─────────────
가정용 GPU 한 대로도 한 시간 안쪽
36분이라는 숫자가 과장처럼 보일 수 있지만, 지갑 주소는 애초에 개인키에서 역산으로 만드는 게 아니라 새 개인키를 계속 생성해서 공개주소만 비교하는 방식이라 이런 생성이 가능합니다. 이렇게 조건에 맞는 주소를 찾아내는 과정 자체를 베니티 주소(vanity address) 생성이라고 부르며, 원래는 "내 주소 앞에 특정 글자를 넣고 싶다"는 평범한 용도로도 쓰입니다. 포이즈닝은 그 기술을 사기에 쓰는 것뿐입니다.
공격자에게는 거의 공짜다
가짜 주소를 만드는 데 36분이 걸려도, 그 주소에서 피해자에게 0원짜리 거래를 실제로 보내는 비용은 아주 작습니다. 이더리움 메인넷이면 가스비가 몇 달러씩 들 수 있지만, 공격은 대개 가스비가 거의 없는 체인에서 벌어집니다.
가짜 주소 1개당 거래 1건
가스비 $0.01
지갑 10,000개에 살포
10,000 × $0.01 = $100
그중 1,000명만 속아서
평균 $300씩 잘못 전송하면
피해 총액 $300,000
─────────────
공격자 투자 $100으로 피해 $300,000
이 비대칭이 주소 포이즈닝이 계속 반복되는 이유입니다. 성공률이 아주 낮아도(가정상 1,000명 중 몇 명만 속아도) 공격자 입장에서는 밑지지 않습니다.
진짜 피해는 두 번째 거래에서 난다
포이즈닝 거래 자체는 돈을 가져가지 않습니다. 함정은 나중에 터집니다. 평소 자주 쓰던 주소로 다시 돈을 보낼 일이 생겼을 때, 많은 사람이 지갑 앱을 켜고 주소록 대신 거래 기록에서 "최근에 이 주소로 보냈었지"를 찾아 그대로 복사합니다. 그 순간 화면에 앞뒤만 같고 중간은 다른 가짜 주소가 진짜 주소와 나란히 섞여 있다면, 둘 중 어느 걸 복사했는지 눈으로는 가릴 수 없습니다.
평소 보내던 거래소 입금주소
0xAB12...... ......99F0
포이즈닝 가짜 주소
0xAB12...... ......99F0
(중간 32자리만 다름)
잘못 전송 금액 $5,000
블록 컨펌 완료 후 상태 되돌릴 수 없음
─────────────
은행 계좌이체와 달리 취소·환불 절차가 없다
블록체인 전송은 블록에 기록되는 순간 최종 확정(finality)됩니다. 카드 결제 취소나 계좌이체 반환 요청 같은 구제 절차가 구조적으로 없습니다. 지갑 드레이너 피싱이 서명을 유도해 한 번에 긁어가는 수법이라면, 주소 포이즈닝은 내 착각 한 번을 사십니다 — 가짜 사이트로 유인할 필요조차 없다는 점에서 더 조용하고 오래갑니다.
거래소 입금주소·메모(태그)에도 같은 수법이 쓰인다
개인 지갑 간 전송만이 아니라 거래소 입금에도 변형이 존재합니다. 평소 쓰던 거래소 입금주소와 비슷한 주소로 소액을 먼저 보내 기록에 남겨 두는 방식은 동일합니다. 여기에 더해 리플(XRP)이나 일부 체인처럼 주소 외에 메모(Memo)·태그(Tag)까지 맞춰야 입금이 올바르게 식별되는 경우, 주소는 맞지만 메모만 다른 함정도 보고됩니다. 주소만 보고 안심하면 안 되는 이유입니다.
체인마다 위험도가 다르다
문자 집합이 넓을수록 똑같이 생긴 주소를 만들기가 더 어려워집니다.
이더리움(EVM) 16진수 16종
일치 확률 1/16⁸ ≈ 1/43억
트론(TRON, Base58) 58종
일치 확률 1/58⁸ ≈ 1/1.1조
비트코인(Bech32) 32종
일치 확률 1/32⁸ ≈ 1/1.1조
─────────────
문자 집합이 넓을수록
겉보기로 속이기가 더 어려워진다
그렇다고 트론·비트코인이 안전하다는 뜻은 아닙니다. 공격자는 앞 4+뒤 4가 아니라 앞 3+뒤 3처럼 조건을 낮춰서 생성 시간을 줄이기 때문에, 체인 차이는 난이도 차이일 뿐 방어 수단이 되지는 못합니다.
예방 체크리스트
기술로 완전히 막는 방법은 없습니다. 복사하는 습관을 바꾸는 쪽이 현실적입니다.
- 거래 기록에서 주소를 복사하지 않는다. 자주 보내는 주소는 처음 한 번만 주소록(컨택트)에 저장해 두고, 다음부터는 거기서 불러옵니다.
- 전체 주소를 끝까지 대조한다. 앞뒤 몇 글자만 보고 넘기지 말고, 가능하면 QR코드 스캔이나 복사-붙여넣기 직후 전체 문자열을 비교합니다.
- 처음 보내는 주소는 소액으로 먼저 테스트한 뒤 도착을 확인하고 나서 나머지를 보냅니다.
- 거래소는 입금주소 화이트리스트 기능이 있으면 켭니다. 등록된 주소 외에는 출금 자체가 막혀 실수로 다른 주소를 입력해도 전송되지 않습니다.
- 메모·태그가 필요한 코인은 주소뿐 아니라 메모 값까지 거래소 안내 화면과 한 글자씩 비교합니다.
- 지갑에 들어온 낯선 소액·0원 거래는 무시하되, 그 거래의 상대 주소를 주소록이나 즐겨찾기에 실수로 추가하지 않습니다.
이 습관들은 개인 키 관리나 피싱 예방법과 같은 결의 문제입니다. 공격 기술 자체를 막을 수는 없어도, 마지막 확인 한 번을 내가 하느냐 안 하느냐가 피해를 가릅니다.
정리
② 그 주소에서 0원·소액 거래를 내 지갑 기록에 심음
③ 앞4+뒤4 일치는 1/43억, GPU로 약 36분이면 생성(가정)
④ 가짜 거래 자체는 공격자에게 가스비 몇 센트뿐
⑤ 진짜 피해는 내가 나중에 기록에서 잘못 복사할 때 발생
⑥ 블록체인 전송은 확정되면 취소·환불이 없음
⑦ 거래소 입금주소·메모(태그)에도 같은 수법이 쓰임
⑧ 체인마다 문자 집합이 달라 난이도만 다를 뿐 방어는 아님
⑨ 예방은 기술이 아니라 "기록에서 복사하지 않기"
한 줄로 줄이면 이렇습니다. 주소 포이즈닝은 내 돈을 직접 노리지 않고, 내가 다음에 저지를 실수를 미리 심어 두는 수법입니다. 공격 자체는 막을 수 없지만, 전송 직전 주소록에서 불러오고 전체 문자열을 한 번 더 보는 습관만으로 이 함정은 거의 무력화됩니다.
주의
본문의 앞4+뒤4 일치 확률 1/4,294,967,296, GPU 초당 100만 개 생성 가정에 따른 약 2,147초(약 36분)라는 소요 시간, 가스비 0.01달러·지갑 10,000개 살포·$100 비용·피해자 1,000명·평균 $300·총피해 $300,000이라는 비대칭 계산, 실수로 전송한 $5,000 사례, 트론·비트코인의 1/1.1조라는 수치는 모두 계산 구조를 보여주기 위한 가정 예시이며 실제 공격 성공률·피해 규모·소요 시간을 측정한 통계가 아닙니다. GPU 생성 속도는 하드웨어와 소프트웨어 구현에 따라 크게 달라지며, 실제 공격자의 비용과 성공률은 이 글의 가정과 다를 수 있습니다. 이 글은 주소 포이즈닝이라는 사기 수법의 작동 원리와 예방법을 설명하는 보안 정보이며 특정 지갑·거래소·코인의 안전성을 보증하지 않습니다. 화이트리스트·주소록 기능의 존재 여부와 명칭은 지갑·거래소마다 다르므로 실제 사용 전 해당 서비스의 안내를 직접 확인해야 합니다. 암호화폐 전송은 되돌릴 수 없고 분실·탈취된 자산은 복구되지 않을 수 있습니다. 자산 관리와 그 결과는 본인 책임입니다.
NOONOO TRADING 무료 채팅방에서 실시간 트레이딩을 같이 보세요.
봇에서 시작하기📈 OKX 신규 가입 시 거래 수수료 할인
OKX 수수료 할인 가입 →