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