비슷한 여행 가방을 확대경으로 비교하는 사람

코인 송금 주소를 거래내역에서 복사해도 될까 송금 전 확인법

코인 송금 주소는 거래내역에서 골라 복사하지 않는 편이 좋습니다. 받는 지갑이나 거래소가 현재 제공하는 입금 화면에서 주소를 다시 가져온 뒤, 붙여넣은 전체 문자열을 원본과 대조하세요.

비슷한 여행 가방을 확대경으로 비교하는 사람
닮았다고 같은 대상은 아니다. 주소 비교 원리를 설명한 AI 생성 삽화.
거래내역은 주소록이 아니다내역에 보였다는 사실은 그 주소의 주인을 보증하지 않는다.
앞뒤가 같아도 다른 주소생략된 가운데가 다르면 전혀 다른 수신자다.
최종 화면에서 전체 비교원본 주소와 붙여넣은 주소를 다시 대조한다. 일부 문자 확인만으로 안전을 보장하지 않는다.

거래내역에 있던 주소를 그대로 복사해도 될까요

이 주소는 거래내역에서 가져왔나요, 수신자가 지금 제공한 화면에서 가져왔나요

주소 포이즈닝은 공격자가 개인키를 훔쳐 지갑을 직접 조종하는 공격과 구조가 다르다. MetaMask는 공격자가 사용자가 이전에 이용한 주소와 매우 비슷한 주소에서 아주 작은 거래를 보내 거래내역에 자신의 주소를 노출한 뒤, 사용자가 다음 송금 때 그 주소를 잘못 복사하기를 기대하는 방식이라고 설명한다. 따라서 모르는 소액 거래가 하나 보였다고 해서 그 순간 지갑이 탈취된 것은 아니다.

실제 손실은 사용자가 공격자 주소를 수신 주소로 선택하고 자신의 정상적인 서명으로 송금을 확정하는 순간 발생한다.

역에서 비슷한 가방의 서로 다른 잠금 장치를 비교하는 사람
앞뒤가 닮아도 가운데가 다르면 다른 대상이다. AI 생성 설명용 삽화.

공격이 가능한 첫 번째 이유는 공개 블록체인의 거래 기록을 누구나 관찰할 수 있기 때문이다. Binance는 공격자가 공개 블록체인을 훑으면서 반복적으로 거래하는 주소 쌍을 찾은 뒤, 자주 사용하는 상대 주소와 앞뒤가 비슷한 주소를 생성한다고 설명한다. 그런 다음 작은 암호화폐나 가치 없는 토큰을 보내 유사 주소가 최근 거래내역에 나타나도록 한다.

공격자는 실제 수신자의 지갑을 장악할 필요가 없다. 거래내역을 주소록처럼 사용하는 사람의 습관을 노리면 된다.

두 번째 이유는 주소가 길기 때문이다. Ethereum.org에 따르면 외부소유계정 EOA의 주소는 공개키의 Keccak-256 해시에서 마지막 20바이트를 사용하며, 40개의 16진수 문자 앞에 0x가 붙어 총 42자로 표현된다. 사람이 이런 문자열 전체를 매번 기억하기 어렵기 때문에 지갑과 블록 탐색기는 주소를 0x1234…abcd처럼 축약해 보여주곤 한다.

주소 포이즈닝은 바로 이 시각적 축약을 이용한다. 앞부분과 끝부분은 정상 주소처럼 보이지만 생략된 중간 부분은 전혀 다른 주소일 수 있다.

그래서 거래내역은 과거 활동을 확인하는 자료이지 신뢰된 수신자 목록과 같은 의미로 사용하면 안 된다. MetaMask도 사기꾼이 공개 주소에 거래를 보내는 것 자체를 사용자가 막을 수는 없다고 설명한다. 중요한 것은 송금할 때 그 거래내역의 주소를 다시 정상 주소라고 가정하지 않는 것이다. 자주 사용하는 개인지갑이나 거래소 주소라면 상대 서비스가 현재 표시하는 입금 주소 또는 이미 검증해 저장해 둔 주소록을 기준으로 다시 확인하는 편이 안전하다.

