Блокчейн

    Генерация красивых Ethereum-адресов: как это работает и почему это опасно

    ·3 min read
    Генерация красивых Ethereum-адресов: как это работает и почему это опасно

    Ко мне недавно обратился клиент с идеей: продавать «красивые» криптовалютные адреса. Логика понятная — если адрес начинается с имени, названия компании, даты рождения или просто выглядит «приятно», это может стать элементом бренда или статуса.

    В Ethereum и других EVM-сетях адрес выглядит примерно так:

    0x0007A974fA7D03aD178Dd9138559834b0CaB8

    Почему «красивые» адреса в Ethereum сильно ограничены

    Первая проблема — состав символов. Адрес в Ethereum — это строка в шестнадцатеричном формате (hex). После 0x идут символы:

    • цифры: 0–9
    • буквы: A–F

    То есть «разгуляться» с именами и словами не получится: доступно только шесть букв. Поэтому чаще всего «красота» в таких адресах — это повторяющиеся цифры, узнаваемые паттерны или короткие куски вроде 0x0000..., 0x1111... и т.п.

    Как на самом деле генерируются vanity-адреса

    Технически «красивые» (vanity) адреса делаются самым простым способом: брутфорсом.

    Процесс выглядит так:

    1. Генерируется случайный приватный ключ.
    2. Из него вычисляется публичный ключ и адрес.
    3. Проверяется, подходит ли адрес под нужный шаблон (например, начинается с 0007).
    4. Если не подходит — повторяем снова и снова.

    Это может занять очень много времени. Всё зависит от требуемой «красоты» и производительности железа (CPU/GPU), потому что по сути это бесконечный перебор до попадания в нужный шаблон.

    Если углубляться в детали криптографии и алгоритмов (secp256k1, Keccak-256 и т.д.), там действительно много нюансов и аббревиатур — это отдельная большая тема. Здесь важнее другое: модель безопасности и то, кто контролирует приватный ключ.

    Размер пространства ключей: не бесконечность, но практически недостижимо

    Иногда говорят, что вариантов приватных ключей «бесконечно много». Формально — нет. Пространство ключей ограничено величиной 2^256:

    115792089237316195423570985008687907853269984665640564039457584007913129639936

    Это колоссальное число. На практике оно делает перебор ключей «в лоб» невозможным. Но для vanity-адресов нам и не нужно перебирать всё пространство — мы ищем совпадение по короткому префиксу/паттерну, а это уже решаемо за разумное время при достаточных ресурсах.

    Главный вопрос: почему «продажа красивых адресов» конфликтует с безопасностью

    И вот здесь у меня возникает принципиальное возражение.

    Если бизнес строится так, что сервис генерирует адрес и передаёт покупателю приватный ключ, то приватный ключ изначально был в руках третьей стороны. А значит:

    • он мог быть сохранён;
    • он мог быть скомпрометирован (логами, бэкапами, сотрудниками, малварью, утечкой базы);
    • покупатель никогда не сможет доказать, что ключ известен только ему.

    С точки зрения базовых принципов Web3 это разрушает главное: «не твои ключи — не твои деньги». Если ключ хотя бы раз покидал среду, которую контролируете вы, пользоваться таким адресом для хранения средств — риск, который трудно оправдать.

    Поэтому я считаю, что проект по продаже «красивых адресов» в формате «мы вам сгенерируем и пришлём ключ» противоречит основополагающим принципам безопасности блокчейнов. И для конечного пользователя это потенциально опасная практика.

    Что можно сделать безопаснее (в общих чертах)

    Чтобы сама идея имела право на жизнь, критично, чтобы приватный ключ никогда не становился известен сервису. Это может означать генерацию на стороне клиента или подходы, где сервис не получает доступа к секрету. Но даже тогда важно аккуратно проектировать процесс и честно объяснять пользователю риски и ограничения.

    Вопрос к вам

    Как вы относитесь к рынку vanity-адресов? Пользовались бы «красивым» адресом для публичного брендинга — и при каких гарантиях безопасности?

    Опубликовано в Telegram
    #Ethereum#WEB3#Безопасность#Криптография
    Поделиться
    Alex Meleshko

    Alex Meleshko

    Entrepreneur, CEO, and builder at the intersection of blockchain, AI, and startups.