基於區塊鏈的資料授權方法及裝置
本說明書一個或多個實施例涉及區塊鏈技術領域,尤其涉及一種基於區塊鏈的資料授權方法及裝置。
區塊鏈技術(也被稱之為,分散式帳本技術)是一種去中性化的分散式資料庫技術,具有去中心化、公開透明、不可竄改、可信任等多種特點,適用於諸多對資料可靠性具有高需求的應用場景中。
有鑑於此,本說明書一個或多個實施例提供一種基於區塊鏈的資料授權方法及裝置。
為實現上述目的,本說明書一個或多個實施例提供技術方案如下:
根據本說明書一個或多個實施例的第一方面,提出了一種基於區塊鏈的資料授權方法,包括:
區塊鏈節點接收隱私計算平臺提交的鑒權交易,所述鑒權交易用於詢問資料使用方是否已獲得對資料所有方持有的目標資料的授權;
所述區塊鏈節點執行所述鑒權交易呼叫的資料授權智慧合約,所述資料授權智慧合約用於在確認所述資料使用方已獲得授權時,向所述隱私計算平臺提供授權符記,以指示所述隱私計算平臺獲取所述目標資料,並將所述目標資料及/或對所述目標資料執行預設運算後得到的運算結果發送至所述資料使用方。
根據本說明書一個或多個實施例的第二方面,提出了一種基於區塊鏈的資料授權方法,包括:
隱私計算平臺接收資料使用方發起的資料獲取請求,所述資料獲取請求對應於資料所有方持有的目標資料;
所述隱私計算平臺向區塊鏈提交鑒權交易,所述鑒權交易用於詢問所述資料使用方是否已獲得對所述目標資料的授權;
所述隱私計算平臺獲取由所述鑒權交易呼叫的資料授權智慧合約發出的授權符記;
當所述授權符記表明所述資料使用方獲得了對所述目標資料的授權時,所述隱私計算平臺獲取所述目標資料,以將所述目標資料及/或對所述目標資料執行預設運算後得到的運算結果返回至所述資料使用方。
根據本說明書一個或多個實施例的第三方面,提出了一種基於區塊鏈的資料授權裝置,包括:
接收單元,使區塊鏈節點接收隱私計算平臺提交的鑒權交易,所述鑒權交易用於詢問資料使用方是否已獲得對資料所有方持有的目標資料的授權;
執行單元,使所述區塊鏈節點執行所述鑒權交易呼叫的資料授權智慧合約,所述資料授權智慧合約用於在確認所述資料使用方已獲得授權時,向所述隱私計算平臺提供授權符記,以指示所述隱私計算平臺獲取所述目標資料,並將所述目標資料及/或對所述目標資料執行預設運算後得到的運算結果發送至所述資料使用方。
根據本說明書一個或多個實施例的第四方面,提出了一種基於區塊鏈的資料授權裝置,包括:
接收單元,使隱私計算平臺接收資料使用方發起的資料獲取請求,所述資料獲取請求對應於資料所有方持有的目標資料;
詢問單元,使所述隱私計算平臺向區塊鏈提交鑒權交易,所述鑒權交易用於詢問所述資料使用方是否已獲得對所述目標資料的授權;
獲取單元,使所述隱私計算平臺獲取由所述鑒權交易呼叫的資料授權智慧合約發出的授權符記;
返回單元,當所述授權符記表明所述資料使用方獲得了對所述目標資料的授權時,使所述隱私計算平臺獲取所述目標資料,以將所述目標資料及/或對所述目標資料執行預設運算後得到的運算結果返回至所述資料使用方。
根據本說明書一個或多個實施例的第五方面,提出了一種電子設備,包括:
處理器;
用於儲存處理器可執行指令的記憶體;
其中,所述處理器透過運行所述可執行指令以實現如第一方面所述的方法。
根據本說明書一個或多個實施例的第六方面,提出了一種電腦可讀儲存媒介,其上儲存有電腦指令,該指令被處理器執行時實現如第一方面所述方法的步驟。
根據本說明書一個或多個實施例的第七方面,提出了一種電子設備,包括:
處理器;
用於儲存處理器可執行指令的記憶體;
其中,所述處理器透過運行所述可執行指令以實現如第二方面所述的方法。
根據本說明書一個或多個實施例的第八方面,提出了一種電腦可讀儲存媒介,其上儲存有電腦指令,該指令被處理器執行時實現如第二方面所述方法的步驟。
這裡將詳細地對示例性實施例進行說明,其示例表示在圖式中。下面的描述涉及圖式時,除非另有表示,不同圖式中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式並不代表與本說明書一個或多個實施例相一致的所有實施方式。相反,它們僅是與如所附申請專利範圍中所詳述的、本說明書一個或多個實施例的一些方面相一致的裝置和方法的例子。
需要說明的是:在其他實施例中並不一定按照本說明書示出和描述的順序來執行相應方法的步驟。在一些其他實施例中,其方法所包括的步驟可以比本說明書所描述的更多或更少。此外,本說明書中所描述的單個步驟,在其他實施例中可能被分解為多個步驟進行描述;而本說明書中所描述的多個步驟,在其他實施例中也可能被合併為單個步驟進行描述。
圖1是一示例性實施例提供的一種示例環境的示意圖。如圖1所示,示例環境100允許實體參與區塊鏈網路102。區塊鏈網路102可以為公有類型、私有類型或聯盟類型的區塊鏈網路。示例環境100可以包括計算設備104、106、108、110、112和網路114;在一實施例中,網路114可以包括區域網路(Local Area Network,LAN)、廣域網(Wide Area Network,WAN)、網際網路或其組合,並連接至網站、用戶設備(例如計算設備)和後端系統。在一實施例中,可以透過有線及/或無線通訊方式存取網路114。
在某些情況下,計算設備106、108可以是雲端計算系統的節點(未顯示),或者每個計算設備106、108可以是單獨的雲端計算系統,包括由網路互連並作為分散式處理系統工作的多台電腦。
在一實施例中,計算設備104~108可以運行任何適當的計算系統,使其能夠作為區塊鏈網路102中的節點;例如,計算設備104~108可以包括但不限於伺服器、桌上型電腦、筆記型電腦、平板電腦計算設備和智慧手機。在一實施例中,計算設備104~108可以歸屬於相關實體並用於實現相應的服務,例如該服務可以用於對某一實體或多個實體之間的交易進行管理。
在一實施例中,計算設備104~108分別儲存有區塊鏈網路102對應的區塊鏈帳本。計算設備104可以是(或包含)用於提供瀏覽器功能的網路伺服器,該網路伺服器可基於網路114提供與區塊鏈網路102相關的可視化資訊。在一些情況下,計算設備104可以不參與區塊驗證,而是監控區塊鏈網路102以確定其他節點(譬如可以包括計算設備106-108)何時達成共識,並據此產生相應的區塊鏈可視化用戶介面。
在一實施例中,計算設備104可接收客戶端設備(例如計算設備110或計算設備112)針對區塊鏈可視化用戶介面發起的請求。在一些情況下,區塊鏈網路102的節點也可以作為客戶端設備,比如計算設備108的用戶可以使用運行在計算設備108上的瀏覽器向計算設備104發送上述請求。
響應於上述請求,計算設備104可以基於儲存的區塊鏈帳本產生區塊鏈可視化用戶介面(如網頁),並將產生的區塊鏈可視化用戶介面發送給請求的客戶端設備。如果區塊鏈網路102是私有類型或聯盟類型的區塊鏈網路,對區塊鏈可視化用戶介面的請求可以包括用戶授權資訊,在產生區塊鏈可視化用戶介面併發送給請求的客戶端設備之前,可以由計算設備104對該用戶授權資訊進行驗證,並在驗證通過後返回相應的區塊鏈可視化用戶介面。
區塊鏈可視化用戶介面可以顯示在客戶端設備上(例如可顯示在圖1所示的用戶介面116中)。當區塊鏈帳本發生更新時,用戶介面116的顯示內容也可以隨之發生更新。此外,用戶與用戶介面116的交互可能導致對其他用戶介面的請求,例如顯示區塊列表、區塊詳情、交易列表、交易詳情、帳戶列表、帳戶詳情、合約列表、合約詳情或者用戶對區塊鏈網路實施搜索而產生的搜索結果頁面等。
圖2是一示例性實施例提供的一種概念架構的示意圖。如圖2所示,該概念架構200包括實體層202、託管服務層204和區塊鏈網路層206。例如,實體層202可以包括三個實體:實體1、實體2和實體3,每個實體都有各自的交易管理系統208。
在一實施例中,託管服務層204可以包括每個事務管理系統208對應的介面210。例如,各個事務管理系統208使用協定(例如超文本傳輸協定安全(HTTPS)等)透過網路(例如圖1中的網路114)與各自的介面210通訊。在一些例子中,每個介面210可以提供各自對應的交易管理系統208與區塊鏈網路層206之間的通訊連接;更具體地,介面210可與區塊鏈網路層206的區塊鏈網路212通訊。在一些例子中,介面210和區塊鏈網路層206之間的通訊可以使用遠端過程呼叫(Remote Procedure Calls,RPCs)而實現。在一些例子中,介面210可以向交易管理系統208提供用於存取區塊鏈網路212的API介面。
如本文所述,區塊鏈網路212以對等網路的形式提供,該對等網路包括多個節點214,這些節點214分別用於對塊鏈資料所形成的區塊鏈帳本216進行持久化;其中,圖2中僅示出了一份區塊鏈帳本216,但區塊鏈網路212中可以存在多份區塊鏈帳本216或其副本,比如每一節點214可以分別維護一份區塊鏈帳本216或其副本。
需要指出的是:在本說明書中所描述的交易(transaction),是指用戶透過區塊鏈的客戶端創建,並需要最終發佈至區塊鏈的分散式資料庫中的一筆資料。其中,區塊鏈中的交易,存在狹義的交易以及廣義的交易之分。狹義的交易是指用戶向區塊鏈發佈的一筆價值轉移;例如,在傳統的比特幣區塊鏈網路中,交易可以是用戶在區塊鏈中發起的一筆轉帳。而廣義的交易是指用戶向區塊鏈發佈的一筆具有業務意圖的業務資料;例如,運營方可以基於實際的業務需求搭建一個聯盟鏈,依託於聯盟鏈部署一些與價值轉移無關的其它類型的線上業務(比如,租房業務、車輛調度業務、保險理賠業務、信用服務、醫療服務等),而在這類聯盟鏈中,交易可以是用戶在聯盟鏈中發佈的一筆具有業務意圖的業務訊息或者業務請求。
區塊鏈一般被劃分為三種類型:公有鏈(Public Blockchain),私有鏈(Private Blockchain)和聯盟鏈(Consortium Blockchain)。此外,還有多種類型的結合,比如私有鏈+聯盟鏈、聯盟鏈+公有鏈等不同組合形式。其中去中心化程度最高的是公有鏈。公有鏈以比特幣、以太坊為代表,加入公有鏈的參與者可以讀取鏈上的資料記錄、參與交易以及競爭新區塊的記帳權等。而且,各參與者(即節點)可自由加入以及退出網路,並進行相關操作。私有鏈則相反,該網路的寫入權限由某個組織或者機構控制,資料讀取權限受組織規定。簡單來說,私有鏈可以為一個弱中心化系統,參與節點具有嚴格限制且少。這種類型的區塊鏈更適合於特定機構內部使用。聯盟鏈則是介於公有鏈以及私有鏈之間的區塊鏈,可實現“部分去中心化”。聯盟鏈中各個節點通常有與之相對應的實體機構或者組織;參與者透過授權加入網路並組成利益相關聯盟,共同維護區塊鏈運行。
不論是公有鏈、私有鏈或是聯盟鏈,本說明書均可以透過在區塊鏈網路與鏈下的隱私計算平臺之間實現協同,從而在資料所有方與資料使用方之間實現安全的端到端資料授權。下面結合實施例對本說明書的技術方案進行描述。
圖3是一示例性實施例提供的一種基於區塊鏈的資料授權方法的流程圖。如圖3所示,該方法應用於區塊鏈節點,可以包括以下步驟:
步驟302,區塊鏈節點接收隱私計算平臺提交的鑒權交易,所述鑒權交易用於詢問資料使用方是否已獲得對資料所有方持有的目標資料的授權。
隱私計算平臺可以直接在上述區塊鏈節點上產生鑒權交易;或者,隱私計算平臺可以在客戶端上產生鑒權交易,並透過客戶端將該鑒權交易發送至上述區塊鏈節點;或者,隱私計算平臺可以在客戶端上產生鑒權交易後,將該鑒權交易發送至另一區塊鏈節點,並由該另一區塊鏈節點將該鑒權交易發送至上述區塊鏈節點。當然,在上述鑒權交易透過共識後,該鑒權交易會被傳輸至區塊鏈網路中的所有區塊鏈節點,並分別由各個區塊鏈節點執行該鑒權交易。
雖然隱私計算平臺可以隨時提交鑒權交易,以向區塊鏈節點詢問資料使用方的授權狀態,但隱私計算平臺的操作通常由資料使用方所觸發。例如,當資料使用方向隱私計算平臺請求獲取上述的目標資料時,隱私計算平臺向區塊鏈節點提交鑒權交易,以確定資料使用方是否具有對該目標資料的授權。
一般的,採用工作量證明(Proof of Work, POW)以及股權證明(Proof of Stake,POS)、委任權益證明(Delegated Proof of Stake,DPOS)等共識算法的區塊鏈網路中,爭奪記帳權的節點都可以在接收到區塊鏈交易後執行該區塊鏈交易。爭奪記帳權的節點中可能其中一個在本輪爭奪記帳權的過程中勝出,成為記帳節點。以上述的鑒權交易為例,記帳節點可以將該鑒權交易與其它交易一起打包並產生新的區塊,並將產生的新的區塊發送至其它節點進行共識。
對於採用實用拜占庭容錯(Practical Byzantine Fault Tolerance,PBFT)等機制的區塊鏈網路中,具有記帳權的節點在本輪記帳前已經商定好。因此,上述區塊鏈節點接收到鑒權交易後,如果自身不是本輪的記帳節點,則可以將該鑒權交易發送至記帳節點。對於本輪的記帳節點(可以是上述的區塊鏈節點),在將該鑒權交易打包並產生新區塊的過程中或者之前,或在將該鑒權交易與其它交易一起打包並產生新區塊的過程中或者之前,可以執行該鑒權交易。所述記帳節點將該鑒權交易打包(或還包括其它交易一起打包)並產生新的區塊後,將產生的新的區塊或者區塊頭發送至其它節點進行共識。
如上所述,採用POW機制的區塊鏈網路中,或者採用POS、DPOS、PBFT機制的區塊鏈網路中,本輪的記帳節點都可以將鑒權交易打包並產生新的區塊,並將產生的新的區塊後區塊頭發送至其它節點進行共識。如果其它節點接收到所述區塊後經驗證沒有問題,可以將該新的區塊追加到原有的區塊鏈末尾,從而完成記帳過程,達成共識;其中,若鑒權交易用於呼叫資料授權智慧合約,則完成了對該資料授權智慧合約的呼叫和執行。其它節點驗證記帳節點發來的新的區塊或區塊頭的過程中,也可以執行所述區塊中的鑒權交易。
步驟304,所述區塊鏈節點執行所述鑒權交易呼叫的資料授權智慧合約,所述資料授權智慧合約用於在確認所述資料使用方已獲得授權時,向所述隱私計算平臺提供授權符記,以指示所述隱私計算平臺獲取所述目標資料,並將所述目標資料及/或對所述目標資料執行預設運算後得到的運算結果發送至所述資料使用方。
不論是公有鏈、私有鏈或是聯盟鏈,都可能提供智慧合約的功能。區塊鏈上的智慧合約是在區塊鏈系統上可以被交易觸發執行的合約。智慧合約可以透過代碼的形式定義。以以太坊為例,支援用戶在以太坊網路中創建並呼叫一些複雜的邏輯,這是以太坊區別於比特幣區塊鏈技術的最大挑戰。以太坊作為一個可程式化區塊鏈的核心是以太坊虛擬機(EVM),每個以太坊節點都可以運行EVM。EVM是一個圖靈完備的虛擬機,這意味著可以透過它實現各種複雜的邏輯。用戶在以太坊中發佈和呼叫智慧合約就是在EVM上運行的。
資料授權智慧合約被創建後,在區塊鏈上形成相應的合約帳戶,該合約帳戶存在特定的合約地址。鑒權交易可以在諸如該鑒權交易的to欄位包含上述的合約地址,以呼叫資料授權智慧合約。如前所述,區塊鏈網路中的所有區塊鏈節點之間完成共識後,每個區塊鏈節點分別接收到鑒權交易、讀取該鑒權交易的to欄位並呼叫上述的資料授權智慧合約,具體是指將資料授權智慧合約的代碼讀入區塊鏈節點上的EVM中予以執行。
資料授權智慧合約可以包含對應的授權方名單,以用於記錄對資料所有方持有的資料已獲得授權的對象資訊,即授權方的資訊。那麼,如果資料授權智慧合約確認資料使用方位於授權方名單內,則可以確認該資料使用方已獲得授權。基於授權方名單的管理方式,可以對資料所有方所持有的全部資料進行一次性授權,並且即便資料所有方所持有的資料發生增加或減少時,也不會影響授權方名單的內容,即能夠兼容資料所有方所持有資料的更新。
在資料授權智慧合約被創建時,授權方名單的資訊可以被寫入合約代碼中,使得該授權方名單的內容不可更改。那麼,可能需要對資料授權智慧合約進行替換或版本迭代,以實現對授權方名單的更新。或者,資料授權智慧合約可以存在對應的一個或多個狀態,區塊鏈節點上可以維護該一個或多個狀態的取值,當狀態的取值為授權方的資訊時,該一個或多個狀態相當於上述的授權方名單;其中,資料所有方可以透過向區塊鏈網路中提交區塊鏈交易,該區塊鏈交易可以呼叫資料授權智慧合約中定義的授權介面,使得授權方名單的內容可以在資料授權智慧合約被執行後發生更新,而無需對資料授權智慧合約進行替換或版本迭代。或者,資料授權智慧合約可以呼叫另一智慧合約,該另一智慧合約的代碼或狀態可以用於記錄授權方名單;其中,如果授權方名單被不可更改地寫入該另一智慧合約的代碼中,那麼在需要對授權方名單進行更新時,可以創建新的智慧合約、該新的智慧合約的代碼中包含更新後的授權方名單,然後由資料授權智慧合約呼叫新的智慧合約的合約地址即可(被呼叫的合約地址可以作為資料授權智慧合約的一個狀態,該狀態的取值可以發生變化);而如果授權方名單被寫入上述另一智慧合約對應的狀態中,那麼如前所述只需要對狀態的取值進行更新,即可實現授權方名單的更新,而資料授權智慧合約所呼叫的合約地址也無需更新,該合約地址既可以固定寫入資料授權智慧合約的代碼中,也可以寫入資料授權智慧合約的一個狀態中。
區塊鏈節點可以協助資料使用方臨時向資料所有方請求獲取授權。例如,資料使用方可以向區塊鏈網路中提交授權請求交易,該授權請求交易呼叫上述資料授權智慧合約中定義的請求介面,使得區塊鏈節點執行該授權請求交易後,可以透過呼叫資料授權智慧合約中定義的請求介面,使資料授權智慧合約在交易日誌中寫入授權請求事件。然後,資料所有方可以透過事件監聽回呼機制,在監聽到交易日誌中寫入的上述授權請求事件時做出響應。例如,當確定資料使用方能夠獲得授權時,資料所有方可以向區塊鏈網路提交授權確認交易,該授權確認交易呼叫上述資料授權智慧合約中定義的授權介面,使得區塊鏈節點執行該授權確認交易後,可以透過呼叫資料授權智慧合約中定義的授權介面,使資料授權智慧合約將資料使用方標記為已獲得授權。那麼,資料使用方通常是在鑒權交易被提交之前,預先透過上述的授權請求交易獲得授權;當然,鑒權交易在執行過程中可以等待預設時長,使得資料使用方可以在該預設時長的時間段內提交上述的授權請求交易。再例如,資料使用方無需單獨提交上述的授權請求交易,如果區塊鏈節點在執行鑒權交易的過程中,透過資料授權智慧合約確定資料使用方未獲得對目標資料的授權,那麼鑒權交易還可以呼叫該資料授權智慧合約的請求介面,使資料授權智慧合約在交易日誌中寫入授權請求事件,以及透過前述過程向資料所有方臨時請求授權,此處不再贅述。如果由鑒權交易對資料授權智慧合約的請求介面進行呼叫,那麼臨時請求授權的過程將無需資料使用方參與,即對於資料使用方而言是透明的,不僅可以簡化資料使用方的操作,還有助於優化資料使用方的體驗。
其中,資料授權智慧合約將資料使用方標記為已獲得授權,一種情況下可以是將資料使用方添加至授權方名單中,其添加過程如前文所述、此處不再贅述,那麼只要資料使用方處於授權方名單內,即可隨時請求獲取資料所有方持有的資料,相當於資料使用方獲得了長期授權;另一種情況下,資料授權智慧合約只是確認資料使用方的本次操作獲得了授權,使得資料授權智慧合約在完成授權符記的發出操作後,即可取消資料使用方的已授權狀態,使資料使用方下次需要重新向資料所有方請求授權,才能夠再次獲得授權符記。雖然相比於上述的後一種情況而言,授權方名單屬一種長期授權,但是並不一定意味著永久授權。例如,資料所有方可以透過更新授權方名單,將一個或多個授權方剔除、使其失去授權;再例如,授權方名單中的每一授權方可以存在一定數值的剩餘授權時長及/或剩餘授權次數,譬如資料授權智慧合約可以在完成授權符記的發出操作後,遞減資料使用方對應的剩餘授權時長及/或剩餘授權次數,那麼當剩餘授權時長或剩餘授權次數清零時,相應的授權方可以被自動從授權方名單中剔除,相當於對授權方名單內的授權方實施的“老化”機制。
資料使用方可以在授權請求交易中包含目標資料的資訊,或者隱私計算平臺可以在鑒權交易中包含目標資料的資訊,使得該目標資料的資訊可以被進一步寫入交易日誌中的授權請求事件內,以由資料所有方獲知資料使用方所希望獲得的授權範圍;如果授權請求交易或鑒權交易中並未包含任何資料的資訊,則表明資料使用方請求獲取資料所有方持有的全部資料的授權。相應地,資料所有方可以在授權確認交易中添加目標資料的資訊,以表明針對該目標資料向資料使用方賦予授權;如果資料所有方提交的授權確認交易中並未包含任何資料的資訊,則表明資料所有方向資料使用方開放了所有資料的授權。因此,在一些情況下,鑒權交易中包含的目標資料的資訊可能與其所獲得的授權範圍(即獲得了針對哪些資料的授權)不一致,此時可能導致最終無法成功獲得目標資料。
鑒權交易中可以包含目標資料的描述資訊,比如該目標資料的雜湊值或其他任意描述資訊,只要能夠指向目標資料即可。例如,該目標資料的描述資訊可以包含於資料獲取交易的data欄位中;當鑒權交易呼叫資料授權智慧合約時,data欄位中的內容可以作為該資料授權智慧合約的輸入資訊。相應地,資料授權智慧合約在產生授權符記時,可以在授權符記中包含目標資料的描述資訊,使得授權符記僅用於獲得該描述資訊對應的上述目標資料,而非其他資料。當然,鑒權交易中可以不包含目標資料的描述資訊,而僅包含資料所有方的資訊,使得相應產生的授權符記可以用於獲得資料所有方的任意資料,但隱私計算平臺僅會基於該授權符記獲得資料使用方指明的目標資料。
目標資料可以存證於區塊鏈上,譬如儲存於區塊鏈節點維護的資料庫中。為了避免洩露目標資料,通常需要對目標資料進行加密後儲存。例如,資料所有方可以向區塊鏈網路中提交存證交易,該存證交易中包含加密後目標資料,使得區塊鏈節點在收到存證交易後,可以對該存證交易中包含的加密後目標資料進行儲存,其中加密後目標資料由資料所有方的公鑰對目標資料進行加密後得到;相應地,資料所有方的私鑰可以被託管於隱私計算平臺處,使得隱私計算平臺可以從區塊鏈節點維護的資料庫中讀取加密後目標資料,並基於託管的資料所有方的私鑰實施解密,以解密得到上述的目標資料。再例如,資料所有方可以向區塊鏈網路中提交隱私存證交易,該隱私存證交易的交易內容處於加密狀態(可採用對稱加密、非對稱加密或數位信封加密等方式實現)且該交易內容包含目標資料,使得區塊鏈節點可以在可信執行環境中解密得到該隱私存證交易的交易內容、得到目標資料,並採用資料所有方的公鑰在可信執行環境中對目標資料進行加密,得到加密後目標資料,以儲存於區塊鏈節點對應的資料庫中;相應地,資料所有方的私鑰可以被託管於隱私計算平臺處,以使隱私計算平臺獲得加密後目標資料後,可以透過該私鑰解密得到上述的目標資料。又例如,目標資料可以由區塊鏈節點在可信執行環境中執行某一區塊鏈交易(比如資料所有方提交的存證交易)的過程中產生,而區塊鏈節點可以採用資料所有方的公鑰在可信執行環境中對產生的目標資料進行加密,得到加密後目標資料,以儲存於區塊鏈節點對應的資料庫中;相應地,資料所有方的私鑰可以被託管於隱私計算平臺處,以使隱私計算平臺獲得加密後目標資料後,可以透過該私鑰解密得到上述的目標資料。
如前所述,對於目標資料的加密處理,可以結合可信執行環境(Trusted Execution Environment,TEE)來實現;由於目標資料可以為資料使用方所請求、資料所有方持有的任意資料,即資料所有方持有的任意資料均可以採用類似的方式實現加密處理。TEE是基於CPU硬體的安全擴展,且與外部完全隔離的可信執行環境。TEE最早是由Global Platform提出的概念,用於解決行動設備上資源的安全隔離,平行於操作系統為應用程式提供可信安全的執行環境。例如,英特爾的軟體保護擴展(SGX)等TEE技術隔離了代碼執行、遠端證明、安全配置、資料的安全儲存以及用於執行代碼的可信路徑。在TEE中運行的應用程式受到安全保護,幾乎不可能被第三方存取。
以Intel SGX技術為例。區塊鏈節點利用CPU中新增的處理器指令,在內部記憶體中可以分配一部分區域EPC(Enclave Page Cache,圍圈頁面緩存或飛地頁面緩存),將EVM加載至EPC中,並透過遠端證明確認所加載EVM的代碼與密鑰管理伺服器處EVM的代碼一致(例如比較hash值)。在遠端證明通過後,區塊鏈節點透過CPU內的加密引擎MEE(Memory Encryption Engine)對上述目標資料進行加密存入所述EPC中。EPC中加密的內容只有進入CPU後才能夠被解密成明文。在CPU中,對明文的目標資料進行加密,得到加密後目標資料,以儲存於區塊鏈節點對應的資料庫中;類似地,區塊鏈節點可以在TEE中對加密後目標資料進行解密。而響應於隱私計算平臺提交的鑒權交易,區塊鏈節點同樣可以在可信執行環境中執行資料授權智慧合約,以在可信執行環境中產生授權符記。因此,透過在TEE中對目標資料進行加解密以及執行資料授權智慧合約的代碼,可以確保提供安全可靠的環境,避免受到外界因素的干擾。
除了存證於區塊鏈節點的資料庫之外,目標資料可由資料所有方儲存於鏈下通道,而區塊鏈節點僅儲存目標資料的數位摘要,譬如該數位摘要可以為目標資料的雜湊值。那麼,隱私計算平臺可以向鏈下通道獲取目標資料,並將目標資料及/或運算結果提供至資料使用方。
隱私計算平臺在獲得目標資料後,可以將目標資料直接提供至資料使用方。或者,隱私計算平臺在獲得目標資料後,可以對目標資料執行預設運算,並將運算結果提供至資料使用方。該預設運算可以為資料使用方希望採用的任意運算,本說明書並不對此進行限制。例如,資料使用方向隱私計算平臺發起資料獲取請求時,可以在資料獲取請求中指明所需採用的運算規則。隱私計算平臺獲知上述預設運算的運算規則後,可基於該運算規則對目標資料實施預設運算,從而得到相應的運算結果並提供在資料使用方。當目標資料經由上述的預設運算得到相應的運算結果時,如果資料使用方無法由運算結果反推出目標資料的取值,就可以在滿足資料使用方的資料獲取需求的情況下,避免資料使用方直接獲得目標資料,防止資料使用方對該目標資料造成外洩而侵犯資料所有方的權益,確保目標資料始終僅由資料所有方持有。
資料所有方持有的各個資料之間,可以存在不同的隱私級別;相應地,不同隱私級別的資料可以具有差異化的處理方式。例如,資料所有方可以分別持有隱私級別相對較低的資料和隱私級別相對較高的資料,即低隱私級別的資料和高隱私級別的資料;相應地,當目標資料屬低隱私級別時,該目標資料可以被提供至資料使用方,即資料所有方不關注低隱私級別的資料是否會發生外洩,而當目標資料屬高隱私級別時,目標資料需要被執行預設運算,以使相應的運算結果被提供至資料使用方,以確保高隱私級別的資料不會發生外洩。如果目標資料同時包含低隱私級別和高隱私級別的資料時,可以將低隱私級別的目標資料直接提供至資料使用方、將高隱私級別的目標資料經由預設運算後將運算結果提供至資料使用方;或者,可以將所有目標資料一併實施預設運算後,將運算結果提供至資料使用方。
出於對目標資料及/或運算結果的保護,隱私計算平臺可以透過自身與資料使用方之間建立的資料通道(譬如加密資料通道)實現對目標資料及/或運算結果的傳輸。或者,隱私計算平臺可以對目標資料及/或運算結果進行加密傳輸。在實施加密傳輸時,隱私計算平臺可以採用資料使用方的公鑰對目標資料及/或運算結果進行加密並傳輸至資料使用方,而資料使用方可以透過自身的私鑰進行解密,以得到明文形式的目標資料及/或運算結果;或者,上述的授權符記可以包含臨時會話密鑰,而目標資料及/或運算結果可以經由臨時會話密鑰加密後,由隱私計算平臺傳輸至資料使用方。其中,授權符記可以包括第一欄位和第二欄位,該第一欄位的內容由資料使用方對應的第一密鑰(如資料使用方的公鑰)對臨時會話密鑰進行加密得到,該第二欄位的內容由隱私計算平臺對應的第二密鑰(如隱私計算平臺的公鑰)對臨時會話密鑰進行加密得到,使得資料使用方、隱私計算平臺可以分別從授權符記中解密得到臨時會話密鑰,從而基於對稱加密方案對目標資料及/或運算結果進行加密傳輸。
相應地,圖4是一示例性實施例提供的另一種基於區塊鏈的資料授權方法的流程圖。如圖4所示,該方法應用於隱私計算平臺,可以包括以下步驟:
步驟402,隱私計算平臺接收資料使用方發起的資料獲取請求,所述資料獲取請求對應於資料所有方持有的目標資料。
步驟404,所述隱私計算平臺向區塊鏈提交鑒權交易,所述鑒權交易用於詢問所述資料使用方是否已獲得對所述目標資料的授權。
如前所述,資料使用方可以向隱私計算平臺請求獲取上述的目標資料,而隱私計算平臺可以透過向區塊鏈網路提交鑒權交易,驗證資料使用方的授權狀態。其中,隱私計算平臺可以直接在上述區塊鏈節點上產生鑒權交易;或者,隱私計算平臺可以在客戶端上產生鑒權交易,並透過客戶端將該鑒權交易發送至上述區塊鏈節點;或者,隱私計算平臺可以在客戶端上產生鑒權交易後,將該鑒權交易發送至另一區塊鏈節點,並由該另一區塊鏈節點將該鑒權交易發送至上述區塊鏈節點。當然,在上述鑒權交易通過共識後,該鑒權交易會被傳輸至區塊鏈網路中的所有區塊鏈節點,並分別由各個區塊鏈節點執行該鑒權交易。
步驟406,所述隱私計算平臺獲取由所述鑒權交易呼叫的資料授權智慧合約發出的授權符記。
透過區塊鏈網路上的資料授權智慧合約,對資料使用方進行身分識別或權限驗證,而隱私計算平臺只需要識別授權符記、無需關注於資料使用方的身分或權限。其中,資料授權智慧合約確定資料所有方是否已獲得授權的過程,可以參考圖3所示的實施例,此處不再贅述。
步驟408,當所述授權符記表明所述資料使用方獲得了對所述目標資料的授權時,所述隱私計算平臺獲取所述目標資料,以將所述目標資料及/或對所述目標資料執行預設運算後得到的運算結果返回至所述資料使用方。
目標資料可以存證於區塊鏈上,譬如儲存於區塊鏈節點維護的資料庫中。為了避免洩露目標資料,通常需要對目標資料進行加密後儲存。例如,資料所有方可以向區塊鏈網路中提交存證交易,該存證交易中包含加密後目標資料,使得區塊鏈節點在收到存證交易後,可以對該存證交易中包含的加密後目標資料進行儲存,其中加密後目標資料由資料所有方的公鑰對目標資料進行加密後得到;相應地,資料所有方的私鑰可以被託管於隱私計算平臺處,使得隱私計算平臺可以從區塊鏈節點維護的資料庫中讀取加密後目標資料,並基於託管的資料所有方的私鑰實施解密,以解密得到上述的目標資料。再例如,資料所有方可以向區塊鏈網路中提交隱私存證交易,該隱私存證交易的交易內容處於加密狀態(可採用對稱加密、非對稱加密或數位信封加密等方式實現)且該交易內容包含目標資料,使得區塊鏈節點可以在可信執行環境中解密得到該隱私存證交易的交易內容、得到目標資料,並採用資料所有方的公鑰在可信執行環境中對目標資料進行加密,得到加密後目標資料,以儲存於區塊鏈節點對應的資料庫中;相應地,資料所有方的私鑰可以被託管於隱私計算平臺處,以使隱私計算平臺獲得加密後目標資料後,可以透過該私鑰解密得到上述的目標資料。又例如,目標資料可以由區塊鏈節點在可信執行環境中執行某一區塊鏈交易(比如資料所有方提交的存證交易)的過程中產生,而區塊鏈節點可以採用資料所有方的公鑰在可信執行環境中對產生的目標資料進行加密,得到加密後目標資料,以儲存於區塊鏈節點對應的資料庫中;相應地,資料所有方的私鑰可以被託管於隱私計算平臺處,以使隱私計算平臺獲得加密後目標資料後,可以透過該私鑰解密得到上述的目標資料。
除了存證於區塊鏈節點的資料庫之外,目標資料可由資料所有方儲存於鏈下通道,而區塊鏈節點僅儲存目標資料的數位摘要,譬如該數位摘要可以為目標資料的雜湊值。那麼,隱私計算平臺可以向鏈下通道獲取目標資料,並將目標資料及/或運算結果提供至資料使用方。
隱私計算平臺在獲得目標資料後,可以將目標資料直接提供至資料使用方。或者,隱私計算平臺在獲得目標資料後,可以對目標資料執行預設運算,並將運算結果提供至資料使用方。該預設運算可以為資料使用方希望採用的任意運算,本說明書並不對此進行限制。例如,資料使用方向隱私計算平臺發起資料獲取請求時,可以在資料獲取請求中指明所需採用的運算規則。隱私計算平臺獲知上述預設運算的運算規則後,可基於該運算規則對目標資料實施預設運算,從而得到相應的運算結果並提供在資料使用方。當目標資料經由上述的預設運算得到相應的運算結果時,如果資料使用方無法由運算結果反推出目標資料的取值,就可以在滿足資料使用方的資料獲取需求的情況下,避免資料使用方直接獲得目標資料,防止資料使用方對該目標資料造成外洩而侵犯資料所有方的權益,確保目標資料始終僅由資料所有方持有。
資料所有方持有的各個資料之間,可以存在不同的隱私級別;相應地,不同隱私級別的資料可以具有差異化的處理方式。例如,資料所有方可以分別持有隱私級別相對較低的資料和隱私級別相對較高的資料,即低隱私級別的資料和高隱私級別的資料;相應地,當目標資料屬低隱私級別時,該目標資料可以被提供至資料使用方,即資料所有方不關注低隱私級別的資料是否會發生外洩,而當目標資料屬高隱私級別時,目標資料需要被執行預設運算,以使相應的運算結果被提供至資料使用方,以確保高隱私級別的資料不會發生外洩。如果目標資料同時包含低隱私級別和高隱私級別的資料時,可以將低隱私級別的目標資料直接提供至資料使用方、將高隱私級別的目標資料經由預設運算後將運算結果提供至資料使用方;或者,可以將所有目標資料一併實施預設運算後,將運算結果提供至資料使用方。
出於對目標資料及/或運算結果的保護,隱私計算平臺可以透過自身與資料使用方之間建立的資料通道(譬如加密資料通道)實現對目標資料及/或運算結果的傳輸。或者,隱私計算平臺可以對目標資料及/或運算結果進行加密傳輸。在實施加密傳輸時,隱私計算平臺可以採用資料使用方的公鑰對目標資料及/或運算結果進行加密並傳輸至資料使用方,而資料使用方可以透過自身的私鑰進行解密,以得到明文形式的目標資料及/或運算結果;或者,上述的授權符記可以包含臨時會話密鑰,而目標資料及/或運算結果可以經由臨時會話密鑰加密後,由隱私計算平臺傳輸至資料使用方。其中,授權符記可以包括第一欄位和第二欄位,該第一欄位的內容由資料使用方對應的第一密鑰(如資料使用方的公鑰)對臨時會話密鑰進行加密得到,該第二欄位的內容由隱私計算平臺對應的第二密鑰(如隱私計算平臺的公鑰)對臨時會話密鑰進行加密得到,使得資料使用方、隱私計算平臺可以分別從授權符記中解密得到臨時會話密鑰,從而基於對稱加密方案對目標資料及/或運算結果進行加密傳輸。
需要指出的是:本說明書中的由資料所有方持有、資料使用方請求的“資料”應當理解為一種廣義概念,比如數值、文字、圖像、音訊、視訊、代碼、程式、模型(如人工智慧模型)等,本說明書並不對此進行限制。
圖5是一示例性實施例提供的一種基於區塊鏈網路實現的端到端資料授權的示意圖。如圖5所示,假定在區塊鏈網路中存在N1、N2、N3、N4和N5等節點,該區塊鏈網路可以為服務平臺與若干合作方組成的聯盟鏈。例如,在供應鏈金融場景下,節點N1、N2、N4和N5等分別直接或間接對應於若干供應鏈金融企業,節點N3對應於服務平臺,而用戶可以基於該服務平臺獲取各個供應鏈金融企業的目標資料或基於目標資料得到的運算結果;再例如,在發票場景下,節點N1、N2、N4和N5等分別直接或間接對應於若干商家,節點N3對應於服務平臺,而用戶可以基於該服務平臺獲取各個商家開具的發票、發票中的部分資訊或者基於發票資訊得到的運算結果;當然,本說明書的技術方案還可以應用於其他場景,本說明書並不對此進行限制。為了便於理解,下面以發票場景為例進行描述。
假定用戶Ua(可以為個人或者機構)希望獲取商家CC在最近1個月內開具的發票,那麼本說明書的技術方案可使用戶Ua便捷地獲得這些發票,並保障這些發票的安全性。例如,圖6是一示例性實施例提供的一種基於區塊鏈網路實現的端到端資料授權的交互流程圖。如圖6所示,用戶Ua、區塊鏈節點、商家CC與鏈下平臺之間的交互流程可以包括以下步驟:
步驟601,用戶Ua產生授權請求交易,並提交至區塊鏈網路。
用戶Ua使用的計算設備上可以運行客戶端,並基於該客戶端產生授權請求交易,以及提交至區塊鏈網路。或者,用戶Ua可以在客戶端上產生授權請求交易後,將該授權請求交易上傳至某一服務平臺,由該服務平臺將授權請求交易提交至區塊鏈網路。或者,用戶Ua可以向該服務平臺發起授權請求,使得該服務平臺產生授權請求交易,以及提交至區塊鏈網路。
向區塊鏈網路提交授權請求交易的目的,在於請求商家CC向該用戶Ua賦予相關授權,使得用戶Ua可以最終獲得上述的最近1個月內開具的發票。授權請求交易中可以包含資料描述資訊,以描述用戶Ua希望分別向商家CC請求授權的資料,比如該資料描述資訊可以用於描述商家CC最近1個月內開具的發票;相應地,用戶Ua可以據此獲得商家CC最近1個月內開具的發票的授權,但不會獲得其他資料的授權。或者,授權請求交易可以不包含資料描述資訊,表明該用戶Ua希望分別向商家CC請求獲得對所有資料的授權,使得用戶Ua對商家CC持有的所有資料均獲得了授權,包括上述的最近1個月內開具的發票。下面以授權請求交易中包含資料描述資訊為例,對後續步驟進行描述。
授權請求交易最初被提交至區塊鏈網路中的某個節點,譬如圖5所示的節點N3或其他節點。授權請求交易被提交至區塊鏈網路後,可以在各個節點之間進行共識,而經過共識的授權請求交易可以在每個節點上分別執行。共識過程可以採用相關技術中的工作量證明(Proof of Work, POW)、股權證明(Proof of Stake,POS)、委任權益證明(Delegated Proof of Stake,DPOS)、實用拜占庭容錯(Practical Byzantine Fault Tolerance,PBFT)或其他共識機制,本說明書並不對此進行限制。
步驟602,區塊鏈節點透過呼叫智慧合約TT的請求介面,協助用戶Ua獲得資料授權,並在交易日誌中寫入授權請求事件。
經過共識後,區塊鏈網路中的每個節點均需要執行上述的授權請求交易。區塊鏈節點在執行授權請求交易時,透過讀取該授權請求交易在to欄位中填寫的帳戶地址,呼叫智慧合約TT。其中,智慧合約TT的代碼可以在邏輯上形成多個介面,以分別實現不同的功能,而授權請求交易中可以具體指明所需呼叫的介面。譬如,當授權請求交易呼叫了智慧合約TT的請求介面時,可以據此請求獲取相關授權。
例如,授權請求交易中可以包含前述的資料描述資訊,以及用戶Ua的資訊(如用戶Ua的簽名)、商家CC的資訊(如商家CC的公鑰)等,使得智慧合約TT的請求介面被呼叫後,可以在授權請求交易的交易日誌中寫入授權請求事件,該授權請求事件的內容可以包含上述的資料描述資訊、用戶Ua的資訊、商家CC的資訊等,表明用戶Ua希望從商家CC處獲得資料描述資訊對應的目標資料。
步驟603,商家CC監聽授權請求事件。
由於所有區塊鏈節點的操作一致,因而商家CC可以透過存取對應的任意區塊鏈節點,即可基於事件監聽機制獲知上述的授權請求事件,以確定用戶Ua希望從自身處獲取的目標資料。
步驟604,商家CC產生授權確認交易,並提交至區塊鏈網路。
當商家CC同意用戶Ua獲取相關目標資料時,可以分別產生並提交授權確認交易,以表明自身同意向用戶Ua提供諸如最近1個月開具的發票等目標資料。以商家CC為例:在商家CC產生的授權確認交易中,可以包含其自身同意向用戶Ua提供的目標資料對應的資料描述資訊、用戶Ua的公鑰、商家CC的簽名等;或者,授權確認交易中可以包含上述授權請求交易的交易編號等資訊,以表明其同意該授權請求交易的相關請求。
步驟605,區塊鏈節點呼叫智慧合約TT的授權介面,更新用戶Ua的授權狀態,並在交易日誌中寫入授權狀態更新事件。
如前所述,智慧合約TT包含預定義的若干介面。在商家CC提交的授權確認交易中,to欄位可以分別包含智慧合約TT的合約地址,並且可以指明希望呼叫授權介面。而智慧合約TT可以透過運行授權介面對應的代碼,確認商家CC分別同意向用戶Ua賦予對諸如最近1個月開具的發票等目標資料的授權,從而將用戶Ua的授權狀態更新為已授權狀態。如前所述,用戶Ua的已授權狀態可能採用多種形式進行記錄,這取決於智慧合約TT中定義的規則,此處不再贅述。
針對用戶Ua的授權狀態的更新情況,智慧合約TT可以在交易日誌中寫入相應的授權狀態更新事件,以表明用戶Ua已經獲得對於商家CC在最近1個月開具的發票的授權。
步驟606,用戶Ua監聽授權狀態更新事件。
與步驟603相類似的,用戶Ua可以基於事件監聽機制對區塊鏈節點中對應於授權確認交易的交易日誌進行監聽,並基於監聽到的授權狀態更新事件,確定自身已經獲得對於商家CC在最近1個月開具的發票的授權。
步驟607,用戶Ua產生資料獲取請求,並向鏈下平臺發起該資料獲取請求。
資料獲取請求中可以包含資料描述資訊,以描述用戶Ua希望獲得商家CC在最近1個月開具的發票;或者,資料獲取請求中可以包含前述的授權請求交易的交易編號或者前述的授權確認交易的交易編號,同樣可以間接表明希望獲取商家CC在最近1個月開具的發票。
步驟608,鏈下平臺產生鑒權交易,並提交至區塊鏈網路。
鏈下平臺上可以運行客戶端,並基於該客戶端產生鑒權交易,以及提交至區塊鏈網路。或者,鏈下平臺可以在客戶端上產生鑒權交易後,將該鑒權交易上傳至某一服務平臺,由該服務平臺將鑒權交易提交至區塊鏈網路。或者,鏈下平臺可以向該服務平臺發起鑒權請求,使得該服務平臺產生鑒權交易,以及提交至區塊鏈網路。
步驟609,區塊鏈節點呼叫智慧合約TT的資料介面,產生授權符記並在交易日誌中添加該授權符記。
透過呼叫智慧合約TT的資料介面,可以向智慧合約TT表明:用戶Ua希望獲取商家CC在最近1個月開具的發票。那麼,智慧合約TT可以查詢用戶Ua的授權狀態。
如果用戶Ua並未獲得授權,可以終止交易;如果用戶Ua已獲得授權,智慧合約TT可以產生授權符記,使得用戶Ua可以基於該授權符記獲得商家CC在最近1個月開具的發票。圖7是一示例性實施例提供的一種授權符記的示意圖;如圖7所示,授權符記可以包含用戶ID、ENC(KUa
, KTEMP
)、ENC(KM
, KTEMP
)、授權內容、TAG等若干欄位;當然,授權符記的內容可以隨場景差異而存在適當變化,本說明書並不對此進行限制。
用戶ID欄位可以包含用戶Ua的ID。如果該授權符記被用戶Ub獲得,並且用戶Ub將該授權符記提供至鏈下平臺時,由於該授權符記所含的用戶ID屬用戶Ua、區別於用戶Ub,因而鏈下平臺可以判定該授權符記未通過驗證,即該授權符記無效;而在上述過程中,由於鏈下平臺基於用戶Ua發起的資料獲取請求而提交了鑒權交易,並進而獲得該授權符記,因而相當於該授權符記由用戶Ua提供至鏈下平臺,那麼由於該授權符記的用戶ID欄位包含該用戶Ua的ID,因而可以確定授權符記的提供者與授權符記一致,授權符記有效。此外,在監聽得到授權符記後,鏈下平臺可以根據該授權符記所含的用戶ID,向該用戶ID對應的用戶提供該授權符記,比如圖6所示實施例中應當將該授權符記提供至用戶Ua,使得用戶Ua可以據此獲得臨時密鑰KTEMP
。
ENC(KUa
, KTEMP
)表示的含義為:採用預設算法對KUa
和KTEMP
進行加密得到的加密結果。其中,KUa
為對應於用戶Ua的密鑰,KTEMP
為智慧合約TT針對本次資料授權產生的臨時密鑰;其中,KUa
由用戶Ua掌握,使得用戶Ua可以基於密鑰KUa
對ENC(KUa
, KTEMP
)進行解密,從而得到臨時密鑰KTEMP
。
ENC(KM
, KTEMP
)表示的含義為:採用預設算法對KM
和KTEMP
進行加密得到的加密結果。其中,KM
為對應於鏈下平臺的密鑰,KTEMP
為智慧合約TT針對本次資料授權產生的臨時密鑰;其中,KM
由鏈下平臺掌握,使得鏈下平臺可以基於密鑰KM
對ENC(KM
, KTEMP
)進行解密,從而得到臨時密鑰KTEMP
。
授權內容可以包含上述的資料描述資訊,以用於描述用戶Ua獲得授權的資料。例如,在如圖6所示的實施例中,授權內容可以為商家CC在最近1個月開具的發票。
TAG欄位用於驗證授權符記的內容完整性和真實性。除了TAG欄位之外,假定前述的用戶ID、ENC(KUa
, KTEMP
)、ENC(KM
, KTEMP
)和授權內容等欄位的內容統稱為MG,那麼TAG欄位的內容可以包括MAC=C(KM
, MG),即根據密鑰和內容MG產生的訊息認證碼(Message Authentication Code,簡稱MAC),其中C( )表示所採用的產生函數。那麼,鏈下平臺在收到授權符記後,可以根據自身掌握的密鑰KM
和TAG欄位所含的MAC,對授權符記所含的其他欄位進行驗證,以確定是否內容MG被竄改或者在傳輸過程中發生了資料丟失、損壞等。
步驟610,鏈下平臺監聽交易執行結果事件。
如前所述,鏈下平臺可以基於事件監聽回呼機制對資料獲取交易的交易日誌進行監聽,以監聽到交易執行結果事件。如果資料獲取交易順利實施,那麼鏈下平臺可以從該交易執行結果事件中獲得授權符記。
步驟611,鏈下平臺從區塊鏈上獲取加密後發票,對加密後發票進行解密後將發票返回至用戶Ua。
透過將加密後發票存證於區塊鏈上,使得鏈下平臺可以對區塊鏈網路中的任意區塊鏈節點進行存取,並獲得該加密後發票;實際上,由於區塊鏈網路上存證的所有資料全部處於公開狀態,因而鏈下平臺可以對區塊鏈網路上存證的資料進行隨意存取。甚至,鏈下平臺可以將區塊鏈網路上的資料同步至本地,使得在獲得上述的授權符記後,可以直接從本地獲得加密後發票、無需臨時存取區塊鏈網路,可以加快響應速度、縮短用戶Ua的等待時長。
發票可以採用商家CC的公鑰進行加密,以得到上述的加密後發票。該加密後發票僅能夠透過商家CC的私鑰進行解密,並且該私鑰並不處於公開狀態,因而即便加密後發票可以被隨意存取,也可以確保商家CC的發票處於安全狀態。而為了滿足授權用戶對發票的獲取需求,同時減輕商家CC的處理壓力,可由鏈下平臺向商家CC提供私鑰託管服務,使得商家CC可以將私鑰安全託管於鏈下平臺處,那麼鏈下平臺可以直接對加密後發票進行解密,並將解密得到的發票提供至諸如用戶Ua等資料使用方。
在解密得到明文的發票後,鏈下平臺可以採用前述的臨時密鑰KTEMP
對發票進行加密後,傳輸至用戶Ua;相應的,用戶Ua可以採用臨時密鑰KTEMP
對收到的傳輸資料進行解密,即可得到商家CC在最近1個月開具的發票,從而確保在鏈下平臺與用戶Ua之間實現安全的資料傳輸。
在圖6所示的實施例中,用戶Ua需要單獨向區塊鏈網路提交授權請求交易,使得區塊鏈節點協助用戶Ua獲得商家CC的授權,而後由用戶Ua向鏈下平臺發起資料獲取請求,以獲得商家CC在最近1個月開具的發票。而在其他實施例中,可以簡化用戶Ua的相關操作,仍然能夠使得用戶Ua獲得商家CC在最近1個月開具的發票,下面結合圖8進行描述。圖8是一示例性實施例提供的另一種基於區塊鏈網路實現的端到端資料授權的交互流程圖。如圖8所示,用戶Ua、區塊鏈節點、商家CC與鏈下平臺之間的交互流程可以包括以下步驟:
步驟801,用戶Ua產生資料獲取請求,並向鏈下平臺發起該資料獲取請求。
資料獲取請求中可以包含資料描述資訊,以描述用戶Ua希望獲得商家CC在最近1個月開具的發票。
步驟802,鏈下平臺產生鑒權交易,並提交至區塊鏈網路。
鏈下平臺上可以運行客戶端,並基於該客戶端產生鑒權交易,以及提交至區塊鏈網路。或者,鏈下平臺可以在客戶端上產生鑒權交易後,將該鑒權交易上傳至某一服務平臺,由該服務平臺將鑒權交易提交至區塊鏈網路。或者,鏈下平臺可以向該服務平臺發起鑒權請求,使得該服務平臺產生鑒權交易,以及提交至區塊鏈網路。
向區塊鏈網路提交鑒權交易的目的,在於確定用戶Ua對於其請求的目標資料是否獲得相關授權;如果已獲得授權,可以跳轉至步驟808,否則轉入步驟803。
鑒權交易最初被提交至區塊鏈網路中的某個節點,譬如圖5所示的節點N3或其他節點。鑒權交易被提交至區塊鏈網路後,可以在各個節點之間進行共識,而經過共識的鑒權交易可以在每個節點上分別執行。共識過程可以採用相關技術中的工作量證明(Proof of Work, POW)、股權證明(Proof of Stake,POS)、委任權益證明(Delegated Proof of Stake,DPOS)、實用拜占庭容錯(Practical Byzantine Fault Tolerance,PBFT)或其他共識機制,本說明書並不對此進行限制。
步驟803,區塊鏈節點透過呼叫智慧合約TT的請求介面,協助用戶Ua獲得資料授權,並在交易日誌中寫入授權請求事件。
經過共識後,區塊鏈網路中的每個節點均需要執行上述的鑒權交易。區塊鏈節點在執行鑒權交易時,透過讀取該鑒權交易在to欄位中填寫的帳戶地址,呼叫智慧合約TT。其中,智慧合約TT的代碼可以在邏輯上形成多個介面,以分別實現不同的功能,而鑒權交易中可以具體指明所需呼叫的介面。譬如,當鑒權交易呼叫了智慧合約TT的請求介面時,可以據此請求獲取相關授權。
例如,鑒權交易中可以包含前述的資料描述資訊,以及用戶Ua的資訊(如用戶Ua的簽名)、商家CC的資訊(如商家CC的公鑰)等,使得智慧合約TT的請求介面被呼叫後,可以在鑒權交易的交易日誌中寫入授權請求事件,該授權請求事件的內容可以包含上述的資料描述資訊、用戶Ua的資訊、商家CC的資訊等,表明用戶Ua希望從商家CC處獲得資料描述資訊對應的目標資料,但不會獲得其他資料的授權。或者,授權請求事件可以不包含資料描述資訊,表明該用戶Ua希望分別向商家CC請求獲得對所有資料的授權,使得用戶Ua對商家CC持有的所有資料均獲得了授權,包括上述的最近1個月內開具的發票。下面以授權請求事件中包含資料描述資訊為例,對後續步驟進行描述。
步驟804,商家CC監聽授權請求事件。
由於所有區塊鏈節點的操作一致,因而商家CC可以透過存取對應的任意區塊鏈節點,即可基於事件監聽機制獲知上述的授權請求事件,以確定用戶Ua希望從自身處獲取的目標資料。
步驟805,商家CC產生授權確認交易,並提交至區塊鏈網路。
當商家CC同意用戶Ua獲取相關目標資料時,可以分別產生並提交授權確認交易,以表明自身同意向用戶Ua提供諸如最近1個月開具的發票等目標資料。以商家CC為例:在商家CC產生的授權確認交易中,可以包含其自身同意向用戶Ua提供的目標資料對應的資料描述資訊、用戶Ua的公鑰、商家CC的簽名等;或者,授權確認交易中可以包含上述鑒權交易的交易編號等資訊,以表明其同意該鑒權交易的相關請求。
步驟806,區塊鏈節點呼叫智慧合約TT的授權介面,更新用戶Ua的授權狀態,並在交易日誌中寫入授權狀態更新事件。
如前所述,智慧合約TT包含預定義的若干介面。在商家CC提交的授權確認交易中,to欄位可以分別包含智慧合約TT的合約地址,並且可以指明希望呼叫授權介面。而智慧合約TT可以透過運行授權介面對應的代碼,確認商家CC分別同意向用戶Ua賦予對諸如最近1個月開具的發票等目標資料的授權,從而將用戶Ua的授權狀態更新為已授權狀態。如前所述,用戶Ua的已授權狀態可能採用多種形式進行記錄,這取決於智慧合約TT中定義的規則,此處不再贅述。
針對用戶Ua的授權狀態的更新情況,智慧合約TT可以在交易日誌中寫入相應的授權狀態更新事件,以表明用戶Ua已經獲得對於商家CC在最近1個月開具的發票的授權。
步驟807,區塊鏈節點呼叫智慧合約TT的資料介面,產生授權符記並在交易日誌中添加該授權符記。
透過呼叫智慧合約TT的資料介面,智慧合約TT可以產生授權符記,使得用戶Ua可以基於該授權符記獲得商家CC在最近1個月開具的發票。授權符記的相關構造、各個欄位的含義與功能,可以參考前文結合圖7的相關描述,此處不再贅述。
步驟808,鏈下平臺監聽交易執行結果事件。
如前所述,鏈下平臺可以基於事件監聽回呼機制對資料獲取交易的交易日誌進行監聽,以監聽到交易執行結果事件。如果資料獲取交易順利實施,那麼鏈下平臺可以從該交易執行結果事件中獲得授權符記。
步驟809,鏈下平臺從區塊鏈上獲取加密後發票,對加密後發票進行解密後將發票返回至用戶Ua。
透過將加密後發票存證於區塊鏈上,使得鏈下平臺可以對區塊鏈網路中的任意區塊鏈節點進行存取,並獲得該加密後發票;實際上,由於區塊鏈網路上存證的所有資料全部處於公開狀態,因而鏈下平臺可以對區塊鏈網路上存證的資料進行隨意存取。甚至,鏈下平臺可以將區塊鏈網路上的資料同步至本地,使得在獲得上述的授權符記後,可以直接從本地獲得加密後發票、無需臨時存取區塊鏈網路,可以加快響應速度、縮短用戶Ua的等待時長。
發票可以採用商家CC的公鑰進行加密,以得到上述的加密後發票。該加密後發票僅能夠透過商家CC的私鑰進行解密,並且該私鑰並不處於公開狀態,因而即便加密後發票可以被隨意存取,也可以確保商家CC的發票處於安全狀態。而為了滿足授權用戶對發票的獲取需求,同時減輕商家CC的處理壓力,可由鏈下平臺向商家CC提供私鑰託管服務,使得商家CC可以將私鑰安全託管於鏈下平臺處,那麼鏈下平臺可以直接對加密後發票進行解密,並將解密得到的發票提供至諸如用戶Ua等資料使用方。
在解密得到明文的發票後,鏈下平臺可以採用前述的臨時密鑰KTEMP
對發票進行加密後,傳輸至用戶Ua;相應的,用戶Ua可以採用臨時密鑰KTEMP
對收到的傳輸資料進行解密,即可得到商家CC在最近1個月開具的發票,從而確保在鏈下平臺與用戶Ua之間實現安全的資料傳輸。
在如圖5-8所示的實施例中,資料所有方持有的資料採用公鑰進行加密後存證於區塊鏈網路中,比如可以存證於區塊中(包含於交易內容中)或者存證於區塊鏈節點維護的本地資料庫中,並透過將資料所有方的私鑰託管於鏈下平臺處,使得鏈下平臺可以直接向資料使用方提供其需要的資料。而在其他實施例中,資料所有方可以將相關資料存證於鏈下儲存空間而非區塊鏈網路中,使得鏈下平臺需要與鏈下儲存空間進行交易,以獲得相應的目標資料。例如,圖9是一示例性實施例提供的另一種基於區塊鏈網路實現的端到端資料授權的示意圖。如圖9所示,區塊鏈網路的相關結構與圖5相似,此處不再贅述。假定用戶Ua希望獲取商家CC在最近3個月所開發票的平均開票額,那麼存在兩種方式:1)將商家CC在最近3個月開具的發票均提供至用戶Ua,由用戶Ua計算平均開票額;2)計算出商家CC在最近3個月所開發票的平均開票額後,僅將平均開票額提供至用戶Ua。
方式1)類似於圖5-8所示的實施例,只是圖9中的交互過程存在一些差異。如圖9所示,鏈下平臺91可以透過諸如圖6中的步驟601~610或如圖8所示的步驟801~808獲得授權符記,該授權符記的授權內容欄位描述了商家CC在最近3個月開具的發票;然後,鏈下平臺91可以向鏈下儲存空間92請求獲取商家CC在最近3個月開具的發票;其中,該鏈下儲存空間92可由商家CC維護,或者由商家CC之外的其他對象所維護。然後,鏈下平臺91基於如前所述的臨時密鑰KTEMP
對發票資料進行加密後,傳輸至用戶Ua;以及,用戶Ua採用臨時密鑰KTEMP
進行加密後,可以對得到的發票資料做進一步計算,以得到相應的平均開票額。
方式2)則存在較大差異。如圖9所示,用戶Ua可以透過諸如圖6中的步驟601~610或如圖8所示的步驟801~808獲得授權符記,該授權符記的授權內容欄位描述了商家CC在最近3個月所開發票的平均開票額;然後,鏈下平臺91可以向鏈下儲存空間92請求獲取商家CC在最近3個月開具的發票,並且由鏈下平臺91基於這些發票計算出相應的平均開票額。最後,鏈下平臺91基於如前所述的臨時密鑰KTEMP
對平均開票額進行加密後,傳輸至用戶Ua;以及,用戶Ua採用臨時密鑰KTEMP
進行加密後,即可得到平均開票額。基於方式2),可使用戶Ua獲得平均開票額的取值,並且不會向用戶Ua暴露每張發票的開票額,從而既能夠滿足用戶Ua的需求,又能夠避免商家CC的發票資料產生外洩,尤其是可以避免用戶Ua在獲得發票後將其進一步提供至其他用戶,確保商家CC所持的資料處於安全可控的狀態。
上述方式2)中所採用的處理方式同樣可以適用於圖5-8所示的實施例。例如,鏈下平臺50可以從區塊鏈網路中獲得商家CC在最近3個月開具的發票對應的加密後資料,並基於託管的私鑰解密得到明文的發票,然後由鏈下平臺50計算得到商家CC在最近3個月所開發票的平均開票額,並將該平均開票額提供至用戶Ua,避免用戶Ua直接接觸到商家CC在最近3個月開具的發票。
圖10是一示例性實施例提供的一種設備的示意結構圖。請參考圖10,在硬體層面,該設備包括處理器1002、內部匯流排1004、網路介面1006、內部記憶體1008以及非易失性記憶體1010,當然還可能包括其他業務所需要的硬體。處理器1002從非易失性記憶體1010中讀取對應的電腦程式到內部記憶體1008中然後運行,在邏輯層面上形成基於區塊鏈的資料授權裝置。當然,除了軟體實現方式之外,本說明書一個或多個實施例並不排除其他實現方式,比如邏輯器件抑或軟硬體結合的方式等等,也就是說以下處理流程的執行主體並不限定於各個邏輯單元,也可以是硬體或邏輯器件。
請參考圖11,在軟體實施方式中,該基於區塊鏈的資料授權裝置可以包括:
接收單元1101,使區塊鏈節點接收隱私計算平臺提交的鑒權交易,所述鑒權交易用於詢問資料使用方是否已獲得對資料所有方持有的目標資料的授權;
執行單元1102,使所述區塊鏈節點執行所述鑒權交易呼叫的資料授權智慧合約,所述資料授權智慧合約用於在確認所述資料使用方已獲得授權時,向所述隱私計算平臺提供授權符記,以指示所述隱私計算平臺獲取所述目標資料,並將所述目標資料及/或對所述目標資料執行預設運算後得到的運算結果發送至所述資料使用方。
可選的,所述資料授權智慧合約存在對應的授權方名單;其中,所述資料授權智慧合約在確認所述資料使用方位於所述授權方名單內時,確認所述資料使用方已獲得授權。
可選的,還包括:
請求單元1103,使所述區塊鏈節點呼叫所述資料授權智慧合約中定義的請求介面,使所述資料授權智慧合約在交易日誌中寫入授權請求事件,以由所述資料所有方進行監聽;
授權單元1104,使所述區塊鏈節點根據所述資料所有方提交的授權確認交易,呼叫所述資料授權智慧合約中定義的授權介面,使所述資料授權智慧合約確認所述資料使用方已獲得授權。
可選的,所述請求單元1103具體用於:
使所述區塊鏈節點響應於所述鑒權交易,呼叫所述資料授權智慧合約中定義的請求介面;
或者,使所述區塊鏈節點根據所述資料使用方提交的授權請求交易,呼叫所述資料授權智慧合約中定義的請求介面。
可選的,所述資料授權智慧合約還用於在完成授權符記的發出操作後,取消所述資料使用方的已授權狀態;或者,所述資料授權智慧合約還用於在完成授權符記的發出操作後,遞減所述資料使用方對應的剩餘授權次數。
可選的,當所述目標資料屬低隱私級別時,所述目標資料被提供至所述資料使用方;當所述目標資料屬高隱私級別時,所述目標資料被執行所述預設運算,以使相應的運算結果被提供至所述資料使用方。
可選的,還包括:
儲存單元1105,使所述區塊鏈節點在收到存證交易後,對所述存證交易中包含的加密後目標資料進行儲存,所述加密後目標資料由所述資料所有方的公鑰對所述目標資料進行加密後得到;
其中,所述資料所有方的私鑰被託管於所述隱私計算平臺處,以使所述隱私計算平臺獲得所述加密後目標資料後,解密得到所述目標資料。
可選的,還包括:
加密單元1106,使所述區塊鏈節點採用所述資料所有方的公鑰在可信執行環境中對所述目標資料進行加密,得到加密後目標資料,以儲存於所述區塊鏈節點對應的資料庫中;
其中,所述資料所有方的私鑰被託管於所述隱私計算平臺處,以使所述隱私計算平臺獲得所述加密後目標資料後,解密得到所述目標資料。
可選的,還包括:
解密單元1107,使所述區塊鏈節點在收到所述資料所有方提交的隱私存證交易後,在所述可信執行環境中對所述隱私存證交易進行解密,以得到交易內容中包含的所述目標資料;
或者,產生單元1108,使所述區塊鏈節點在收到所述資料所有方提交的存證交易後,在所述可信執行環境中執行相應的交易內容,以產生所述目標資料。
可選的,所述區塊鏈節點儲存了所述目標資料的數位摘要,所述目標資料由所述資料所有方儲存於鏈下通道;其中,所述目標資料由所述隱私計算平臺向所述鏈下通道獲取。
可選的,所述授權符記包含臨時會話密鑰,所述目標資料及/或所述運算結果經由所述臨時會話密鑰加密後,由所述隱私計算平臺傳輸至所述資料使用方。
可選的,所述授權符記包括第一欄位和第二欄位,所述第一欄位的內容由所述資料使用方對應的第一密鑰對所述臨時會話密鑰進行加密得到,所述第二欄位的內容由所述隱私計算平臺對應的第二密鑰對所述臨時會話密鑰進行加密得到。
圖12是一示例性實施例提供的一種設備的示意結構圖。請參考圖12,在硬體層面,該設備包括處理器1202、內部匯流排1204、網路介面1206、內部記憶體1208以及非易失性記憶體1210,當然還可能包括其他業務所需要的硬體。處理器1202從非易失性記憶體1210中讀取對應的電腦程式到內部記憶體1208中然後運行,在邏輯層面上形成基於區塊鏈的資料授權裝置。當然,除了軟體實現方式之外,本說明書一個或多個實施例並不排除其他實現方式,比如邏輯器件抑或軟硬體結合的方式等等,也就是說以下處理流程的執行主體並不限定於各個邏輯單元,也可以是硬體或邏輯器件。
請參考圖13,在軟體實施方式中,該基於區塊鏈的資料授權裝置可以包括:
接收單元1301,使隱私計算平臺接收資料使用方發起的資料獲取請求,所述資料獲取請求對應於資料所有方持有的目標資料;
詢問單元1302,使所述隱私計算平臺向區塊鏈提交鑒權交易,所述鑒權交易用於詢問所述資料使用方是否已獲得對所述目標資料的授權;
獲取單元1303,使所述隱私計算平臺獲取由所述鑒權交易呼叫的資料授權智慧合約發出的授權符記;
返回單元1304,當所述授權符記表明所述資料使用方獲得了對所述目標資料的授權時,使所述隱私計算平臺獲取所述目標資料,以將所述目標資料及/或對所述目標資料執行預設運算後得到的運算結果返回至所述資料使用方。
可選的,所述返回單元1304具體用於:
使所述隱私計算平臺從區塊鏈節點處獲得加密後目標資料,所述加密後目標資料由所述資料所有方的公鑰對所述目標資料進行加密後得到;
使所述隱私計算平臺採用託管的所述資料所有方的私鑰對所述加密後目標資料進行解密,以得到所述目標資料。
可選的,所述區塊鏈節點儲存了所述目標資料的數位摘要,所述目標資料由所述資料所有方儲存於鏈下通道;所述返回單元1304具體用於:
使所述隱私計算平臺向所述鏈下通道提供所述目標資料的數位摘要;
使所述隱私計算平臺接收所述鏈下通道返回的所述目標資料。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、行動電話、相機電話、智慧電話、個人數位助理、媒體播放器、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。
在一個典型的配置中,電腦包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和內部記憶體。
內部記憶體可能包括電腦可讀媒介中的非永久性記憶體,隨機存取記憶體(RAM)及/或非易失性內部記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。內部記憶體是電腦可讀媒介的示例。
電腦可讀媒介包括永久性和非永久性、可移除和非可移除媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒介的例子包括,但不限於相變內部記憶體 (PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可抹除可程式化唯讀記憶體(EEPROM)、快閃記憶體或其他內部記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、卡式磁帶、磁碟儲存、量子記憶體、基於石墨烯的儲存媒介或其他磁性儲存設備或任何其他非傳輸媒介,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀媒介不包括暫存電腦可讀媒體(transitory media),如調變的資料信號和載波。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
上述對本說明書特定實施例進行了描述。其它實施例在所附申請專利範圍的範圍內。在一些情況下,在申請專利範圍中記載的動作或步驟可以按照不同於實施例中的順序來執行並且仍然可以實現期望的結果。另外,在圖式中描繪的過程不一定要求示出的特定順序或者連續順序才能實現期望的結果。在某些實施方式中,多任務處理和並行處理也是可以的或者可能是有利的。
在本說明書一個或多個實施例使用的術語是僅僅出於描述特定實施例的目的,而非旨在限制本說明書一個或多個實施例。在本說明書一個或多個實施例和所附申請專利範圍中所使用的單數形式的“一種”、“所述”和“該”也旨在包括多數形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語“及/或”是指並包含一個或多個相關聯的列出項目的任何或所有可能組合。
應當理解,儘管在本說明書一個或多個實施例可能採用術語第一、第二、第三等來描述各種資訊,但這些資訊不應限於這些術語。這些術語僅用來將同一類型的資訊彼此區分開。例如,在不脫離本說明書一個或多個實施例範圍的情況下,第一資訊也可以被稱為第二資訊,類似地,第二資訊也可以被稱為第一資訊。取決於語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當……時”或“響應於確定”。
以上所述僅為本說明書一個或多個實施例的較佳實施例而已,並不用以限制本說明書一個或多個實施例,凡在本說明書一個或多個實施例的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本說明書一個或多個實施例保護的範圍之內。
100:示例環境
102:區塊鏈網路
104:計算設備
106:計算設備
108:計算設備
110:計算設備
112:計算設備
114:網路
116:用戶介面
200:概念架構
202:實體層
204:託管服務層
206:區塊鏈網路層
208:事務管理系統
210:介面
212:區塊鏈網路
214:節點
216:區塊鏈帳本
302:步驟
304:步驟
402:步驟
404:步驟
406:步驟
408:步驟
50:鏈下平臺
601:步驟
602:步驟
603:步驟
604:步驟
605:步驟
606:步驟
607:步驟
608:步驟
609:步驟
610:步驟
611:步驟
801:步驟
802:步驟
803:步驟
804:步驟
805:步驟
806:步驟
807:步驟
808:步驟
809:步驟
91:鏈下平臺
92:鏈下儲存空間
1002:處理器
1004:內部匯流排
1006:網路介面
1008:內部記憶體
1010:非易失性記憶體
1101:接收單元
1102:執行單元
1103:請求單元
1104:授權單元
1105:儲存單元
1106:加密單元
1107:解密單元
1108:產生單元
1202:處理器
1204:內部匯流排
1206:網路介面
1208:內部記憶體
1210:非易失性記憶體
1301:接收單元
1302:詢問單元
1303:獲取單元
1304:返回單元
N1:節點
N2:節點
N3:節點
N4:節點
N5:節點
Ua:用戶
[圖1]是一示例性實施例提供的一種示例環境的示意圖。
[圖2]是一示例性實施例提供的一種概念架構的示意圖。
[圖3]是一示例性實施例提供的一種基於區塊鏈的資料授權方法的流程圖。
[圖4]是一示例性實施例提供的另一種基於區塊鏈的資料授權方法的流程圖。
[圖5]是一示例性實施例提供的一種基於區塊鏈網路實現的端到端資料授權的示意圖。
[圖6]是一示例性實施例提供的一種基於區塊鏈網路實現的端到端資料授權的交互流程圖。
[圖7]是一示例性實施例提供的一種授權符記的示意圖。
[圖8]是一示例性實施例提供的另一種基於區塊鏈網路實現的端到端資料授權的交互流程圖。
[圖9]是一示例性實施例提供的另一種基於區塊鏈網路實現的端到端資料授權的示意圖。
[圖10]是一示例性實施例提供的一種設備的結構示意圖。
[圖11]是一示例性實施例提供的一種基於區塊鏈的資料授權裝置的框圖。
[圖12]是一示例性實施例提供的另一種設備的結構示意圖。
[圖13]是一示例性實施例提供的另一種基於區塊鏈的資料授權裝置的框圖。