앞뒤가 같은 송금 주소는 정말 같은 주소일까요

가려진 가운데 문자열까지 원본 주소와 비교했나요

작게 접힌 주소를 펼치면 보이는 차이

원래 수신자 0x12ab … 중간 문자열 A … 90ef

닮은 다른 주소 0x12ab … 중간 문자열 B … 90ef

개념 설명용 축약 예시이며 실제 송금 주소가 아니다. 일치하는 앞뒤가 아니라 다른 가운데에 주목한다.

Ethereum 주소는 16진수이므로 한 자리에는 0부터 9와 a부터 f까지 16가지 가능성이 있다. 특정 위치의 k개 문자를 정확히 맞추는 단순 확률을 독립적이고 균등하게 생성되는 주소 후보라는 가정으로 계산하면 P=1/16^k로 볼 수 있고, 평균 후보 수의 이론값은 16^k이다. 이것은 주소 포이즈닝 공격에 따로 정해진 공식이 아니라 16진수 주소 공간을 이해하기 위한 확률 계산이다.

실제 생성 시간은 장비, 구현, 병렬 처리 등에 따라 달라지므로 이 계산을 공격자가 실제로 필요한 시간으로 바꾸어 단정하면 안 된다.

예를 들어 앞 4자리와 뒤 4자리처럼 총 8개의 특정 16진수 문자를 맞춘다는 가정에서는 16^8=4,294,967,296개의 조합에 해당한다. 한 번의 무작위 후보가 그 8개 위치와 모두 맞을 확률은 1/4,294,967,296이다. 총 12개 문자를 고정한다는 가정에서는 16^12=281,474,976,710,656으로 커진다.

따라서 맞춰야 하는 특정 16진수 문자가 한 자리 늘어날 때마다 이론적인 후보 공간은 16배씩 커진다. 다만 이 값은 주소 생성 난도를 설명하는 가정 계산이지 특정 공격자가 몇 번 시도했는지를 알려주는 측정값이 아니다.

공격자는 주소 전체를 똑같이 만들 필요가 없다. Binance의 공식 주소 포이즈닝 가이드는 공격자가 vanity address generator를 사용해 정상 주소의 앞부분과 끝부분이 비슷한 주소를 만들고, 사용자가 축약된 표시를 보고 같은 주소라고 착각하도록 노린다고 설명한다. 정상 주소가 화면에서 0x1234…abcd처럼 보인다면 공격 주소도 같은 형태로 보이도록 앞뒤 문자를 맞추되 생략된 중간 문자열은 다른 식이다.

MetaMask 역시 송금 대상 주소가 과거 거래 주소와 유사한지를 검사하며 예시로 처음 4자와 마지막 4자가 같지만 중간 문자가 다른 경우를 든다. 이런 주소가 감지되면 거래를 제출하기 전에 차단 경고를 표시한다. 여기서 앞 4자와 뒤 4자는 동일 주소를 확인하는 안전 기준이 아니라 오히려 유사 주소 공격을 탐지할 수 있는 사례다.

정상 여부를 판단하려면 생략된 중간 부분을 포함해 원본 주소와 다시 대조해야 한다.

모르는 0원 거래가 보이면 지갑이 탈취된 걸까요

모르는 소액 거래가 보인 것과 지갑이 탈취된 것은 같은 상황일까요

Binance의 2026년 주소 포이즈닝 가이드는 거래내역을 오염시키는 대표적인 방법을 세 가지로 설명한다. 첫째는 가짜 토큰 컨트랙트와 이벤트를 이용하는 방식이다. 공격자가 정상 토큰과 비슷한 이름의 비표준 토큰을 만들고 Transfer 이벤트를 발생시키면 사용자 화면에 정상 거래와 비슷한 기록이 보일 수 있다.

