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