Перейти до основного контенту
Change page

Іменування смарт-контрактів

Останні оновлення сторінки: 9 вересня 2025 р.

Смарт-контракти є наріжним каменем децентралізованої інфраструктури Ethereum, що забезпечують роботу автономних застосунків і протоколів. Але навіть з розвитком можливостей контрактів, користувачі та розробники все ще покладаються на необроблені шістнадцяткові адреси для ідентифікації та посилання на ці контракти.

Іменування смарт-контрактів за допомогою Ethereum Name Service (ENS)opens in a new tab покращує взаємодію з користувачем, усуваючи шістнадцяткові адреси контрактів, і зменшує ризик таких атак, як отруєння адрес та спуфінг-атаки. У цьому посібнику пояснюється, чому важливо давати назви смарт-контрактам, як це можна реалізувати, та доступні інструменти, такі як Enscribeopens in a new tab, для спрощення процесу та допомоги розробникам у впровадженні цієї практики.

Навіщо давати назви смарт-контрактам?

Зрозумілі для людини ідентифікатори

Замість взаємодії з непрозорими адресами контрактів, як-от 0x8f8e...f9e3, розробники та користувачі можуть використовувати зрозумілі для людини назви, як-от v2.myapp.eth. Це спрощує взаємодію зі смарт-контрактами.

Це стало можливим завдяки Ethereum Name Serviceopens in a new tab, яка надає децентралізовану службу імен для адрес Ethereum. Це аналогічно тому, як служба доменних імен (DNS) дозволяє користувачам Інтернету отримувати доступ до мережевих адрес, використовуючи ім’я, наприклад ethereum.org, замість IP-адреси, наприклад 104.18.176.152.

Підвищена безпека та довіра

Іменовані контракти допомагають зменшити кількість випадкових транзакцій на неправильну адресу. Вони також допомагають користувачам ідентифікувати контракти, прив’язані до конкретних застосунків або брендів. Це додає шар репутаційної довіри, особливо, коли назви прикріплені до відомих батьківських доменів, як-от uniswap.eth.

Через довжину адреси Ethereum у 42 символи користувачам дуже важко виявити невеликі зміни в адресах, де було змінено кілька символів. Наприклад, адреса, така як 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. Щоб дати назву смарт-контракту:

  1. Зареєструйте або керуйте батьківським доменом ENS (наприклад, myapp.eth)
  2. Створіть субдомен (наприклад, v1.myapp.eth)
  3. Встановіть запис address субдомену на адресу контракту
  4. Встановіть зворотний запис контракту на ENS, щоб дозволити знаходити назву за її адресою

Назви ENS є ієрархічними і підтримують необмежену кількість підназв. Встановлення цих записів зазвичай передбачає взаємодію з реєстром ENS і контрактами публічного розпізнавача.

Інструменти для іменування контрактів

Існує два підходи до іменування смарт-контрактів. Або за допомогою застосунку ENSopens in a new tab з деякими ручними кроками, або за допомогою Enscribeopens in a new tab. Вони описані нижче.

Ручне налаштування ENS

Використовуючи застосунок ENSopens in a new tab, розробники можуть вручну створювати підназви та встановлювати записи прямих адрес. Однак вони не можуть встановити основну назву для смарт-контракту, встановивши зворотний запис для назви через застосунок ENS. Необхідно виконати ручні кроки, які описані в документації ENSopens in a new tab.

Enscribe

Enscribeopens in a new tab спрощує іменування смарт-контрактів за допомогою ENS та підвищує довіру користувачів до смарт-контрактів. Він надає:

  • Атомарне розгортання та іменування: Призначте назву ENS під час розгортання нового контракту
  • Іменування після розгортання: Прикріпіть назви до вже розгорнутих контрактів
  • Підтримка кількох ланцюгів: Працює в мережах Ethereum і L2, де підтримується ENS
  • Дані верифікації контракту: Містить дані верифікації контракту, отримані з кількох джерел для підвищення довіри користувачів

Enscribe підтримує назви ENS, надані користувачами, або власні домени, якщо у користувача немає назви ENS.

Ви можете перейти до застосунку Enscribeopens in a new tab, щоб почати іменування та перегляд смарт-контрактів.

Найкращі практики

  • Використовуйте чіткі, версійні назви, як-от v1.myapp.eth, щоб зробити оновлення контрактів прозорими
  • Встановіть зворотні записи, щоб зв’язати контракти з назвами ENS для видимості в таких застосунках, як гаманці та оглядачі блокчейнів.
  • Уважно стежте за термінами дії, якщо ви хочете запобігти випадковим змінам у власності
  • Перевіряйте джерело контракту, щоб користувачі могли бути впевнені, що іменований контракт поводиться так, як очікувалося

Ризики

Іменування смарт-контрактів надає значні переваги користувачам Ethereum, однак власники доменів ENS повинні бути пильними щодо їх управління. До значних ризиків належать:

  • Закінчення терміну дії: Як і назви DNS, реєстрації назв ENS мають обмежений термін дії. Тому дуже важливо, щоб власники стежили за термінами дії своїх доменів і поновлювали їх задовго до закінчення терміну дії. І застосунок ENS, і Enscribe надають візуальні індикатори для власників доменів, коли наближається термін закінчення дії.
  • Зміна власності: Записи ENS представлені як NFT на Ethereum, де власник певного домену .eth володіє відповідним NFT. Отже, якщо інший обліковий запис заволодіє цим NFT, новий власник може змінювати будь-які записи ENS на свій розсуд.

Щоб зменшити такі ризики, обліковий запис власника доменів .eth другого рівня (2LD) має бути захищений за допомогою гаманця з мультипідписом, а для керування іменуванням контрактів створюються субдомени. Таким чином, у разі будь-яких випадкових або зловмисних змін у власності на рівні субдомену, вони можуть бути скасовані власником 2LD.

Майбутнє іменування контрактів

Іменування контрактів стає найкращою практикою для розробки dApp, подібно до того, як доменні імена замінили IP-адреси в Інтернеті. Оскільки все більше інфраструктури, як-от гаманці, оглядачі та інформаційні панелі, інтегрують розпізнавання ENS для контрактів, іменовані контракти підвищать безпеку та зменшать кількість помилок у всій екосистемі.

Роблячи смарт-контракти легшими для розпізнавання та обґрунтування, іменування допомагає подолати розрив між користувачами та застосунками на Ethereum, покращуючи як безпеку, так і UX для користувачів.

Для подальшого читання

Чи була ця стаття корисною?