설명용 예를 들어 보자. 내가 보낸 토큰과 이름이 비슷하고 표시 수량도 비슷한 항목이 뒤이어 보이면, 화면을 빨리 읽을 때 같은 거래라고 착각하기 쉽다. 이 예는 실제 이용자의 거래가 아니라 혼동 경로를 설명하기 위한 가상 상황이다. 중요한 것은 숫자가 같다고 같은 토큰이나 같은 수신 주소가 되는 것이 아니라는 점이다.

둘째는 0 수량 전송이다. Etherscan은 일부 토큰 구현에서 0 수량의 transferFrom 호출로 피해 주소의 서명 없이도 전송 이벤트가 남을 수 있는 구조를 설명한다. 호출자는 따로 있지만, 화면의 토큰 전송 기록에는 피해 주소가 발신자처럼 나타날 수 있다는 의미다. 이것은 임의의 양수 수량을 승인 없이 꺼낼 수 있다는 뜻이 아니다. 이 기록 자체가 피해자의 자산을 옮겼다는 뜻은 아니다.

문제는 나중에 사용자가 그 거래를 자신이 과거에 실행한 거래로 오인하고 거기에 표시된 공격자 주소를 복사할 가능성이다.

셋째는 실제 극소액을 보내는 방식이다. 0원 거래를 필터링하는 지갑이 늘어나면 공격자는 실제 가치가 있는 아주 적은 금액을 보내 최근 거래 목록에 주소를 남길 수 있다. 실제 토큰이 소량 들어온 경우도 같은 주의가 필요하다. 이 경우 온체인상 실제 입금 거래이기 때문에 단순히 0원 기록을 숨기는 필터만으로는 사용자가 보지 못하게 된다고 보장할 수 없다.

따라서 예상하지 못한 극소액을 받았을 때 금액이 작다는 이유로 안전한 상대라고 판단하거나 그 발신 주소를 다음 송금 주소로 이용해서는 안 된다.

이 세 방식의 공통점은 사용자의 개인키를 획득하는 것이 목적이 아니라 최근 거래 목록에 공격자가 원하는 주소를 보이게 만드는 데 있다. 정상 거래와 금액이 비슷해 보이거나 0원이라 실제 손실이 없어 보일 수 있지만, 다음 송금에서 그 기록을 주소 출처로 사용할 때 위험이 생긴다. 모르는 거래가 보인다면 먼저 해당 기록의 토큰 컨트랙트, 실제 수량, From과 To 주소를 확인하고, 다음 송금 주소는 그 거래내역이 아니라 신뢰할 수 있는 원본에서 다시 가져오는 것이 핵심이다.

주소 체크섬이 맞으면 수신자도 믿어도 될까요

체크섬 검사를 통과한 주소가 정말 내가 보내려던 수신자일까요

체크섬이 묻는 것주소 문자열을 잘못 입력했는가
수신자 확인이 묻는 것이 주소가 내가 보내려던 상대인가

Ethereum에는 ERC-55라는 혼합 대소문자 체크섬 주소 표기 방식이 있다. EIP-55는 주소를 소문자로 만든 뒤 Keccak-256 해시를 계산하고, 각 영문자의 위치에 대응하는 해시 값에 따라 a부터 f의 대소문자를 결정하는 방식을 정의한다. 목적은 사람이 주소를 입력하거나 옮기는 과정에서 생기는 오류를 더 쉽게 검출하는 것이다.

EIP-55 공식 문서에 따르면 평균 약 15개의 체크 비트 효과가 있고, 무작위로 잘못 입력된 주소가 체크섬을 우연히 통과할 확률은 0.0247%다.

하지만 체크섬이 유효하다는 것과 수신자가 내가 의도한 상대라는 것은 전혀 다른 질문이다. 공격자는 오타가 섞인 잘못된 주소를 사용자에게 주는 것이 아니라 자신이 실제로 통제하는 정상적인 별도 주소를 생성한다. 그 주소 역시 자체적으로 유효한 Ethereum 주소이고 올바른 ERC-55 표기로 표현될 수 있다.

