7,231억 원 한 번에 증발… 프라이빗키 멀쩡한데 털리는 '주소 독극물' 사기 확산

| 서도윤 기자

주소 독을 노린 ‘어드레스 포이즈닝(address poisoning)’ 사기가 지갑 ‘프라이빗키’ 보안과는 무관하게 막대한 피해를 내고 있다. 공격자는 블록체인 구조나 암호 기술을 뚫지 않는다. 단지 거래내역을 교묘하게 조작해 사용자가 스스로 ‘눈에 익은 주소’라고 착각한 악성 주소로 송금하게 만드는 방식이다.

2025년에는 한 사용자가 잘못 복사한 주소로 테더(USDt) 5,000만 달러(약 7,231억 5,000만 원)를 보내는 사고가 발생했다. 2026년 2월에는 팬텀(Phantom) 지갑의 채팅 기능을 노린 피싱 캠페인에서 어드레스 포이즈닝 기법이 활용돼 래핑된 비트코인 wBTC 약 3.5개, 당시 시세 기준 26만 4,000달러(약 38억 1,800만 원) 상당이 유출됐다. 단순한 ‘인터페이스 속임수’만으로도 수십억~수천억 원대 손실이 발생할 수 있다는 점이 여실히 드러난 셈이다.

이 같은 사건이 잇따르자 바이낸스 공동창업자 창펑 자오(Changpeng Zhao, CZ) 등 업계 인사들은 지갑 서비스에 보다 강력한 보호장치를 도입해야 한다고 공개적으로 요구하고 있다. 문제의 핵심은 프라이빗키 유출이 아니라, 사용자 행동 패턴과 지갑 화면 설계에 있다는 인식이 확산되고 있다.

프라이빗키는 건드리지 않는다…‘거래내역 조작’이 전부

어드레스 포이즈닝은 전통적인 해킹과 달리 프라이빗키 탈취나 스마트컨트랙트 취약점 공략을 시도하지 않는다. 공격자는 블록체인 상에 공개된 정보와 사용자의 습관만 노린다. 일반적인 공격 흐름은 다음과 같다.

먼저, 스캐머는 온체인 데이터를 분석해 고액 자산을 보유한 지갑 주소를 추려낸다. 이후 피해자가 자주 송금하는 상대 주소를 파악한 뒤, 그 주소와 매우 비슷한 새 지갑을 만든다. 예를 들어 이더리움(ETH) 계열 주소는 ‘0x’로 시작하는 42자 영문·숫자 조합인데, 실제 사용자 인터페이스(UI)에는 보통 ‘처음 몇 글자 + … + 마지막 몇 글자’만 잘려서 보인다. 공격자는 이 점을 이용해 ‘앞자리와 뒷자리는 같지만 중간이 다른’ 주소를 의도적으로 만든다.

그 다음 단계는 ‘더스트(dust, 극소량 토큰) 전송’이다. 공격자는 이 가짜 주소에서 피해자 지갑으로 극히 적은 양의 토큰을 보내거나, 심지어 0 값 거래를 발생시킨다. 이렇게 하면 지갑의 ‘최근 거래내역’에 이 가짜 주소가 자연스럽게 등장한다. 시간만 지나면 사용자는 과거 거래내역에서 주소를 복사할 때, 자신이 원래 쓰던 주소와 헷갈려 가짜 주소를 그대로 송금창에 붙여넣게 된다.

이 과정에서 피해자의 지갑이나 프라이빗키는 전혀 손대지 않는다. 블록체인의 암호 기술도 무사하다. 공격은 오로지 사용자의 실수, 그리고 ‘늘 보던 패턴이니 안전하겠지’라는 심리를 노려 성사된다.

에더리움 레이어2 확장 솔루션이 급성장하면서 이 수법이 더 기승을 부리고 있다는 분석도 나온다. 거래 수수료가 크게 낮아지면서 공격자가 수천, 수만 개의 더스트 거래를 뿌려도 비용 부담이 크지 않기 때문이다.

지갑 UI를 파고드는 ‘주소 위장’의 기술

어드레스 포이즈닝의 핵심은 사람 눈에 ‘익숙해 보이게’ 만드는 데 있다. 이더리움 호환 체인에서 지갑 주소는 보통 42자짜리 16진수 문자열이다. 사용자가 매번 이 모든 문자를 확인하는 것은 현실적으로 어렵다. 그래서 대부분의 지갑은 ‘0x85c…4b7’처럼 앞·뒤 일부만 보여준다. 바로 이 ‘축약 표시’가 공격자에게 틈을 제공한다.

예를 들어 다음과 같은 정상 주소가 있다고 가정하자.

