TRON 배니티 주소 생성 원리: 무작위 개인키와 충돌 탐색은 어떻게 이루어지나?
TRON 주소는 어떻게 생성되나
TRON 배니티 주소는 플랫폼이 바꿔 주는 것이 아니라, 일반 TRON 주소가 생성될 때 우연히 원하는 접두사나 접미사를 갖게 된 것입니다. 이를 이해하려면 먼저 TRON 주소가 만들어지는 과정을 살펴봐야 합니다.
- 안전한 난수 생성기로 32바이트 개인키를 만듭니다. 보통 64자리 16진수 문자열로 표기됩니다.
- secp256k1 타원곡선 알고리즘으로 개인키에서 공개키를 계산합니다.
- 공개키에 Keccak-256 해시를 적용하고 마지막 20바이트를 가져옵니다.
- 이 20바이트 앞에 TRON 주소 유형 식별자로 0x41을 붙입니다.
- 전체 21바이트에 Base58Check 인코딩을 적용해 T로 시작하는 34자리 주소를 얻습니다.
Base58Check 끝에는 이중 SHA256 해시로 만든 4바이트 검사합(checksum)이 붙습니다. 이는 필사나 입력 오류를 방지하기 위한 것입니다. 이 전체 과정에서 개인키와 주소는 일대일로 대응하며, 실제로 자산의 통제권을 의미하는 것은 개인키입니다.
배니티 주소는 충돌 탐색으로 만들어지며 확률은 생각보다 낮습니다
주소는 해시 계산의 결과이므로 특정 문자를 가진 주소를 역산할 수 없습니다. 예쁜 주소를 얻으려면 새 개인키를 계속 생성해 새 주소를 유도하고, 해당 주소에 목표 문자가 나타나는지 확인하는 과정을 반복해야 합니다. 이 반복 과정이 바로 충돌 탐색(collision search)입니다.
확률은 Base58 문자표로 계산할 수 있습니다. Base58은 모두 58개 문자로 구성되며 주소의 첫 글자는 항상 T로 고정되어 있습니다. 지정한 단일 문자 하나가 일치할 확률은 1/58이고, 지정된 위치에서 연속된 두 문자가 일치할 확률은 약 1/3364입니다. 지정된 여섯 개 연속 문자가 나타나려면 평균 약 380억 개의 주소를 생성해야 합니다. 장치 하나가 초당 10만 개의 주소를 유도할 수 있다고 해도 한 번 만나려면 100시간 이상을 연속으로 돌려야 하며, 실제 시간은 구체적인 문자 조합과 목표 형식에 따라 달라집니다.
따라서 예쁜 주소의 비용은 알고리즘 기술이 아니라 주로 연산력과 전기 요금에서 나옵니다. 이른바 기술로 주소를 직접 지정할 수 있다고 주장하는 사람이 있다면 기본적으로 주소 생성 과정을 이해하지 못한 것이라고 판단할 수 있습니다.
생성 도구와 구매·전달에도 함정이 있습니다
직접 스크립트를 작성해 생성하면 개인키가 로컬을 벗어나지 않으므로 위험이 상대적으로 통제 가능합니다. 반면 온라인 생성기는 정반대입니다. 그런 도구는 예쁜 주소를 정상적으로 생성해 주면서 동시에 개인키를 몰래 백엔드로 전송할 수 있습니다. 도구의 안전성을 판단할 때는 다음 사항을 확인하세요.
- 완전히 오프라인으로 실행할 수 있는지, 코드가 공개되어 있는지.
- 개인키 생성 및 표시 과정에서 네트워크 요청이 발생하는지.
- 이미 보유한 개인키를 입력해 주소를 확장하도록 요구하는지.
- 생성 후 바로 웹 지갑에 가져오도록(import) 유도하는지.
완성된 예쁜 주소를 구매할 때도 마찬가지입니다. 상대방이 주소 스크린샷을 보여 주는 것보다, 개인키를 받은 뒤 오프라인 환경에서 직접 TronLink에 가져와 확인하는 것이 낫습니다. 스크린샷은 해당 주소가 이전에 존재했다는 것만 증명할 뿐, 지금 내가 가진 개인키가 그 주소와 대응한다는 것은 증명하지 못합니다.
직접 환경을 구성해 충돌 탐색을 돌리기 원하지 않다면, Akali(oxc.us)의 TRON 배니티 주소 마켓에서 기성 주소를 바로 고를 수도 있습니다. 생성, 전달, 보증 방식은 사이트 내 해당 페이지에 자세히 안내되어 있습니다.
주소 생성 원리를 이해하면 어떤 단계에서 꼼꼼히 확인해야 하는지 알 수 있습니다. 주소를 고를 때는 먼저 개인키 전달을 확인한 다음, 문자가 예쁜지 따지는 것이 순서입니다.
잊을 수 없는 TRON 멋진 주소를 원하시나요?
마켓에서 고르기→