따라서 지갑이 체크섬 검사를 통과시켰다는 사실은 문자열 형식이나 입력 오류를 점검하는 데 도움을 줄 뿐 그 주소가 과거에 내가 송금했던 상대의 주소라는 신원 보증은 아니다.

초보자가 흔히 혼동하는 지점이 여기다. 주소 붙여넣기 후 오류가 표시되지 않았거나 대소문자가 정상적으로 보이면 올바른 수신 주소라고 생각할 수 있다. 그러나 주소 포이즈닝에서는 공격자의 주소도 정상 주소 형식을 갖기 때문에 오류 메시지가 없어도 이상하지 않다. 확인해야 할 것은 주소 형식의 유효성뿐 아니라 지금 붙여넣은 문자열이 상대 거래소나 지갑에서 제시한 원본과 동일한가이다.

클립보드 악성코드와도 구분해야 한다. 주소 포이즈닝은 거래내역 안에 닮은 주소를 심어 사용자가 스스로 잘못 복사하도록 유도하는 방식이다. 반면 클리퍼 악성코드는 사용자가 정상 주소를 복사했는데도 기기의 클립보드 값을 공격자 주소로 바꾸는 공격이다. 두 경우 모두 송금 직전 붙여넣은 최종 주소를 다시 확인해야 한다는 대응은 겹치지만 원인은 다르다.

따라서 거래내역에서 주소를 가져오지 않았다고 해서 최종 주소 검증 자체를 생략해도 된다는 뜻은 아니다. 주소를 복사한 위치가 정상이어도 붙여넣은 결과를 다시 비교해야 하는 이유다.

지갑의 유사 주소 경고는 무엇을 확인해 줄까요

경고가 없다는 이유만으로 안전하다고 판단하고 있지는 않나요

MetaMask는 주소 포이즈닝 탐지 기능을 공식 도움말에서 설명하고 있다. 사용자가 송금을 시도하면 목적지 주소를 거래 기록과 비교하고, 이전에 상호작용한 주소와 매우 비슷하지만 동일하지 않은 주소가 발견될 경우 거래 제출 전에 blocking warning을 띄운다. 공식 문서가 든 예시는 처음 4자와 마지막 4자가 같으면서 중간 문자가 다른 상황이다.

또한 한 번도 상호작용하지 않은 새 주소로 송금할 때도 확인 경고를 보여준다. 새 주소라는 사실 자체가 악성이라는 뜻은 아니며 사용자가 다시 확인하도록 만드는 안전 장치다.

MetaMask가 사용자에게 권하는 행동은 더 직접적이다. 송금 전에 목적지 주소를 확인하고 시작과 끝뿐 아니라 중간 문자에도 주의를 기울이며 거래내역에서 주소를 복사하지 말라고 안내한다. 거래내역에서 복사해야 한다면 알 수 없는 출처의 주소와 동일한 수준으로 다시 검증해야 한다. 반복해서 사용하는 주소는 MetaMask의 Contacts에 저장하면 과거 거래 기록에서 매번 문자열을 찾아 복사하는 행동을 줄일 수 있다.

하드웨어 지갑도 기기 화면에서 목적지 주소를 다시 확인하는 별도의 검증 지점을 제공할 수 있다고 안내한다.

Binance의 공식 가이드는 더 구체적인 육안 확인 방법으로 처음 4자, 중간 4자, 마지막 4자를 점검하는 Middle Character Rule을 제시한다. 이는 앞뒤 4자만 같다고 동일 주소로 판단하지 말라는 의미다. Binance Wallet은 악성 또는 비표준 컨트랙트에서 생성된 기록, 0 수량이나 아주 작은 dust 기록을 필터링하고 자주 사용한 주소와 매우 비슷하지만 정확히 일치하지 않는 목적지로 보내려 할 때 유사 주소 경고를 제공한다고 설명한다.

