Присвоение имен умным контрактам
Последнее обновление страницы: 9 сентября 2025 г.
Умные контракты являются краеугольным камнем децентрализованной инфраструктуры Ethereum, обеспечивая работу автономных приложений и протоколов. Но даже по мере развития возможностей контрактов пользователи и разработчики по-прежнему полагаются на необработанные шестнадцатеричные адреса для идентификации и ссылки на эти контракты.
Присвоение имен умным контрактам с помощью Службы имен Ethereum (ENS) (opens in a new tab) улучшает пользовательский опыт за счет устранения шестнадцатеричных адресов контрактов и снижает риск атак, таких как отравление адресов и спуфинг-атаки. В этом руководстве объясняется, почему важно давать имена умным контрактам, как это можно реализовать, а также какие инструменты, такие как Enscribe (opens in a new tab), доступны для упрощения процесса и помощи разработчикам в освоении этой практики.
Зачем давать имена умным контрактам?
Человекочитаемые идентификаторы
Вместо взаимодействия с непрозрачными адресами контрактов, такими как 0x8f8e...f9e3, разработчики и пользователи могут использовать человекочитаемые имена, например v2.myapp.eth. Это упрощает взаимодействие с умными контрактами.
Это стало возможным благодаря Службе имен Ethereum (opens in a new tab), которая предоставляет децентрализованную службу имен для адресов Ethereum. Это аналогично тому, как система доменных имен (DNS) позволяет пользователям Интернета получать доступ к сетевым адресам, используя такое имя, как ethereum.org, а не IP-адрес, например 104.18.176.152.
Повышенная безопасность и доверие
Именованные контракты помогают сократить количество случайных транзакций на неправильный адрес. Они также помогают пользователям идентифицировать контракты, привязанные к определенным приложениям или брендам. Это добавляет уровень репутационного доверия, особенно когда имена привязаны к известным родительским доменам, таким как uniswap.eth.
Из-за 42-символьной длины адреса Ethereum пользователям очень трудно выявить небольшие изменения в адресах, в которых было изменено несколько символов. Например, такой адрес, как 0x58068646C148E313CB414E85d2Fe89dDc3426870, обычно сокращается до 0x580...870 в пользовательских приложениях, таких как кошельки. Пользователь вряд ли заметит вредоносный адрес, в котором изменена пара символов.
Этот тип техники используется в атаках с подменой и отравлением адресов, когда пользователей заставляют поверить, что они взаимодействуют с правильным адресом или отправляют средства на него, тогда как на самом деле адрес просто напоминает правильный, но не является им.
Имена ENS для кошельков и контрактов защищают от таких атак. Подобно атакам с подменой DNS, атаки с подменой ENS также могут иметь место, однако пользователь с большей вероятностью заметит опечатку в имени ENS, чем небольшое изменение в шестнадцатеричном адресе.
Улучшенный UX для кошельков и обозревателей
Когда умный контракт настроен с именем ENS, такие приложения, как кошельки и обозреватели блокчейна, могут отображать имена ENS для умных контрактов вместо шестнадцатеричных адресов. Это обеспечивает значительное улучшение пользовательского опыта (UX) для пользователей.
Например, при взаимодействии с таким приложением, как Uniswap, пользователи обычно видят, что приложение, с которым они взаимодействуют, размещено на веб-сайте uniswap.org, но им будет представлен шестнадцатеричный адрес контракта, если Uniswap не присвоил своим умным контрактам имена с помощью ENS. Если контракту присвоено имя, вместо этого они могут увидеть v4.contracts.uniswap.eth, что гораздо полезнее.
Присвоение имени при развертывании и после развертывания
Есть два момента, когда умным контрактам можно присвоить имя:
- Во время развертывания: присвоение имени ENS контракту по мере его развертывания.
- После развертывания: сопоставление существующего адреса контракта с новым именем ENS.
Оба подхода основаны на наличии у владельца или менеджера доступа к домену ENS, чтобы они могли создавать и устанавливать записи ENS.
Как работает присвоение имен ENS для контрактов
Имена ENS хранятся в сети и разрешаются в адреса Ethereum через преобразователи ENS. Чтобы присвоить имя умному контракту:
- Зарегистрируйте или управляйте родительским доменом ENS (например,
myapp.eth) - Создайте субдомен (например,
v1.myapp.eth) - Установите запись
addressсубдомена на адрес контракта - Установите обратную запись контракта в ENS, чтобы имя можно было найти по его адресу
Имена ENS иерархичны и поддерживают неограниченное количество суб-имен. Установка этих записей обычно включает взаимодействие с реестром ENS и публичными контрактами-преобразователями.
Инструменты для присвоения имен контрактам
Существует два подхода к присвоению имен умным контрактам. Либо с помощью приложения ENS (opens in a new tab) с некоторыми ручными шагами, либо с помощью Enscribe (opens in a new tab). Они описаны ниже.
Ручная настройка ENS
С помощью приложения ENS (opens in a new tab) разработчики могут вручную создавать суб-имена и устанавливать записи прямых адресов. Однако они не могут установить основное имя для умного контракта, установив обратную запись для имени через приложение ENS. Необходимо выполнить ручные шаги, которые описаны в документации ENS (opens in a new tab).
Enscribe
Enscribe (opens in a new tab) упрощает присвоение имен умным контрактам с помощью ENS и повышает доверие пользователей к умным контрактам. Он предоставляет:
- Атомарное развертывание и присвоение имени: присвоение имени ENS при развертывании нового контракта
- Присвоение имен после развертывания: прикрепление имен к уже развернутым контрактам
- Поддержка нескольких сетей: работает в сетях Ethereum и L2, где поддерживается ENS
- Данные верификации контракта: включают данные верификации контракта, полученные из нескольких источников, для повышения доверия пользователей
Enscribe поддерживает имена ENS, предоставленные пользователями, или собственные домены, если у пользователя нет имени ENS.
Вы можете получить доступ к приложению Enscribe (opens in a new tab), чтобы начать присваивать имена и просматривать умные контракты.
Лучшие практики
- Используйте четкие, версионированные имена, такие как
v1.myapp.eth, чтобы сделать обновления контрактов прозрачными - Устанавливайте обратные записи, чтобы связать контракты с именами ENS для видимости в таких приложениях, как кошельки и обозреватели блокчейна.
- Внимательно следите за сроками действия, если хотите предотвратить случайную смену владельца
- Проверяйте источник контракта, чтобы пользователи могли доверять, что именованный контракт ведет себя так, как ожидалось
Риски
Присвоение имен умным контрактам дает значительные преимущества пользователям Ethereum, однако владельцы доменов ENS должны быть бдительны в отношении их управления. Заметные риски включают:
- Истечение срока действия: так же, как и имена DNS, регистрация имен ENS имеет конечный срок действия. Поэтому жизненно важно, чтобы владельцы отслеживали сроки действия своих доменов и продлевали их заблаговременно до истечения срока. Как приложение ENS, так и Enscribe предоставляют визуальные индикаторы для владельцев доменов при приближении срока истечения.
- Смена владельца: записи ENS представлены в виде NFT в Ethereum, где владелец определенного домена
.ethвладеет соответствующим NFT. Следовательно, если другой аккаунт завладеет этим NFT, новый владелец сможет изменять любые записи ENS по своему усмотрению.
Для снижения таких рисков аккаунт владельца доменов второго уровня (2LD) .eth должен быть защищен с помощью кошелька с мультиподписью, а для управления именами контрактов должны создаваться субдомены. Таким образом, в случае любых случайных или злонамеренных изменений в праве собственности на уровне субдомена, они могут быть отменены владельцем 2LD.
Будущее присвоения имен контрактам
Присвоение имен контрактам становится лучшей практикой для разработки децентрализованных приложений, подобно тому, как доменные имена заменили IP-адреса в Интернете. По мере того, как все больше инфраструктурных элементов, таких как кошельки, обозреватели и панели мониторинга, интегрируют разрешение ENS для контрактов, именованные контракты повысят безопасность и уменьшат количество ошибок во всей экосистеме.
Делая умные контракты более легкими для распознавания и понимания, присвоение имен помогает сократить разрыв между пользователями и приложениями на Ethereum, улучшая как безопасность, так и UX для пользователей.