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