區(qū)塊鏈要具備支持大規(guī)模商業(yè)應(yīng)用落地的能力就必須滿足三個(gè)基本要求
NEO生態(tài)最值得期待的年度活動(dòng)NEO DevCon,在經(jīng)過(guò)了近半年的籌備正式于2月16日在美國(guó)西雅圖盛大啟幕,在為期兩天的會(huì)議上共有近500位開發(fā)者共襄盛會(huì),超過(guò)40位嘉賓帶來(lái)了精彩絕倫的分享。
錯(cuò)過(guò)現(xiàn)場(chǎng)與直播可以關(guān)注NEO Smart Economy Youtube頻道回看大會(huì)兩天的完整視頻。我們也將通過(guò)多篇報(bào)道對(duì)現(xiàn)場(chǎng)的重要分享進(jìn)行摘取與解讀。
NEO兩位創(chuàng)始人張錚文與達(dá)鴻飛分別從技術(shù)角度與理念角度對(duì)NEO的未來(lái)發(fā)展與愿景進(jìn)行了深度解讀與分享。達(dá)鴻飛重申了NEO將在2020年前成為第一名的區(qū)塊鏈平臺(tái)的目標(biāo),即通過(guò)提供高性能、強(qiáng)大的生態(tài)支持與合規(guī)性解決方案等方面使NEO成為最受開發(fā)者歡迎的去中心化應(yīng)用開發(fā)與部署平臺(tái)。
達(dá)鴻飛說(shuō):每當(dāng)人們問(wèn)起NEO到底有什么不同,是什么讓NEO取得成功,我希望這樣去回答人們:
純粹的現(xiàn)實(shí)主義者難以仰望星空
純粹的理想主義者無(wú)法立足當(dāng)下
唯有現(xiàn)實(shí)的理想主義者可以孕育時(shí)代
NEO的不同由現(xiàn)實(shí)的理想主義造就
NEO目標(biāo)的實(shí)現(xiàn)基底是最近一段時(shí)間被反復(fù)提及的NEO 3.0,本屆DevCon,雖然NEO創(chuàng)始人張錚文沒(méi)能來(lái)到現(xiàn)場(chǎng),但是通過(guò)視頻方式從技術(shù)角度對(duì)NEO 3.0進(jìn)行了更為深入詳細(xì)的細(xì)節(jié)與計(jì)劃披露,NEO 3.0的面紗也逐漸揭開。本文也將著重于張錚文的視頻內(nèi)容的報(bào)道,我們將對(duì)達(dá)鴻飛與其他嘉賓的演講內(nèi)容進(jìn)行后續(xù)報(bào)道。
首先,張錚文開宗明義的明晰了為什么要開發(fā)NEO 3.0和NEO 3.0的目標(biāo):
開發(fā)NEO 3.0最重要的目標(biāo)是讓NEO具備支持大規(guī)模商業(yè)應(yīng)用落地的能力。
盡管區(qū)塊鏈已經(jīng)出現(xiàn)了好幾年,但目前還沒(méi)有區(qū)塊鏈可以支持大規(guī)模商業(yè)應(yīng)用的落地。要想讓區(qū)塊鏈具備支持大規(guī)模商業(yè)應(yīng)用落地的能力,就必須滿足三個(gè)基本要求:
· 可靠性
· 性能/TPS
· 存儲(chǔ)
-在可靠性方面有兩個(gè)重要的特點(diǎn),其一是不可逆性,意味著一旦交易在鏈上確認(rèn),就不可逆轉(zhuǎn)或撤銷了。而對(duì)于金融應(yīng)用來(lái)說(shuō),撤銷已確認(rèn)的交易是不可接受的;其二是可用性,即網(wǎng)絡(luò)即使是在負(fù)載極大的情況下也能持續(xù)生成區(qū)塊并處理交易。
-在性能方面,將區(qū)塊鏈的TPS提升至極高的值是實(shí)現(xiàn)大規(guī)模商業(yè)應(yīng)用支持的前提條件。
-在存儲(chǔ)方面,大規(guī)模商業(yè)應(yīng)用需存儲(chǔ)大量數(shù)據(jù),因此區(qū)塊鏈必須采用分布式存儲(chǔ)。
為了給大規(guī)模商業(yè)應(yīng)用提供支持,NEO 3.0需要進(jìn)行一些改進(jìn)。包括NEO架構(gòu)的改進(jìn)、NEO 3.0的新功能以及其他改進(jìn)。
NEO 3.0需要精簡(jiǎn)NEO架構(gòu),包括三個(gè)變更。包括對(duì)Layer 2進(jìn)行優(yōu)化、移除所有的全局資產(chǎn)和統(tǒng)一所有資產(chǎn)類別。
-優(yōu)化Layer2
張錚文認(rèn)為,未來(lái)的大部分應(yīng)用都會(huì)在Layer 2上運(yùn)行,而且只有爭(zhēng)議發(fā)生時(shí),才需要主鏈進(jìn)行仲裁。盡管Layer 2的拓展技術(shù)可以有效提升TPS,但提升能力依然有限。假設(shè)在Layer 2上發(fā)生爭(zhēng)議的概率是一個(gè)值。用主鏈的TPS除以概率,就可以得到Layer 2 TPS的粗略估計(jì)值。也就是說(shuō),Layer 2的TPS和主鏈的TPS呈比例關(guān)系,Layer 2的TPS隨著主鏈TPS的增加按比例成倍數(shù)增加??紤]到NEO 3.0中大部分應(yīng)用都會(huì)在Layer 2上運(yùn)行,因此NEO將精簡(jiǎn)主鏈的架構(gòu)并努力提升主鏈的TPS。
NEO的智能合約目前有兩個(gè)用途,分別是交易驗(yàn)證和應(yīng)用執(zhí)行。在NEO 2.x中,交易驗(yàn)證通常分三個(gè)步驟,分別是格式驗(yàn)證、規(guī)則驗(yàn)證和業(yè)務(wù)驗(yàn)證。格式驗(yàn)證用來(lái)驗(yàn)證交易格式是否達(dá)到要求,規(guī)則驗(yàn)證的目的是驗(yàn)證交易內(nèi)容是否符合目前的所有規(guī)則,如交易大小是否超過(guò)限制,而業(yè)務(wù)驗(yàn)證是一系列通過(guò)智能合約完成的業(yè)務(wù)相關(guān)驗(yàn)證。因?yàn)闃I(yè)務(wù)驗(yàn)證需要執(zhí)行智能合約,而智能合約的執(zhí)行取決于以前的狀態(tài),因此交易驗(yàn)證會(huì)非常慢。
在NEO 3.0中,會(huì)把業(yè)務(wù)驗(yàn)證移到應(yīng)用層。在進(jìn)行交易驗(yàn)證時(shí),我們只會(huì)允許狀態(tài)獨(dú)立的驗(yàn)證,這樣就能大幅提高交易的驗(yàn)證效率。而共識(shí)節(jié)點(diǎn)甚至可能不需要為了驗(yàn)證交易而同步區(qū)塊數(shù)據(jù),這樣TPS就能大幅提升。同時(shí),會(huì)在應(yīng)用層添加大量與Layer 2相關(guān)的優(yōu)化過(guò)的API。
-移除全局資產(chǎn)
目前通常使用兩種方法在NEO上創(chuàng)建資產(chǎn),一是通過(guò)注冊(cè)交易創(chuàng)建全局資產(chǎn),二是通過(guò)智能合約創(chuàng)建合約資產(chǎn)。
實(shí)際應(yīng)用中很少用到全局資產(chǎn),大多數(shù)應(yīng)用創(chuàng)建的都是合約資產(chǎn)。這是因?yàn)楹霞s資產(chǎn)更靈活且包含更多功能,例如你可以創(chuàng)建NEP-5資產(chǎn)、創(chuàng)建NFT資產(chǎn)并創(chuàng)建STO資產(chǎn)等。因?yàn)槿仲Y產(chǎn)沒(méi)有與智能合約結(jié)合,因此難以在智能合約中管理全局資產(chǎn)。
鑒于上述原因,NEO 3.0無(wú)需繼續(xù)支持全局資產(chǎn),而且如果可移除全局資產(chǎn),NEO架構(gòu)就會(huì)進(jìn)一步精簡(jiǎn),其系統(tǒng)性能也能得以提升。在NEO 3.0中,所有資產(chǎn)均須在智能合約中創(chuàng)建,甚至包括NEO和GAS。
-統(tǒng)一所有資產(chǎn)類別
目前NEO 2.x中有9個(gè)不同的資產(chǎn)類別,包括挖礦交易、發(fā)行交易及認(rèn)領(lǐng)交易等。這些交易類別不是和特定的業(yè)務(wù)相關(guān),就是有特定的功能。如注冊(cè)交易和發(fā)行交易就與全局資產(chǎn)的創(chuàng)建和分配相關(guān)。因?yàn)槿仲Y產(chǎn)不再存在,這些關(guān)聯(lián)交易也就無(wú)需存在了,智能合約中的其他復(fù)雜業(yè)務(wù)交易也會(huì)被移除,并由互操作服務(wù)取代。
因此,在NEO 3.0中僅有一種交易類別,即交易。交易作為獨(dú)一無(wú)二的交易類別,其功能是運(yùn)行智能合約。
NEO 3.0的五個(gè)新功能
【1】原生合約
NEO 2.x已經(jīng)使用了智能合約,用多種常用的編程語(yǔ)言編寫,并編譯成NEO的指令集后在NeoVM中運(yùn)行。任何人都可以在NEO上部署自己的智能合約。
NEO 3.0將使用一種全新的智能合約——原生合約。該合約與普通的智能合約基本相同,也可互相調(diào)用,不同點(diǎn)在于它不能在NeoVM中運(yùn)行,且可直接運(yùn)行原生代碼。它無(wú)法被部署,但可嵌于NEO核心代碼中。原生合約升級(jí)后其哈希值保持不變。在NEO 3.0中,NEO和GAS將以原生合約的形式存在。此外,投票系統(tǒng)也是一種原生合約。你可以通過(guò)投票系統(tǒng)選擇共識(shí)節(jié)點(diǎn),甚至給NEO的共識(shí)機(jī)制投票。
【2】清單和權(quán)限系統(tǒng)
眾所周知NEO的智能合約可以相互調(diào)用,這一功能給開發(fā)者提供了極大的便利,但也帶來(lái)了風(fēng)險(xiǎn)隱患。一般情況下,用戶在調(diào)用智能合約時(shí)是無(wú)法清楚得知合約行為是否符合預(yù)期的。
所以提出了清單和權(quán)限系統(tǒng)這一功能,每個(gè)智能合約必須顯示行為描述清單,該清單應(yīng)包含四個(gè)要素:
-第一個(gè)要素是群組。你可以宣布合約屬于一個(gè)群組,這樣該群組中的合約就能互相信任,并安全地進(jìn)行合約間調(diào)用。
-第二個(gè)要素是功能,描述了合約可以使用的功能,如存儲(chǔ)、接受轉(zhuǎn)賬等。
-第三個(gè)要素是ABI,描述了合約如何被其他合約或客戶端調(diào)用的界面信息。目前可以通過(guò)編譯器生成ABI文件,但NEO 3.0要求將ABI放入清單中。
-第四個(gè)要素是權(quán)限,列舉了合約可能調(diào)用的其他所有合約的哈希值和方法名稱。如果合約調(diào)用了任何未能明確列出的合約或方法,調(diào)用會(huì)在運(yùn)行時(shí)失敗。
此外,合約也可以在清單中信任其它合約,清單也可顯示balanceOf或totalSupply等安全方法,這樣其他合約無(wú)需獲得權(quán)限也可調(diào)用這些安全方法。
【3】互聯(lián)網(wǎng)資源訪問(wèn)
這相當(dāng)于在NEO中內(nèi)置一個(gè)預(yù)言機(jī),基本原則是允許智能合約用戶訪問(wèn)互聯(lián)網(wǎng)資源。因此在互操作服務(wù)中添加了新的界面,智能合約便可通過(guò)url鏈接訪問(wèn)互聯(lián)網(wǎng)資源。
處理此類智能合約交易時(shí),共識(shí)節(jié)點(diǎn)需確保數(shù)據(jù)的一致性,但同時(shí)它們也會(huì)限制資源的長(zhǎng)度。如果共識(shí)節(jié)點(diǎn)可以就讀取的數(shù)據(jù)達(dá)成共識(shí),url/數(shù)據(jù)對(duì)就可寫入?yún)^(qū)塊頭中。這樣,其他所有節(jié)點(diǎn)便都可以從區(qū)塊頭中讀取一致的互聯(lián)網(wǎng)資源了,并同時(shí)執(zhí)行智能合約進(jìn)行交易。
【4】經(jīng)改進(jìn)的dBFT共識(shí)機(jī)制
NEO 2.x已經(jīng)使用了dBFT共識(shí)機(jī)制,但仍有瑕疵,開發(fā)者有時(shí)可能會(huì)注意到網(wǎng)絡(luò)中的區(qū)塊偶爾會(huì)發(fā)生分叉。NEO過(guò)去幾個(gè)月對(duì)dBFT算法進(jìn)行了優(yōu)化來(lái)解決這個(gè)問(wèn)題。
dBFT算法有三組協(xié)議,分別是共識(shí)協(xié)議、觀點(diǎn)變更協(xié)議和狀態(tài)同步協(xié)議。
-其中最關(guān)鍵的是共識(shí)協(xié)議,分三步完成,分別是PrepareRequest、PrepareResponse和Commit。最早的共識(shí)協(xié)議僅涉及前兩個(gè)步驟,這也是區(qū)塊分叉偶有發(fā)生的原因。
-第二個(gè)協(xié)議是觀點(diǎn)變更協(xié)議。如果共識(shí)節(jié)點(diǎn)無(wú)法在規(guī)定時(shí)間內(nèi)達(dá)成共識(shí),它們就會(huì)改變主意并在此投票,在這個(gè)方面沒(méi)有什么需要改進(jìn)的。
-最后一個(gè)協(xié)議是狀態(tài)同步協(xié)議。如果共識(shí)節(jié)點(diǎn)離線后恢復(fù)登錄的狀態(tài),就需要與其他節(jié)點(diǎn)同步狀態(tài)。這個(gè)過(guò)程通過(guò)區(qū)塊同步實(shí)現(xiàn)。但新的dBFT算法需新增兩個(gè)狀態(tài)恢復(fù)機(jī)制:恢復(fù)日志和恢復(fù)消息。改進(jìn)后,離線的共識(shí)節(jié)點(diǎn)就可快速恢復(fù)正常。
改進(jìn)后,dBFT就可真正做到交易不可逆,也將成為唯一一個(gè)可以支持大規(guī)模商業(yè)應(yīng)用的共識(shí)機(jī)制,dBFT將是最優(yōu)的區(qū)塊鏈共識(shí)機(jī)制。
【5】分布式文件儲(chǔ)存系統(tǒng)NeoFS
NeoFS是基于NEO 3.0的分布式存儲(chǔ)網(wǎng)絡(luò)。智能合約的存儲(chǔ)高度冗余,所以其成本極高。如果在智能合約中存儲(chǔ)大量數(shù)據(jù),價(jià)格會(huì)非常高昂。因此需要建立一個(gè)低成本的分布式存儲(chǔ)網(wǎng)絡(luò)。同時(shí),存儲(chǔ)網(wǎng)絡(luò)有自己的經(jīng)濟(jì)模型。首先,它成本不高且能存儲(chǔ)大量數(shù)據(jù),用戶可支付gas購(gòu)買數(shù)據(jù)存儲(chǔ)空間,而且每個(gè)人都可通過(guò)共享未使用的硬盤空間來(lái)獲取gas。
此外,NeoFS還有其他功能,可以加密數(shù)據(jù)來(lái)保護(hù)隱私,而且NeoFS將與智能合約相結(jié)合,合約可直接從NeoFS讀取數(shù)據(jù)或?qū)?shù)據(jù)寫入NeoFS。NEO 3.0還包含其他許多改進(jìn),將在未來(lái)進(jìn)行發(fā)布。
其他改進(jìn)
-添加壓縮功能,以實(shí)現(xiàn)P2P協(xié)議。
-增加MPT樹功能,以實(shí)現(xiàn)存儲(chǔ)值驗(yàn)證功能。
-顯著降低智能合約的成本,以使NEO區(qū)塊鏈上可運(yùn)行更多應(yīng)用。
雖然沒(méi)能親臨現(xiàn)場(chǎng),但張錚文的分享仍然在開發(fā)者中制造了話題,NEO 3.0本次發(fā)布的更新將會(huì)引領(lǐng)NEO進(jìn)入新的競(jìng)爭(zhēng)維度,從而由區(qū)塊鏈升維至傳統(tǒng)企業(yè)的大規(guī)模商業(yè)應(yīng)用。NEO 3.0即是精致務(wù)實(shí),也是理想主義,是開啟現(xiàn)實(shí)的理想主義者黃金時(shí)代最好注腳,值得期待。