主页 > imtoken网址 > 科普 | EthDNS:一个域名系统以太坊后端

科普 | EthDNS:一个域名系统以太坊后端

imtoken网址 2023-03-21 07:36:26

什么是域名系统?

域名系统 ( DNS ) 是一种分层的、分散的信息存储系统,最常用于将人们在 Web 浏览器中键入的人类可读名称(例如)解析为数字地址,以识别 Internet 上的计算机(译者按:IP地址)。

由于 DNS 的分层性质,域名可以分解为几个部分。 例如,域名分解如下:

以太坊区块链每天产币多少_以太坊多久一个区块_以太坊区块链

-完全合格的DNS名称的解析-

它的分解组件可以在 DNS 层次结构中找到,如下所示:

以太坊多久一个区块_以太坊区块链_以太坊区块链每天产币多少

-从 DNS 根到路径的 DNS 层次结构-

DNS 层次结构可以根据 DNS 域名的组成部分从右到左逐层遍历,从 DNS 根开始遍历所有节点。

域名树中的每个节点都映射到一个数据存储,其中每个节点的数据存储必须包含其正下方所有直接连接的节点的数据。 服务器保存此数据并使其可供 DNS 客户端查询(此类服务器称为“域名服务器”)。

解析“”所需的名称服务器和每个名称服务器保存的数据如下所示:

以太坊区块链_以太坊多久一个区块_以太坊区块链每天产币多少

-解析 my.xyz 域名所需的传统 DNS 服务器基础架构-

上图显示了一组包含 DNS 根信息的名称服务器,一个用于“xyz”域,一个用于“my.xyz”域。 每个名称服务器对应于 DNS 层次结构中的一个节点。 根域名服务器存储指向根域名服务器下面的域名服务器(com、net、xyz等)的指针。 xyz 名称服务器存储指向 xyz 名称服务器的下一级名称服务器(my.xyz、ns.xyz、EthDNS.xyz 等)的指针。 my.xyz 名称服务器在 my.xyz 域名下存储域名数据(等)。

(请注意,上图及其解释是 DNS 的简化视图,但足以满足本文的需要)。

从上面的信息我们可以看出,以域名为例,解析成IP地址需要经过以下步骤:

以太坊区块链_以太坊区块链每天产币多少_以太坊多久一个区块

-解析IP地址-

客户端向根域名服务器发送的域名解析请求

Root nameservers 查找本地记录,虽然没有记录项,但是存储了xyz域名服务器的信息

根名称服务器返回提供有关 xyz 域名信息的名称服务器的详细信息

客户端向xyz域名服务器发送的域名解析请求

xyz域名服务器查找本地记录,虽然没有记录项,但是存储了my.xyz域名服务器的信息

xyz 名称服务器返回为 my.xyz 域名提供信息的名称服务器的详细信息

客户端向my.xyz域名服务器发送的域名解析请求

my.xyz 名称服务器查找本地记录。 记录信息,解析结果为193.62.81.1

my.xyz域名服务器返回结果192.62.81.1给客户端

什么是 EthDNS?

EthDNS 由两部分组成:一个是以太坊名称服务(ENS)解析器,另一个是名称服务器。 前者允许 DNS 信息在区块链上存储和访问,后者允许 DNS 信息的访问方式与传统名称服务器上保存的 DNS 信息相同。

这两部分的结合将域名解析基础架构图转化为如下:

以太坊区块链每天产币多少_以太坊区块链_以太坊多久一个区块

-DNS 名称服务器基础设施,包括服务于 my.xyz 的 EthDNS-

my.xyz 域的名称服务器已配置为从以太坊区块链而不是本地存储中获取信息,在图像中由右下角的以太坊符号表示。 注意域名解析过程和上图记录的一模一样,客户端并不知道信息是从区块链返回的。 这允许 EthDNS 替换现有的名称服务器并与现有的基础设施无缝协作。

EthDNS 的优势

与传统 DNS 基础设施相比,使用 EthDNS 有很多优势。

EthDNS 比传统 DNS 更高效。 DNS 的分布式架构允许不同的名称服务器负责 DNS 层次结构的不同部分,例如,一个名称服务器可能负责根域名,另一个负责 xyz 域名,还有一个负责 my.xyz 域名. 但这会导致像上图这样的来回请求。 相比之下以太坊多久一个区块,EthDNS 名称服务器只能提供每个域名所有者存储在以太坊区块链上的信息,而不能修改这些信息。 因此,EthDNS 域名服务器可以直接提供以太坊上存储的所有域名的信息,如下图所示:

以太坊区块链每天产币多少_以太坊区块链_以太坊多久一个区块

直接解析EthDNS域名信息

另一个重要的好处是信任。 DNS 依赖于信任网络,特别是层次结构中的每个级别都信任它上面的级别。 如果这种信任失败,例如,如果 xyz 名称服务器的所有者决定删除 my.xyz 域,那么 my.xyz 域的所有者就无法让他们的用户解析他们的域。 这种情况可以看下图:

以太坊多久一个区块_以太坊区块链_以太坊区块链每天产币多少

-在传统DNS中屏蔽一个域名-

xyz 域名服务器删除了 my.xyz 域名,因此在解析过程的第 6 步之后,客户端无法联系 my.xyz 域名服务器来查找地址。

EthDNS 避免了这种恶意拦截,因为它是基于区块链而不是分层的。 前面说了,在ENS注册了一个域名,就可以直接查到。 因此,数据无法被阻止(EthDNS 名称服务器不足可能会导致拒绝服务问题,但请参阅下面的解决方法)。

DNS 服务器可以说是 Internet 基础设施中非常值得信赖的部分,但这种信任在过去一直被滥用。 DNS劫持和中毒事件多次发生,导致用户安全信息泄露,网站被封。 因为 EthDNS 只提供区块链数据,所以有安全意识的系统可以独立确认提供的信息和/或绕过域名服务器,直接从 EthDNS 解析器获取数据,如下图所示:

以太坊区块链每天产币多少_以太坊区块链_以太坊多久一个区块

-客户端在解析过程中去掉域名服务器,直接查询EthDNS解析器-

EthDNS 名称服务器遵循一个描述良好的系统,用于从 EthDNS 解析器(ENS 解析过程)获取数据。 因此,用户可以创建或运行自己的 EthDNS 域名服务器,避免恶意域名服务器提供错误信息或阻止域名的可能性。

现状

EthDNS 在以太坊的 Ropsten 测试网络上运行 ENS 支持的域名服务器。 比如你访问DNS.xyz/,DNS.xyz的IP地址是由EthDNS域名服务器解析出来的。 如何为您的域名设置 EthDNS 是下一篇文章的重点。

未来的计划

一旦 EthDNS 名称服务器和解析器通过测试以太坊多久一个区块,EthDNS 解析器将被部署到以太坊主网,EthDNS 名称服务器也将被部署以允许生产级 DNS 在以太坊上运行。

目前 EthDNS 无法存储域名系统安全扩展 (DNSSEC) 记录。 这是由于在链上存储此信息的成本和复杂性过高,尤其是更改密钥时的更新成本。 EthDNS 域名服务器计划在未来提供 DNS 结果的实时签名,并计划在是否可以让 ENS 支持原生 DNS SEC 用于链下存储数据(例如在 IPFS 上)方面下功夫。

有关 EthDNS 的更多信息和讨论,请访问 Gitter 上的 ENS 讨论室。

原文链接:@jgm.orinoco/ethdns-an-ethereum-backend-for-the-domain-name-system-d52dabd904b3