Decentralized Web:构建从底层到前端都无需许可的 DWeb
November 16th, 2022

 

前言

8 月 8 日,美国财政部宣布制裁混币协议 Tornado Cash。此次制裁波及了众多以太坊地址,甚至连 Tornado Cash 的官网也在劫难逃,被一并封禁。美国政府此次行动引发了加密社区诸多争议,其中包括了对 Web3.0 的” 去中心化 “这一愿景的质疑。如果所有加密项目与用户直接交互的前段网站都能被如此轻易地封禁掉,那么底层基础架构的去中心化带来的 “无需许可”、“抗审查” 等优点还有多大意义呢?无独有偶,在 Tornado Cash 事件发生的两天之后,去中心化交易平台 Curve Finance 遭遇域名攻击,被盗 57 万美金。Curve 表示问题主要来自于名称服务器,黑客将用户或其交易重定向到了另一个恶意网站,造成了资金的损失。Web 端的脆弱性再次挑动了加密社区的神经。事实上,关于 Decentralized Web 的讨论由来已久。人们畅想一个由相互连接的私人电脑构成的去中心化系统来提供私人的、安全的、抗审查的信息和服务访问。

那么现有的 Centralized Web 的有哪些局限性,Decentralized Web 又是如何构建的呢,我们离 Dweb 还有多远的距离?本文将为读者一一介绍。

Cweb

HTTP 与 Client-server model

在讨论 Centralized Web 之前,我们先简单了解一下互联网的交互模型。相信大家对 TCP/IP 和 HTTP 协议都有所耳闻,它们都是如今互联网的应用广泛基础协议,和我们的生活息息相关。TCP/IP 是传输层协议,它负责打包数据并寻址,将数据从一台计算机传输到另一台。而 HTTP 是搭载在 TCP/IP 上的应用层协议,它规定了每段数据以什么样的格式表达才能被另一台计算机所理解。HTTP 下的计算机有不同的角色,主要分为两种:服务器和客户端。在 Internet 中提供服务的主机叫做服务器,比如各大门户网站,社交平台等;通过访问服务器从而获得有用信息的主机叫做客户端,比如各种家庭计算机和智能手机。

如今绝大部分的中心化网页都采用了这种服务器-客户端的主从架构。比如当我们想要在 coinmarketcap 上查询币价时,我们的电脑和网页浏览器就是客户端,coinmarketcap 的电脑、数据库和应用程序就是服务器。

当我们的浏览器向 coinmarketcap 请求访问时,coinmarketcap 的服务器将从数据库里找出网页信息,结合成一个网页,最后返回到我们的浏览器上。可以看出,这套主从架构是高度依赖于服务器的,服务器需要负责主要的数据处理,并存储用户的访问数据和用户信息。这种结构的优势很直接,能够做到简单快速的部署且维护成本低,因此被广泛引用,对与互联网今天的繁荣居功至伟。但是它的缺陷也十分明显,出现单点故障或单点攻击的概率高,安全性相对较低。

域名与 DNS

前文提到,互联网建立在 TCP/IP 协议之上,因此我们需要通过 IP 地址来进行服务器的寻址。而 IPv4 地址是一个 32 位的二进制数,通常被分割为 4 个 8 位二进制数。比如 coinmarketcap 网页的 IP 地址是 108.160.165.139,我们需要通过此 IP 地址对服务器发送请求。然而这一串数字太过难记,如果要记下所有我们经常访问的网页的 IP 地址,难度不亚于背下一整本通讯录。因此,域名 (Domain Name) 的概念应运而生。域名为互联网上任何可用的网页服务器提供了方便人类理解的地址。正如我们记不住朋友的电话号码,但不会忘记朋友的名字。有了域名之后,我们访问 coinmarketcap 就不需要输入 IP 地址,而是直接在浏览器输入 coinmarketcap.com 即可。

因此,DNS(Domain Name Service) 就如同一本通讯录查询器,主要作用就是将主机域名转换为 ip 地址。当人们想要建立自己的网站时,往往做的第一件事就是购买一个域名,才能让别的计算机更容易联系上你。看到这很多读者可能会好奇,域名听起来像是一个 public good 而不是商品,那当我们购买域名时付的钱是给了谁呢?在回答这个问题之前,我们可以先了解一下域名背后的管理机构。负责管理域名系统运作的机构叫做 ICANN,它是全世界域名的最高管理机构。ICANN 会把不同后缀交给不同地区、国家、运营商去运营维护。比如 cn 后缀交给了 CNNIC,com 后缀给了 Verisign,mo 的运营所属权归澳门注册局所有。后缀一般根据运营商的成本加合理利润定价,各地的后缀比如 cn、jp 和 hk 等都是各地区自行定价。而用户购买域名所交的费用,一部分给了 ICANN,另一部分则是交给了服务商。ICANN 总部在美国加州,原来是隶属于美国商务部的一个非盈利机构。所以美国政府控制了全世界的域名这一说法并不是毫无根据。2016 年,美国政府宣布 ICANN 不再隶属于商务部,而是成为一个自我管理的独立机构。但显而易见的是,美国政府依然对它有着绝对的影响力。这就回到了文章开始的话题,美国政府为什么可以封禁 Tornadao Cash 的官网,最简单的方式就是对域名进行封锁,让普通人无法通过域名访问网站。而攻击 Curve 的黑客也是对域名进行了篡改,将访问者引导到恶意的网站上。可以总结出,Centralized Web 的中心化一定程度体现在 HTTP 下 Client-Server 主从结构上,也同样体现在域名的中心化管理上。当然 Centralized Web 的中心化还有很多层面的因素造成,本文将着重讨论传输协议和域名两个方面。在 Web3.0,我们已经看到了这两个问题的一些解决方案——IPFS 和去中心化域名。