두 문서를 함께 보면 결론은 지갑의 경고 기능을 주소 검증의 대체물로 보지 않는 것이다. 경고가 떴다면 주소를 다시 검증해야 하고 경고가 뜨지 않았다고 자동으로 안전 주소가 되는 것도 아니다. 가장 신뢰할 수 있는 기준은 받을 서비스나 상대가 현재 제공하는 주소 또는 이미 별도로 검증해 저장해 둔 주소와 최종 송금 화면의 전체 목적지 문자열을 비교하는 것이다.

반복 사용하는 주소는 주소록을 활용하고, 중요한 금액을 보내는 경우에는 먼저 소액 테스트를 보내 실제 수신을 확인한 뒤 동일하게 확인한 주소로 본 송금을 진행하는 방식을 Binance도 권한다.

송금 전에 주소를 어떤 순서로 확인해야 할까요

이번 송금에서도 출처 확인부터 전체 주소 대조까지 같은 순서를 지킬 수 있나요

첫째 원본에서 가져오기받는 거래소나 지갑이 현재 표시한 주소와 네트워크를 확인한다. 예전 주소를 무조건 재사용하지 않는다.
둘째 붙여넣은 뒤 비교전체 주소를 원본과 대조한다. 가운데 몇 글자 추가 확인도 전체 일치 검증을 대신하지 않는다.
셋째 테스트 조건 확인필요하면 소액으로 실제 수신을 확인한다. 최소 입금액과 추가 수수료를 먼저 살핀다.
넷째 확인한 주소 유지테스트 이후 거래내역에서 다시 복사하지 않는다. 본 송금의 최종 주소도 재확인한다.

첫 번째 단계는 주소의 출처를 바꾸는 것이다. 최근 거래내역에서 과거에 본 것 같은 문자열을 찾아 복사하는 대신, 입금받을 거래소나 지갑이 현재 표시하는 입금 주소 또는 사전에 검증해 둔 주소록을 기준으로 시작한다. 거래소 입금이라면 코인 이름만 보는 것이 아니라 해당 거래소가 현재 표시하는 네트워크와 입금 주소를 함께 확인해야 한다.

주소 포이즈닝은 주소를 잘못 고르는 문제이고 잘못된 네트워크 전송은 별개의 문제이므로 둘 중 하나만 확인했다고 다른 하나까지 맞는 것은 아니다.

두 번째 단계는 붙여넣은 뒤 다시 보는 것이다. Ethereum 주소라면 전체 42자를 사람이 매번 한 글자씩 외울 필요는 없지만, 앞뒤 몇 글자가 같다는 이유만으로 확인을 끝내면 안 된다. Binance는 처음 4자, 중간 4자, 마지막 4자를 확인하라고 권하며 MetaMask는 특히 중간 문자를 확인하라고 안내한다.

가능하다면 원본 주소와 최종 송금 화면 주소 전체를 직접 비교한다. 주소록에 저장할 때도 처음 한 번의 검증이 잘못되면 잘못된 주소를 반복 사용할 수 있으므로 저장 전에 원본과 확인하는 과정이 중요하다.

세 번째 단계는 금액이 클수록 소액 테스트를 활용하는 것이다. Binance는 중요한 금액을 이동할 때 먼저 작은 금액을 보내 수신이 실제로 확인된 뒤 정확히 동일한 확인 주소로 본 송금을 진행하도록 권한다. 여기서 중요한 예외가 있다. 테스트 송금이 성공한 뒤 다시 최근 거래내역에서 주소를 새로 복사하면 테스트의 의미가 약해진다.

테스트한 그 주소가 맞았다는 사실을 확인한 것이므로 본 송금에서도 검증된 동일 주소를 사용해야 한다. 거래소로 테스트할 때는 그 거래소의 최소 입금액이나 입금 반영 조건도 별도로 확인해야 한다.

네 번째 단계는 예상하지 못한 0원 전송이나 극소액 입금을 주소록처럼 사용하지 않는 것이다. 공격자는 가짜 토큰 이벤트, 0 수량 거래, 아주 작은 수량의 실제 토큰 같은 실제 극소액 거래까지 이용할 수 있다고 Binance가 설명한다. 거래가 보인다는 사실과 상대 주소가 신뢰된다는 사실을 분리해야 한다.

