Nerthus是一個(gè)基于DAG技術(shù)的通用的區(qū)塊鏈編程平臺(tái),一個(gè)去中心化分布式區(qū)塊鏈操作系統(tǒng)。Nerthus內(nèi)置圖靈完備的編程語言,用戶可以用之來建構(gòu)和定義他自己的各種特性,可以開發(fā)自己的應(yīng)用與區(qū)塊鏈系統(tǒng),可以發(fā)行自己的貨幣。
背景
DAG,英文全稱是 Directed Acyclic Graph(有向無環(huán)圖)。在圖論中,如果一個(gè)有向圖無法從某個(gè)頂點(diǎn)出發(fā)經(jīng)過若干條邊回到該點(diǎn),這個(gè)圖則叫有向無環(huán)圖。下圖便是一個(gè)典型的有向無環(huán)圖。圓代表頂點(diǎn),線叫邊,代表頂點(diǎn)與頂點(diǎn)之間的關(guān)系。
DAG 結(jié)構(gòu)由 IOTA 團(tuán)隊(duì)率先使用,之后 Byteball 借鑒 IOTA 的 DAG 結(jié)構(gòu),并加以改進(jìn)。在 IOTA 中,要驗(yàn)證新的交易前,必須直接驗(yàn)證之前的兩個(gè)交易,這也使得在這兩個(gè)交易之前所有被驗(yàn)證過的交易得到間接驗(yàn)證。在 DAG 中,頂點(diǎn)代表交易,帶箭頭的線代表交易的驗(yàn)證關(guān)系。在 IOTA 中,有一個(gè)權(quán)重積分的概念,所謂權(quán)重積分是指它自身的權(quán)重與它驗(yàn)證過的所有交易的自身權(quán)重之和。在DAG 結(jié)構(gòu)中,交易總是自己創(chuàng)建并發(fā)布。從理論上看,攻擊者總是可以建構(gòu)比它要推翻掉的那個(gè)交易權(quán)重更高的交易用以雙花。Byteball 在 IOTA 的基礎(chǔ)上,做了改進(jìn),引入主鏈與見證人概念,并鼓勵(lì)驗(yàn)證多個(gè)父輩交易單元。但是它在每個(gè)交易單元都有一個(gè)見證人列表,除了會(huì)造成單元數(shù)據(jù)變大之外,還會(huì)在惡意攻擊者嘗試雙花時(shí),故意發(fā)布不同見證人列表的雙花單元引起混亂。同時(shí)他的確認(rèn)機(jī)制是沿著一條 MC 前行的,一路遇到多少見證人,這都將增加交易證驗(yàn)的復(fù)雜度與不確定性。雖然交易最終會(huì)達(dá)到一個(gè)穩(wěn)定的確定性,但是交易確認(rèn)的時(shí)間是不確定的。NERTHUS 在 Byteball 的基礎(chǔ)上,做了進(jìn)一步的改進(jìn)——維護(hù)用戶級(jí)別的見證人列表。并受 DPOS 機(jī)制的啟發(fā),交易單元一旦發(fā)布且經(jīng)所有見證人共同簽署的見證單元驗(yàn)證后,該交易單元就是最終確認(rèn)的。具體情況,將在后面詳細(xì)介紹。
單元
Nerthus 底層數(shù)據(jù)結(jié)構(gòu)采用的不是像比特幣、以太坊那種傳統(tǒng)的鏈?zhǔn)浇Y(jié)構(gòu)模式。而是采用一種 DAG(有向無環(huán)圖)結(jié)構(gòu)模式。
上圖是 DAG 的結(jié)構(gòu)模型,圓表示頂點(diǎn),線條表示頂點(diǎn)與頂點(diǎn)的關(guān)系,箭頭表示從子單元到父輩單元的方向,G 是創(chuàng)世單元,每個(gè)單元,通過其箭頭所指的父輩單元,一直追溯,可達(dá)創(chuàng)世單元。對(duì)應(yīng)于 Nerthus,圓表示一個(gè)單元。Nerthus中的單元包含引用之前一個(gè)和多個(gè)單元作為其的父輩單元,以此建立單元次序。單元可以包含多條不同類型的數(shù)據(jù),如支付,文本消息,智能合約等等。
DAG 中的每個(gè)新單元,驗(yàn)證并確認(rèn)其父輩單元,父輩單元的父輩單元,可達(dá)創(chuàng)世單元,并將其父輩單元的哈希包含到自己的單元里面。如果有人篡改數(shù)據(jù),其單元的哈希必將改變,那就會(huì)使得它與直接或間接驗(yàn)證確認(rèn)它的子單元中引用它的哈希不一致。如果要成功篡改單元數(shù)據(jù),需要與它的所有的子單元合作,子單元修改它引用的 Hash,這又會(huì)導(dǎo)致子單元的 Hash 發(fā)生改變,那么子單元又要與子單元的所有子單元合作,直到最后的子單元。所以,如果一個(gè)單元被廣播到網(wǎng)絡(luò)中,被其它單元驗(yàn)證確認(rèn)并建構(gòu)在其上后,篡改數(shù)據(jù)需要協(xié)調(diào)的人數(shù)便會(huì)呈指數(shù)級(jí)增長(zhǎng)。傳統(tǒng)的單線鏈?zhǔn)浇Y(jié)構(gòu),理論上它們要修改數(shù)據(jù),只需和后面幾個(gè)區(qū)塊達(dá)成一致,就可以達(dá)到篡改數(shù)據(jù)的目的(51%攻擊,通過算力快速產(chǎn)生幾個(gè)區(qū)塊,這些區(qū)塊都是自己控制的,相互合作,就可以篡改數(shù)據(jù)了)。DAG 這個(gè)模式相比來說,篡改數(shù)據(jù)的復(fù)雜度更高,更難以篡改。
雙花與地址順序單元系列鏈
在去中心化系統(tǒng)里面,有效防止雙花,是必要條件,更是基礎(chǔ)。如果不能有效防止雙花,整個(gè)系統(tǒng)就不成立了。DAG 通過下面協(xié)議規(guī)則解決雙花問題。
1、 一個(gè)單元不能引用它的其它父單元直接或間接引用過的單元做父單元。
2、 一個(gè)地址如果創(chuàng)建發(fā)布超過一個(gè)單元,后發(fā)布的單元必須直接或間接地包含引用其之前發(fā)布的所有單元,形成這個(gè)地址的順序單元系列。
3、 如果一個(gè)地址發(fā)布的單元,違反規(guī)則二,發(fā)布一個(gè)或多個(gè),沒有順序引用關(guān)系的單元或單元系列,都會(huì)視為雙花,不論是否存在實(shí)質(zhì)性雙花行為。
4、 在遵守規(guī)則二的情況下,出現(xiàn)雙花問題,順序單元系列里,發(fā)布較早的有效,發(fā)布晚的無效。如果不遵守規(guī)則二,發(fā)布多個(gè)非順序引用關(guān)系的單元或單元系列,根據(jù)最優(yōu)順序單元系列算法,只有一個(gè)單元或順序單元系列有效,其余單元或順序單元系列無效。
5、 如果一個(gè)地址的單元間接或直接包含引用兩個(gè)或以上的自己發(fā)布的沒有順序的單元,該單元無效,不論是否存在實(shí)質(zhì)性雙花行為。
圖二中,橙色實(shí)心圓點(diǎn)代表了是同一個(gè)地址所發(fā)布的所有單元。后面的直接或間接地包含前面的單元,形成一個(gè)有序的單元序列。
圖三中,橙色實(shí)心圓點(diǎn)與藍(lán)色實(shí)心圓點(diǎn)都是同一個(gè)地址所發(fā)布的單元。可以看出藍(lán)色實(shí)心圓點(diǎn)與橙色實(shí)心圓點(diǎn)之間沒有順序包含引用關(guān)系。這種情況下,只有一個(gè)順序單元系列被承認(rèn)。其它順序單元的所有交易都會(huì)被視為無效的。
圖四中,橙色實(shí)心圓點(diǎn)與藍(lán)色實(shí)心圓點(diǎn)都是同一個(gè)地址所發(fā)布的單元。藍(lán)色單元 D,間接包含引用了沒有順序關(guān)系的橙色單元與藍(lán)色單元。根據(jù)規(guī)則四,因此,單元 D 是不被承認(rèn)的無效單元。建構(gòu)在 D 之上的由該地址發(fā)布的后續(xù)單元,由于 D 引用了沒有順序關(guān)系的多個(gè)同地址單元,所以 D 的后續(xù)單元也間接地引用了它們,因而也都是無效的。
在圖二、圖三與圖四中,可以看到,從右到左,從一個(gè)單元出發(fā),用粗箭頭線指向它的一個(gè)父單元,它的這個(gè)父單元又用粗箭頭線指向這個(gè)父單元的一個(gè)父單元,直到創(chuàng)世塊,形成了一個(gè)鏈條,我們稱其為地址順序單元系列鏈。
地址順序單元系列鏈?zhǔn)侵福瑥囊粋€(gè)子單元開始,選出其最佳父單元,其最佳父單元又選出這個(gè)父單元的最佳父單元,直至創(chuàng)世塊。最佳父單元由單元高度、包含的見證單元數(shù),時(shí)間戳,包含該子單元的順序單元數(shù)量及路徑,共同計(jì)算一個(gè)權(quán)重而獲得。
根據(jù)規(guī)則五,兩條開始相互獨(dú)立,而在后面的某一點(diǎn)上又相互交叉的地址順序單元系列,我們簡(jiǎn)化了其引起的不必要的復(fù)雜性。因而,如果出現(xiàn)兩條或多條地址順序單元系列鏈(為了簡(jiǎn)化表述,我們把同一地址發(fā)布的沒有包含引用關(guān)系的相互獨(dú)立單元,即使只有一個(gè)獨(dú)立的單元構(gòu)不成順序單元系列,稱為地址順序單元系列鏈),根據(jù)規(guī)則四,相互獨(dú)立的地址順序單元序列,只有一條被認(rèn)為有效。用下面原則,選定一條地址順序單元系列鏈為有效,其余的皆為無效而不被承認(rèn)。
1、 如果出發(fā)點(diǎn)是無效的,那么其后續(xù)的所有都是無效的。在同一地址的多個(gè)不同地址順序單元系列中,如果在這些地址順序單元系列鏈中,第一個(gè)地址單元無效,那么這個(gè)地址順序單元系列鏈都無效。
2、 根據(jù)規(guī)則一,我們把問題簡(jiǎn)化為,當(dāng)同一地址出現(xiàn)多個(gè)不同的地址順序單元系列時(shí),只需比較這些順序單元系列中的第一個(gè)地址單元,并選擇出一個(gè)最優(yōu)的地址單元,那么這個(gè)最優(yōu)地址單元所在的地址順序單元系列鏈就是有效的,其余的都是無效的。
見證人
單個(gè)地址順序單元中,每個(gè)單元都會(huì)有先后次序關(guān)系。當(dāng)出現(xiàn)雙花問題時(shí),根據(jù)先后次序關(guān)系,判定早的單元有效,后的單元無效。這就很容易就解決了雙花問題。但是,如果攻擊者發(fā)布故意多個(gè)沒有順序關(guān)系的單元或單元系列,那么情況就變得復(fù)雜了。因?yàn)樵?DAG 中,單元是可以自己創(chuàng)建并發(fā)布的,他可以選擇自己的父單元,可選擇自己的高度,偽造時(shí)間戳,他可以根據(jù)規(guī)則偽造出比他想要推翻的單元權(quán)重更高的單元,可以創(chuàng)建更多的單元來確認(rèn)這個(gè)雙花單元,用來進(jìn)行雙花。而且他可能會(huì)創(chuàng)建一個(gè)隱藏的單元系列鏈,然后在某一時(shí)刻公布這個(gè)單元系列鏈,把之前所有的單元全都推翻,更致命的是,你不知道他會(huì)在什么時(shí)候公布這條隱藏的鏈。為此,我們引入了見證人機(jī)制來解決這個(gè)問題。
見證人機(jī)制是受傳統(tǒng)區(qū)塊鏈的委托權(quán)益證明(DPOS)啟發(fā)而設(shè)計(jì)的。見證人通過選舉產(chǎn)生,用戶可以提交競(jìng)選,并繳納一筆保證金后,就成為候選見證人。
系統(tǒng)根據(jù)候選見證人的得票數(shù),保證金,聲譽(yù)以及是否有實(shí)名信息,以及平時(shí)表現(xiàn)等,計(jì)算出一個(gè)指數(shù),并根據(jù)指數(shù),為其分配它的見證用戶。作為報(bào)酬,他會(huì)與其被見證用戶的所有其它見證人分享被見證用戶的所有單元的交易費(fèi),但見證者的報(bào)酬,會(huì)凍結(jié)三個(gè)月,三個(gè)月后方可領(lǐng)取。如果見證人長(zhǎng)時(shí)間不履行其職責(zé),不發(fā)布見證單元,將會(huì)被取消見證人資格,并在一定時(shí)間內(nèi)不得參選見證人。如果見證人不遵守見證規(guī)則,發(fā)布無效惡意見證區(qū)塊,將會(huì)被沒收保證金,并永遠(yuǎn)不得參選見證人。
每個(gè)用戶都有其見證人列表,這個(gè)見證人列表的數(shù)量為奇數(shù)。在用戶創(chuàng)建第一個(gè)單元之前,系統(tǒng)會(huì)為它分配一個(gè)見證人列表,并公布到網(wǎng)絡(luò)。網(wǎng)絡(luò)會(huì)維護(hù)每一個(gè)用戶的見證人列表。為了防止用戶與見證人串通,用戶無法選擇見證人,而見證人也無法選擇用戶,并且會(huì)每間隔一定的時(shí)間,更新一次見證人列表,全網(wǎng)也會(huì)記錄所有的更新,并記錄見證人成為該用戶見證人的起止時(shí)間。
用戶發(fā)布單元后,其見證人列表中的見證人將給單元進(jìn)行見證確認(rèn),其過程如下:
1、 用戶發(fā)布單元到網(wǎng)絡(luò)(同時(shí)也直接發(fā)送給他的見證人)。
2、 見證人接收到單元,并與該被見證人的其他所有見證人通信,以確定所有見證人收到的單元是一致的。這是必要的步驟。如果一個(gè)惡意的用戶,想攻擊網(wǎng)絡(luò),他可能會(huì)給不同的見證人發(fā)送不同的無序單元。如果見證人之間不進(jìn)行通信確認(rèn)的話,每個(gè)見證人將會(huì)對(duì)不同的無序單元進(jìn)行確認(rèn),這樣系統(tǒng)將會(huì)進(jìn)入混亂狀態(tài)。舉個(gè)極端例子,某用戶擁有一個(gè) 21 人的見證人列表,在還沒形成單元系列時(shí),他同時(shí)發(fā)布出 21 個(gè)不同的無順序關(guān)系的單元,并分別給每個(gè)見證人發(fā)送一個(gè)不相同的單元。在見證人之間不進(jìn)行相互通信的情況下,都對(duì)收到的單元進(jìn)行確認(rèn)驗(yàn)證。那么就有 21 個(gè)獨(dú)立的單元同時(shí)有效,這肯定是不可接受的。
3、 如果所有在場(chǎng)見證人收到的單元是一致的,經(jīng)由所有在場(chǎng)見證人校驗(yàn),如果沒有錯(cuò)誤,則所有在場(chǎng)見證人共同簽署見證單元,并發(fā)布到網(wǎng)絡(luò)。在場(chǎng)見證人一定要超過該用戶見證人列表里所有見證人的 50%。用戶的見證人列表有 21 個(gè)見證人,那么需要的在場(chǎng)見證人至少要有 11個(gè)。之所以有在場(chǎng)見證人這個(gè)概念是因?yàn)椋赡艽嬖诰W(wǎng)絡(luò)問題、有時(shí)有些見證人離線,或者有些見證人可能有惡意,留有 49%的冗余,以確保系統(tǒng)的健壯。
4、 如果所有在場(chǎng)見證人獲得的用戶單元是不一致的,他們將相互交換單元,并檢查這些單元是否存在有效包含關(guān)系,如果存在有效包含關(guān)系,以最后的子單元為準(zhǔn)。如果單元中在惡意含包關(guān)系(惡意包含關(guān)系指單元直接或間接包含引用了自己兩個(gè)非序順單元系列),則此單元被拋棄。如果多個(gè)單元間是相互獨(dú)立,沒有順序關(guān)系的,所有在場(chǎng)見證人根據(jù)最小哈希原則選擇其中一個(gè)單元作為有效單元,共同簽署見證單元,發(fā)布到網(wǎng)絡(luò)。
5、 見證單元一經(jīng)發(fā)布,該用戶被驗(yàn)證的單元及其引用自身的前輩單元皆被確認(rèn),并具有最終性。
見證規(guī)則:
1、 在同一分叉點(diǎn),同一驗(yàn)證者只能對(duì)其中的一個(gè)單元或單元系列投票,來作有效驗(yàn)證。
2、 如果用戶單元或單元系列已經(jīng)存在了驗(yàn)證單元,其后的驗(yàn)證單元只能在這條已有的驗(yàn)證單元的地址順序單元系列鏈上進(jìn)行,并且驗(yàn)證單元間也要建立次序關(guān)系。
3、 如果見證者違反上規(guī)則一和二,則其保證金及凍結(jié)的三個(gè)月交易手續(xù)費(fèi)都將被沒收,并且將永遠(yuǎn)不能成為見證人。
圖五中,橙色與藍(lán)色是同一地址發(fā)布的兩個(gè)獨(dú)立的順序單元序列,在它們的第一個(gè)單元之前,都沒有自己的單元,那么我們把沒有包含自己任何單元的單元稱為 0 點(diǎn)單元。在這里分叉我們稱為 0 點(diǎn)分叉。紫色的 V 單元是見證人簽署的驗(yàn)證單元,它確認(rèn)的是橙色地址順序單元系列。
圖六中,橙色地址序順單元系列在第一個(gè)驗(yàn)證單元后出現(xiàn)了 B 與 C 兩個(gè)分叉單元,驗(yàn)證單元選擇了 B,那么 B 就是有效的,C 是無效的。我們以橙色單元為出發(fā)點(diǎn),排除與地址無關(guān)的節(jié)點(diǎn)單元計(jì)數(shù),B 與 C 處于第四層的位置。我們稱為 4 分叉點(diǎn)。
在 0 分叉點(diǎn)上,見證單元支持了橙色,在 4 分叉點(diǎn)上它支持了 B,根據(jù)見證規(guī)則一,在 0 分叉點(diǎn)上與 4 分叉點(diǎn)上任何現(xiàn)有或后來可能偽造的其它地址順序單元系列或單元都是無效的。根據(jù)見證規(guī)則二,如果用戶單元或單元系列已經(jīng)存在了驗(yàn)證單元,其后的驗(yàn)證單元只能在這條已有驗(yàn)證單元的地址順序單元系列鏈上進(jìn)行,并且驗(yàn)證單元間也要建立次序關(guān)系。那就可以確保任何用戶地址,都只有一條明確清晰的被認(rèn)可的順序單元系列。
最終性
比特幣與以太坊,有一個(gè)最大的問題就是沒有一個(gè)確定的不可更改的最終狀態(tài)。理論是,如果有足夠的算力,足夠的出塊速度,產(chǎn)生一條更長(zhǎng)的隱藏鏈,就可以把之前的區(qū)塊推翻。Nerthus 單元經(jīng)過見證人發(fā)布見證區(qū)塊后,就已是最終確定的狀態(tài),無法推翻。
確認(rèn)時(shí)間
確認(rèn)時(shí)間取決于見證者發(fā)布見證區(qū)塊的時(shí)間。我們把見證者發(fā)布見證區(qū)塊的時(shí)間分為加急,急,快,普通,慢五個(gè)等級(jí),每個(gè)等級(jí)需要支付的驗(yàn)證費(fèi)用不同,以平衡見證者的負(fù)載及被見證者的時(shí)間需求。最快的加急,在不考慮網(wǎng)絡(luò)狀況的情況下,一秒內(nèi)完成。
NERTHUS 的五大突破
1、 更徹底去中心化
傳統(tǒng)的區(qū)塊+鏈?zhǔn)浇Y(jié)構(gòu),需要有一個(gè)類中心化的操作,即需要一個(gè)記賬人,將當(dāng)前所有交易進(jìn)行驗(yàn)證處理,然后打包到一個(gè)區(qū)塊,再發(fā)布到網(wǎng)絡(luò)。而 Nerthus系統(tǒng),如上所述,采用的是單元+DAG 結(jié)構(gòu),沒有區(qū)塊這一概念。所有單元由用戶自己創(chuàng)建與發(fā)布。其驗(yàn)證與確認(rèn)由引用其作為先輩單元的后輩單元來承擔(dān)。無需傳統(tǒng)區(qū)塊+鏈?zhǔn)浇Y(jié)構(gòu)那樣,需要一個(gè)記賬人,將當(dāng)前所有交易打包到區(qū)塊這一中心化的操作,因而是一種更徹底的去中心化系統(tǒng)。
2、 無吞吐量瓶頸
因?yàn)閭鹘y(tǒng)區(qū)塊+鏈?zhǔn)浇Y(jié)構(gòu)存在著中心化的操作過程,即需要記賬人將交易打包到區(qū)塊。那么區(qū)塊鏈系統(tǒng)處理交易能力的大小,必定受制于以下三點(diǎn):(1)記賬人節(jié)點(diǎn)機(jī)器的性能;(2)記賬人節(jié)點(diǎn)的網(wǎng)絡(luò)帶寬;(3)區(qū)塊的大小。因?yàn)榇嬖谶@一中心化色彩的操作,無論怎樣優(yōu)化,始終都會(huì)存在著一個(gè)處理能力的瓶頸點(diǎn)。如上所述,Nerthus 系統(tǒng),采用的是單元+DAG 結(jié)構(gòu),沒有記賬人打包區(qū)塊這一中心化的操作,因此也不存在區(qū)塊這一概念。單元由用戶創(chuàng)建發(fā)布,并由其它單元驗(yàn)證確認(rèn),因而不存在吞吐量瓶頸。
3、 無區(qū)塊擴(kuò)容與數(shù)據(jù)膨脹的悖論性兩難
傳統(tǒng)區(qū)塊+鏈?zhǔn)浇Y(jié)構(gòu)需要所有交易要打包到區(qū)塊才有效。若區(qū)塊的容量設(shè)置小,當(dāng)交易量大時(shí),很多交易無法及時(shí)打包進(jìn)區(qū)塊。若區(qū)塊容量設(shè)置大,則會(huì)使區(qū)塊鏈數(shù)據(jù)迅速膨脹,普通個(gè)人電腦無法運(yùn)行全節(jié)點(diǎn),只有少數(shù)人才可能運(yùn)行全節(jié)點(diǎn),會(huì)造成中心化的結(jié)果。這也是比特幣擴(kuò)容之爭(zhēng)的根本矛盾點(diǎn)。如上所述,Nerthus 沒有區(qū)塊這一概念,所以對(duì)于傳統(tǒng)區(qū)塊+鏈?zhǔn)浇Y(jié)構(gòu)先天性的悖論兩難問題,在 Nerthus 中就根本不存在。
4、 明確可預(yù)期的最終性
傳統(tǒng)區(qū)塊+鏈?zhǔn)浇Y(jié)構(gòu),不排除可能同時(shí)產(chǎn)生兩個(gè)甚至多個(gè)區(qū)塊,由此導(dǎo)致分叉。對(duì)于出現(xiàn)分叉的情況,傳統(tǒng)區(qū)塊鏈將以最長(zhǎng)鏈作為有效鏈。該機(jī)制在理論上會(huì)將無法確定最終性,因?yàn)闊o法保證是否存在一條隱藏長(zhǎng)鏈。而 nerthus 通過見證人機(jī)制,只要通過見證人發(fā)布的見證單元驗(yàn)證確認(rèn),即具最終性,無法推翻。
5、 可選交易確認(rèn)速度
見證人發(fā)布見證區(qū)塊分為加急、急、快、普通、慢五個(gè)等級(jí)。用戶可根據(jù)自身需求,選擇交易確認(rèn)速度。
NERTHUS 的生態(tài)系統(tǒng)與三層架構(gòu)
Nerthus 是一個(gè)通用的智能合約平臺(tái)與區(qū)塊鏈操作系統(tǒng)。同時(shí)也致力于打造一個(gè)基于 Nerthus 的生態(tài)系統(tǒng)。
Nerthus 在底層采用單元+DAG 結(jié)構(gòu),無需記賬者打包,打造了一個(gè)更為徹底的去中心化區(qū)塊鏈系統(tǒng)。一個(gè)沒有吞吐量瓶頸限制的區(qū)塊鏈系統(tǒng),是 Nerthus的核心部分,也是 Nerthus 提供的基礎(chǔ)設(shè)施。在整個(gè) Nerthus 系統(tǒng)中,它處于底層,是基礎(chǔ)層。
在 Nerthus 基礎(chǔ)層之上,我們還引入了服務(wù)層,以供基于 Nerthus 開發(fā)的開發(fā)者快速開發(fā)各種應(yīng)用。在服務(wù)層中,我們除了封裝好核心層的各種 API 之外,還提供了區(qū)塊鏈翻譯系統(tǒng)與側(cè)鏈系統(tǒng)。區(qū)塊鏈翻譯系統(tǒng)主要是指,使兩個(gè)相互獨(dú)立的區(qū)塊鏈,能夠相互讀懂對(duì)方,能夠無障礙通迅。側(cè)鏈系統(tǒng)是指企業(yè)用戶,可以快速生成基于 Nerthus 的私有鏈和聯(lián)盟鏈,并鏈結(jié)在 Nerthus 主鏈上,可以利用 Nerthus 翻譯系統(tǒng)與其它鏈相互通信與交易。建立一個(gè)良好的生態(tài)系統(tǒng),除了擁有先進(jìn)性技術(shù)之外,還應(yīng)該能夠整合各種資源。區(qū)塊鏈翻譯系統(tǒng),主要目的在于整合現(xiàn)有的各種區(qū)塊鏈資源,讓現(xiàn)有的各個(gè)區(qū)塊鏈項(xiàng)目,通過 Nerthus 能夠相互通訊,并且能夠相互交互,成為 Nerthus 生態(tài)圈的一環(huán)。而基于 Nerthus 的應(yīng)用開發(fā)者,能開發(fā)出跨越各種鏈的應(yīng)用。而側(cè)鏈系統(tǒng)則為建立聯(lián)盟鏈與私有鏈的企業(yè)與機(jī)構(gòu),提供一個(gè)快速、低成本的方式。雖然這些企業(yè)與機(jī)構(gòu)因?yàn)楦鞣N原因,只能建立聯(lián)盟鏈或私有鏈,但他們依然有與其它公有鏈用戶的通訊交易需求,Nerthus 的側(cè)鏈系統(tǒng)正好為它們提供這樣的功能接口。
在服務(wù)層之上,是 Nerthus 的應(yīng)用層。Nerthus 應(yīng)用層是指,基于 Nerthus 上開發(fā)的各種區(qū)塊鏈應(yīng)用,這些應(yīng)用主要由第三方開發(fā)者開發(fā)。目前,區(qū)塊鏈的各種應(yīng)用,最典型的比如錢包,用戶體驗(yàn)還不是很好。區(qū)塊鏈開發(fā)者更多的還是注重于功能的實(shí)現(xiàn),對(duì)于用戶體驗(yàn)關(guān)注度不是很高。一項(xiàng)技術(shù),一個(gè)系統(tǒng),一項(xiàng)應(yīng)用,如果想要大家都使用,用戶體驗(yàn)是非常重要的一環(huán)。Nerthus 非常關(guān)注用戶體驗(yàn),借鑒 IOS 的經(jīng)驗(yàn),將建立一套 Nerthus 應(yīng)用層的規(guī)范與標(biāo)準(zhǔn)。
Nerthus 核心基礎(chǔ)層是 Nerthus 生態(tài)系統(tǒng)的根基。Nerthus 上的開發(fā)者以及基于各區(qū)塊鏈系統(tǒng),是 Nerthus 生態(tài)中的上游參與者,我們?cè)诜?wù)層為他們提供各種便利的服務(wù)接口。普通用戶則是 Nerthus 生態(tài)中的消費(fèi)者,我們制定一套用戶友好的應(yīng)用層規(guī)范標(biāo)準(zhǔn),方便普通用戶體驗(yàn)。
Witstone 與 OVM
智能合約編程語言與運(yùn)行環(huán)境是實(shí)現(xiàn)可編程的區(qū)塊鏈操作系統(tǒng)的基礎(chǔ)設(shè)施。OVM 是專門為 Nerthus 區(qū)塊鏈系統(tǒng)研發(fā)的虛擬機(jī),為 Nerthus 智能合約提供安全可靠高性能的運(yùn)行環(huán)境。
同時(shí),我們還提供了一門編寫 Nerthus 智能合約的語言——Witstone。Witstone 是一種類似于 Javascript 的腳本語言,從語言層面上加入了對(duì) Nerthus一些特性的支持。Witstone 是一門簡(jiǎn)單易用、易上手的智能合約編程語言,開發(fā)者無需多大學(xué)習(xí)成本,在短時(shí)間內(nèi)就能編寫出 Nerthus 智能合約。
NERTHUS 代幣
NERTHUS 將提供 NERTHUS 代幣。NERTHUS 代幣是維護(hù) NERTHUS 系統(tǒng)的血液與燃料。用戶創(chuàng)建發(fā)布單元需要支付給見證人見證費(fèi),運(yùn)行智能合約需要支付計(jì)步費(fèi)。NERTHUS 代幣總量為 100 億。
總結(jié)
Nerthus 系統(tǒng)與以太坊一樣,致力于打造一個(gè)通用的智能合約編程平臺(tái)與區(qū)塊鏈操作系統(tǒng)。Nerthus 有自己的圖靈完備的編程語言 Witstone,以及運(yùn)行環(huán)境OVM。與以太坊不同的是,我們?cè)诘讓邮褂?DAG 技術(shù),有效地解決了傳統(tǒng)區(qū)塊鏈系統(tǒng)面臨的低吞吐量,交易確認(rèn)延時(shí),區(qū)塊膨脹等區(qū)塊鏈?zhǔn)浇Y(jié)構(gòu)先天性的悖論問題。在智能合約方面,為了使其更具實(shí)用性,Nerthus 系統(tǒng)設(shè)計(jì)了一套鏈外數(shù)據(jù)驗(yàn)證確認(rèn)共識(shí)的機(jī)制,使之前智能合約難以實(shí)現(xiàn)的場(chǎng)景,變成了可由智能合約實(shí)現(xiàn)的領(lǐng)域。Nerthus 將推動(dòng)智能合約在現(xiàn)實(shí)世界的普及應(yīng)用。
評(píng)論
查看更多