배니티 주소의 위험과 유사 주소
배니티 주소의 위험을 알아봅니다. 맞춤형 주소와 유사한 암호화폐 주소가 만들어지는 방식, 사기범의 악용 수법, 취약한 생성기의 결함, 안전을 지키는 방법을 설명합니다.
배니티 주소, 즉 이름이나 반복 문자처럼 원하는 패턴을 담은 지갑 주소에는 두 가지 주요 위험이 있습니다. 첫째, 개인 키가 취약하거나 신뢰할 수 없는 도구로 생성되었다면 다른 사람이 이를 재현해 자금을 훔칠 수 있습니다. 둘째, 사기범은 같은 기법으로 유사 주소를 만들어 내가 그들에게 암호화폐를 보내도록 속입니다. 두 위험 모두 결국 주소가 어떻게 생성되는지, 그리고 내가 주소를 어떻게 확인하는지에 달려 있습니다.
대부분의 사람은 주소의 앞뒤 몇 글자만 훑어봅니다. 공격자는 이를 알고 그 습관을 중심으로 사기를 설계합니다. 작동 원리를 이해하면 두 가지 손실을 모두 피하는 데 도움이 됩니다.
배니티 주소가 만들어지는 방식
암호화폐 주소는 공개 키에서 파생되고, 공개 키는 개인 키에서 나옵니다. 주소를 직접 선택할 수는 없습니다. 할 수 있는 것은 무작위로 키를 생성하고, 그 결과 나온 주소가 패턴과 일치하는지 확인하는 것뿐입니다.
- 1무작위 개인 키를 생성합니다.
- 2공개 키와 주소를 도출합니다.
- 3주소가 원하는 문자로 시작하거나 끝나는지 확인합니다.
- 4일치하지 않으면 반복합니다. 흔히 수십억 번에 이릅니다.
일치시키려는 문자가 하나 늘어날 때마다 작업량은 몇 배로 늘어납니다. 그래서 짧은 패턴은 금방 찾지만 긴 패턴에는 막대한 연산 능력이 필요합니다. 최종 주소의 보안은 전적으로 1단계에 달려 있습니다. 개인 키는 강력한 무작위성에서 나와야 합니다. 이 내용은 앱 스토어에서 가짜 암호화폐 앱을 알아보는 방법에서 더 자세히 다룹니다.
위험 1: 취약한 배니티 생성기
생성기가 더 빨리 실행되도록 무작위성 처리를 생략하면, ‘무작위’ 키가 훨씬 작은 가능성의 집합에서 나올 수 있습니다. 그 생략 방식을 이해하는 공격자는 이 작은 집합을 탐색해 개인 키를 복구할 수 있습니다.
이는 이론에 그치지 않습니다. 2022년, 인기 있는 Ethereum 배니티 주소 도구인 Profanity의 취약점이 공개되었고, 그 키가 무차별 대입으로 풀릴 수 있다는 사실이 드러났습니다. 이후 이 도구로 만든 주소에서 자금이 빠져나갔으며, 그중에는 배니티 주소와 연관된 것으로 알려진 트레이딩 회사 Wintermute의 널리 보도된 도난 사건도 포함됩니다. 교훈은 배니티 주소의 안전성은 그것을 생성한 코드만큼만 보장된다는 것입니다.
그 밖의 생성기 관련 위험은 다음과 같습니다.
- 온라인 생성기: 서버에서 키를 만들기 때문에 운영자가 사본을 보관할 수 있습니다.
- 잘못 구현된 ‘분할 키’ 서비스: 제공자가 내 키를 재구성할 수 있습니다.
- 관리되지 않는 도구: 알려진 버그가 아무도 고치지 않은 채 남아 있습니다.
위험 2: 유사 주소와 주소 오염
사기범은 배니티 방식의 생성을 다른 목적으로 사용합니다. 바로 내 주소에서 눈에 보이는 부분을 흉내 내는 것입니다.
주소 오염 공격은 다음과 같이 작동합니다.
- 1공격자는 블록체인을 지켜보며 활발한 지갑과 그 지갑이 자주 송금하는 주소를 찾습니다.
- 2그중 한 주소와 앞뒤 몇 글자가 일치하는 유사 주소를 생성합니다.
- 3유사 주소에서 가치가 0이거나 아주 적은 거래, 또는 가짜 토큰 전송을 보내 내 거래 내역에 나타나게 합니다.
- 4나중에 송금하려고 내역에서 주소를 복사하다가 실수로 유사 주소를 고릅니다.
- 5자금은 공격자에게 가고, 블록체인 전송은 되돌릴 수 없습니다.
이 사기의 변형은 주소 오염 공격에 관한 자세한 가이드에서 다룹니다.
종합 사례 (가상)
이것은 지어낸 사례입니다. ‘Leo’가 거래소 입금 주소로 정기적으로 스테이블코인을 보낸다고 가정해 봅시다. 그 주소는 ‘0x7a3f’로 시작하고 ‘c91e’로 끝납니다. 어느 날 지갑 내역에 역시 ‘0x7a3f’로 시작하고 ‘c91e’로 끝나지만 가운데 문자가 다른 주소에서 0개 토큰 전송이 나타납니다. 일주일 뒤 Leo는 내역을 열어 일치해 보이는 가장 최근 주소를 복사하고, 앞뒤 네 글자를 확인한 뒤 큰 금액을 보냅니다. 그 돈은 사기범에게 갑니다.
경고 신호 체크리스트
- 내역에 있는 알 수 없는 주소의 가치 0 전송이나 더스트 전송.
- 내가 사용하는 주소와 닮은 주소에서 ‘보내진’ 모르는 토큰.
- 양 끝은 일치하지만 가운데가 다른 주소.
- 맞춤형 주소를 ‘대신’ 생성해 주겠다는 웹사이트나 사람.
- 소스가 비공개이거나, 관리되지 않거나, 공격적으로 광고되는 배니티 도구.
- 테스트 거래를 할 시간도 주지 않고 빨리 보내라는 압박.
자신을 보호하는 방법
| 상황 | 안전한 습관 |
|---|---|
| 자주 보내는 수신자에게 송금 | 주소를 검증한 뒤 지갑 주소록에 한 번 저장하고, 그곳에서 송금 |
| 주소 복사 | 수신자의 검증된 요청이나 주소록에서 복사하고, 거래 내역에서는 절대 복사하지 않기 |
| 주소 확인 | 주소 전체를 비교하거나, 최소한 앞·가운데·끝의 여러 문자를 비교 |
| 큰 금액 송금 | 먼저 소액으로 테스트 송금을 하고 수령을 확인 |
| 하드웨어 지갑 사용 | 승인하기 전에 기기 화면에서 전체 주소를 확인 |
| 배니티 주소를 원할 때 | 충분히 검토된 오픈 소스 소프트웨어를 자신의 오프라인 기기에서 사용하거나, 포기하기 |
송금 전에 지갑 주소를 확인하는 방법 가이드에서 단계별 절차를 소개합니다. 일부 지갑은 가치 0 전송을 숨기거나 표시해 주기도 하니, 가능하다면 해당 필터를 켜세요.
피해를 입었다면 해야 할 일
- 유사 주소로 자금을 보냈다면: 일반적으로 되돌릴 수 없습니다. 거래 해시를 기록하고, 해당 주소를 지갑 제공업체와 관련 거래소에 신고하고, 저희 사기 신고 페이지를 통해서도 신고하세요. 자금이 거래소에 도달했다면 거래소가 조치할 수 있을지도 모릅니다.
- 배니티 주소를 취약한 도구로 만들었다면: 표준적이고 충분히 검토된 소프트웨어로 만든 새 지갑으로 즉시 자금을 옮기고, 이전 주소의 토큰 승인을 철회하세요.
- 키가 노출되었다고 의심된다면: 지갑이 해킹당했을 때 즉시 해야 할 일을 따르세요.
수수료를 받고 자금을 되찾아 주겠다며 연락해 오는 사람을 경계하세요. 흔한 2차 사기입니다.
결론
배니티 주소는 겉모양일 뿐이지만, 그 이면의 위험은 실제입니다. 취약한 생성기는 개인 키를 노출할 수 있고, 같은 패턴 일치 기법으로 사기범은 내 주소처럼 보이는 주소를 만들 수 있습니다. 키는 신뢰할 수 있는 소프트웨어로만 생성하고, 주소는 검증된 출처에서 복사하고, 전체 문자열을 확인하고, 큰 금액에는 테스트 거래를 활용하세요.
자주 묻는 질문
암호화폐에서 배니티 주소란 무엇인가요?
배니티 주소는 단어나 반복되는 문자열처럼 원하는 패턴이 보통 앞부분이나 끝부분에 들어간 지갑 주소입니다. 패턴과 일치하는 주소가 나올 때까지 엄청난 수의 키 쌍을 생성해 만듭니다. 다른 주소와 똑같이 작동하지만, 어떻게 생성되었는지가 보안에 매우 중요합니다.
배니티 주소는 안전하게 사용할 수 있나요?
충분히 검토된 소프트웨어로 자신의 기기에서 강력한 무작위성을 이용해 개인 키를 생성했다면 안전할 수 있습니다. 온라인 생성기, 키 사본을 보관할 수 있는 제3자, 난수 생성기가 취약한 도구를 사용했다면 위험해집니다. 그런 주소에 있는 자금은 언제든 도난당할 수 있습니다.
유사 주소 사기는 어떻게 작동하나요?
사기범은 내가 사용하는 주소와 앞뒤 몇 글자가 같은 주소를 생성한 뒤, 아주 적은 금액이나 가치가 0인 거래를 보내 그 유사 주소가 내 거래 내역에 나타나게 합니다. 나중에 신뢰할 수 있는 출처가 아니라 내역에서 주소를 복사하면 사기범에게 자금을 보낼 수 있습니다.
유사 주소로 암호화폐를 보내지 않으려면 어떻게 해야 하나요?
주소는 거래 내역이 아니라 저장해 둔 주소록이나 수신자의 검증된 요청처럼 신뢰할 수 있는 출처에서 복사하세요. 앞과 끝만이 아니라 주소 전체를 비교하고, 큰 금액을 보낼 때는 소액으로 테스트 송금을 하세요. 하드웨어 지갑을 사용하면 별도의 화면에서 전체 주소를 확인할 수 있습니다.
