從權限體系視角解讀受保護資源對區塊鏈系統的影響

本文從權限體系的三個部分入手,根據權限體係受保護資源對區塊鏈系統的影響層級範圍,介紹了在區塊鏈系統中不同範圍的受保護資源,並闡述了一種用於授權和鑑權的權限管理模型——基於提案投票的權限管理模型。

【背景】

作為一種去中心化的分佈式系統,區塊鏈系統在生產環境中會受到網絡條件、節點規模、監管政策等多方面因素的影響,因此系統需要解決運維與合規問題,以保證分佈式系統線上運行的安全與穩定。

在計算機系統中,廣義上的權限體系一般包括三個部分:授權、鑑權及受保護資源。受保護資源指的是訪問需要受到一定條件約束的資源;授權指的是用戶主動或被動獲取訪問受限資源能力的過程;鑑權指的是用戶訪問受限資源時通過特定機制和憑證校驗用戶是否具有訪問能力的過程。

區塊鏈系統中的權限體系,會根據受保護資源對系統的影響範圍被劃分成若干層級。每個層級又可以細分出不同的受保護資源。不同的受保護資源可具有截然不同的權限管理機制。

【權限層級】

總體上,在區塊鏈系統中,權限體系所保護的資源一般可以從資源對區塊鏈系統的影響層級範圍的維度劃分成四類:對整個鏈運轉產生影響的鏈級權限、對單個智能合約運行產生影響的合約權限、對區塊鏈上單個賬號產生影響的賬號權限及只對區塊鏈系統中單個節點產生影響的節點權限。

▲鏈級權限

鏈級資源:區塊鏈系統中需要所有節點保持一致的參數配置集合。

鏈級資源的訪問:在區塊鏈系統中對上述配置進行統一變更的操作。

鏈級權限就是保護鏈級資源的權限機制。鏈級資源一般在區塊鏈系統創世時就穩定地存在於區塊鏈系統中,一般需要通過特殊的交易來訪問,保證節點間的一致性;其訪問必須在一定程度上受限,不可以輕易被訪問,一旦被隨意訪問,容易導致功能的混亂,進而整個系統受到不可逆的損害。

▲合約權限

合約權限:業務智能合約操作接口的訪問控制。

受保護的操作包括智能合約的維護與調用。智能合約的維護一般指的是智能合約代碼的更新、智能合約的狀態變更等,其維護權限默認賦予智能合約的部署者。

不論是智能合約的維護還是調用,都需要通過特定的標識符來指向所訪問的合約,基於智能合約的標識符,在區塊鏈執行器層面可以提供黑白名單的機制對智能合約的接口進行整體保護。

▲賬號權限

在區塊鏈賬本上的主體,除了智能合約一般還包括區塊鏈賬號。賬號權限核心就是保護區塊鏈賬本上的賬號,使其不會被隨意使用,它既包含了交易發起方的驗證,又包含了發起方是否有權限向交易接收方發起操作的驗證。

▲節點權限

上述三類權限受保護的主體,不論是鏈級參數、合約接口或區塊鏈賬號,都是一個區塊鏈系統中全局的概念,因此上述三類權限控制機制在區塊鏈系統中所有的節點上,都是以相同的方式運作的。

節點權限相比上述三類權限來說,是一個單點的概念。理論上一個區塊鏈系統中的節點只需要滿足特定的協議,可以用不同的方式來實現,也可以對客戶端提供不同的接口。節點權限所保護的資源對象就是實現區塊鏈節點協議的服務器端對其客戶端暴露的接口,確保接口不可以被隨意訪問。

【權限管理模型】

介紹了權限體系所保護的資源,下面將介紹權限管理模型:如何進行授權和鑑權。

