主页 > imtoken服务器验证签名错误 > ENS是使用Namehash算法的以太坊域名服务

ENS是使用Namehash算法的以太坊域名服务

ENS(Ethereum Name Service)即以太坊域名服务,是基于以太坊区块链的分布式、开放、可扩展的命名系统。 ENS 的工作是将人类可读的域名(例如“a

ENS(Ethereum Name Service)即以太坊域名服务,是基于以太坊区块链的分布式、开放、可扩展的命名系统。

ENS 的工作是将人类可读的域名(例如“alice.eth”)解析为计算机可以识别的标识符,例如以太坊地址、内容的哈希值、元数据等。ENS 还支持“反向解析”,即使得将元数据(例如规范化域名或接口描述)与以太坊地址相关联成为可能。

ENS 的目标与 DNS(Internet Domain Name Service)的目标类似,但由于以太坊区块链的功能特点和限制,两者的架构存在较大差异。 ENS 和 DNS 一样,也是一个分级域名系统,不同分级域名之间使用点作为分隔符。 我们称分层名称为域,域的所有者可以完全控制其子域。

顶级域(例如“.eth”和“.test”)由称为“注册商”的智能合约拥有,它指定了管理子域分配的规则。 任何人都可以根据这些合同规定的规则获得域名的所有权并为自己所用。

由于ENS的层级性,无论一个人拥有什么级别的域名,他都可以根据需要为自己或他人配置子域名。 例如,如果 Alice 拥有“alice.eth”,她可以创建“pay.alice.eth”并根据需要进行设置。

以太经典和以太坊统一_以太经典和以太坊算力差别_以太坊域名ens

ENS部署在以太坊主网和几个测试网络上。 如果您使用 ehereum-ens[1] javascript 库或最终用户应用程序,它将自动检测您与之交互的网络并在该网络上部署 ENS。

您现在可以通过 ENS Manager[2] 或 ENS 官方主页上的 ENS 应用程序[3] 试用 ENS。

ENS架构

ENS 有两个主要组件:注册表 [4] 和解析器 [5]

以太经典和以太坊算力差别_以太经典和以太坊统一_以太坊域名ens

以太经典和以太坊统一_以太坊域名ens_以太经典和以太坊算力差别

ENS 注册表是一个智能合约,它维护所有域和子域的列表,并存储有关每个域的三个关键信息:

• 域名所有者

• 域名解析器

• 域名下所有记录的缓存生命周期(即TTL)

域名的所有者可以是外部账户(用户)或智能合约。 注册中心是一个拥有顶级域名的智能合约,根据合约中的规则将域名的子域名分配给用户。

以太经典和以太坊算力差别_以太经典和以太坊统一_以太坊域名ens

ENS 注册表中的域名所有者可以:

• 为域名设置解析器和 TTL

• 将域名所有权转移到另一个地址

• 更改子域的所有权

ENS注册中心非常简单,它的存在只是为了将一个域名映射到负责解析这个域名的解析器。

以太坊域名ens_以太经典和以太坊算力差别_以太经典和以太坊统一

解析器负责将域名转换为地址。 只要是符合解析器相关标准的智能合约,都可以作为ENS中的解析器程序使用。 通用解析器服务于需求简单的用户,例如不经常更改地址的用户。

每种记录类型(以太坊地址、内容哈希等)都定义了一种或多种方法,解析器必须实施这些方法才能提供此类记录。 通过 EIP 标准化过程,可以随时定义新的记录类型,因此无需更改 ENS 注册表或现有的解析器来支持它们。

在 ENS 中解析一个域名需要两个步骤:首先向注册局询问哪个解析器负责解析该域名,然后向解析器查询解析结果。

以太经典和以太坊统一_以太坊域名ens_以太经典和以太坊算力差别

在上面的例子中,我们想要找到“foo.eth”指向的以太坊地址。 首先以太坊域名ens,我们询问注册表哪个解析器负责解析“foo.eth”; 然后,我们向解析器查询“foo.eth”的地址。

以太经典和以太坊算力差别_以太经典和以太坊统一_以太坊域名ens

名称哈希

智能合约中的资源限制使得直接与人类可读域名交互的效率低下,因此 ENS 仅使用固定长度的 256 位加密哈希。 为了在保留域名层次结构的同时从域名生成哈希,ENS 使用了一种名为 Namehash 的算法。 例如“alice.eth”的Namehash为0x787192fc5378cc32aa956ddfdedbf26b24e8d78e40109add0eea2c1a012c3dec,Namehash仅用于表示ENS内部的域名。

Namehash 是一个递归过程,它为任何有效的域名生成一个唯一的哈希值。 从任意一个域名的Namehash(比如“alice.eth”的Namehash)出发,可以推导出任意一个子域名的Namehash(比如“iam.alice.eth”的Namehash),有无需知道或处理人类可读的原始域名“alice.eth”。 正是这个特性让 ENS 成为一个分层系统以太坊域名ens,而不必在内部处理人类可读的文本字符串。

在使用Namehash进行哈希之前,首先需要借助UTS-46标准对域名进行归一化处理,保证域名中的字母不区分大小写,禁止使用无效字符。 任何哈希和解析域名的操作都必须首先对其进行规范化,以确保所有用户获得 ENS 一致性。 (刘奔奔)

以太坊域名ens_以太经典和以太坊统一_以太经典和以太坊算力差别

关键词: