基于區(qū)塊鏈技術(shù)的資產(chǎn)轉(zhuǎn)移安全平臺NEO介紹
自2016年NEO主網(wǎng)上線以來,NEO平臺的特性有著大幅度的增加,而隨著下一代NEO平臺NEO3中多種創(chuàng)新的實現(xiàn),這種趨勢今年仍在繼續(xù)。本文重點介紹最近已經(jīng)合并至GitHub上master分支的一個創(chuàng)新特性,范圍見證人。這一特性將對在NEO3上保證資產(chǎn)轉(zhuǎn)移的安全性起到重要作用。
NEO3中的資產(chǎn)將全部采用NEP5資產(chǎn)類型(不再保留NEO2的基于UTXO的全局資產(chǎn)類型),這簡化了對資產(chǎn)的管理,同時使得網(wǎng)絡(luò)具有更強大的智能合約處理能力(如原生通證)。為了促進這些改進功能,核心執(zhí)行引擎(稱為ApplicationEngine)必須用不同的方式處理各種邏輯。ApplicaTIonEngine的任務(wù)之一是驗證交易的正確性。這意味著要檢查憑證(稱為見證人)是否驗證通過,以及是否允許資產(chǎn)所有者進行資產(chǎn)轉(zhuǎn)移。
對于NEO2中基于UTXO的全局資產(chǎn),見證人驗證是通過內(nèi)部過程執(zhí)行的,該過程可以安全地保證簽名可以正確地驗證通過,且如果合約是交易所指定的資金的發(fā)送方,則將調(diào)用合約的驗證功能來決定是否允許資產(chǎn)轉(zhuǎn)移。然而,在NEO2中,智能合約不允許與原生資產(chǎn)直接交互以從智能合約中發(fā)起支付交易,它只能允許或拒絕交易。一言以蔽之,UTXO全局資產(chǎn)使得智能合約無法直接實現(xiàn)資產(chǎn)的流動以及自動支付。而NEO3允許智能合約直接處理原生的NEP5資產(chǎn)(NEO和GAS),從而打破了這一限制。NEO3使用相同的見證人體系來管理原生和非原生的(用戶創(chuàng)建)資產(chǎn)。確保NEO3上NEP-5資產(chǎn)轉(zhuǎn)移安全性的第一步是對傳遞的見證人添加限制。這些限制稱為:見證人作用域。
NEO3上有四種類型的作用域:CalledByEntry、CustomContracts、CustomGroups 和Global。最基本(和安全)的作用域名為CalledByEntry,它將見證人的使用范圍限制在用戶所傳遞的交易腳本這一最基本的級別。這意味著,與CalledByEntry一起傳遞的見證人將僅在調(diào)用用戶傳遞的腳本時使用,這對于所有類型的資產(chǎn)和通證都是100%安全的。下面的圖片描述了這個過程。
CalledByEntry作用域的關(guān)系圖。用戶交易附有見證人A簽名,這只能由入口腳本直接調(diào)用的合約所使用(即合約B)。如果另一個合約(由第三方調(diào)用)嘗試驗證見證人A,將會執(zhí)行失?。春霞sC)。
與CalledByEntry相反的是Global作用域:允許在全局范圍內(nèi)使用見證人簽名,而沒有特定的限制條件。這在一個非常封閉的應(yīng)用程序上仍然是安全的,同時可能會與NEO3中另一個創(chuàng)新特性結(jié)合使用:Manifest System(這部分將在后續(xù)文章中展開討論)。其他兩種模式(CustomContracts和CustomGroups)允許將用戶憑證作用域更細(xì)粒度地綁定到特定應(yīng)用程序(和應(yīng)用程序組)。這對于游戲以及其他一些應(yīng)用場景而言是完美的解決方案,在這些場景中智能合約執(zhí)行期間的多種情況下都需要數(shù)字資產(chǎn),由此為用戶憑證建立了非常簡潔且具有描述性的限制。
本文不會深入探討這些特性的技術(shù)細(xì)節(jié),但我們歡迎感興趣的開發(fā)人員直接與核心開發(fā)團隊在Github上對相關(guān)的issue進行討論,以了解這些(和其他)有趣的新特性是如何協(xié)同作用的,從而使NEO成為一個極具創(chuàng)新的區(qū)塊鏈平臺。
來源: NEO智能經(jīng)濟?