李東云,白 杰,吳先鋒
(傲為信息技術(shù)(江蘇)有限公司,江蘇 南京 210000)
域名系統(tǒng)[1](Domain Name System,DNS)是現(xiàn)有Web2.0時(shí)代互聯(lián)網(wǎng)最基礎(chǔ)的服務(wù)之一,其提供了將域名解析為真實(shí)IP地址的功能,如將www.baidu.com的域名解析為機(jī)器可識(shí)別的IP地址:180.101.49.12。同時(shí),DNS也是其他重要的互聯(lián)網(wǎng)服務(wù)的域名和信息核心內(nèi)容目錄,提供維護(hù)、查詢(xún)、校驗(yàn)等功能,如郵件服務(wù)中的郵件交換器記錄(Mail Exchanger Record,MX records),發(fā)送驗(yàn)證標(biāo)準(zhǔn)中的域名密鑰識(shí)別郵件標(biāo)準(zhǔn)(Domain Keys Identified Mail,DKIM),發(fā)信者策略架構(gòu)(Sender Policy Framework,SPF),基于域名的消息驗(yàn)證報(bào)告和一致性標(biāo)準(zhǔn)(Domain-based Message Authentication,Reporting & Conformance,DMARC),域名所有權(quán)驗(yàn)證的TXT記錄(Text record,TXT),甚至是安全外殼公鑰指紋記錄(Secure Shell Fingerprints,SSHFP[2])。目前一些智能DNS服務(wù),如阿里云、AWS等,可以靈活地根據(jù)客戶(hù)端的情況返回對(duì)應(yīng)的解析IP地址,從而提高客戶(hù)端應(yīng)用的性能和可靠性。
DNS作為互聯(lián)網(wǎng)服務(wù)的基礎(chǔ)目錄數(shù)據(jù)服務(wù),提供了域名解析、安全驗(yàn)證、服務(wù)查詢(xún)等一系列功能,目前的各種網(wǎng)絡(luò)服務(wù),如網(wǎng)站、郵件、導(dǎo)航、支付等,都依賴(lài)于DNS系統(tǒng)提供的相應(yīng)服務(wù)。
當(dāng)用戶(hù)使用瀏覽器/應(yīng)用訪問(wèn)一個(gè)域名,如www.baidu.com,系統(tǒng)會(huì)遵循一系列的步驟進(jìn)行相應(yīng)域名解析工作,將該域名轉(zhuǎn)化為機(jī)器可識(shí)別的IP地址。圖1為域名服務(wù)的一個(gè)基本流程圖。
圖1 DNS域名服務(wù)基本流程圖
相應(yīng)的步驟如下:
(1)請(qǐng)求信息
當(dāng)用戶(hù)嘗試訪問(wèn)特定域名時(shí),系統(tǒng)會(huì)首先從本地的DNS緩存(Cache)中查詢(xún)?cè)撚蛎麑?duì)應(yīng)的地址是否已經(jīng)有緩存(且未過(guò)期),如果有的話(huà),則直接使用緩存進(jìn)行后續(xù)的網(wǎng)絡(luò)通信,否則將發(fā)起域名解析請(qǐng)求。
(2)請(qǐng)求網(wǎng)絡(luò)服務(wù)供應(yīng)商(Resolver——域名解析服務(wù)器)進(jìn)行域名解析
如用戶(hù)本地?zé)oDNS緩存,系統(tǒng)將向其網(wǎng)絡(luò)服務(wù)供應(yīng)商(ISP)提供的域名解析服務(wù)器(Resolver)進(jìn)行遞歸解析。同樣地,這些解析服務(wù)器也會(huì)有相應(yīng)的DNS緩存,大部分的解析請(qǐng)求都會(huì)通過(guò)已有的緩存結(jié)果直接返回給用戶(hù)系統(tǒng)。在實(shí)際網(wǎng)絡(luò)中,多個(gè)ISP往往會(huì)共用相同的域名解析服務(wù)器。但是也有一些公司和機(jī)構(gòu),會(huì)維護(hù)自有的解析服務(wù)器,同時(shí)也對(duì)外提供服務(wù),如谷歌公共DNS(Google Public DNS)、OpenDNS等。
(3)查詢(xún)根域名服務(wù)器
如果遍歷ISP對(duì)應(yīng)的域名解析服務(wù)也無(wú)法獲取到對(duì)應(yīng)的域名信息,則該解析請(qǐng)求會(huì)被域名解析服務(wù)器向根域名服務(wù)器請(qǐng)求對(duì)應(yīng)的域名信息。目前全球有13個(gè)根域名服務(wù)器,997個(gè)服務(wù)實(shí)例接受該類(lèi)型的服務(wù)[3]。根域名服務(wù)器并不會(huì)直接向域名解析服務(wù)器返回對(duì)應(yīng)的域名信息,而是將根據(jù)請(qǐng)求的域名信息,將請(qǐng)求轉(zhuǎn)向?qū)?yīng)的頂級(jí)域名服務(wù)器(Top-Level Domain name servers,TLD)[4],如.com、.cn等TLD域名服務(wù)器。
(4)查詢(xún)TLD服務(wù)器
根域名服務(wù)器根據(jù)請(qǐng)求的域名信息,將該請(qǐng)求轉(zhuǎn)向?qū)?yīng)的頂級(jí)域名服務(wù)器——TLD,每一個(gè)TLD,比如.com、.cn等,均擁有一系列的服務(wù)器提供對(duì)應(yīng)的查詢(xún)服務(wù)。但是和根域名服務(wù)器類(lèi)似,其并沒(méi)有真正對(duì)應(yīng)域名的詳細(xì)信息,而是作為代理服務(wù)器,將用戶(hù)的請(qǐng)求轉(zhuǎn)向該域名對(duì)應(yīng)的權(quán)威域名服務(wù)器。
(5)查詢(xún)權(quán)威域名服務(wù)器
TLD服務(wù)器根據(jù)請(qǐng)求內(nèi)容(如二級(jí)域名信息),將請(qǐng)求查詢(xún)轉(zhuǎn)向負(fù)責(zé)此特定域的權(quán)威域名服務(wù)器。這些權(quán)威名稱(chēng)服務(wù)器知曉請(qǐng)求域名的所有信息,這些信息存儲(chǔ)在自身的DNS記錄中。有許多類(lèi)型的記錄,每個(gè)記錄包含不同類(lèi)型的信息,如IP地址。因此權(quán)威名稱(chēng)服務(wù)器查詢(xún)并返回對(duì)應(yīng)的IP地址記錄(A記錄)。某些權(quán)威域名服務(wù)器會(huì)有一些智能化的處理,可以分析傳入的DNS查詢(xún)并返回對(duì)發(fā)起查詢(xún)的請(qǐng)求更高效的響應(yīng),從而提高客戶(hù)端的可靠性和效率。
(6)解析域名記錄
域名解析服務(wù)器從權(quán)威域名服務(wù)器處獲取到了請(qǐng)求對(duì)應(yīng)的信息,會(huì)根據(jù)信息的有效時(shí)間(Time-to-Live,TTL)將其緩存在本地,在TTL超時(shí)之前,如有其相同域名的解析請(qǐng)求,則會(huì)直接返回緩存的信息。同時(shí),域名解析服務(wù)器在超時(shí)之前,也可以通過(guò)主動(dòng)刷新的機(jī)制,重復(fù)步驟(3)~(5)更新本地的緩存信息。
(7)返回域名信息
域名解析服務(wù)器將解析信息返回給用戶(hù)系統(tǒng)后,用戶(hù)系統(tǒng)會(huì)將該信息緩存并使用其結(jié)果進(jìn)行相應(yīng)的應(yīng)用和服務(wù)通信,在TTL超時(shí)之前,如用戶(hù)系統(tǒng)再次請(qǐng)求相同的域名服務(wù),則無(wú)需向域名解析服務(wù)器進(jìn)行請(qǐng)求,直接使用本地緩存即可。需要注意的是,用戶(hù)系統(tǒng)在用戶(hù)沒(méi)有請(qǐng)求的時(shí)候,即便緩存已經(jīng)超時(shí),也不會(huì)主動(dòng)進(jìn)行解析信息刷新。
DNS作為一個(gè)有著幾十年歷史的互聯(lián)網(wǎng)基礎(chǔ)服務(wù),有著非常多的優(yōu)點(diǎn),也隨著技術(shù)和網(wǎng)絡(luò)的進(jìn)步,有著顯著的升級(jí)和改進(jìn),但是一些深層次的問(wèn)題并沒(méi)有得到根本的改變,其自身存在著一些最基本的問(wèn)題。
(1)中心化多層級(jí)系統(tǒng)問(wèn)題
作為互聯(lián)網(wǎng)基礎(chǔ)性的支持架構(gòu),DNS的根域名服務(wù)器實(shí)質(zhì)上是由ICANN[5]——一個(gè)非盈利性組織所控制的,同時(shí),該組織本質(zhì)上可由美國(guó)政府完全控制。因此,這一方式對(duì)于參與和提供網(wǎng)絡(luò)服務(wù)的各方而言,都存在極大的風(fēng)險(xiǎn)——被ICANN進(jìn)行限制和屏蔽。同時(shí),DNS作為一個(gè)多層級(jí)依賴(lài)的系統(tǒng),在中間某個(gè)層級(jí)出現(xiàn)故障或受到攻擊時(shí)(如DDOS攻擊),存在整個(gè)系統(tǒng)崩潰的風(fēng)險(xiǎn),現(xiàn)實(shí)中這種情況也出現(xiàn)過(guò)多次[6],往往會(huì)帶來(lái)嚴(yán)重影響,造成嚴(yán)重?fù)p失。
(2)安全性問(wèn)題
DNS請(qǐng)求在通常情況下不會(huì)攜帶發(fā)起者的用戶(hù)或其他特征信息,因此相關(guān)服務(wù)端接收到的請(qǐng)求中,往往只會(huì)包含一個(gè)請(qǐng)求IP地址信息,所以DNS服務(wù)經(jīng)常被用于相關(guān)的網(wǎng)絡(luò)攻擊和黑客活動(dòng)中。通過(guò)大量發(fā)送DNS請(qǐng)求,阻塞相關(guān)的服務(wù)端,導(dǎo)致服務(wù)端無(wú)法響應(yīng)正常的解析請(qǐng)求,從而影響整個(gè)網(wǎng)絡(luò)服務(wù)安全,這就是常見(jiàn)的DDoS攻擊。同時(shí),多種安全驗(yàn)證服務(wù)也依賴(lài)DNS服務(wù),如SSHFP等,所以在攻擊DNS服務(wù)時(shí),也可以進(jìn)一步獲取用戶(hù)秘鑰等信息,從而造成更為嚴(yán)重的后果。
(3)DNS劫持等帶來(lái)的安全風(fēng)險(xiǎn)
主從等級(jí)模式的DNS服務(wù)體系,在服務(wù)器被劫持的情況下,用戶(hù)正常的解析請(qǐng)求有可能被轉(zhuǎn)向非法的地址,從而達(dá)到劫持用戶(hù)訪問(wèn)非法地址的內(nèi)容。對(duì)于用戶(hù)信息數(shù)據(jù)和個(gè)人財(cái)產(chǎn),都有可能造成嚴(yán)重的損失。
對(duì)于各國(guó)尤其是大國(guó)而言,網(wǎng)絡(luò)安全和獨(dú)立性是非常重要的。在經(jīng)濟(jì)建設(shè)和人民生產(chǎn)生活中,對(duì)于國(guó)民性基礎(chǔ)網(wǎng)絡(luò)平臺(tái)和應(yīng)用,如果出現(xiàn)根域名服務(wù)器,或者頂級(jí)域名服務(wù)器被干擾、屏蔽、甚至極端情況下的中斷,都會(huì)嚴(yán)重影響生產(chǎn)和生活,對(duì)社會(huì)和國(guó)家造成不可估量的嚴(yán)重?fù)p失。
區(qū)塊鏈(Blockchain)是一個(gè)分布式數(shù)字賬本,按時(shí)間順序排列和記錄所有類(lèi)型的數(shù)據(jù)、交易、合約等內(nèi)容。它是一種分布式賬本,通過(guò)密碼學(xué)和計(jì)算機(jī)科學(xué)技術(shù),使得賬本數(shù)據(jù)易于追溯,可跟蹤,透明且不可變。該技術(shù)的主要特征是去中心化,信息分布在系統(tǒng)中的不同節(jié)點(diǎn)上。節(jié)點(diǎn)對(duì)網(wǎng)絡(luò)中發(fā)生的交易進(jìn)行驗(yàn)證和記錄,并全網(wǎng)同步相關(guān)的交易和記錄。由于信息不存儲(chǔ)于單一的中心服務(wù)器,因此很難將其刪除或更改。區(qū)塊鏈?zhǔn)且粋€(gè)中心化維護(hù)的數(shù)據(jù)庫(kù),其中每個(gè)交易事務(wù)以數(shù)據(jù)區(qū)塊的形式記錄,并且它包含鏈接到前一個(gè)塊的時(shí)間戳。這意味著一旦數(shù)據(jù)區(qū)塊進(jìn)入系統(tǒng),它就是不可改變的。從這些特性來(lái)說(shuō),區(qū)塊鏈技術(shù)是一種安全、可靠和穩(wěn)定的技術(shù),可以用于解決和確保數(shù)據(jù)、信息和交易安全性、真實(shí)性和唯一性。
基于區(qū)塊鏈域名解析服務(wù)(Blockchain Name Service,BNS),目前有多種,如Namecoin[7]、Ethereum Name Service(ENS)[8]、Handshake[9]等,各種方式解決了一些問(wèn)題,但是方案本身在實(shí)際應(yīng)用和落地時(shí),均存在許多問(wèn)題需要改善和解決。其中,有些解決方案嘗試采用全新的域名解決方案來(lái)替換現(xiàn)有的DNS系統(tǒng),對(duì)于現(xiàn)有系統(tǒng)完全不兼容,如Namecoin,這些解決方案注定是無(wú)法成熟和推廣的。
ENS又名以太坊名稱(chēng)服務(wù),是一種基于以太坊區(qū)塊鏈網(wǎng)絡(luò),采用智能合約機(jī)制實(shí)現(xiàn)的去中心化、開(kāi)放和可擴(kuò)展的域名系統(tǒng)。ENS的工作是將可讀的域名(如“alice.eth”)映射到機(jī)器可讀的地址標(biāo)識(shí),例如以太坊賬號(hào)地址、合約地址、文件地址元數(shù)據(jù)等。ENS的“反向解析”能力,可以將規(guī)范命名或接口等元數(shù)據(jù)與以太坊地址相關(guān)聯(lián)。ENS與DNS具有相似的目標(biāo),但由于以太坊區(qū)塊鏈網(wǎng)絡(luò)的功能和限制,因此二者具有明顯不同的架構(gòu)。與DNS一樣,ENS在稱(chēng)為域的點(diǎn)分隔層名稱(chēng)系統(tǒng)上運(yùn)行,域的所有者可以完全控制相關(guān)子域。相對(duì)于DNS,ENS大幅減少了基礎(chǔ)架構(gòu)的復(fù)雜性,智能合約就可以取代Go Daddy[10]等注冊(cè)機(jī)構(gòu)角色。由于這一功能簡(jiǎn)單到只需要一個(gè)智能合約,任何人可以依據(jù)注冊(cè)機(jī)構(gòu)的規(guī)則來(lái)創(chuàng)建子域名。解析器扮演翻譯角色,將名字轉(zhuǎn)換成哈希地址和以太坊地址。ENS的基礎(chǔ)架構(gòu)如圖2所示。
圖2 ENS基礎(chǔ)框架圖
其解析過(guò)程也和DNS類(lèi)似,通過(guò)多級(jí)轉(zhuǎn)發(fā)的方式,最終獲得對(duì)應(yīng)的域名信息。
Handshake采用了一種與DNS兼容的去中心化的、無(wú)權(quán)限的域名協(xié)議,其中每個(gè)參與節(jié)點(diǎn)都在驗(yàn)證并負(fù)責(zé)管理根區(qū)域,目的是創(chuàng)建現(xiàn)有證書(shū)頒發(fā)機(jī)構(gòu)的替代方案。其實(shí)現(xiàn)是基于UTXO模型的一條公鏈,后者是采用比特幣區(qū)塊鏈網(wǎng)絡(luò),但與比特幣核心不同的一種全節(jié)點(diǎn)軟件。
Handshake公鏈網(wǎng)絡(luò)內(nèi)的共識(shí)協(xié)議會(huì)替代ICANN根服務(wù)器。傳統(tǒng)上而言,域名解析服務(wù)器會(huì)指向根域名服務(wù)器來(lái)定位IP地址。用了Handshake,域名解析服務(wù)器會(huì)指向一個(gè)權(quán)威服務(wù)器,而后者會(huì)將需求提交給區(qū)塊鏈網(wǎng)絡(luò),而不是ICANN的根域文件。
同時(shí),Handshake域名擁有者可以創(chuàng)建相應(yīng)的加密代碼,然后用這個(gè)加密代碼創(chuàng)建簽名。這一過(guò)程自然會(huì)代替掉當(dāng)前互聯(lián)網(wǎng)世界中的證書(shū)授權(quán)機(jī)構(gòu),如Verisign等。
總的來(lái)說(shuō),Handshake通過(guò)簡(jiǎn)化支付認(rèn)證解決域名解析問(wèn)題,具有區(qū)塊鏈原生屬性,ENS利用以太坊區(qū)塊鏈智能管理兩個(gè)中心化頂級(jí)域名(.eth和.luxe)。二者從不同的角度提供了基于區(qū)塊鏈的域名解決方案,同時(shí)在方案中也考慮兼容現(xiàn)有的DNS體系,目的還是最終取代現(xiàn)有的DNS系統(tǒng),但是二者還是存在不少問(wèn)題。
(1)技術(shù)不成熟
目前存在的多種BNS解決方案中,普遍存在技術(shù)不成熟、缺陷較多、故障較多的情況。同時(shí),對(duì)于現(xiàn)有DNS系統(tǒng)的兼容性也不足,因此大規(guī)模的推廣和應(yīng)用還有較多的問(wèn)題需要解決。
(2)開(kāi)發(fā)成本高
區(qū)塊鏈開(kāi)發(fā)生態(tài)的不成熟,導(dǎo)致相關(guān)系統(tǒng)的開(kāi)發(fā)、測(cè)試、運(yùn)營(yíng)、維護(hù)等工作都存在大量的手工操作,對(duì)于開(kāi)發(fā)人員的水平和技能要求較高,從而提高了相應(yīng)的開(kāi)發(fā)成本。
(3)性能較低
無(wú)論是Handshake,還是ENS,或是其他的解決方案,限于現(xiàn)有區(qū)塊鏈網(wǎng)絡(luò)的性能瓶頸,對(duì)于支持每天訪問(wèn)次數(shù)超過(guò)數(shù)十億的DNS服務(wù)來(lái)說(shuō),是無(wú)法滿(mǎn)足真實(shí)需求的。同時(shí),區(qū)塊鏈網(wǎng)絡(luò)的共識(shí)機(jī)制,決定了請(qǐng)求的響應(yīng)往往會(huì)比較慢,這對(duì)于網(wǎng)絡(luò)服務(wù)的體驗(yàn)也是非常不友好的。
對(duì)于現(xiàn)有DNS和BNS解決方案存在的問(wèn)題,Web2.0和Web3.0的融合需求,域名系統(tǒng)需要提供的服務(wù)等內(nèi)容,需要有一個(gè)完整的綜合解決方案?;贑NWW3公鏈網(wǎng)絡(luò)體系,通過(guò)應(yīng)用該公鏈體系的能力和特性,提供有效的解決方案CNS(CNWW3 Name System)。該方案兼容現(xiàn)有DNS解決方案,同時(shí)也有效地提供了去中心化的能力,維護(hù)網(wǎng)絡(luò)的中立性原則,同時(shí),也能有效地保障社會(huì)和國(guó)家的網(wǎng)絡(luò)安全。
通過(guò)CNWW3子鏈體系[12],基于CNWW3公鏈創(chuàng)建CNS子鏈,該子鏈繼承公鏈相關(guān)特性,具有和公鏈完整的雙向跨鏈能力。在CNS子鏈體系中,其完成如下工作:
(1)初始化并部署根域名智能合約;
(2)部署CNS相關(guān)注冊(cè)登記、查詢(xún)、更新等智能合約(TLD和二級(jí)域名智能合約);
(3)執(zhí)行CNS相關(guān)注冊(cè)登記、查詢(xún)、更新等智能合約(TLD和二級(jí)域名智能合約);
(4)存儲(chǔ)并路由相關(guān)域名記錄;
(5)通過(guò)I節(jié)點(diǎn)(具有DNS權(quán)威域名服務(wù)器功能,域名解析服務(wù)器功能和CNS子鏈功能的節(jié)點(diǎn)),完成和傳統(tǒng)DNS系統(tǒng)的雙向兼容。
子鏈系統(tǒng)如圖3所示。
圖3 CNS子鏈架構(gòu)圖
在CNS子鏈中,通過(guò)交易觸發(fā)智能合約的執(zhí)行,完成去中心化的域名注冊(cè)登記、查詢(xún)、更新等操作。對(duì)于傳統(tǒng)DNS系統(tǒng),通過(guò)I節(jié)點(diǎn),便捷地完成對(duì)于CNS域名的查詢(xún)操作;反之,CNWW3公鏈中的應(yīng)用,如果需要訪問(wèn)DNS體系中的網(wǎng)絡(luò)的話(huà),也可以便捷地通過(guò)CNS子鏈中的I節(jié)點(diǎn)完成傳統(tǒng)的DNS解析工作。
階段性而言,在CNS子鏈中,并不會(huì)開(kāi)放當(dāng)前ICANN中已有的TLD頂級(jí)域名注冊(cè)登記,但是通過(guò)節(jié)點(diǎn)I,以及CNWW3公鏈的IPFS網(wǎng)絡(luò),在CNS子鏈中可以進(jìn)行DNS系統(tǒng)的分布式鏡像服務(wù),將相關(guān)DNS數(shù)據(jù)進(jìn)行備份和存儲(chǔ),從而避免因DNS網(wǎng)絡(luò)的故障導(dǎo)致無(wú)法訪問(wèn)的問(wèn)題。
未來(lái)CNS子鏈可以作為現(xiàn)有DNS網(wǎng)絡(luò)的一個(gè)升級(jí)替換網(wǎng)絡(luò),無(wú)論是傳統(tǒng)的DNS系統(tǒng),還是基于區(qū)塊鏈的BNS系統(tǒng),均可以統(tǒng)一由CNS子鏈網(wǎng)絡(luò)提供相應(yīng)的服務(wù)。
未來(lái)CNS子鏈中,通過(guò)多級(jí)分層的智能合約完整地提供BNS的能力,合約層級(jí)展示如圖4所示。
圖4 CNS多級(jí)智能合約體系圖
其中,根域名智能合約為CNS子鏈的原生智能合約,該合約部署在CNS子鏈的第一個(gè)數(shù)據(jù)區(qū)塊中,主要完成如下工作:
(1)管理和維護(hù)TLD頂級(jí)域名;
(2)孵化和部署TLD頂級(jí)域名智能合約;
(3)提供TLD頂級(jí)域名智能合約路由。
TLD頂級(jí)域名智能合約主要完成如下工作:
(1)管理和維護(hù)應(yīng)用域名;
(2)孵化和部署應(yīng)用智能合約;
(3)提供應(yīng)用智能合約路由。
應(yīng)用域名智能合約主要完成如下工作:
(1)管理和維護(hù)應(yīng)用域名數(shù)據(jù)——BNS數(shù)據(jù);
(2)提供BNS數(shù)據(jù)的查詢(xún)功能;
(3)提供BNS數(shù)據(jù)的更新功能。
BNS數(shù)據(jù)的組成格式包含如下內(nèi)容:
(1)三級(jí)域名相關(guān)信息(所有者信息,區(qū)塊鏈地址,如公鑰信息,智能合約地址或者其他地址,TTL信息,驗(yàn)證鑒權(quán)信息,或存儲(chǔ)DNS根域文件在IPFS網(wǎng)絡(luò)中的存儲(chǔ)地址);
(2)四級(jí)及四級(jí)以上域名相關(guān)信息(所有者信息,區(qū)塊鏈地址,如公鑰信息,智能合約地址或者其他地址,TTL信息,驗(yàn)證鑒權(quán)信息,或存儲(chǔ)DNS根域文件在IPFS網(wǎng)絡(luò)中的存儲(chǔ)地址);
(3)BNS數(shù)據(jù)在邏輯上是樹(shù)形關(guān)系,但是出于存儲(chǔ)、搜索和處理的便利性,采用了扁平化的存儲(chǔ)方式。同時(shí),多個(gè)BNS之間可以存在互相引用的關(guān)系。
通過(guò)多級(jí)分層的合約設(shè)計(jì),上級(jí)合約管理下級(jí)合約,下級(jí)合約相關(guān)信息的變更需要通過(guò)上次合約的執(zhí)行才能完成,同時(shí)通過(guò)去中心化的IPFS網(wǎng)絡(luò)的支持,使得CNS真正具有中立、安全和可靠性的支持,最大限度地保障服務(wù)可用性和穩(wěn)定性。
各級(jí)合約之間的關(guān)系如圖5所示。
圖5 CNS多級(jí)智能合約關(guān)系圖
CNS子鏈架構(gòu)基于CNWW3公鏈網(wǎng)絡(luò)進(jìn)行搭建,其完整繼承了CNWW3公鏈網(wǎng)絡(luò)的高并發(fā)快速交易及交易驗(yàn)證能力[13]。CNS子鏈網(wǎng)絡(luò)中,相關(guān)的智能合約均通過(guò)交易及其交易驗(yàn)證的方式完成域名的注冊(cè)登記、查詢(xún)、更新等操作,通過(guò)標(biāo)準(zhǔn)的區(qū)塊鏈網(wǎng)絡(luò)共識(shí)算法,保障全網(wǎng)數(shù)據(jù)的一致性。因此,公鏈網(wǎng)絡(luò)的高并發(fā)快速交易及其交易驗(yàn)證能力,保證了CNS子鏈網(wǎng)絡(luò)也具備相應(yīng)的能力,從而有效改善現(xiàn)有BNS網(wǎng)絡(luò)性能不足的情況。
以TLD域名為例,其注冊(cè)流程描述如下:
(1)通過(guò)向根域名智能合約發(fā)起交易的方式,觸發(fā)根域名智能合約的執(zhí)行;
(2)根域名智能合約所有者,通過(guò)投票或者其他方式,決定是否接受新增該TLD域名;
(3)根域名智能合約所有者,通過(guò)向根域名智能合約發(fā)起交易的方式,選擇接受或者拒絕新增該TLD域名;
(4)如果拒絕,則第一筆交易失敗,發(fā)起方資金將返回;
(5)如果接受,則新增交易成功,根域名智能合約生成并部署一個(gè)新的TLD智能合約,同時(shí)在根域名智能合約中新增對(duì)應(yīng)的記錄,指向新的TLD智能合約,從而完成新增工作。
相應(yīng)的流程時(shí)序圖如圖6所示。
圖6 新增域名時(shí)序圖
應(yīng)用域名的注冊(cè),其流程與TLD域名注冊(cè)類(lèi)似,只是此時(shí)是向?qū)?yīng)的TLD智能合約發(fā)起交易,而非根域名智能合約。
以最為復(fù)雜的某個(gè)應(yīng)用域名為例,查詢(xún)的流程描述如下:
(1)如已知對(duì)應(yīng)應(yīng)用域名的智能合約地址,則直接向該合約地址發(fā)起交易進(jìn)行查詢(xún);
(2)該應(yīng)用域名智能合約查詢(xún)完成后,返回對(duì)應(yīng)的BNS數(shù)據(jù),如無(wú)記錄,則返回失敗或錯(cuò)誤信息;
(3)如未知對(duì)應(yīng)應(yīng)用域名的智能合約地址,則通過(guò)向?qū)?yīng)TLD域名智能合約發(fā)起交易的方式,進(jìn)行應(yīng)用域名的查詢(xún);
(4)對(duì)應(yīng)的TLD域名智能合約在其記錄內(nèi)查找對(duì)應(yīng)的應(yīng)用域名,如有記錄,則查詢(xún)記錄并直接通過(guò)交易的方式發(fā)起對(duì)應(yīng)應(yīng)用域名智能合約的查詢(xún);
(5)對(duì)對(duì)應(yīng)應(yīng)用域名智能合約進(jìn)行內(nèi)部查詢(xún),取得對(duì)應(yīng)的BNS數(shù)據(jù)并返回給TLD智能合約,TLD智能合約返回給查詢(xún)者;
(6)如無(wú)法查找到對(duì)應(yīng)TLD域名智能合約,則以向根域名智能合約發(fā)起交易的方式,進(jìn)行TLD域名的查詢(xún);
(7)根域名智能合約查詢(xún)其記錄,確認(rèn)是否有對(duì)應(yīng)的TLD記錄,如無(wú)記錄,則直接告知查詢(xún)失??;
(8)如有對(duì)應(yīng)的TLD記錄,重復(fù)步驟(4)、(5)完成查詢(xún)。
相應(yīng)的流程圖如圖7所示。
圖7 查詢(xún)域名流程圖
對(duì)于四級(jí)及以上域名的查詢(xún),需要先查詢(xún)應(yīng)用域名;對(duì)于TLD域名查詢(xún),流程上和應(yīng)用域名的查詢(xún)也是一致的,只是少一級(jí)智能合約的執(zhí)行而已(應(yīng)用域名智能合約)。
域名的更新過(guò)程相對(duì)簡(jiǎn)單,需要注意的是,無(wú)論是根域名,還是TLD域名,或是應(yīng)用域名,更新操作均需要由域名對(duì)應(yīng)的所有者進(jìn)行。以更新某個(gè)TLD域名為例,相應(yīng)的流程描述如下:
(1)該TLD域名所有者通過(guò)交易的方式調(diào)用根域名智能合約進(jìn)行更新;
(2)根域名智能合約校驗(yàn)并通過(guò)更新,調(diào)用現(xiàn)有的TLD智能合約,進(jìn)行相應(yīng)的信息更新;
(3)TLD智能合約完成相應(yīng)更新,并返回相應(yīng)的結(jié)果;
(4)根域名智能合約記錄相應(yīng)更新結(jié)果,完成更新操作。
相應(yīng)的流程時(shí)序圖示如圖8所示。
圖8 更新域名時(shí)序圖
DNS作為現(xiàn)代網(wǎng)絡(luò)服務(wù)中的基礎(chǔ)性框架,有著特殊重要的地位。但是現(xiàn)有的DNS存在眾多的缺陷和不足,現(xiàn)有的區(qū)塊鏈解決方案BNS能有效地解決諸如安全、去中心化、網(wǎng)絡(luò)中立等問(wèn)題,但是又存在現(xiàn)有體系不兼容、技術(shù)不成熟、效率低下等問(wèn)題。基于CNWW3公鏈網(wǎng)絡(luò),創(chuàng)造性地提出采用子鏈方式融合現(xiàn)有DNS體系,通過(guò)公鏈的快速交易和驗(yàn)證能力保障性能,同時(shí)依賴(lài)公鏈的安全性和完整的開(kāi)發(fā)生態(tài),降低開(kāi)發(fā)門(mén)檻,加快技術(shù)普及。