0x742d35Cc6634C0532925a3b844Bc454e4438f44e

공격자는 이를 흉내낸 다음과 같은 주소를 만들어낸다.

0x742d35Cc6634C0532925a3b844Bc454e4438f4Ae

앞부분과 뒷부분은 동일하게 보이지만, 가운데 일부와 마지막 몇 글자가 살짝 다르다. 축약된 UI 상에서는 사실상 구분이 쉽지 않다. 이처럼 ‘헷갈리게 비슷한 주소’를 대량으로 뽑아내기 위해 스캐머들은 GPU 기반 ‘베니티 주소 생성기’ 툴을 활용한다. 특정 패턴을 포함하는 주소를 자동으로 찾아주는 도구라, 수천 개의 유사 주소를 몇 분 안에 만들어낼 수 있다.

블록 탐색기 가운데 일부는 이미 이러한 더스트 거래를 자동으로 감지해 ‘스팸’ 혹은 ‘의심 거래’로 표시하는 기능을 도입하고 있다. 다만 사용자가 직접 탐색기를 열어 하나하나 확인하지 않으면, 지갑 앱 내 최근 거래내역 화면에서는 여전히 정상 거래처럼 보이는 것이 현실이다.

왜 이렇게 잘 먹힐까…사람과 UX의 한계

어드레스 포이즈닝이 특히 위험한 이유는 기술적인 난도가 낮은 데 비해 성공률이 높기 때문이다. 여기에 여러 심리·디자인 요소가 겹친다.

우선 인간의 한계다. 긴 16진수 문자열을 매번 전부 확인하는 것은 대부분의 사용자에게 불가능에 가깝다. 사람은 자연스럽게 앞부분과 뒷부분 몇 글자만 대조하고 ‘대충 맞는 것 같다’고 판단한다. 공격자는 바로 이 ‘대충 확인’ 습관을 겨냥한다.

두 번째는 편의 기능의 역설이다. 많은 지갑이 최근 거래 상대 옆에 ‘복사 버튼’을 제공한다. 반복 거래에 편리한 기능이지만, 여기에 스팸 거래가 한 줄 끼어들면 상황이 완전히 달라진다. 온체인 분석가 잭스비티(ZachXBT) 등은 실제 피해 사례 조사에서 피해자 상당수가 이 ‘최근 거래내역의 복사’ 기능을 통해 악성 주소를 그대로 가져다 쓴 정황을 확인했다고 지적한다.

세 번째는 블록체인의 특성이다. 퍼미션리스(permissionless) 구조에서 누구나 누구에게나 토큰을 보낼 수 있고, 대부분의 지갑은 모든 입금·거래 내역을 필터 없이 보여준다. 사용자는 ‘내 지갑에 찍힌 기록’이라는 이유만으로 해당 주소를 신뢰하는 경향이 있다. 기술적인 취약점이 아니라 사용자의 행동과 UI 설계가 공격 표면이 되는 셈이다.

결국 이 사기의 본질은 ‘키 관리’가 아니라 ‘상대 주소 확인 과정’에 있다. 프라이빗키는 오직 ‘내가 이 거래를 승인했는지’를 증명할 뿐, ‘내가 누구에게 보내는지’의 옳고 그름은 판단하지 않는다. 한 번 서명된 거래는 되돌릴 수 없고, 블록체인은 그 기록을 영구 보존한다. 시스템은 설계대로 정확히 작동하지만, 사람의 판단이 잘못되면 그 결과는 그대로 온체인에 박힌다.

사용자와 지갑 개발자가 취할 수 있는 예방 조치

어드레스 포이즈닝은 기술적 취약점이 아닌 ‘행동 패턴의 취약점’을 파고드는 만큼, 작은 습관 변화만으로도 피해 가능성을 크게 낮출 수 있다. 고급 기술 지식이 없어도 실천할 수 있는 몇 가지 수칙이 제시된다.

먼저 사용자 측면에서 가장 중요한 것은 ‘주소 관리’다. 자주 송금하는 상대는 별도의 ‘주소록’이나 화이트리스트로 저장해 두고, 이 목록에서만 선택해 송금하는 습관을 들이는 것이 좋다. 송금 직전에는 가능하면 전체 주소를 처음부터 끝까지 확인하거나, 최소한 별도의 검증 도구를 사용해 한 글자씩 대조하는 과정이 필요하다.

또한 ‘최근 거래내역에서 주소를 복사하는 행위’는 피하는 편이 안전하다. 편리하긴 하지만, 바로 그 지점이 어드레스 포이즈닝의 주 공격 경로이기 때문이다. 기억나지 않는 극소량 입금, 0 값 전송 등 정체불명의 거래가 찍혔다면 이를 ‘잠재적 사기 신호’로 간주하고 무시하거나 신고하는 편이 바람직하다.

