Введение в ENS
Служба имен Ethereum (ENS) — это распределенная, открытая и масштабируемая система именования, основанная на блокчейне Ethereum. Основная функция ENS — анализ удобочитаемых имен (таких как «alice.eth») в распознаваемые компьютером идентификаторы, такие как адреса Ethereum, адреса других криптовалют, хэши контента, метаданные и т. д. Кроме того, ENS также поддерживает «обратное разрешение», позволяя связывать метаданные (например, канонические имена или описания интерфейсов) с адресами Ethereum.
Функция и архитектура ENS
Цель ENS аналогична службе интернет-имен (DNS), но из-за функциональных характеристик и ограничений блокчейна Ethereum архитектура ENS сильно отличается от DNS. ENS — это иерархическая система именования, в которой точки служат разделителями между уровнями, а каждый уровень называется доменом. Владелец домена имеет полный контроль над своими поддоменами.
Владельцами доменных имен верхнего уровня (таких как «.eth» и «.test») являются смарт-контракты, называемые «регистраторами». Правила выделения субдоменов определяются в этих контрактах. Любой желающий может стать владельцем доменного имени и настроить его по мере необходимости, следуя правилам, предусмотренным в этих контрактах. ENS также поддерживает подключение существующих доменных имен DNS к системе ENS для расширения ее функций.
Благодаря иерархической структуре ENS любой владелец домена определенного уровня может создавать и настраивать поддомены для себя или других. Например, если Алиса владеет «alice.eth», она может создать «pay.alice.eth» и настроить его по мере необходимости.
Развертывание и использование ENS
ENS развернут в основной сети Ethereum и нескольких тестовых сетях. Если вы используете библиотеку Javascript ensjs или приложение конечного пользователя, эти инструменты автоматически обнаруживают соответствующую сеть и взаимодействуют с ней.
Архитектура ЭНС
ENS состоит из двух основных компонентов: реестра и парсера.
Введение в реестр ENS
Реестр ENS — это смарт-контракт, который поддерживает список всех имен и подимен и хранит три ключевые части информации о каждом имени:
имя владельца
анализатор имен
Время жизни кэша (TTL) всех записей под именем
Владельцем имени может быть внешняя учетная запись (пользователь) или смарт-контракт. Регистратор действует как смарт-контракт, который содержит имя верхнего уровня и назначает пользователям подимена этого имени в соответствии с правилами контракта.
Функции реестра ENS
Владельцы имен в реестре ENS имеют следующие разрешения:
Установить преобразователь и срок жизни: владельцы могут указать преобразователь и установить срок жизни для своего имени.
Передача права собственности: владелец может передать право собственности на имя на другой адрес.
Изменение владельца подимен. Владельцы могут управлять и изменять владельца подимен.
Основная цель реестра ENS — сопоставить имена преобразователям, ответственным за разрешение этого имени. Резолверы — это смарт-контракты, отвечающие за преобразование имен в адреса. Любой смарт-контракт, соответствующий стандартам, связанным с парсером, можно использовать в качестве парсера в ENS. Для пользователей, чьи потребности просты и не часто меняют адреса, можно использовать универсальный преобразователь.
функция парсера
Каждый тип записи (например, адрес Ethereum, хеш контента и т. д.) определяет набор методов, которые анализатор должен реализовать для предоставления соответствующей записи. Новые типы записей могут быть определены в любое время в процессе стандартизации EIP, поэтому для поддержки новых типов записей не требуется никаких изменений в реестре ENS или существующих синтаксических анализаторах.
Разрешение имени в ENS требует двух шагов:
Запрос реестра. Сначала выполните запрос реестра, чтобы определить, какой преобразователь отвечает за разрешение имени.
Запросите синтаксический анализатор. Затем запросите у синтаксического анализатора результаты анализа.
Преимущества и применение ENS
Реестр и анализатор ENS предназначены для упрощения управления сложными адресами, позволяя пользователям легко преобразовывать удобочитаемые имена в машиночитаемые идентификаторы. Этот дизайн не только улучшает пользовательский опыт, но также обеспечивает большую гибкость и масштабируемость, что делает ENS мощным инструментом для систем именования блокчейнов.
Механизм хеширования имен
В смарт-контрактах прямое взаимодействие с удобочитаемыми именами неэффективно из-за ограничений ресурсов. Поэтому ENS использует 256-битный криптографический хэш фиксированной длины для обработки имен. Этот алгоритм хеширования называется Namehash и предназначен для генерации уникальных значений хеш-функции с иерархической структурой. Например, хэш имени «alice.eth» — 0x787192fc5378cc32aa956ddfdedbf26b24e8d78e40109add0eea2c1a012c3dec. В ENS Namehash используется для представления имен.
Рекурсивный процесс Namehash
Namehash — это рекурсивный процесс, который генерирует уникальное значение хеш-функции для любого допустимого имени. Начав с хеша имени одного имени (например, «alice.eth»), можно получить хэш имени любого подимени (например, «iam.alice.eth») без необходимости иметь дело с исходным удобочитаемым именем «alice» или знать его. .эт" . Эта функция позволяет ENS эффективно управлять своей иерархией без необходимости внутренней обработки удобочитаемых текстовых строк.
процесс нормализации
Перед хешированием с помощью Namehash имена должны быть нормализованы. Этот процесс основан на стандарте UTS-46, который гарантирует, что буквы в именах не чувствительны к регистру и не допускают недопустимых символов. Любое хеширование и анализ имен сначала необходимо нормализовать, чтобы обеспечить согласованность результатов в системе ENS для всех пользователей.
Важность Namehash
Дизайн Namehash играет важную роль в следующих аспектах:
Эффективность: ENS обеспечивает эффективную обработку смарт-контрактов путем преобразования читаемых имен в хэши фиксированной длины.
Иерархия: Namehash позволяет рекурсивно генерировать хеши подимен, поддерживая иерархическое управление ENS.
последовательность: посредством процесса нормализации убедитесь, что все пользователи получают согласованные результаты при обработке имен в ENS.
Применение Namehash
В системе ENS широко используется Namehash:
Регистрация имени: когда пользователь регистрирует имя, ENS использует Namehash для преобразования имени в хэш-значение для хранения и управления.
Разрешение имен. При разрешении имен ENS выполняет быстрый и эффективный поиск и сопоставление на основе хеша имени.
Управление подименами. Благодаря рекурсивной природе Namehash пользователи могут легко управлять подименами своих имен, не имея дело со сложными текстовыми строками.