目前在區塊鏈系統中使用權限管理模型有多種,例如基於公鑰密碼學的權限管理模型、基於鏈下多重簽名的權限管理模型、基於提案投票的權限管理模型、基於角色的權限管理模型等,在實際區塊鏈系統設計和實現中,往往會使用多個權限管理模型組合形成其權限體系,此處主要介紹基於提案投票的權限管理模型。

▲基於提案投票的權限管理模型

基於提案投票的權限管理模型:通過在內置智能合約或在業務智能合約中設計一套提案投票機制來保護特定資源的機制。在整個體系中包含兩方面要素,參與者管理與提案投票管理。

參與者管理:管理有哪些用戶可以參與提案投票管理,此處則是基於角色的權限管理模型來對參與者進行管理的;

提案投票管理則:訪問受保護資源必須以提案的形式發起交易,然後由參與者發起投票交易,通過投票來決定提案是否能夠被執行。

基於提案投票的權限管理模型初始化時,需要初始化投票系統的狀態,並且記錄在區塊鏈賬本上。

首先,要進行的是參與者的初始化,包括初始化所有可以參與投票的參與者的標識符和參與者的投票權重。

然後是投票機制參數的初始化,包括同意票閾值、反對票閾值、提案失效條件等。一般來說,提案需要一個最長有效期,這個有效期可以通過區塊高度或交易打包時間來規定,也就是說,一個提案在賬本上成功創建之後,在高度小於一定值或打包時間小於一定值的區塊內才允許被投票或執行。

最後就是資源訪問接口的初始化,一般來說,最通用的做法是將資源的訪問接口以類似RPC接口註冊的方式註冊為一個可以通過提案投票機制調用的接口。值得注意的是,通常可以將參與者與提案投票的參數變更接口註冊為提案可訪問的資源,實現系統的自維護。

基於提案投票的權限管理模型的授權鑑權流程如下圖所示,訪問系統資源主要有以下三個需要用戶操作的環節:

圖片

基於提案投票的權限管理模型的授權鑑權流程

1) 建議

提案環節,一般需要結合數字簽名來證明提案的發起者在參與者列表中。此外,發起提案需要將資源接口調用所需要的參數全部包含在交易參數中發到區塊鏈系統上。提案交易執行時,一般會嵌入檢查條件來檢查是否能夠進行提案創建。通過檢查後,調用參數將包含在提案數據中存放在區塊鏈賬本上,供後續使用。當提案產生之後,可以通過多種交互機制來通知所有參與者,如消息隊列或客戶端輪詢等。

2) 投票

提案創建之後,參與者通過各自的手段獲取到提案信息,並根據自己對調用的認可情況來選擇是否使用密鑰簽署投票交易,對提案發起同意票或反對票。區塊鏈系統執行時會在賬本上記錄參與者的投票信息。

3)執行

當提案的同意票達到要求的閾值,參與者就可以使用密鑰簽署執行交易來使提案生效了。具體方法是從賬本上讀出資源調用參數,然後進行調用。

上述環節描述了基於提案投票的權限管理模型初始化和運作的一般機制,具體在區塊鏈系統實現中,一般基於該模型做一定程度的簡化或擴展。例如,可能會合併其中的投票和請求執行的步驟,以實現自動執行;還可以根據對提案執行順序的要求引入一些順序保障機制等。在該模型中,授權涉及初始化、提案、投票三個過程;鑑權則是通過執行提案時檢查同意票是否達到閾值來進行。

【小結】

本文從權限體系的三個部分入手,根據權限體係受保護資源對區塊鏈系統的影響層級範圍,介紹了在區塊鏈系統中不同範圍的受保護資源,並闡述了一種用於授權和鑑權的權限管理模型——基於提案投票的權限管理模型。後續我們還會對基於提案投票的權限管理模型是如何對鏈級權限進行管理的進行詳細介紹。

作者簡介

劉明美趣鏈科技基礎平台部區塊鍊網絡研究小組

展開全文打開碳鏈價值APP 查看更多精彩資訊

Total
0
Shares
Related Posts