NNS(NEO Name Service)是Neo的域名服務(wù),是一個(gè)基于Neo區(qū)塊鏈的分布式、開(kāi)源和可擴(kuò)展的域名系統(tǒng)。 旨在將錢(qián)包地址、智能合約Hash等人類難以記憶的無(wú)規(guī)則的字符串用單詞短語(yǔ)簡(jiǎn)寫(xiě)等代替。我們首先提供以”.neo”結(jié)尾的域名服務(wù)。
通過(guò)域名服務(wù),人們?cè)僖膊挥糜洃浛床欢牡刂泛虷ash,只要知道一個(gè)單詞或一個(gè)短語(yǔ)就能進(jìn)行轉(zhuǎn)賬、調(diào)用合約。
NNS可以將域名解析到各種目標(biāo)。最容易聯(lián)想到的是Neo的賬戶(Address),或者智能合約地址(ScriptHash)。 我們預(yù)留了足夠的擴(kuò)展性,可以在不更新合約的情況下支持更多的解析目標(biāo)協(xié)議。
NNS 的使用場(chǎng)景
別名服務(wù)的最主要使用場(chǎng)景在于別名轉(zhuǎn)賬,尤其是那些需要公開(kāi)自己轉(zhuǎn)賬地址并且不常更換地址的賬戶,例如在ICO時(shí), 項(xiàng)目方需要在官網(wǎng)提前公開(kāi)自己官方賬戶地址,如果黑客篡改了ICO賬戶地址,投資人將很難發(fā)現(xiàn)。但是如果項(xiàng)目方提前公布一個(gè)簡(jiǎn)短易記的地址別名, 由于簡(jiǎn)短的有意義的詞組很難被篡改,因此可以防止黑客的惡意攻擊,避免不必要的損失。
一個(gè)別名要指向什么樣的資源,是可以靈活擴(kuò)展的,只需要實(shí)現(xiàn)相應(yīng)的解析器即可。除了可以指向一個(gè)賬戶地址外,也可以指向一個(gè)合約地址,進(jìn)而可以實(shí)現(xiàn)別名和智能合約交互。
區(qū)塊鏈作為下一代互聯(lián)網(wǎng)的基礎(chǔ)設(shè)施,未來(lái)會(huì)有越來(lái)越多的服務(wù)基于區(qū)塊鏈進(jìn)行構(gòu)建,例如去中心化云存儲(chǔ)服務(wù)。云存儲(chǔ)中的文件尋址是通過(guò)文件哈希值唯一標(biāo)識(shí)實(shí)現(xiàn)的, 我們可以為哈希值取一個(gè)容易理解別名例如文件名,然后將別名映射到文件哈希,從而實(shí)現(xiàn)文件精準(zhǔn)尋址,因此別名服務(wù)未來(lái)可以和NEO上的去中心化文件存儲(chǔ)NEOFS結(jié)合使用。 隨著構(gòu)建在NEO上服務(wù)越來(lái)越多,NNS將逐步拓展以為去中心化消息通信、郵件服務(wù)等提供解析服務(wù)。
NNS 和 ENS 的關(guān)系
NNS和ENS具有相同的目標(biāo),都是為了提升區(qū)塊鏈的易用性,但是基于不同的區(qū)塊鏈平臺(tái)實(shí)現(xiàn),服務(wù)于不同的區(qū)塊鏈平臺(tái)。NNS在做系統(tǒng)設(shè)計(jì)時(shí)參考借鑒了ENS的系統(tǒng)設(shè)計(jì), 在此對(duì)他們表示感謝,同時(shí)我們也針對(duì)NEO平臺(tái)做出了很多創(chuàng)新設(shè)計(jì),例如將所有者合約從注冊(cè)器模塊中拆分出來(lái)以實(shí)現(xiàn)更靈活的所有權(quán)控制,在解析方式上, 分為了快速解析和完整解析兩種方式,在經(jīng)濟(jì)模型上引入了一種新型的智能代幣,以實(shí)現(xiàn)系統(tǒng)費(fèi)用的高效循環(huán)。
NNS 系統(tǒng)設(shè)計(jì)概述
NNS 系統(tǒng)功能
NNS系統(tǒng)有兩個(gè)作用 一是將beautiful.neo 等人類可讀的名稱解析為機(jī)器使用的標(biāo)識(shí)符,如Neo的地址等。 二是為域名提供描述性數(shù)據(jù),比如whois,合約接口描述等。
NNS 和 DNS的目標(biāo)類似,但是基于區(qū)塊鏈架構(gòu)設(shè)計(jì),是去中心化的,服務(wù)于區(qū)塊鏈網(wǎng)絡(luò)。NNS使用和DNS一樣用點(diǎn)(。)分割的域名稱系統(tǒng),域的所有者對(duì)隸屬于他的子域名有完全的分配權(quán)利。
.neo .gas 這樣的根域名由一個(gè)稱為(注冊(cè)器Registry)的智能合約管理。一個(gè)注冊(cè)器管理一個(gè)根域名,并設(shè)定取得其下一級(jí)域名所有權(quán)的規(guī)則。任何人均可遵照對(duì)應(yīng)的注冊(cè)器設(shè)定的規(guī)則取得下一級(jí)域名的所有權(quán)。
NNS 系統(tǒng)架構(gòu)
NNS有四個(gè)系統(tǒng)組件
·頂級(jí)域名合約(域名根是管理根域名的腳本)
·所有者(所有者可以是一個(gè)個(gè)人賬戶address,也可以是一個(gè)智能合約)
·注冊(cè)機(jī)(專門(mén)負(fù)責(zé)給一個(gè)域名的子域名分配所有者的智能合約,根域名也會(huì)指定一個(gè)根域名的注冊(cè)機(jī))
·解析器(負(fù)責(zé)解析一個(gè)域名或者他的子域名)
頂級(jí)域名合約
域名根是一個(gè)根域名 比如.test 所有信息的管理者。 無(wú)論二級(jí)域名 aa.test 還是 三級(jí)域名 bbb.aa.test,他們的所有者都保存在域名根之中。 域名根以字典的形式保存如下數(shù)據(jù):
·域名的所有者(owner)
·域名的注冊(cè)器(register)
·域名的解析器(resolver)
·域名的TTL(域名到期時(shí)間)
所有者
域名的所有者可以是一個(gè)賬戶地址或者一個(gè)智能合約。(ens的設(shè)計(jì)是擁有域名的智能合約叫做注冊(cè)器,實(shí)際上注冊(cè)器只是owner的一個(gè)特例, 我們將域名的所有者和注冊(cè)器分開(kāi)了,這個(gè)系統(tǒng)會(huì)變得更加清晰) 域名的所有者(owner)可以:
·將域名的所有權(quán)轉(zhuǎn)移到另一個(gè)地址
·更改注冊(cè)器,最常見(jiàn)域名注冊(cè)器為“管理員手動(dòng)分配子域名”
·更改解析器
允許所有者是一個(gè)智能合約,可以提供多種多樣的所有權(quán)模式
·比如雙人共有域名,要兩人簽名才可以轉(zhuǎn)讓域名或者更改注冊(cè)器
·比如多人共有域名,超過(guò)50%人簽名才可以轉(zhuǎn)讓域名或者更改注冊(cè)器
如果域名的所有者是一個(gè)賬戶地址,那么用戶可以調(diào)用注冊(cè)器的接口管理二級(jí)域名。
注冊(cè)器
(ens的設(shè)計(jì)是擁有域名的智能合約叫做注冊(cè)器,實(shí)際上注冊(cè)器只是owner的一個(gè)特例, 我們將域名的所有者和注冊(cè)器分開(kāi)了,這個(gè)系統(tǒng)會(huì)變得更加清晰。 大部分用戶并不會(huì)去賣(mài)自己的二級(jí)域名,所以大部分用戶無(wú)需配置注冊(cè)器,配置解析器即可)。
注冊(cè)器專門(mén)負(fù)責(zé)將一個(gè)域名的子域名重新分配給其他所有者。 注冊(cè)器會(huì)調(diào)用域名根腳本進(jìn)行操作。 域名根會(huì)檢查注冊(cè)器是否有權(quán)限操作此域名。 注冊(cè)器有兩個(gè)功能:
·將一個(gè)域名的子域名重新分配給其他所有者。
·查詢一個(gè)子域名的擁有者是否合法,因?yàn)榇嬖谌?jí)域名賣(mài)掉了,然后二級(jí)域名轉(zhuǎn)讓給別人這種情況。
所以在做完整解析的情況下,解析過(guò)程會(huì)詢問(wèn)注冊(cè)器,他的下級(jí)域名是不是分配給了指定的所有者,如果沒(méi)有,則此解析無(wú)效。
注冊(cè)器是一個(gè)智能合約,可以有不同種類的注冊(cè)器:
·先到先得注冊(cè)器,大家可以自由搶域名。測(cè)試網(wǎng).test后綴域名將采用先到先得注冊(cè)方式。
·管理員手動(dòng)分配注冊(cè)器,由一個(gè)管理員來(lái)設(shè)置將子域名的所有權(quán)如何處理。通常情況下,個(gè)人持有的二級(jí)域名會(huì)通過(guò)手動(dòng)方式分配子域名。
·拍賣(mài)注冊(cè)器。測(cè)試網(wǎng).neo后綴的域名及主網(wǎng).neo后綴域名都會(huì)通過(guò)抵押拍賣(mài)的方式注冊(cè)。
解析器
NNS最主要的功能,就是完成從域名到解析器的映射。 解析器是一個(gè)智能合約,他來(lái)完成實(shí)際將名字翻譯成地址的實(shí)際過(guò)程。 只要遵循NNS解析器規(guī)范的智能合約就可以被配置為解析器。NNS會(huì)提供通用的解析器。
如果要增加新的協(xié)議類型,在對(duì)現(xiàn)有NNS規(guī)范沒(méi)有顛覆性改變的情況下,都可以不需改動(dòng)NNS系統(tǒng),直接配置實(shí)現(xiàn)。
解析規(guī)則
域名的存儲(chǔ)
NS中存儲(chǔ)的域名為32字節(jié)散列值,而不是域名原文的文本。這有幾個(gè)設(shè)計(jì)原因:
·處理過(guò)程統(tǒng)一,允許任意長(zhǎng)度的域名。
·一定程度保留了域名的隱私。
·將域名轉(zhuǎn)換為散列的算法稱為NameHash,我們將在其他的文檔資料中對(duì)他進(jìn)行解釋。 NameHash的定義方式為遞歸式。
比如aaa.neo 對(duì)應(yīng)
hashA = hash256(hash256(“neo”) + “aaa”)
bbb.aaa.neo對(duì)應(yīng)
hashB = hash256(hashA + “bbb”)
那么 ccc.bbb.aaa.neo 對(duì)應(yīng)
HashC = hash256(hashB+“ccc”)
這樣的定義方式讓我們可以將所有層次的域名,一級(jí),二級(jí)到無(wú)數(shù)級(jí),都扁平化的保存在一個(gè)Map《hash256, 解析器》 的數(shù)據(jù)結(jié)構(gòu)中。
這正是注冊(cè)器保存域名解析的方法,這個(gè)遞歸計(jì)算NameHash的方式,可以用一個(gè)函數(shù)表達(dá):
Hash = NameHash(“xxx.xxx.xxx…”);
解析過(guò)程
用戶調(diào)用根域名的解析函數(shù)進(jìn)行解析,根域名提供完整和快速兩種解析方式。可根據(jù)需要調(diào)用,也可以直接查詢解析器,自行調(diào)用。
快速解析方式
快速方式域名根直接查表完整域名的解析器,如果沒(méi)有,查詢父域名的解析器。然后調(diào)用解析器解析。 快速方式運(yùn)算次數(shù)少,但可能存在一個(gè)漏洞,即為三級(jí)域名賣(mài)給了別人,解析器存在,但是二級(jí)域名已經(jīng)轉(zhuǎn)讓的情況。 此時(shí)依然可以正常解析
完整解析方式
完整方式,域名根將從根域名開(kāi)始,逐層檢查所有權(quán)和TTL,如果不符合將失敗。 運(yùn)算次數(shù)較多,與域名級(jí)數(shù)線性增長(zhǎng)。
NNS經(jīng)濟(jì)模型
在NNS的經(jīng)濟(jì)模型里引入兩中代幣,一種是NNC,屬于UTXO資產(chǎn)類型,總發(fā)行量10億枚。另一種是SGAS,屬于NEP5代幣,與NEOGAS進(jìn)行1:1綁定,支持雙向兌換。
NNS根域名通過(guò)NNC持有者投票啟動(dòng),投票分為兩種模式,一種是管理員啟動(dòng)根域名投票,3天內(nèi)反對(duì)票少于30%則根域名啟動(dòng),一種是任何NNC持有者啟動(dòng)域名投票,3天內(nèi)贊成票超過(guò)50%則根域名啟動(dòng),無(wú)論哪種方式,投票者或不投票者都是博弈的參與者,域名注冊(cè)GAS會(huì)再分配給NNC持有者。
在NNS系統(tǒng)中,所有拍賣(mài)域名收取的手續(xù)費(fèi)會(huì)進(jìn)入獎(jiǎng)池系統(tǒng)進(jìn)行重新分配,針對(duì)用戶持有的NNC的數(shù)量,分配相應(yīng)比例的SGAS。
NNC股權(quán)證明代幣
NNC是NNS系統(tǒng)引入的一種股權(quán)證明代幣。NNS為了實(shí)現(xiàn)系統(tǒng)的可持續(xù)性,引入了手續(xù)費(fèi)再分配系統(tǒng), 所有域名拍賣(mài)收取的手續(xù)費(fèi)將完全再分配給NNC的持有者。
NNC的初始發(fā)放為空投的形式,接收NNC空投需要用戶持有NEO??胀栋凑誑EO持有量1:0.1進(jìn)行發(fā)放。
除了空頭外,在NNS系統(tǒng)上線后,用戶注冊(cè)新的域名也將獲得一定數(shù)量的NNC作為獎(jiǎng)勵(lì),NNS理事會(huì)將會(huì)拿出總共10%的NNC來(lái)激勵(lì)用戶注冊(cè)域名。
SGAS燃料代幣
為了方便GAS在應(yīng)用合約中的使用,NNS發(fā)行了一種基于NEP5的代幣,總量一億枚,與NEO的GAS燃料幣進(jìn)行1:1綁定,支持雙向兌換。
兌換SGAS使用的GAS將會(huì)保存在SGAS合約的賬戶中,NNS不會(huì)轉(zhuǎn)移或者使用這些GAS,因此可以保證只要用戶持有SGAS,一定可以兌換到等量的GAS。
在NNS系統(tǒng)中,SGAS主要有以下功能:
·與GAS雙向兌換。
·向注冊(cè)器充值/提款。
·參與域名競(jìng)拍。
·競(jìng)拍手續(xù)費(fèi)支付。
除了在NNS系統(tǒng)內(nèi)使用之外,由于SGAS本身是發(fā)布在主網(wǎng)上的NEP5代幣系統(tǒng),因此所有的合約應(yīng)用也都可以使用這個(gè)SGAS合約來(lái)進(jìn)行便捷的合約內(nèi)GAS操作。
獎(jiǎng)金池
用戶在域名競(jìng)拍時(shí),NNS將會(huì)產(chǎn)生SGAS的收入,主要來(lái)源有兩個(gè):
·用戶拍賣(mài)款。如果用戶拍賣(mài)得到域名所有權(quán),那么將收取用戶全部的競(jìng)拍款作為手續(xù)費(fèi)。
·流拍用戶的拍賣(mài)手續(xù)費(fèi)。對(duì)于參與競(jìng)拍,但是沒(méi)有拍得域名的用戶,收取出價(jià)的5%作為手續(xù)費(fèi)。
所有的手續(xù)費(fèi)收入將會(huì)轉(zhuǎn)入獎(jiǎng)池中,在獎(jiǎng)池中,所有持有NNC的用戶可以根據(jù)自己持有的NNC按比例領(lǐng)取SGAS。
獎(jiǎng)金池將以中心化形式進(jìn)行。
總結(jié)
NNS項(xiàng)目是一個(gè)完全構(gòu)建在NEO區(qū)塊鏈上的一個(gè)智能合約協(xié)議層應(yīng)用,是一個(gè)真正意義上的區(qū)塊鏈落地應(yīng)用。 NNS的所有服務(wù)都是由智能合約提供的,是分布式并且靈活可擴(kuò)展的,不存在中心化風(fēng)險(xiǎn)。
NNS是一次NEO智能合約體系的大規(guī)模應(yīng)用,為了實(shí)現(xiàn)解析器的靈活可擴(kuò)展,我們應(yīng)用了最新的NEP4動(dòng)態(tài)調(diào)用,在經(jīng)濟(jì)模型中,我們會(huì)設(shè)計(jì)Vickrey拍賣(mài)合約和荷蘭式拍賣(mài)合約, 為了實(shí)現(xiàn)系統(tǒng)費(fèi)用更易重新分配,我們擴(kuò)展了NEP5代幣標(biāo)準(zhǔn),增加了幣天的概念,從而實(shí)現(xiàn)無(wú)需鎖定代幣就可以實(shí)現(xiàn)系統(tǒng)收入的重新分配,將應(yīng)用代幣和股權(quán)融合成一個(gè)代幣。
域名服務(wù)能夠提升區(qū)塊鏈的易用性,并且具有豐富的使用場(chǎng)景,會(huì)形成圍繞域名的生態(tài)系統(tǒng)。 未來(lái),我們會(huì)和NEO生態(tài)的客戶端合作,讓所有的NEO錢(qián)包支持通過(guò)別名轉(zhuǎn)賬,我們也會(huì)探索一些新的使用場(chǎng)景,例如和寵物游戲合作,通過(guò)NNS為寵物起一個(gè)昵稱。 未來(lái),隨著NEO生態(tài)的應(yīng)用越來(lái)越多,NNS的域名也會(huì)越來(lái)越有價(jià)值。
評(píng)論
查看更多