Принцип генерации ванити-адресов TRON: простое объяснение от случайного ключа до подбора префикса
Многие, впервые услышав о ванити-адресах TRON, думают: выбирается ли этот адрес из какого-то пула номеров? Ответ — нет. Адрес TRON по сути представляет собой 160-битное хеш-значение, полученное из случайного приватного ключа с помощью алгоритма подписи и хеш-функции. Так называемый ванити-адрес — это не заранее созданный адрес, к которому подбирается ключ, а постоянная генерация случайных приватных ключей, вычисление адреса и проверка, совпадает ли начало или конец с желаемой строкой. Совпало — сохраняем, не совпало — отбрасываем.
Весь процесс больше похож на лотерею: номера выпадают случайно, вы лишь сравниваете.
Сначала разберёмся: как вообще получается адрес TRON
Чтобы понять ванити-адреса, нужно сначала узнать, как вычисляется адрес. Адрес TRON создаётся не так, что сначала появляется адрес, а потом ключ, а наоборот. Процесс следующий:
- генерируется 256-битное истинно случайное число в качестве приватного ключа;
- с помощью алгоритма на эллиптической кривой secp256k1 из приватного ключа выводится публичный ключ;
- публичный ключ хешируется алгоритмом Keccak-256, берутся последние 20 байт;
- перед 20 байтами добавляется префикс адреса 0x41, затем выполняется кодирование Base58Check;
В итоге получается строка из 34 символов, которую мы видим в кошельке, первый символ адреса всегда T. Набор символов Base58 исключает легко путаемые 0, O, I, l, поэтому в адресе этих символов не бывает. Это также ограничивает набор символов, которыми можно составлять слова.
Реальная стоимость подбора ванити-адреса: каждый дополнительный символ увеличивает сложность в 58 раз
Поскольку первый символ адреса всегда T, реально перебираемая часть — это последующие 33 символа. Чтобы второй символ тоже был T, в среднем нужно всего 58 попыток; чтобы зафиксировать ещё один символ, объём работы умножается на 58. Это экспоненциальная зависимость, и дальше она становится всё более впечатляющей.
Возьмём распространённый 5-символьный префикс: чтобы совпали 4 символа подряд после T, в среднем требуется 584≈11,31 миллиона попыток. Обычный компьютер на CPU в один поток справится за несколько минут; при многоядерном параллелизме время можно сократить до секунд. Для 6-символьного префикса 586≈38 миллиардов попыток — персональный компьютер будет работать почти полдня; для 8-символьного префикса 588≈128 триллионов попыток — даже кластеру GPU потребуется несколько дней. Так что чем длиннее префикс вы видите на рынке, тем выше вычислительные затраты за ним, и продавец, естественно, назначает более высокую цену.
Обратите внимание: речь идёт о непрерывном префиксе. Если вы просто требуете, чтобы определённая строка встречалась в каком-то месте адреса, расчёт вероятности будет совсем другим, и сложность подбора значительно снизится.
Особенности строки адреса: префиксы, суффиксы, составные слова
Самый распространённый тип ванити-адреса TRON — фиксированный префикс. Например, после T идут повторяющиеся символы, счастливые числа, дата рождения или номер телефона. Также делают подбор по суффиксу, например, последние несколько символов все 8888. Для таких адресов количество перебираемых символов равно длине суффикса, и сложность не снижается.
Поскольку в наборе символов Base58 нет 0, O, I, l, возможности составлять полные английские слова ограничены. Некоторые слова, которые, казалось бы, можно составить, на самом деле не могут появиться в адресе. Например, слово, содержащее строчную l, невозможно. Именно поэтому в экосистеме TRON часто встречаются такие варианты, как Tr0n, Tron, TRX, — все они представимы в наборе Base58.
Хотите подбирать самостоятельно? Простейший процесс и его предел
Написать собственный скрипт для перебора несложно. Основная логика — цикл: сгенерировать случайный ключ, вычислить адрес, проверить, совпадает ли он с целевой строкой, при совпадении вывести ключ и адрес. На уровне инструментов можно использовать командную строку TronWeb или написать своё на низкоуровневых библиотеках. Что действительно ограничивает человека — это скорость и надёжность.
С одной стороны, для длинного префикса требуется огромное количество хеширований, и обычный CPU быстро проигрывает GPU по вычислительной мощности. С другой стороны, при самостоятельном написании программы легко допустить элементарные ошибки в управлении приватным ключом: например, запускать её в подключённой к сети среде, выводить ключ в логи или загружать тестовый скрипт в публичный репозиторий. Такие ошибки могут сделать ванити-адрес чужим.
Если вам нужно лишь изредка принимать и отправлять платежи на один-два адреса с коротким префиксом, можно обойтись самостоятельным перебором. Если же нужен длинный префикс от 7 символов и выше, выгоднее выбрать сразу на готовом рынке ванити-адресов TRON. На рынке Akali (oxc.us) можно фильтровать по количеству символов, процесс покупки описан здесь: Процесс покупки. В целом это гораздо проще, чем поднимать собственный GPU-кластер.
Покупая готовый ванити-адрес, сразу после получения сделайте эти три вещи
Первое — проверка в офлайн-режиме. Прежде чем импортировать приватный ключ в TronLink, в среде без доступа к сети убедитесь, что ключ и адрес соответствуют друг другу, а также проверьте историю транзакций этого адреса на Tronscan, чтобы убедиться, что это не использованный ранее старый адрес.
Второе — сначала переведите небольшую тестовую сумму. Отправьте 1 TRX на новый адрес и убедитесь, что средства можно нормально получать и отправлять. Этот шаг выявляет большинство проблем с импортом или настройкой прав.
Третье — контролируйте риски для активов. Купленный адрес по сути является приватным ключом, сгенерированным продавцом, и теоретически у продавца может остаться его копия. Если вы планируете долго хранить крупные активы, рекомендуется использовать этот ванити-адрес как промежуточный для приёма платежей и сразу после получения средств переводить их на другой адрес, который вы храните офлайн. Также можно воспользоваться защитой сделки, предоставляемой платформой. Подробнее о механизме — в разделе Гарантии безопасности, а детали работы и правила послепродажного обслуживания описаны в Часто задаваемые вопросы.
Ценность ванити-адреса — в лёгком узнавании и снижении вероятности ошибиться при переводе, но независимо от того, насколько красив префикс, безопасность приватного ключа всегда остаётся главным приоритетом. Номер можно выбирать по вкусу, но при операциях, связанных с приватным ключом, лучше не спешить и лишний раз всё перепроверить.
Хотите незабываемый красивый TRON-адрес?
В маркет→