一文看懂区块链域名解析服务、热门项目 Handshake 和 ENS

8 月份硅谷的明星项目当属去中心化域名认证协议「Handshake」。这个由比特币闪电网络的创始人 Joseph Poon、Purse 首席执行官 Andrew Lee 和 Christopher Jeffrey 共同发起创立的公链项目,专注于去中心化的域名注册、认证、交易和解析。
Handshake 之前一直是一个小圈子内流传的秘密项目,直到 8 月初宣布,获得了包括 A16z Crypto、Founders Fund、Polychain Capital、Draper Associates 等顶级 VC 的投资,完成了一轮 1020 万美元的融资,才真正面对公众亮相。
该项目估值达 1.36 亿美元,引发了大家对去中心化域名解析服务的关注。链闻 ChainNews 希望通过今天的推送,让读者了解去中心化域名解析服务的核心特点,以及该领域重要的玩家。

作者:Imran Khan,微软企业级开发软件开发工程师,zkCapital 顾问

编译:Perry Wang

域名解析系统 DNS 已经运行数十年,是处理互联网数十亿次访问需求的基础设施。用户利用操作系统和浏览器来进行互联网导航。事实上是后端的基础设施不显山不露水的帮你的设备找到正确的网址。DNS 是互联网基础设施的一部分,是一个解决数十亿人网络访问需求的分布式网络。需求被发送到解析服务器,后者的唯一任务就是找到访问需求背后正确的 IP 地址。

近期很多基于区块链的解决方案开始冒出来,它们带来了颇具吸引力的价值主张。

想象一下有一天在土耳其,寻找 Twitter IP 地址的解析服务器被封锁。你会怎么办?社交网络被限制,而基于区块链的解决方案可能成为 DNS 的强大竞争对手,但是建立在一定程度的牺牲基础上。

我会在接下来深入讲讲 DNS 架构,以及它和基于区块链的类似架构,譬如以太坊域名服务 ENS和 Handshake 的区别。

DNS 的历史与架构

为了理解 DNS 及其诞生,我们得先追溯到「阿帕」网的诞生。「阿帕」网是为了让各个研究中心能迅速接入信息数据而建立。历经多年,越来越多的计算机接入「阿帕」网,个人管理所有的 IP 地址变得越来越困难。出于扩展性的需要,工作人员维护一个中心化命名服务器很困难,需要记住他们要连接的所有实际 IP 地址。所以当时的研究人员保罗·莫卡派乔斯 Paul Mockoapetris 提出域名理念,每个 IP 地址都关联一个包括名字和类别归属的域名。

DNS 将机器可读的 IP 地址,譬如 http://74.123.225.72 解析成人类可读的词语,譬如 Google.com。

听上去很简单,但这一新系统引进了域名存储系统的分布式存储。域名首先挂靠在多个服务器之间分配的一个数据库上,这种方式减少在某一时段内对任何一个服务器的依赖。另外它允许命名文件系统分配给域名拓扑图内的所有服务器,意味着全世界的服务器无需信任单一的中心化服务器,而可以解决 IP 地址访问需求。

DNS 层次结构

一个完整的域名就是互联网上的一个地址。譬如 mail.google.com, 主机名是 mail,主机位于 google.com 域内。另外,.com 是顶级域名。这种层次结构类似于电脑上的根目录,下面有子目录。.com 是顶级域名,谷歌公司 Google 被分配到 Google.com 域名,有权再创立 mail.google.com 等二级域名。

DNS 管理机制

我们现在理解了 DNS 层次结构,再深入了解一下 DNS 的管理机制。

每个域名都必须是独一无二的,要得到适当的管理,我们不能让不同的主体共享一个域名。这就有了域名注册商,譬如:Go Daddy。Go Daddy 可以向全球互联网名称与数字地址分配机构 ICANN 申请域名和顶级域名。ICANN 是一家非营利性组织,被赋予在全球管理和更新域名服务的职责,确保互联网的可运行性。域名被注册后,被收录进中心化的域名注册数据库 WhoIS,然后在全网传播。

DNS 的实际工作机制

当你在浏览器中输入 Google.com ,你的电脑浏览器会向一台递归服务器,譬如当地互联网服务提供商 ISP,发送一条 DNS 请求。如果这台递归服务器的缓存中有这个 IP 地址,然后它会向发送请求的主机提供正确的信息。如果在这台递归服务器上没有发现这个 IP 地址,它会联络根服务器。通常根服务器会重新引导这台递归服务器到正确的顶级域名服务器,譬如 .Com 或者 .Gov 服务器。

顶级域名服务器会引导递归服务器到有 Google.com IP 地址的正确的权威服务器。这条信息将会被发送回主机,记录到递归服务器的缓存中,以备将来使用。

简而言之:

  1. 用户敲进去 Google.com 网址
  2. 浏览器将要求发送给递归服务器来找 IP 地址
  3. 递归服务器会联络根服务器 -> 顶级域名服务器 -> 权威服务器
  4. IP 地址被找到,递归服务器将信息回传给用户

DNS 的安全隐患

DNS 自然分配,但所有都必须依赖于服务器得到正确的信息。这种复杂的过程可能导致访问需求被劫持。