지갑 개발자에게도 할 수 있는 일은 많다. 대표적으로는 극소량·0 값 거래를 자동으로 숨기거나 별도 ‘스팸’ 탭으로 분리하는 필터링 기능이 있다. 또 사용자가 과거 저장한 주소와 유사한 새 주소로 송금하려 할 때, 두 주소 간 문자열 유사도를 계산해 ‘유사 주소 경고’를 띄우는 기능도 도입이 가능하다.

거래 서명 전 ‘시뮬레이션’을 실행해 예상 수신 주소와 과거 신뢰된 주소 목록을 비교하고, 이상 징후가 있으면 경고를 보여주는 방식도 하나의 해법이다. 온체인 탐지 서비스나 공유 블랙리스트와 연동해, 이미 알려진 포이즈닝 주소에 대해 실시간 경고를 주는 기능 역시 고려할 만하다.

어드레스 포이즈닝은 블록체인의 투명성과 개방성, 그리고 사용자의 편의를 위해 만들어진 UI 요소들이 뒤섞이며 생긴 ‘그늘’에 가깝다. 프라이빗키만 지키면 안전하다는 기존 통념이 더 이상 통하지 않는 사례가 늘어나고 있는 만큼, 사용자와 서비스 제공자 모두가 ‘주소 확인’이라는 기본 절차를 다시 점검할 필요가 있다. 결국 이 사기는 암호 기술을 깨뜨리지 못하는 대신, 사람과 인터페이스의 허점을 집요하게 파고드는 수법이라는 점을 잊지 말아야 한다.


💡 "프라이빗키만 지켜서는 부족하다, 이제는 '주소 보안'까지"

어드레스 포이즈닝 사기는 프라이빗키나 블록체인 암호 기술을 건드리지 않습니다. 대신 지갑 UI와 사용자의 습관, 그리고 "늘 보던 주소니까 괜찮겠지"라는 심리를 파고듭니다.

즉, 전통적인 의미의 '해킹 방어'만으로는 자산을 지킬 수 없는 시대가 온 것입니다.

토큰포스트 아카데미는 이런 새로운 형태의 리스크까지 고려해, 지갑 보안과 UX의 허점을 이해하고 스스로 방어할 수 있는 '실전형 투자자'를 양성하는 커리큘럼을 제공합니다.

2026년, 프라이빗키만 지킨다고 안전한 시대는 끝났습니다.

지갑 화면 한 줄, ‘복사’ 버튼 한 번이 수십억 원의 손실로 이어질 수 있는 만큼, 이제는 보안 × 온체인 이해 × UX 리터러시를 함께 갖춘 투자자가 되어야 합니다.

토큰포스트 아카데미 수강 신청하기

커리큘럼: 기초 보안부터 온체인 분석, 디파이·선물옵션, 매크로 사이클까지 7단계 마스터클래스

파격 혜택: 첫 달 무료 이벤트 진행 중!

바로가기: https://www.tokenpost.kr/membership


기사요약 by TokenPost.ai

🔎 시장 해석

주소 포이즈닝(address poisoning)은 블록체인 암호 체계나 개인키를 직접 공격하지 않고, 지갑 화면의 거래내역과 사용자의 ‘복사-붙여넣기’ 습관을 노리는 사회공학 기반 사기 수법입니다.

수수료가 저렴한 이더리움 L2 및 멀티체인 환경 확산으로, 공격자가 수천·수만 개의 지갑에 소액 더스트(dust)를 뿌리며 가짜 주소를 심어두기 쉬워지면서 피해 규모와 빈도가 빠르게 커지고 있습니다.

수십만~수천만 달러 단위의 실제 피해 사례는 지갑 UX·보안 설계가 온체인 인프라 보안 못지않게 중요해졌음을 보여주며, 업계 전반의 UI 개편·보안 기능 표준화 논의를 촉발하고 있습니다.

💡 전략 포인트

1) 개인 투자자: 최근 거래 내역에서 주소를 복사하는 습관을 즉시 중단하고, 자주 송금하는 주소는 지갑 내 주소록·화이트리스트로 관리하세요.

2) 검증 루틴: 송금 전 전체 주소(앞·중간·끝)를 문자 단위로 대조하거나, 자체적으로 만든 ‘검증용 소액 테스트 송금’ 절차를 거치는 것을 기본 규칙으로 삼는 것이 좋습니다.

3) 경보 신호: 0 또는 극소량 토큰이 낯선 주소로부터 들어오면, 이를 신뢰 신호가 아닌 ‘포이즈닝 후보’로 간주하고 해당 거래를 절대 기준 주소로 사용하지 마세요.