IPFS versus HTTP

IPFS 诞生于斯坦福大学计算机硕士 Juan Benet 创立的协议实验室 Protocol Labs——一个专注于网络协议研究、开发和部署的实验室。与 HTTP 类似,IPFS 也是基于 TCP/IP 的应用协议。与 HTTP 不同的是,IPFS 是一个基于内容而非地址的 p2p 协议。

那么上述差异在我们使用时有什么影响呢?前文提到,HTTP 的工作原理是将内容与 IP 地址进行映射,IP 地址指向特定地点的服务器,服务器里面有访问者需要的资源。比如我们要在 YouTube 上播放一个视频,我们的浏览器会在谷歌的众多服务器中找到该视频所存储的位置,并将视频一路返还给我们。为了加快这个返还的进程,我们还建立了 CDN(内容交付网络),可以将服务器 “带到” 离你物理距离更近的地方。但 CDN 也有地域的局限性,在基建相对落后的发展中国家作用有限。

试想一下,有 100 个学生坐在教室里同时观看此 YouTube 视频,每个学生的客户端都向 YouTube 服务器发送请求,上述过程需要被重复一百次。会造成大量的拥堵和资源的浪费。那么 IPFS 是如何解决这个问题的呢?IPFS 的 “地址” 实际上是根据内容生成的 hash,当学生要看视频时,学生的电脑不是查询某个中心化服务器的 IP 地址,而是在整个 P2P 网络中根据内容检索。如果教室里有学生的电脑上存储了这个视频,他们将从彼此那里获取,确保了这些数据来自于最近的来源。

可以看出,IPFS 是建立在 P2P 网络上的内容传输协议,在这个网络中不存在服务器和客户端的层级划分,每一个节点即是客户端,又是服务器。**显而易见,IPFS 有着很多 “去中心化” 带来的优势。**首先,IPFS 避免了单点失败的问题,增强了网络的可扩展性和灵活性。同时拥有更高的性能,用户的请求能够更快被处理。那为何拥有众多优势的 IPFS 还没有被大规模应用呢?这是 P2P 网络面临的共同问题,即运营和维护的成本极高。比如笔者的节点出现了问题,但笔者并没有能力去解决。其次是协调的问题,P2P 网络中的节点都是独立行动的,并不互相沟通,难以实现集体协作的任务。因此综合考虑成本/效益,IPFS 不一定能让所有组织结构都受益。

Decentralized Domain Name Service

相比于 IP 地址,用来内容检索的哈希更为复杂,因此我们也需要一个去中心化的 DNS 来将哈希翻译成为人类容易理解记忆的名字。这里的去中心化如何理解呢?我们同样先来了解一下现有 DNS 是如何中心化运作的。目前 DNS 按照树状结构运作,拥有最高权限的 Root DNS servers 全球只有 13 个。当这个阶级结构的顶层 DNS 服务器瘫痪时,隶属于此个服务器的子服务器也会随之停摆,造成网络的大规模瘫痪。

在此背景之下,去中心化域名的概念被提出,而基于区块链的 DNS 是目前最有希望的解决方案。结合前文提到的 DNS 背后的组织形式和服务器的架构。我可针对去中心化域名提出两点要求:1. 去中心化域名的所有权/注册权/使用权等不应该被某个中心化势力所控制。2. 去中心化域名的运作不应该依赖于几个中心化的服务器,而是在区块链上去中心化运作。

尽管去中心化域名服务还处于早期阶段,我们已经看到了数个项目在朝着这个目标建设。比如 Namecoin 是第一批项目之一,早在 2011 年就被发布,但没有看到广泛的采用。Handshake 是另一个有趣的项目,它的定位是 “去中心化的域名命名和颁布机构”。现阶段最有声量的两个项目应该是 Unstoppable Domains 和 ENS。他们的去中心化域名已经有了很高的销量,但还未大量投入使用 (这里主要指与 IPFS 的 CID 进行映射),主要是作为象征 DID 的 NFT 存在钱包里。

WeChat1:victeam005

WeChat2:shijie20170405
Telegream:https://t.me/VICOINDAOCHAT
Twitter:@VICOINDAO

Subscribe to VICOINDAO
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.
More from VICOINDAO

Skeleton

Skeleton

Skeleton