EthDNS:域名系統(tǒng)的以太坊后端
時(shí)間:2023-02-21 13:18:01 | 來源:建站知識
時(shí)間:2023-02-21 13:18:01 來源:建站知識
EthDNS:域名系統(tǒng)的以太坊后端:時(shí)間:2022.11.24
作者:litianc(翻譯) 原作者:吉姆·麥克唐納(2018年1月22日)
閱讀時(shí)長:6分鐘
前言:借由4年前吉姆·麥克唐納的這篇文章,加深對ENS域名系統(tǒng)的理解。
什么是域名系統(tǒng)?
域名系統(tǒng) (DNS) 是一種分層分散的信息存儲,最常用于將您可能在 Web 瀏覽器中鍵入的人類可讀名稱(例如 www.my.xyz)解析為可用于聯(lián)系的數(shù)字地址互聯(lián)網(wǎng)上的計(jì)算機(jī)。
DNS 的層次結(jié)構(gòu)將名稱分解為它們的組成部分。例如,名稱“www.my.xyz”分解如下:
圖 1:完全限定 DNS 名稱的分解這些組件可以在 DNS 層次結(jié)構(gòu)中找到,如下所示:
圖 2:顯示從 DNS 根到www.my.xyz的路徑的 DNS 層次結(jié)構(gòu)DNS 層次結(jié)構(gòu)使得從 DNS 根遍歷到任何節(jié)點(diǎn)成為可能,方法是沿著層次結(jié)構(gòu)沿著 DNS 域的組件從右到左向下移動,因?yàn)樗粚懴聛怼?br>
樹中的每個(gè)節(jié)點(diǎn)都映射到一個(gè)數(shù)據(jù)存儲,其中給定節(jié)點(diǎn)的每個(gè)數(shù)據(jù)存儲都必須包含有關(guān)其正下方所有節(jié)點(diǎn)的數(shù)據(jù)。服務(wù)器保存數(shù)據(jù)并使其可供 DNS 客戶端查詢(此類服務(wù)器稱為“名稱服務(wù)器”)。
解析“www.my.xyz”所需的域名服務(wù)器,以及每個(gè)域名服務(wù)器持有的數(shù)據(jù),如下所示:
圖 3:my.xyz 域所需的傳統(tǒng) DNS 名稱服務(wù)器基礎(chǔ)設(shè)施上圖顯示了一組帶有 DNS 根信息的名稱服務(wù)器,一組用于“xyz”域,一組用于“my.xyz”域。每個(gè)名稱服務(wù)器處理層次結(jié)構(gòu)中的一個(gè)節(jié)點(diǎn)。根名稱服務(wù)器包含指向直接位于根目錄下的名稱服務(wù)器(com、net、xyz等)的指針。xyz 名稱服務(wù)器包含指向直接位于 xyz 下的名稱服務(wù)器的指針(my.xyz、ns.xyz、ethdns.xyz等)。my.xyz 名稱服務(wù)器包含直接位于 my.xyz 下的 DNS 名稱數(shù)據(jù)(www.my.xyz等)。
(請注意,上面的圖表和解釋是 DNS 的簡化視圖,但足以滿足本文的目的)。
通過以上信息可以看出,將“www.my.xyz”等名稱解析為地址需要經(jīng)過以下步驟:
圖 4:解析www.my.xyz的地址- 客戶端向根域名服務(wù)器發(fā)送一個(gè)請求,要求獲取 www.my.xyz 的地址
- 名稱服務(wù)器檢查其本地存儲。它沒有關(guān)于 www.my.xyz 的任何信息,但知道 xyz 的名稱服務(wù)器
- 名稱服務(wù)器返回為 xyz 提供服務(wù)的名稱服務(wù)器的詳細(xì)信息
- 客戶端向 xyz 域名服務(wù)器發(fā)送一個(gè)請求,請求 www.my.xyz 的地址
- 名稱服務(wù)器檢查其本地存儲。它沒有關(guān)于 www.my.xyz 的任何信息,但知道 my.xyz 的名稱服務(wù)器
- 名稱服務(wù)器返回服務(wù)于 my.xyz 的名稱服務(wù)器的詳細(xì)信息
- 客戶端向 my.xyz 域名服務(wù)器發(fā)送一個(gè)請求,請求 www.my.xyz 的地址
- 名稱服務(wù)器檢查其本地存儲。它確實(shí)有關(guān)于 www.my.xyz 的信息,并找到答案 193.62.81.1
- nameserver返回結(jié)果192.62.81.1給client
什么是 EthDNS?
EthDNS 由兩部分組成:以太坊名稱服務(wù) (ENS) 解析器和名稱服務(wù)器。前者允許在區(qū)塊鏈上存儲和訪問 DNS 信息,而后者允許以與傳統(tǒng)名稱服務(wù)器上保存的等效 DNS 信息相同的方式訪問該信息。
這兩部分結(jié)合起來將解析基礎(chǔ)結(jié)構(gòu)的圖片更改為以下內(nèi)容:
圖 5:使用 EthDNS 服務(wù) my.xyz 的 DNS 域名服務(wù)器基礎(chǔ)設(shè)施my.xyz 域的名稱服務(wù)器已配置為不是從本地商店而是從以太坊區(qū)塊鏈獲取信息,如圖右下角的以太坊符號所示。請注意,名稱解析過程與上圖完全相同,并且客戶端不知道信息已從區(qū)塊鏈返回。這使得 EthDNS 成為現(xiàn)有域名服務(wù)器的直接替代品,可與現(xiàn)有基礎(chǔ)設(shè)施無縫協(xié)作。
EthDNS 的好處
在傳統(tǒng) DNS 基礎(chǔ)設(shè)施上使用 EthDNS 有很多好處。
EthDNS 比傳統(tǒng) DNS 更高效。DNS 的分布式架構(gòu)允許不同的名稱服務(wù)器負(fù)責(zé) DNS 層次結(jié)構(gòu)的不同部分,例如,一個(gè)名稱服務(wù)器可能負(fù)責(zé)根域,另一個(gè)負(fù)責(zé) xyz,還有一個(gè)負(fù)責(zé) my.xyz。然而,這會導(dǎo)致在前面的圖中可以看到的那種來回請求。相比之下,EthDNS 名稱服務(wù)器純粹提供各個(gè)域所有者放置在以太坊區(qū)塊鏈上的信息,沒有任何更改的能力。因此,EthDNS 名稱服務(wù)器可以直接提供以太坊上任何域的信息,如下所示:
圖6:直接解析EthDNS域名信息另一個(gè)重要的好處是信任。DNS 依賴于信任網(wǎng)絡(luò),具體而言,層次結(jié)構(gòu)中的每個(gè)級別都信任它上面的級別。如果這種信任破裂,例如,如果 xyz 名稱服務(wù)器的所有者決定從 my.xyz 中刪除,那么域所有者將無法執(zhí)行任何操作來允許其用戶解析其域。這種情況可以在下面看到:
圖 7:在傳統(tǒng) DNS 中將域列入黑名單此處 xyz 名稱服務(wù)器將 my.xyz 域刪除,因此在解析過程的第 6 步之后,客戶端無法聯(lián)系 my.xyz 名稱服務(wù)器以找到 www.my.xyz 的地址。
EthDNS 阻止了這種黑名單,因?yàn)樗皇欠謱拥模侵哺趨^(qū)塊鏈中。如上所示,一旦域名在 ENS 中注冊,就可以直接查詢。因此,無法阻止數(shù)據(jù)(除非 EthDNS 名稱服務(wù)器拒絕提供數(shù)據(jù),但請參見下文)。
DNS 服務(wù)器是互聯(lián)網(wǎng)基礎(chǔ)設(shè)施中非常值得信賴的部分,但這種信任在過去曾被濫用。DNS 劫持和中毒已多次發(fā)生,導(dǎo)致用戶泄露安全細(xì)節(jié)或網(wǎng)站被審查。因?yàn)?EthDNS 只提供來自區(qū)塊鏈的數(shù)據(jù),所以有安全意識的系統(tǒng)可以獨(dú)立確認(rèn)提供的信息和/或完全繞過名稱服務(wù)器并直接從 EthDNS 解析器獲取數(shù)據(jù),如下所示:
圖 8:客戶端直接查詢 EthDNS 解析器,從進(jìn)程中刪除名稱服務(wù)器EthDNS 名稱服務(wù)器遵循一個(gè)描述良好的系統(tǒng)從 EthDNS 解析器(ENS 解析過程)獲取數(shù)據(jù)。因此,用戶可以構(gòu)建或運(yùn)行自己的 EthDNS 名稱服務(wù)器,從而避免惡意名稱服務(wù)器提供不正確信息或阻止域的任何可能性。
當(dāng)前狀態(tài)
EthDNS 在以太坊的 Ropsten 測試網(wǎng)絡(luò)上運(yùn)行由 ENS 支持的域名服務(wù)器。例如,如果您訪問
http://www.ethdns.xyz/ ? 地址www.ethdns.xyz來自 EthDNS 名稱服務(wù)器。關(guān)于如何為自己的域設(shè)置 EthDNS 的詳細(xì)信息將是下一篇文章的重點(diǎn)。
未來的計(jì)劃
一旦 EthDNS 名稱服務(wù)器和解析器經(jīng)過測試,EthDNS 解析器將在主網(wǎng)上可用,并且 EthDNS 名稱服務(wù)器將被部署以允許在以太坊上運(yùn)行生產(chǎn)級 DNS。
目前 EthDNS 不提供存儲 DNSSEC 記錄的能力。這是由于在鏈上存儲此信息的成本和復(fù)雜性,尤其是更改密鑰時(shí)的更新成本。EthDNS 域名服務(wù)器計(jì)劃提供 DNS 結(jié)果的實(shí)時(shí)簽名,并努力研究 ENS 支持本地 DNSSEC 的可能性,數(shù)據(jù)保存在鏈下,例如在 IPFS 上。
譯后記
誰能想到ENS上線4年之后,靠發(fā)行治理代幣在行業(yè)火了一把,而硬核的 EthDNS 未來計(jì)劃卻無人問津,令人唏噓。希望建立一套域名解析系統(tǒng),當(dāng)瀏覽器中輸入mydomain.eth時(shí),可以根據(jù)鏈上記錄解析到指定ip,這樣,就overlay在互聯(lián)網(wǎng)上建立了一個(gè)小眾的身份世界。CoreDNS是一個(gè)很好的載體,讓ENS真正用起來。