4) 지갑 선택: 스팸·더스트 필터링, 유사 주소 경고, 시뮬레이션·리스크 알림 기능을 제공하는 지갑을 우선적으로 사용하고, 이런 기능이 없다면 별도 보안 플러그인·탐색기를 병행 활용하세요.

5) 기관·프로 트레이더: 멀티시그, 역할 분리(입력자·검증자·승인자 분리), 오프라인 주소 검증 문서 등 ‘인적 절차 통제’를 도입해 대형 실수를 구조적으로 줄여야 합니다.

📘 용어정리

· 주소 포이즈닝(Address Poisoning): 공격자가 피해자의 지갑 거래내역에 ‘진짜와 앞뒤만 같은 가짜 주소’를 소액 거래로 심어두고, 피해자가 이를 복사해 송금하도록 유도하는 사기 기법.

· 더스트 트랜잭션(Dust Transaction): 경제적 의미가 거의 없을 정도로 매우 적은 수량의 토큰 전송. 주소 포이즈닝·지갑 스팸·트래킹 등에 자주 악용됨.

· 바니티 주소(Vanity Address): 특정 문자 패턴(앞·뒤 몇 자리 등)을 맞추기 위해 생성된 주소. 공격자는 이를 활용해 피해자가 자주 쓰는 주소와 앞·뒤가 같은 가짜 주소를 대량 생산함.

· 화이트리스트(Whitelist) / 주소록: 사용자가 신뢰하는 수신 주소를 미리 저장·관리하는 목록. 송금 시 이 목록 내 주소만 선택하는 방식으로 오발송을 줄일 수 있음.

· 트랜잭션 시뮬레이션(Transaction Simulation): 실제 온체인 전송 전에, 어떤 주소로 얼마가 이동하는지 미리 가상 실행해 보여주는 기능. 잘 구현되면 실수·사기 가능성을 사전에 인지하는 데 도움을 줌.

💡 자주 묻는 질문 (FAQ)

Q.

주소 포이즈닝 공격이 대체 무슨 이야기인가요?

주소 포이즈닝(address poisoning) 공격은 사기꾼이 여러분의 지갑 거래 내역에 ‘겉보기에는 익숙해 보이는 가짜 주소’를 끼워 넣어, 나중에 송금할 때 그 주소를 실수로 복사·붙여넣기 하게 만드는 수법입니다. 공격자는 여러분의 비밀키나 지갑을 직접 해킹하지 않고, 블록체인의 특성(누구나 아무 주소로나 토큰을 보낼 수 있음)과 지갑 UI, 그리고 사용자의 습관을 이용해 자금을 빼앗습니다.

Q.

비밀키를 잘 보관하고 있는데도 왜 이런 피해가 생기나요?

비밀키는 ‘내가 이 거래를 승인했다’는 사실을 증명해 주지만, 그 거래의 상대방 주소가 올바른지까지는 확인해 주지 않습니다. 주소 포이즈닝에서는 사용자가 직접 잘못된 주소로 전송을 승인하기 때문에, 블록체인 입장에서는 정상적인 거래로 기록됩니다. 지갑 화면이 주소를 앞·뒤 일부만 보여 주고, 최근 거래 내역에 있는 주소를 한 번에 복사할 수 있게 설계되어 있어 사람의 눈으로는 가짜 주소를 구분하기 어렵고, 이 틈을 노린 것이 바로 이 공격입니다.

Q.

주소 포이즈닝을 예방하기 위한 가장 쉬운 방법은 무엇인가요?

첫째, 자주 송금하는 주소는 지갑의 주소록·화이트리스트 기능에 저장해 두고, ‘최근 거래 내역’에서 바로 복사하는 습관을 버리세요. 둘째, 큰 금액을 보낼 때는 전체 주소(앞·중간·끝)를 한 글자씩 대조하거나, 먼저 아주 적은 금액을 테스트로 보내 보고 이상이 없을 때 나머지를 전송하는 절차를 두면 좋습니다. 셋째, 낯선 주소에서 소량 또는 0값 토큰이 들어왔다면 이를 신뢰 신호로 보지 말고, 주소 포이즈닝 시도일 수 있다고 의심하면서 해당 거래의 주소는 절대 기준으로 사용하지 않는 것이 안전합니다.

TP AI 유의사항

TokenPost.ai 기반 언어 모델을 사용하여 기사를 요약했습니다. 본문의 주요 내용이 제외되거나 사실과 다를 수 있습니다.

본 기사는 시장 데이터 및 차트 분석을 바탕으로 작성되었으며, 특정 종목에 대한 투자 권유가 아닙니다.