최종적으로는 정상 원본 주소 확인, 네트워크 확인, 최종 붙여넣기 주소 재검증, 필요시 소액 테스트, 수신 확인, 동일 검증 주소로 본 송금의 순서로 진행하는 것이 안전하다. 공식 자료 확인일은 2026년 10월 4일이다. 문서와 서비스의 보안 기능은 변경될 수 있으므로 실제 송금 시점의 안내도 확인해야 한다.

핵심 포인트

거래내역은 신뢰된 주소록이 아니다. MetaMask가 공식적으로 권하는 핵심도 거래내역에서 주소를 복사하지 말고 목적지 주소의 중간 문자까지 확인하라는 것이다.

자주 묻는 질문

모르는 주소에서 0 USDT나 아주 적은 USDT가 들어오면 이미 지갑이 해킹된 것인가?

주소 포이즈닝 거래가 보였다는 사실만으로 지갑이 해킹됐다고 볼 수는 없다. MetaMask는 공격자가 0 토큰 등 가치가 거의 없는 거래를 보내 거래내역에 유사 주소를 남기는 방식이라고 설명하며, 그 자체가 바로 자산 손실을 만드는 것은 아니라고 명시한다. 위험은 이후 사용자가 그 주소를 정상 주소로 착각해 직접 자산을 송금할 때 생긴다. 다만 모르는 거래와 함께 수상한 서명, 승인, 시드문구 노출 등 다른 문제가 있었다면 주소 포이즈닝과 별개로 지갑 보안 상태를 점검해야 한다.

앞 4자리와 뒤 4자리가 예전 주소와 같으면 그대로 보내도 될까?

아니다. Binance는 앞 4자와 뒤 4자만 확인하지 말고 처음 4자, 중간 4자, 마지막 4자를 보라고 안내하고 MetaMask는 처음 4자와 마지막 4자가 같으면서 중간이 다른 주소를 유사 주소 경고의 예로 들고 있다. 앞뒤가 같다는 것은 주소 동일성의 증명이 아니라 주소 포이즈닝에서 의도적으로 흉내 내는 부분일 수 있다.

소액 테스트 송금만 성공하면 주소 포이즈닝 걱정은 끝나는가?

테스트 송금은 유용하지만 그 뒤의 행동까지 맞아야 한다. Binance는 중요한 금액을 보내기 전에 작은 금액으로 먼저 수신을 확인하고 그다음 정확히 같은 확인된 주소를 사용하도록 권한다. 테스트 성공 후 다시 거래내역에서 비슷한 주소를 새로 복사하면 포이즈닝 주소를 선택할 가능성이 생기므로, 테스트로 확인한 동일 주소를 유지하고 본 송금 직전에도 최종 목적지 주소를 다시 확인해야 한다.

이 글은 주소 포이즈닝과 가상자산 송금 보안 원리를 설명하기 위한 교육용 자료이며 특정 코인 매수·매도나 특정 서비스 이용을 권유하는 투자 조언이 아니다. 실제 송금 전에는 사용하는 거래소와 지갑의 현재 주소, 지원 네트워크, 최소 입금 조건과 보안 경고를 직접 확인하고 최종 결정과 자산 관리 책임은 사용자 본인에게 있다.

직접 확인할 공식 자료

주소 구조와 체크섬은 공식 개발 문서와 기술 표준에서, 공격 방식과 대응은 서비스 공식 문서에서 확인했다. 확인일 2026년 10월 4일. 서비스 기능은 버전과 환경에 따라 다를 수 있다.

Ethereum 공식 계정 문서ERC-55 체크섬 기술 표준MetaMask 공식 주소 포이즈닝 안내Etherscan 공식 주소 포이즈닝 설명Trezor 공식 주소 포이즈닝 대응 안내

송금 전에 함께 확인할 두 가지

테스트 금액이 너무 적으면 어떻게 될까 최소 입금액부터 확인하기예전에 쓰던 입금 주소 지금도 그대로 써도 될까

Similar Posts

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다