EthDNS:域名系统的以太坊后端

目录

EthDNS:域名系统的以太坊后端

时间:2022.11.24 作者:litianc(翻译) 原作者:吉姆·麦克唐纳(2018年1月22日) 阅读时长:6分钟

前言:借由4年前吉姆·麦克唐纳的这篇文章,加深对ENS域名系统的理解。

什么是域名系统?

域名系统 (DNS) 是一种分层分散的信息存储,最常用于将您可能在 Web 浏览器中键入的人类可读名称(例如 www.my.xyz)解析为可用于联系的数字地址互联网上的计算机。

DNS 的层次结构将名称分解为它们的组成部分。例如,名称“www.my.xyz”分解如下:

完全限定的 DNS 名称的细分 图 1:完全限定 DNS 名称的分解

这些组件可以在 DNS 层次结构中找到,如下所示:

显示从 DNS 根目录到 www.my.xyz 的路径的 DNS 层次结构 图 2:显示从 DNS 根到www.my.xyz的路径的 DNS 层次结构

DNS 层次结构使得从 DNS 根遍历到任何节点成为可能,方法是沿着层次结构沿着 DNS 域的组件从右到左向下移动,因为它被写下来。

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

解析“www.my.xyz”所需的域名服务器,以及每个域名服务器持有的数据,如下所示:

my.xyz 域所需的传统 DNS 名称服务器基础设施 图 3:my.xyz 域所需的传统 DNS 名称服务器基础设施

上图显示了一组带有 DNS 根信息的名称服务器,一组用于“xyz”域,一组用于“my.xyz”域。每个名称服务器处理层次结构中的一个节点。根名称服务器包含指向直接位于根目录下的名称服务器(com、net、xyz等)的指针。xyz 名称服务器包含指向直接位于 xyz 下的名称服务器的指针(my.xyz、ns.xyz、ethdns.xyz等)。my.xyz 名称服务器包含直接位于 my.xyz 下的 DNS 名称数据(www.my.xyz等)。

(请注意,上面的图表和解释是 DNS 的简化视图,但足以满足本文的目的)。

通过以上信息可以看出,将“www.my.xyz”等名称解析为地址需要经过以下步骤:

解析 www.my.xyz 的地址 图 4:解析www.my.xyz的地址

  1. 客户端向根域名服务器发送一个请求,要求获取 www.my.xyz 的地址
  2. 名称服务器检查其本地存储。它没有关于 www.my.xyz 的任何信息,但知道 xyz 的名称服务器
  3. 名称服务器返回为 xyz 提供服务的名称服务器的详细信息
  4. 客户端向 xyz 域名服务器发送一个请求,请求 www.my.xyz 的地址
  5. 名称服务器检查其本地存储。它没有关于 www.my.xyz 的任何信息,但知道 my.xyz 的名称服务器
  6. 名称服务器返回服务于 my.xyz 的名称服务器的详细信息
  7. 客户端向 my.xyz 域名服务器发送一个请求,请求 www.my.xyz 的地址
  8. 名称服务器检查其本地存储。它确实有关于 www.my.xyz 的信息,并找到答案 193.62.81.1
  9. nameserver返回结果192.62.81.1给client

什么是 EthDNS?

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

这两部分结合起来将解析基础结构的图片更改为以下内容:

带有 EthDNS 服务 my.xyz 的 DNS 名称服务器基础设施 图 5:使用 EthDNS 服务 my.xyz 的 DNS 域名服务器基础设施

my.xyz 域的名称服务器已配置为不是从本地商店而是从以太坊区块链获取信息,如图右下角的以太坊符号所示。请注意,名称解析过程与上图完全相同,并且客户端不知道信息已从区块链返回。这使得 EthDNS 成为现有域名服务器的直接替代品,可与现有基础设施无缝协作。

EthDNS 的好处

在传统 DNS 基础设施上使用 EthDNS 有很多好处。

EthDNS 比传统 DNS 更高效。DNS 的分布式架构允许不同的名称服务器负责 DNS 层次结构的不同部分,例如,一个名称服务器可能负责根域,另一个负责 xyz,还有一个负责 my.xyz。然而,这会导致在前面的图中可以看到的那种来回请求。相比之下,EthDNS 名称服务器纯粹提供各个域所有者放置在以太坊区块链上的信息,没有任何更改的能力。因此,EthDNS 名称服务器可以直接提供以太坊上任何域的信息,如下所示:

直接解析EthDNS域名信息 图6:直接解析EthDNS域名信息

另一个重要的好处是信任。DNS 依赖于信任网络,具体而言,层次结构中的每个级别都信任它上面的级别。如果这种信任破裂,例如,如果 xyz 名称服务器的所有者决定从 my.xyz 中删除,那么域所有者将无法执行任何操作来允许其用户解析其域。这种情况可以在下面看到:

在传统 DNS 中将域列入黑名单 图 7:在传统 DNS 中将域列入黑名单

此处 xyz 名称服务器将 my.xyz 域删除,因此在解析过程的第 6 步之后,客户端无法联系 my.xyz 名称服务器以找到 www.my.xyz 的地址。

EthDNS 阻止了这种黑名单,因为它不是分层的,而是植根于区块链中。如上所示,一旦域名在 ENS 中注册,就可以直接查询。因此,无法阻止数据(除非 EthDNS 名称服务器拒绝提供数据,但请参见下文)。

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

客户端直接查询 EthDNS 解析器,从进程中删除名称服务器 图 8:客户端直接查询 EthDNS 解析器,从进程中删除名称服务器

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

当前状态

EthDNS 在以太坊的 Ropsten 测试网络上运行由 ENS 支持的域名服务器。例如,如果您访问http://www.ethdns.xyz/ ⧉ 地址www.ethdns.xyz来自 EthDNS 名称服务器。关于如何为自己的域设置 EthDNS 的详细信息将是下一篇文章的重点。

未来的计划

一旦 EthDNS 名称服务器和解析器经过测试,EthDNS 解析器将在主网上可用,并且 EthDNS 名称服务器将被部署以允许在以太坊上运行生产级 DNS。

目前 EthDNS 不提供存储 DNSSEC 记录的能力。这是由于在链上存储此信息的成本和复杂性,尤其是更改密钥时的更新成本。EthDNS 域名服务器计划提供 DNS 结果的实时签名,并努力研究 ENS 支持本地 DNSSEC 的可能性,数据保存在链下,例如在 IPFS 上。

译后记

谁能想到ENS上线4年之后,靠发行治理代币在行业火了一把,而硬核的 EthDNS 未来计划却无人问津,令人唏嘘。希望建立一套域名解析系统,当浏览器中输入mydomain.eth时,可以根据链上记录解析到指定ip,这样,就overlay在互联网上建立了一个小众的身份世界。CoreDNS是一个很好的载体,让ENS真正用起来。

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开微信扫一扫,即可进行扫码打赏哦