劫持访问需求有多种方式:

  1. 第一种是劫持者控制一个域名的一台或多台权威服务器
  2. 第二种被称之为缓存中毒攻击,方法是将大量有毒数据注入递归服务器
  3. 第三种是控制域名注册系统,误导用户的访问
  4. 第四种是分布式拒绝服务 DDoS,将大量小的访问请求汇集成一个巨大的数据流,导致服务器无法正常工作

上述的攻击行为都会将用户的访问重定向至劫持者控制的一个地址。

譬如 2017 年 12 月,Etherdelta 被黑,劫持者偷走价值 25 万美元的 ETH。攻击者控制了 Etherdelta 域名服务器,用一个看起来名字一样的地址取代它。登陆的用户看不到这种变化,用户开始交易,结果发现资金不翼而飞。

为什么要用区块链技术?

DNS 数据库很大,但其区块链分布式本质,能在全球数以百万设备上存储信息。 凭借信息存储和正确的共识机制,我们可以避免信任后端的服务器去解决访问需求。从安全角度而言,我们可以通过由区块链技术来解决,减轻多数攻击的伤害程度。这会保障域名地址的可行性,保护用户免受「钓鱼」和诈骗。

同时,DNS 相比区块链技术而言,更容易遭受 DDoS 攻击。区块链解决方案会让网站具有反审查的能力。

下面是我列举的打造区块链版 DNS 的几个项目。

以太坊域名服务 ENS

ENS 注册非常简便直接,直接利用名字找到负责解决的一方。
— ENS 计划书

ENS 与 DNS 类似,将机器可读的地址转换成人类可读的地址。IP 地址对应的是以太坊地址、IPFS/Swarm 哈希地址。

DNS 和 ENS 间的基础架构是不同的。

根据下图显示,ENS 大幅减少了这种基础架构,智能合约就可以取代 Go Daddy 等注册机构角色。 由于这一功能简单到只需要一个智能合约,任何人可以依据注册机构的规则来创建子域名。解析器扮演翻译角色,将名字转换成哈希地址和以太坊地址。

Handshake

Handshake 采用了一种与 DNS 兼容的分散式,无权限的命名协议,其中每个对等方都在验证并负责管理根区域,目的是创建现有证书颁发机构的替代方案。
— Handshake.org

Handshake 是一条基于 UTXO 模型的公链,后者是采用比特币区块链网络,但与比特币核心不同的一种全节点软件。

Handshake 内的共识协议会替代 ICANN 根服务器。正如前文解释的那样,ICANN 是一家负责全球域名管理与更新的非营利性组织。传统上而言,递归服务器会指向根域文件来定位 IP 地址。用了 Handshake,「递归解析器会指向一个权威服务器,而后者会将需求提交给区块链网络,而不是 ICANN 的根域文件。」

Handshake 接下来会采取一个步骤,为域名拥有者制作一个加密代码。域名拥有者可以用这个加密代码创建签名。这一过程自然会代替掉当前互联网世界中的证书授权机构。

我们目前只能信任像 Verisign 这样的机构来维护顶级域名服务器,希望能保障其安全。这里有 13 个管理根服务器的命名机构。想更多了解 Handshake,请点击这里:https://handshake.org/files/handshake.txt。

Handshake 与 ENS 有何不同?

Handshake 与 ENS 分别以不同策略进军 DNS 的地盘。

Handshake 专注于成为整个基础设施的根服务器。传统上讲,根区域整合所有顶级域名,形成根域文件。根域文件都是 2MB 大小的文本文档,其中包括网站名称与相关 IP 地址。ICANN 管理及分发这些文档。Handshake 的目标是成为去中心化风格的 ICANN。

Handshake 内的所有全节点都是根服务器,服务根域文档。Namebase 最终与 Handshake 整合,任何人都可以购买顶级域名。当前你想要购买一个顶级域名,需要填个表格,向 ICANN 支付 20 万美元 也许能得到批准,但也许批不下来。

Handshake、Namebase 和 ENS 应用图

ENS 目前是提供 .ETH 和 .LUXE 后缀的二级域名。用户现在可以购买一个域名,管理其日常活动。

ENS 注册是一个智能合约,其中包含域名拥有者、解析器和使用时长。 目前 .ETH 和 .LUXE 后缀网站是由智能合约监管子域名的分配。ENS 团队正加紧努力,争取 DNS 域名与 ENS 兼容。目前在测试网,这一过程还需要一些手动介入,但当能提供顶级域名注册服务,ENS 将可能成为 Namebase 的竞争者之一。 ENS 最终将专注于打造 DApp 整合,让在以太坊生态中进行开发的开发者们能够无缝整合。

简单说,Handshake 域名通过简化支付认证予以解决,具有区块链原生属性,ENS 利用以太坊区块链管理上述两个中心化顶级域名。

DNS 每天处理来自全球数以十亿计的互联网访问请求。如果 DNS 服务器宕机,我们就无法接入互联网。这种网络基础设施是分布式的,但依赖于服务器响应访问需求。依赖服务器就成为遭遇黑客攻击的隐患,也让一些机构有了更大的权力审查内容。

基于区块链的相关服务则提供了在安全性和可扩展性方面非常出色的解决方案,但延迟问题仍然让我很难接受。

我个人对基于区块链技术的相关项目,譬如 Blockstack、Handshake 和 ENS 很感兴趣。当这些系统为扩容做好准备时,他们就有机会在一天当中接受数以十亿计的访问需求。我会密切观察相关进展,当万事俱备时也参与进来。