본문으로 건너뛰기
buybitcoinsmart

용어집 / 주소와 키

배니티 주소

배니티 주소란 무엇입니까?
배니티 주소는 주소 자체의 문자로 원하는 단어나 접두사를 구현하며, 무작위 키를 계속 생성해 그중 하나가 해당 패턴을 인코딩할 때까지 탐색하여 찾습니다.

특별한 기법이 쓰이는 것은 아닙니다. 프로그램이 키를 생성하고 주소를 도출한 뒤 문자열이 원하는 방식으로 시작하는지 확인하고, 필요하면 수십억 번이라도 이를 반복합니다. 요구하는 문자가 하나 늘어날 때마다 작업량은 레거시 주소의 경우 58배, bech32 주소의 경우 32배로 늘어나므로, 레거시 주소에서 6자 접두사는 대략 380억번의 시도를 뜻합니다.

작동 방식

배니티 주소 생성은 암호학이 아니라 인코딩을 상대로 하는 무차별 대입입니다. 비트코인 주소는 체크섬으로 감싸여 제한된 문자 집합으로 표현된 해시이므로, 주소의 겉모습에 영향을 주는 유일한 방법은 원하는 문자열이 나올 때까지 새로운 키를 계속 뽑는 것입니다. 원하는 주소에서 키로 거꾸로 계산하는 것은 불가능합니다.

산수는 가혹합니다. Base58은 58개의 문자를 사용하므로 맨 앞의 문자 1 뒤의 5자를 일치시키려면 평균 656,356,768번의 시도가 필요하고, 6자라면 38,068,692,544번이 필요합니다. bech32는 32자의 문자 집합을 사용해 더 관대합니다. bc1q 뒤의 6자는 1,073,741,824번의 시도입니다. vanitygen과 그 GPU 포크 같은 도구는 초당 수억 개의 키를 처리하므로, 짧은 접두사는 호기심의 대상이고 긴 접두사는 하드웨어 예산의 문제입니다.

키를 넘기지 않고 겉모습만 원하는 사람을 위해 분할 키 생성 방식이 있습니다. 본인이 개인 키를 생성하고, 검색을 수행하는 쪽에는 대응하는 공개 키만 보냅니다. 상대는 본인의 키와 결합해 패턴을 만들어 내는 부분 키를 탐색하고, 본인이 직접 두 조각을 더합니다. 검색을 수행한 쪽은 완성된 키를 알지 못합니다. 완성된 개인 키를 이메일로 보내 주는 서비스는 이미 그 키를 본 것입니다.

주소가 보이는 곳

배니티 주소는 주소를 스캔하지 않고 인쇄하는 곳이면 어디든 나타납니다.

기부 페이지, 콘퍼런스 포스터, 준비금 증명으로 공개되는 거래소 콜드월렛 주소, 그리고 아무도 키를 보유하지 않는 문구를 구현한 소각 주소 등이 그렇습니다. 이들 모두는 정적이고 의도적으로 재사용되는 주소이므로, 소유자는 새 주소가 주었을 프라이버시를 포기했고 잔액이 누구나 읽을 수 있는 공개 수치임을 받아들인 것입니다.

교훈이 되는 사례는 Ethereum에서 나왔고 그대로 적용됩니다. 널리 쓰인 배니티 주소 도구인 Profanity는 32비트의 무작위성으로 검색을 초기화해 가능한 키의 공간을 4,294,967,296으로 축소했습니다. 1inch 팀이 2022년 9월에 이 결함을 공개했고, 2022년 9월 20일에 마켓 메이커 Wintermute는 그 도구가 만든 주소에서 약 1.6억 달러를 잃었습니다. 배니티 주소 생성기는 개인 키를 만드는 것이 유일한 임무인 프로그램이며, 그 주소가 앞으로 보유할 모든 것을 그 프로그램의 무작위성에 맡기는 셈입니다.

배니티 주소 vs 주소 오염

배니티 주소는 소유자가 선택한 주소이고, 오염된 주소는 공격자가 본인의 주소와 닮게 만든 주소입니다. 주소 오염은 같은 탐색 기법을 사용해 이미 송금한 적 있는 주소의 첫 4자와 마지막 4자를 일치시킨 뒤, 소액의 토큰을 보내 닮은 주소가 거래 내역에 남아 실수로 복사되기를 기다립니다. 배니티 주소가 권장하는 습관, 즉 몇 글자만 보고 나머지를 신뢰하는 습관은 바로 이 공격이 의존하는 습관입니다. 문자열 전체를 비교하거나, 컴퓨터가 수정할 수 없는 하드웨어 지갑 화면에서 확인하십시오.

혼동하기 쉬운 용어

자주 묻는 질문

배니티 주소는 사용하기 안전합니까?

그 주소를 생성한 도구가 안전한 만큼만 안전합니다. 주소 자체는 평범하지만 생성기가 본인의 개인 키를 만들었으므로, 무작위성이 약하거나 완성된 키를 돌려주는 호스팅 서비스는 코인을 위험에 노출합니다. 분할 키 생성 방식은 누구에게도 키를 넘기지 않습니다.

배니티 주소는 왜 프라이버시를 해칩니까?

공개하고 재사용하도록 만들어졌기 때문입니다. 기억하기 쉬운 주소는 계속 반복해서 사용되므로, 그 주소를 한 번이라도 본 사람은 누구나 전체 잔액과 결제 내역을 읽을 수 있습니다. 결제마다 새 주소를 쓰는 기본 방식과는 정반대입니다.

다음에 읽을 글

관련 용어

주소와 키 분야의 다른 용어

이 페이지를 영어로 읽기