Что такое Vanity Address? Руководство по персонализированным криптоадресам
Содержание
Большинство криптовалютных адресов --- строки из на первый взгляд случайных символов. Vanity-адрес заменяет эту случайность намеренным паттерном --- узнаваемым префиксом или суффиксом, который вы выбираете. Вместо bc1q8x6k... ваш Bitcoin-адрес может выглядеть как bc1qcoffee.... Вместо 0x7a3b... ваш Ethereum-адрес может быть 0xdead... или 0xcafe....
Vanity-адреса --- не другой тип адреса. Это стандартные адреса, сгенерированные стандартными криптографическими процессами, которые случайно содержат человекочитаемый паттерн. Безопасность идентична любому другому адресу; единственная разница в том, что вы перебрали множество возможных ключей, пока не нашли тот, чей адрес совпал с желаемым паттерном.
Vanity-адреса: как это работает¶
Каждый криптовалютный адрес выводится из приватного ключа через односторонний математический процесс. Невозможно вычислить приватный ключ из адреса и невозможно предсказать, какой адрес породит данный приватный ключ, не вычислив его фактически.
Генератор vanity-адресов эксплуатирует это, запуская процесс генерации миллионы или миллиарды раз, проверяя каждый результат на соответствие вашему паттерну. Найдя совпадение, он выдаёт приватный ключ и соответствующий адрес. Процесс концептуально прост:
- Сгенерировать случайный приватный ключ
- Вывести публичный ключ из приватного
- Вычислить адрес из публичного ключа
- Проверить, содержит ли адрес целевой паттерн
- Если нет, вернуться к шагу 1
Это поиск методом перебора. Математического сокращения для генерации приватного ключа с определённым адресным префиксом не существует. Поиск вычислительно дорог, и требуемое время растёт экспоненциально с длиной желаемого паттерна.
Термин «vanity» происходит от той же концепции, что и именной номерной знак: персонализированный идентификатор, не несущий функциональной цели помимо узнаваемости и брендинга.
Как работает генерация vanity-адресов¶
Технический процесс немного различается для разных блокчейнов, но основная механика одинакова.
Bitcoin vanity-адреса¶
Для Bitcoin генератор создаёт случайный 256-битный приватный ключ, вычисляет публичный ключ secp256k1, затем применяет соответствующую кодировку адреса. Для устаревших адресов это означает хеширование SHA-256 и RIPEMD-160, затем кодирование Base58Check. Для SegWit-адресов хеш публичного ключа кодируется в Bech32.
Поскольку Bech32 использует только строчные буквы и цифры (символы 023456789acdefghjklmnpqrstuvwxyz), набор символов для Bitcoin SegWit vanity-паттернов более ограничен, чем Base58. В префиксе Bech32 vanity нельзя искать заглавные буквы или символы 1, b, i и o.
Ethereum vanity-адреса¶
Для Ethereum и других EVM-сетей генератор создаёт приватный ключ, выводит публичный ключ secp256k1, хеширует его Keccak-256 и берёт последние 20 байтов как адрес. Адрес затем отображается с префиксом 0x.
Генерация vanity-адресов Ethereum обычно быстрее за попытку, чем Bitcoin, поскольку вывод адреса включает меньше шагов хеширования. Шестнадцатеричный набор символов (0-9, a-f) означает только 16 возможных символов на позицию, что также влияет на время поиска.
Параллельный поиск¶
Современные vanity-генераторы распараллеливают поиск по нескольким ядрам CPU или потокам GPU. Каждый поток независимо генерирует и проверяет ключи. Поскольку каждая попытка независима, поиск масштабируется линейно с доступной вычислительной мощностью. Если один поток может проверить 1 миллион адресов в секунду, восемь потоков проверят 8 миллионов.
GPU-ускоренные генераторы могут достигать сотен миллионов проверок в секунду, делая паттерны из 6-7 символов достижимыми в разумные сроки.
Временные оценки по длине префикса¶
Время поиска vanity-адреса зависит от количества возможных символов на позицию и длины желаемого паттерна. Математика --- простая теория вероятностей.
Bitcoin Bech32 (32 символа в алфавите)¶
Для префикса Bech32-адреса после bc1q:
| Длина префикса | Возможные комбинации | Среднее время (1М проверок/сек) | Среднее время (100М проверок/сек) |
|---|---|---|---|
| 1 символ | 32 | Мгновенно | Мгновенно |
| 2 символа | 1 024 | < 1 секунды | Мгновенно |
| 3 символа | 32 768 | < 1 секунды | Мгновенно |
| 4 символа | ~1 миллион | ~1 секунда | Мгновенно |
| 5 символов | ~33 миллиона | ~33 секунды | < 1 секунды |
| 6 символов | ~1 миллиард | ~17 минут | ~10 секунд |
| 7 символов | ~34 миллиарда | ~9,5 часов | ~5,7 минут |
| 8 символов | ~1 триллион | ~12,7 дней | ~3 часа |
Ethereum hex (16 символов в алфавите)¶
Для hex-префикса после 0x:
| Длина префикса | Возможные комбинации | Среднее время (1М проверок/сек) | Среднее время (100М проверок/сек) |
|---|---|---|---|
| 1 символ | 16 | Мгновенно | Мгновенно |
| 2 символа | 256 | Мгновенно | Мгновенно |
| 3 символа | 4 096 | < 1 секунды | Мгновенно |
| 4 символа | 65 536 | < 1 секунды | Мгновенно |
| 5 символов | ~1 миллион | ~1 секунда | Мгновенно |
| 6 символов | ~16,7 миллионов | ~17 секунд | Мгновенно |
| 7 символов | ~268 миллионов | ~4,5 минуты | ~2,7 секунды |
| 8 символов | ~4,3 миллиарда | ~1,2 часа | ~43 секунды |
Это средние значения. В силу вероятностной природы поиска совпадение может найтись за половину ожидаемого времени или занять вдвое больше. Оценки предполагают единственное совпадение паттерна в начале адреса; поиск суффикса или паттерна в любом месте адреса меняет вероятности.
Каждый дополнительный символ умножает время поиска на размер набора символов (32x для Bech32, 16x для hex). Этот экспоненциальный рост --- причина, по которой vanity-префиксы длиннее 7-8 символов становятся непрактичными для большинства пользователей.
Вопросы безопасности¶
Vanity-адреса несут несколько нюансов безопасности, которые пользователи должны понимать перед генерацией или доверием к ним.
Инструмент генерации должен быть надёжным¶
Процесс генерации vanity создаёт приватный ключ. Если инструмент, генерирующий ваш vanity-адрес, вредоносный, он может записать или передать этот приватный ключ, давая атакующему полный контроль над адресом. Это единственный наибольший риск vanity-адресов.
Всегда используйте инструменты с открытым исходным кодом, которые можно проверить. Bitcoin Vanity Address Generator и Ethereum Vanity Address Generator от SafeSeed работают полностью в вашем браузере. Приватный ключ генерируется и ищется локально, никакие данные не покидают ваше устройство. Исходный код публично доступен для проверки.
Фишинг с vanity-адресами¶
Атакующие использовали vanity-адреса в специфическом типе фишинга, называемом «отравление адресов» (address poisoning). Атака работает так:
- Атакующий наблюдает историю транзакций жертвы на публичном блокчейне
- Он генерирует vanity-адрес, совпадающий с первыми и последними символами адреса, с которым жертва часто взаимодействует
- Он отправляет крошечную транзакцию с этого похожего адреса жертве
- Когда жертва позже копирует адрес из истории транзакций, она может случайно скопировать похожий адрес атакующего
Эта атака особенно эффективна на Ethereum и EVM-сетях, где истории адресов легко просматриваются. Защита проста: никогда не копируйте адреса из историй транзакций. Всегда используйте адресную книгу или оригинальный источник.
Энтропия не снижается¶
Распространённое заблуждение --- что vanity-адреса менее безопасны, потому что атакующий знает часть адреса. Это неверно. Адрес выводится из приватного ключа через одностороннюю функцию. Знание того, что адрес начинается с bc1qcoffee, даёт атакующему ноль информации о приватном ключе. Пространство поиска приватного ключа остаётся полными 2^256 возможностями.
Vanity-паттерн ограничивает адрес, а не ключ. Приватный ключ за vanity-адресом обладает точно такой же энтропией, как любой другой приватный ключ. Подробнее о важности энтропии читайте в Что такое энтропия в криптовалютах?.
Не пользуйтесь сторонними сервисами генерации¶
Никогда не используйте сайт или сервис, который генерирует vanity-адрес за вас и отправляет вам приватный ключ. Если ключ сгенерировал кто-то другой, у него есть копия. Это относится к сервисам, утверждающим, что генерируют ключи «безопасно» на своих серверах. Единственный безопасный подход --- локальная генерация на собственном устройстве.
Поддерживаемые сети¶
Генерация vanity-адресов работает на любом блокчейне, хотя практическая сложность и наборы символов различаются.
Bitcoin¶
Поддерживаются как устаревшие (Base58Check, префикс 1 или 3), так и SegWit (Bech32, префикс bc1q или bc1p) vanity-адреса. Bech32 vanity-адреса рекомендуются для более низких комиссий за транзакции и лучшего обнаружения ошибок.
Ethereum и EVM-сети¶
Поскольку все EVM-сети --- Ethereum, Polygon, Arbitrum, Optimism, Base --- используют один формат адресов, vanity-адрес, сгенерированный для Ethereum, автоматически валиден на всех EVM-сетях. Это одно из преимуществ общего формата 0x.
Dogecoin и Litecoin¶
Адреса Dogecoin начинаются с D, поэтому vanity-генерация ищет паттерны после начальной D. Устаревшие адреса Litecoin начинаются с L или M, с аналогичными ограничениями. Оба используют кодировку Base58Check.
Solana¶
Адреса Solana используют закодированные в Base58 публичные ключи Ed25519. Vanity-генерация возможна, но требует генерации ключей Ed25519, которая вычислительно отличается от генерации на основе secp256k1, используемой Bitcoin и Ethereum.
Варианты использования vanity-адресов¶
Помимо личного брендинга, vanity-адреса служат нескольким практическим целям:
Бизнес-идентичность¶
Организации, принимающие криптовалютные пожертвования или платежи, могут использовать vanity-адреса для построения узнаваемости и доверия. Благотворительная организация может использовать адрес, начинающийся с bc1qhelp..., а кофейня --- 0xcafe.... Это облегчает отправителям визуальное подтверждение правильности получателя.
Обнаружение мошенничества¶
Когда ваш адрес имеет запоминающийся паттерн, вы с большей вероятностью заметите, если вредоносное ПО или фишинговая атака подставит другой адрес. Узнавание вашего vanity-префикса с первого взгляда добавляет уровень проверки, доступный человеку, поверх автоматизированной валидации контрольной суммы.
Коллекционирование и развлечение¶
Некоторые пользователи генерируют vanity-адреса чисто для развлечения или как демонстрацию вычислительных усилий. Адреса со значимыми словами, повторяющимися символами или культурно значимыми числами имеют коллекционную ценность в криптосообществе.
Генерируйте свой vanity-адрес безопасно¶
Если вы хотите сгенерировать vanity-адрес, следуйте этим принципам:
-
Используйте клиентские инструменты с открытым исходным кодом. Bitcoin Vanity Address Generator и Ethereum Vanity Address Generator от SafeSeed работают полностью в вашем браузере без серверного компонента.
-
Будьте реалистичны в ожиданиях. Пользовательский префикс из 4-5 символов достижим за секунды-минуты. Префикс из 7-8 символов может занять часы. Всё длиннее 8 символов требует серьёзного оборудования и терпения.
-
Немедленно обезопасьте приватный ключ. После генерации приватный ключ вашего vanity-адреса должен храниться с той же тщательностью, что и любой другой приватный ключ. Рассмотрите холодное хранение или бумажный кошелёк. Наше Полное руководство по бумажным кошелькам охватывает лучшие практики.
-
Проверьте адрес независимо. После генерации валидируйте адрес отдельным инструментом, таким как Bitcoin Address Validator, чтобы подтвердить корректность формата и правильность контрольной суммы.
-
Генерируйте офлайн, если возможно. Для максимальной безопасности генерируйте vanity-адрес на air-gapped машине. Это исключает любую возможность сетевой утечки ключа. Смотрите Как сгенерировать Bitcoin Seed Phrase офлайн для общего подхода к офлайн-генерации ключей.
Vanity-адрес --- небольшая персонализация поверх надёжной криптографии. Математика не меняется, безопасность не снижается, и единственная цена --- вычислительное время, вложенное в поиск. При правильном выполнении с доверенными инструментами это безопасный и приятный способ сделать вашу крипто-идентичность узнаваемой.