NEO3上有四種型別的作用域:CalledByEntry、CustomContracts、CustomGroups 和Global。最基本(和安全)的作用域名為CalledByEntry,它將見證人的使用範圍限制在使用者所傳遞的交易指令碼這一最基本的級別。這意味著,與CalledByEntry一起傳遞的見證人將僅在呼叫使用者傳遞的指令碼時使用,這對於所有型別的資產和通證都是100%安全的。下面的圖片描述了這個過程。
CalledByEntry作用域的關係圖。使用者交易附有見證人A簽名,這隻能由入口指令碼直接呼叫的合約所使用(即合約B)。如果另一個合約(由第三方呼叫)嘗試驗證見證人A,將會執行失敗(即合約C)。
與CalledByEntry相反的是Global作用域:允許在全域性範圍內使用見證人簽名,而沒有特定的限制條件。這在一個非常封閉的應用程式上仍然是安全的,同時可能會與NEO3中另一個創新特性結合使用:Manifest System(這部分將在後續文章中展開討論)。其他兩種模式(CustomContracts和CustomGroups)允許將使用者憑證作用域更細粒度地繫結到特定應用程式(和應用程式組)。這對於遊戲以及其他一些應用場景而言是完美的解決方案,在這些場景中智慧合約執行期間的多種情況下都需要數字資產,由此為使用者憑證建立了非常簡潔且具有描述性的限制。本文不會深入探討這些特性的技術細節,但我們歡迎感興趣的開發人員直接與核心開發團隊在Github上對相關的issue進行討論,以瞭解這些(和其他)有趣的新特性是如何協同作用的,從而使NEO成為一個極具創新的區塊鏈平臺。