資料共享方法、裝置及系統、電子設備
本說明書一個或多個實施例涉及區塊鏈技術領域,尤其涉及一種資料共享方法、裝置及系統、電子設備。
在相關技術中,不同成員之間可以實現資料共享。比如,常見的資料共享模式為托管模式,即資料中心對各個成員的資料進行托管,而對於資料的後續處理完全依賴於資料中心。另一種常見的資料共享模式為聚合模式,即資料由不同成員各自控制、資料中心僅起到鏈接和撮合的功能,而由於資料中心有能力和機會留存被共享的資料,使得隨著資料共享的不斷進行,聚合模式會逐步發展為托管模式。
有鑒於此,本說明書一個或多個實施例提供一種資料共享方法、裝置及系統、電子設備。
為實現上述目的,本說明書一個或多個實施例提供技術方案如下:
根據本說明書一個或多個實施例的第一方面,提出了一種資料共享系統,包括:
成員,每一成員分別維護有可共享的私有資料,並為所述私有資料產生相應的密文索引資訊,所述密文索引資訊包含對應的私有資料的密文索引和提供該私有資料的成員的資訊;
共享平臺,所述共享平臺分別連接至每一成員,並將每一成員產生的密文索引資訊記錄於索引區塊鏈,以在所有成員之間進行共享;所述共享平臺將資料請求方成員發起的資料獲取請求轉發至資料提供方成員,所述資料獲取請求包含目標資料的密文索引,且所述共享平臺還將所述資料提供方成員返回的所述目標資料轉發至所述資料請求方成員,其中所述目標資料由所述資料請求方成員的身分公鑰進行加密。
根據本說明書一個或多個實施例的第二方面,提出了一種資料共享方法,應用於作為資料請求方的成員,所述方法包括:
確定索引區塊鏈中記錄的對應於目標資料的索引資訊集合,所述索引資訊集合包含所述目標資料的密文索引和所述目標資料的資料提供方的成員資訊,所述索引資訊集合由所述資料提供方共享至所述索引區塊鏈;
透過共享平臺向所述資料提供方發起資料獲取請求,所述資料獲取請求包含所述目標資料的密文索引;
接收所述共享平臺返回的響應資料,所述響應資料由所述資料請求方的身分公鑰進行加密。
根據本說明書一個或多個實施例的第三方面,提出了一種資料共享方法,應用於作為資料提供方的成員,所述方法包括:
將對應於目標資料的索引資訊集合共享至索引區塊鏈,所述索引資訊集合包含所述目標資料的密文索引和所述資料提供方的成員資訊;
接收資料請求方透過共享平臺發起的資料獲取請求,所述資料獲取請求包含所述目標資料的密文索引;
透過所述共享平臺向所述資料請求方返回響應資料,所述響應資料由所述資料請求方的身分公鑰進行加密。
根據本說明書一個或多個實施例的第四方面,提出了一種資料共享方法,應用於共享平臺,所述方法包括:
將對應於目標資料的索引資訊集合發布至索引區塊鏈,所述索引資訊集合包含所述目標資料的密文索引和所述目標資料的資料提供方的成員資訊,所述索引資訊集合由所述資料提供方提交至所述共享平臺;
將資料請求方發起的資料獲取請求轉發至所述資料提供方,所述資料獲取請求包含所述目標資料的密文索引;
將所述資料提供方提供的響應資料返回至所述資料請求方,所述響應資料由所述資料請求方的身分公鑰進行加密。
根據本說明書一個或多個實施例的第五方面,提出了一種資料共享裝置,應用於作為資料請求方的成員,所述裝置包括:
確定單元,確定索引區塊鏈中記錄的對應於目標資料的索引資訊集合,所述索引資訊集合包含所述目標資料的密文索引和所述目標資料的資料提供方的成員資訊,所述索引資訊集合由所述資料提供方共享至所述索引區塊鏈;
請求單元,透過共享平臺向所述資料提供方發起資料獲取請求,所述資料獲取請求包含所述目標資料的密文索引;
接收單元,接收所述共享平臺返回的響應資料,所述響應資料由所述資料請求方的身分公鑰進行加密。
根據本說明書一個或多個實施例的第六方面,提出了一種資料共享裝置,應用於作為資料提供方的成員,所述裝置包括:
共享單元,將對應於目標資料的索引資訊集合共享至索引區塊鏈,所述索引資訊集合包含所述目標資料的密文索引和所述資料提供方的成員資訊;
接收單元,接收資料請求方透過共享平臺發起的資料獲取請求,所述資料獲取請求包含所述目標資料的密文索引;
返回單元,透過所述共享平臺向所述資料請求方返回響應資料,所述響應資料由所述資料請求方的身分公鑰進行加密。
根據本說明書一個或多個實施例的第七方面,提出了一種資料共享裝置,應用於共享平臺,所述裝置包括:
第一發布單元,將對應於目標資料的索引資訊集合發布至索引區塊鏈,所述索引資訊集合包含所述目標資料的密文索引和所述目標資料的資料提供方的成員資訊,所述索引資訊集合由所述資料提供方提交至所述共享平臺;
轉發單元,將資料請求方發起的資料獲取請求轉發至所述資料提供方,所述資料獲取請求包含所述目標資料的密文索引;
返回單元,將所述資料提供方提供的響應資料返回至所述資料請求方,所述響應資料由所述資料請求方的身分公鑰進行加密。
根據本說明書一個或多個實施例的第八方面,提出了一種電子設備,包括:
處理器;
用於儲存處理器可執行指令的記憶體;
其中,所述處理器透過運行所述可執行指令以實現如上述第一方面所述的方法。
根據本說明書一個或多個實施例的第九方面,提出了一種電子設備,包括:
處理器;
用於儲存處理器可執行指令的記憶體;
其中,所述處理器透過運行所述可執行指令以實現如上述第二方面所述的方法。
根據本說明書一個或多個實施例的第十方面,提出了一種電子設備,包括:
處理器;
用於儲存處理器可執行指令的記憶體;
其中,所述處理器透過運行所述可執行指令以實現如上述第三方面所述的方法。
這裏將詳細地對示例性實施例進行說明,其示例表示在圖式中。下面的描述涉及圖式時,除非另有表示,不同圖式中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式並不代表與本說明書一個或多個實施例相一致的所有實施方式。相反,它們僅是與如申請專利範圍中所詳述的、本說明書一個或多個實施例的一些方面相一致的裝置和方法的例子。
需要說明的是:在其他實施例中並不一定按照本說明書示出和描述的順序來執行相應方法的步驟。在一些其他實施例中,其方法所包括的步驟可以比本說明書所描述的更多或更少。此外,本說明書中所描述的單個步驟,在其他實施例中可能被分解為多個步驟進行描述;而本說明書中所描述的多個步驟,在其他實施例中也可能被合併為單個步驟進行描述。
圖1是一示例性實施例提供的一種資料共享方法的流程圖。如圖1所示,該方法應用於作為資料請求方的成員,可以包括以下步驟:
步驟102,確定索引區塊鏈中記錄的對應於目標資料的索引資訊集合,所述索引資訊集合包含所述目標資料的密文索引和所述目標資料的資料提供方的成員資訊,所述索引資訊集合由所述資料提供方共享至所述索引區塊鏈。
在一實施例中,多個成員之間可以基於本說明書的技術方案實現資料共享,在共享過程中存在不同角色:若由成員A向用戶B發起資料獲取請求,而用戶B將自身維護的私有資料返回至成員A,則成員A扮演了資料請求方的角色、用戶B扮演了資料提供方的角色。每一成員均可能扮演資料請求方或資料提供方的角色,本說明書並不對此進行限制。
在一實施例中,對於各個成員所維護的私有資料而言,這些私有資料對應的索引資訊集合可以被發布至索引區塊鏈,並記錄至索引區塊鏈的所有區塊鏈節點分別維護的、內容統一的索引區塊鏈帳帳本中,使得每一成員均可以基於索引區塊鏈帳帳本獲知各個成員所維護的私有資料對應的索引資訊集合。
在一實施例中,共享平臺可以被配置為所述索引區塊鏈的節點,各個成員可以為自身所維護的私有資料產生索引資訊集合,並將索引資訊集合發送至共享平臺,以由共享平臺提交至索引區塊鏈。而各個成員可以透過共享平臺或其他區塊鏈節點對索引區塊鏈帳帳本進行查詢,或者各個成員可以從共享平臺或其他區塊鏈節點處下載索引區塊鏈帳帳本的帳帳本資料,以對自身發送給共享平臺的索引資訊集合進行查詢,以確定共享平臺是否已經將該索引資訊集合發布至索引區塊鏈。
在一實施例中,各個成員被配置為索引區塊鏈的區塊鏈節點,使得每一成員可以為自身所維護的私有資料產生索引資訊集合,並透過向索引區塊鏈中提交包含索引資訊集合的區塊鏈交易,從而將索引資訊集合發布至索引區塊鏈,無需依賴於共享平臺。
在一實施例中,共享平臺可以被配置為所述索引區塊鏈的節點,即該共享平臺維護有索引區塊鏈對應的索引區塊鏈帳帳本。相應地,作為資料請求方的成員可以根據已知的目標資料的特定資訊(比如當目標資料為交易記錄時,該特定資訊可以包括交易記錄對應的交易用戶ID等),產生相應的密文索引(比如特定資訊的散列值),並向所述共享平臺發起查詢請求,所述查詢請求中包含所述密文索引,以指示所述共享平臺從所述索引區塊鏈中查詢包含所述密文索引的索引資訊集合,即由共享平臺根據密文索引對索引區塊鏈帳帳本進行檢索、查詢到該密文索引對應的索引資訊集合。或者,作為資料請求方的成員可以請求下載所述共享平臺維護的所述索引區塊鏈的帳帳本資料(即索引區塊鏈帳帳本的資料),並由該資料請求方自身根據密文索引對帳帳本資料進行檢索,以查詢出包含所述密文索引的索引資訊集合。
在一實施例中,所述資料請求方被配置為所述索引區塊鏈的節點。相應地,作為資料請求方的成員可以根據已知的所述目標資料的特定資訊,產生相應的密文索引,並根據所述資料請求方維護的所述索引區塊鏈的帳帳本資料,查詢出包含所述密文索引的索引資訊集合,無需依賴於共享平臺。
在一實施例中,由於私有資料由各個成員進行維護,而共享平臺僅能夠接觸到私有資料對應的索引資訊(包含於上述的索引資訊集合中),可以避免共享平臺獲取私有資料並違規外洩私有資料。同時,透過採用索引區塊鏈來記錄索引資訊集合,可以利用區塊鏈的鏈式資料結構,確保已經上鏈的索引資訊集合無法被隨意修改,並且可供共享平臺和各個成員進行查詢、驗證,具有極高的可靠性。此外,由於索引區塊鏈上記錄的索引資訊集合中,與私有資料相關的索引資訊為密文索引、呈現為密文形式,因而不會向共享平臺透露出資料提供方實際持有的私有資料的內容,也不會暴露資料請求方請求了何種資料,具有極高的私密性。
步驟104,透過共享平臺向所述資料提供方發起資料獲取請求,所述資料獲取請求包含所述目標資料的密文索引。
在一實施例中,透過確定出索引資訊集合,使得資料請求方可以獲知該索引資訊集合中包含的資料提供方的資訊,即確定出目標資料對應的資料提供方,從而向共享平臺發起針對該資料提供方的資料獲取請求。
在一實施例中,資料獲取請求還包含:所述資料請求方的身分公鑰、透過所述資料請求方的身分私鑰產生的資料請求方簽名,使得資料提供方在獲得共享平臺轉發的該資料獲取請求後,可以從資料獲取請求中提取出身分公鑰,以針對資料請求方簽名進行驗證,若驗證成功則確定該資料獲取請求確實來自於該資料請求方。當然,在一些情况下,資料獲取請求中可以不包含資料請求方的身分公鑰,比如可以包含唯一對應於該資料請求方的身分標識,而資料提供方可以據此選取預先獲得的該資料請求方的身分公鑰,以針對資料請求方簽名進行驗證。
步驟106,接收所述共享平臺返回的響應資料,所述響應資料由所述資料請求方的身分公鑰進行加密。
在一實施例中,資料提供方根據資料獲取請求中包含的密文索引,以及自身維護的密文索引與明文索引之間的映射關係,確定出明文索引,並基於該明文索引查詢出相應的私有資料,以作為上述的響應資料而返回至共享平臺、由共享平臺轉發至資料請求方。當然,資料提供方也可以維護有密文索引與私有資料之間的映射關係,從而直接根據密文索引查詢到對應的私有資料。
在一實施例中,透過採用資料請求方的身分公鑰對響應資料進行加密,使得該響應資料只有資料請求方可以透過自身的身分私鑰進行解密,那麽即便由共享平臺對該響應資料進行轉發,該共享平臺也只能夠獲得加密狀態的響應資料,從而杜絕了共享平臺沉澱與外洩私有資料的可能性。
在一實施例中,所述響應資料中還包含:透過所述資料提供方的身分私鑰產生的資料提供方簽名,使得資料請求方可以根據該資料提供方的身分公鑰進行驗證,若驗證通過則確定該響應資料確實來自於所述資料提供方。
在一實施例中,所述索引資訊集合中包含所述目標資料的散列值;資料請求方可以將所述響應資料對應的解密後資料進行散列計算,並與索引資訊集合中的散列值進行比較,當計算得到的散列值與所述索引資訊集合中的散列值一致時,可以確定所述解密後資料為所述目標資料,表明資料提供方確實擁有相關資料並且沒有無意或刻意提供錯誤的資料,且資料傳輸過程中沒有發生資料損壞或資料替換,也可以表明資料提供方提供至索引區塊鏈的索引資訊集合與其實際擁有的私有資料之間內容相符、不存在欺騙行為。
在一實施例中,資料請求方可以向所述共享平臺發起針對所述目標資料的投訴請求,所述投訴請求中包含投訴理由和相關資料;其中,當所述投訴理由被所述共享平臺或所述共享平臺在所述索引區塊鏈中調用的智慧合約基於所述相關資料而驗證為成立時,所述索引資訊集合在所述索引區塊鏈中被添加無效標識,而具有無效標識的索引資訊集合無法被用於資料共享。其中,根據投訴理由的不同,投訴請求所包含的相關資料的類型也可能存在差異,需要根據實際情况而確定。例如,當投訴理由為資料重複時,相關資料可以包括資料請求方持有資料的資訊和被訴資料的資訊,使得兩者被確認為一致且資料請求方所持有資料的索引資訊集合在索引區塊鏈上的區塊高度相對較小(即更早提交至索引區塊鏈)時,可以判定為投訴理由成立。再例如,當投訴理由為資料不符時,相關資料可以包括資料請求方獲得的目標資料、相應的索引資訊集合、資料請求方從資料提供方處獲得該目標資料的歷史記錄等,使得共享平臺可以根據歷史記錄確定該目標資料來自資料提供方,以及共享平臺可以計算目標資料的散列值、與索引資訊集合中包含的散列值進行比較,從而該比較結果為不一致時,判定為投訴理由成立。
在一實施例中,資料請求方可以向所述索引區塊鏈提交投訴類型的交易,以調取用於處理投訴的智慧合約,其中所述交易包含投訴理由和相關資料;其中,所述智慧合約被用於根據所述相關資料驗證所述投訴理由,並在所述投訴理由被驗證為成立時,在所述索引區塊鏈中為所述索引資訊集合添加無效標識。由於智慧合約被記錄於索引區塊鏈中,使得智慧合約的處理邏輯公開且不可篡改,同時智慧合約為自動執行、避免外部因素的干擾,可以確保智慧合約對投訴理由的驗證結果公正可靠。
在一實施例中,資料請求方可以將自身與所述資料提供方之間的資料共享事件發布至交易區塊鏈,其中所述資料請求方被配置為所述交易區塊鏈的節點。在另一實施例中,資料請求方可以將所述資料共享事件發送至所述共享平臺,以由所述共享平臺發布至所述交易區塊鏈,其中所述共享平臺被配置為所述交易區塊鏈的節點。其中,交易區塊鏈區別於上述的索引區塊鏈,該交易區塊鏈用於記錄各個成員之間的資料共享事件,以便後續查詢與驗證。而透過採用相互獨立的索引區塊鏈與交易區塊鏈,可以將索引資訊集合的資料與資料共享事件的資料相互分離,尤其是索引區塊鏈需要頻繁實施索引查詢操作,這樣有助於提升對索引資訊集合的查詢效率。當然,也可以僅採用單一的區塊鏈,並將索引資訊集合與資料共享事件均記錄至該區塊鏈中,本說明書並不對此進行限制。
圖2是一示例性實施例提供的另一種資料共享方法的流程圖。如圖2所示,該方法應用於作為資料提供方的成員,可以包括以下步驟:
步驟202,將對應於目標資料的索引資訊集合共享至索引區塊鏈,所述索引資訊集合包含所述目標資料的密文索引和所述資料提供方的成員資訊。
在一實施例中,多個成員之間可以基於本說明書的技術方案實現資料共享,在共享過程中存在不同角色:若由成員A向用戶B發起資料獲取請求,而用戶B將自身維護的私有資料返回至成員A,則成員A扮演了資料請求方的角色、用戶B扮演了資料提供方的角色。每一成員均可能扮演資料請求方或資料提供方的角色,本說明書並不對此進行限制。
在一實施例中,對於各個成員所維護的私有資料而言,這些私有資料對應的索引資訊集合可以被發布至索引區塊鏈,並記錄至索引區塊鏈的所有區塊鏈節點分別維護的、內容統一的索引區塊鏈帳帳本中,使得每一成員均可以基於索引區塊鏈帳帳本獲知各個成員所維護的私有資料對應的索引資訊集合。
在一實施例中,共享平臺可以被配置為所述索引區塊鏈的節點,各個成員可以為自身所維護的私有資料產生索引資訊集合,並將索引資訊集合發送至共享平臺,以由共享平臺提交至索引區塊鏈。而各個成員可以透過共享平臺或其他區塊鏈節點對索引區塊鏈帳帳本進行查詢,或者各個成員可以從共享平臺或其他區塊鏈節點處下載索引區塊鏈帳帳本的帳帳本資料,以對自身發送給共享平臺的索引資訊集合進行查詢,以確定共享平臺是否已經將該索引資訊集合發布至索引區塊鏈。
在一實施例中,各個成員被配置為索引區塊鏈的區塊鏈節點,使得每一成員可以為自身所維護的私有資料產生索引資訊集合,並透過向索引區塊鏈中提交包含索引資訊集合的區塊鏈交易,從而將索引資訊集合發布至索引區塊鏈,無需依賴於共享平臺。
在一實施例中,共享平臺可以被配置為所述索引區塊鏈的節點,即該共享平臺維護有索引區塊鏈對應的索引區塊鏈帳帳本。相應地,作為資料請求方的成員可以根據已知的目標資料的特定資訊(比如當目標資料為交易記錄時,該特定資訊可以包括交易記錄對應的交易用戶ID等),產生相應的密文索引(比如特定資訊的散列值),並向所述共享平臺發起查詢請求,所述查詢請求中包含所述密文索引,以指示所述共享平臺從所述索引區塊鏈中查詢包含所述密文索引的索引資訊集合,即由共享平臺根據密文索引對索引區塊鏈帳帳本進行檢索、查詢到該密文索引對應的索引資訊集合。或者,作為資料請求方的成員可以請求下載所述共享平臺維護的所述索引區塊鏈的帳帳本資料(即索引區塊鏈帳帳本的資料),並由該資料請求方自身根據密文索引對帳帳本資料進行檢索,以查詢出包含所述密文索引的索引資訊集合。
在一實施例中,所述資料請求方被配置為所述索引區塊鏈的節點。相應地,作為資料請求方的成員可以根據已知的所述目標資料的特定資訊,產生相應的密文索引,並根據所述資料請求方維護的所述索引區塊鏈的帳帳本資料,查詢出包含所述密文索引的索引資訊集合,無需依賴於共享平臺。
在一實施例中,由於私有資料由各個成員進行維護,而共享平臺僅能夠接觸到私有資料對應的索引資訊(包含於上述的索引資訊集合中),可以避免共享平臺獲取私有資料並違規外洩私有資料。同時,透過採用索引區塊鏈來記錄索引資訊集合,可以利用區塊鏈的鏈式資料結構,確保已經上鏈的索引資訊集合無法被隨意修改,並且可供共享平臺和各個成員進行查詢、驗證,具有極高的可靠性。此外,由於索引區塊鏈上記錄的索引資訊集合中,與私有資料相關的索引資訊為密文索引、呈現為密文形式,因而不會向共享平臺透露出資料提供方實際持有的私有資料的內容,也不會暴露資料請求方請求了何種資料,具有極高的私密性。
步驟204,接收資料請求方透過共享平臺發起的資料獲取請求,所述資料獲取請求包含所述目標資料的密文索引。
在一實施例中,透過確定出索引資訊集合,使得資料請求方可以獲知該索引資訊集合中包含的資料提供方的資訊,即確定出目標資料對應的資料提供方,從而向共享平臺發起針對該資料提供方的資料獲取請求。
在一實施例中,資料獲取請求還包含:所述資料請求方的身分公鑰、透過所述資料請求方的身分私鑰產生的資料請求方簽名,使得資料提供方在獲得共享平臺轉發的該資料獲取請求後,可以從資料獲取請求中提取出身分公鑰,以針對資料請求方簽名進行驗證,若驗證成功則確定該資料獲取請求確實來自於該資料請求方。當然,在一些情况下,資料獲取請求中可以不包含資料請求方的身分公鑰,比如可以包含唯一對應於該資料請求方的身分標識,而資料提供方可以據此選取預先獲得的該資料請求方的身分公鑰,以針對資料請求方簽名進行驗證。
步驟206,透過所述共享平臺向所述資料請求方返回響應資料,所述響應資料由所述資料請求方的身分公鑰進行加密。
在一實施例中,資料提供方根據資料獲取請求中包含的密文索引,以及自身維護的密文索引與明文索引之間的映射關係,確定出明文索引,並基於該明文索引查詢出相應的私有資料,以作為上述的響應資料而返回至共享平臺、由共享平臺轉發至資料請求方。當然,資料提供方也可以維護有密文索引與私有資料之間的映射關係,從而直接根據密文索引查詢到對應的私有資料。
在一實施例中,透過採用資料請求方的身分公鑰對響應資料進行加密,使得該響應資料只有資料請求方可以透過自身的身分私鑰進行解密,那麽即便由共享平臺對該響應資料進行轉發,該共享平臺也只能夠獲得加密狀態的響應資料,從而杜絕了共享平臺沉澱與外洩私有資料的可能性。
在一實施例中,所述響應資料中還包含:透過所述資料提供方的身分私鑰產生的資料提供方簽名,使得資料請求方可以根據該資料提供方的身分公鑰進行驗證,若驗證通過則確定該響應資料確實來自於所述資料提供方。
在一實施例中,所述索引資訊集合中包含所述目標資料的散列值;資料請求方可以將所述響應資料對應的解密後資料進行散列計算,並與索引資訊集合中的散列值進行比較,當計算得到的散列值與所述索引資訊集合中的散列值一致時,可以確定所述解密後資料為所述目標資料,表明資料提供方確實擁有相關資料並且沒有無意或刻意提供錯誤的資料,且資料傳輸過程中沒有發生資料損壞或資料替換,也可以表明資料提供方提供至索引區塊鏈的索引資訊集合與其實際擁有的私有資料之間內容相符、不存在欺騙行為。
在一實施例中,資料提供方可以將自身與所述資料請求方之間的資料共享事件發布至交易區塊鏈,其中所述資料提供方被配置為所述交易區塊鏈的節點。在另一實施例中,資料提供方可以將所述資料共享事件發送至所述共享平臺,以由所述共享平臺發布至所述交易區塊鏈,其中所述共享平臺被配置為所述交易區塊鏈的節點。其中,交易區塊鏈區別於上述的索引區塊鏈,該交易區塊鏈用於記錄各個成員之間的資料共享事件,以便後續查詢與驗證。而透過採用相互獨立的索引區塊鏈與交易區塊鏈,可以將索引資訊集合的資料與資料共享事件的資料相互分離,尤其是索引區塊鏈需要頻繁實施索引查詢操作,這樣有助於提升對索引資訊集合的查詢效率。當然,也可以僅採用單一的區塊鏈,並將索引資訊集合與資料共享事件均記錄至該區塊鏈中,本說明書並不對此進行限制。
圖3是一示例性實施例提供的又一種資料共享方法的流程圖。如圖3所示,該方法應用於共享平臺,可以包括以下步驟:
步驟302,將對應於目標資料的索引資訊集合發布至索引區塊鏈,所述索引資訊集合包含所述目標資料的密文索引和所述目標資料的資料提供方的成員資訊,所述索引資訊集合由所述資料提供方提交至所述共享平臺。
在一實施例中,多個成員之間可以基於本說明書的技術方案實現資料共享,在共享過程中存在不同角色:若由成員A向用戶B發起資料獲取請求,而用戶B將自身維護的私有資料返回至成員A,則成員A扮演了資料請求方的角色、用戶B扮演了資料提供方的角色。每一成員均可能扮演資料請求方或資料提供方的角色,本說明書並不對此進行限制。
在一實施例中,對於各個成員所維護的私有資料而言,這些私有資料對應的索引資訊集合可以被發布至索引區塊鏈,並記錄至索引區塊鏈的所有區塊鏈節點分別維護的、內容統一的索引區塊鏈帳帳本中,使得每一成員均可以基於索引區塊鏈帳帳本獲知各個成員所維護的私有資料對應的索引資訊集合。
在一實施例中,共享平臺可以被配置為所述索引區塊鏈的節點,各個成員可以為自身所維護的私有資料產生索引資訊集合,並將索引資訊集合發送至共享平臺,以由共享平臺提交至索引區塊鏈。而各個成員可以透過共享平臺或其他區塊鏈節點對索引區塊鏈帳帳本進行查詢,或者各個成員可以從共享平臺或其他區塊鏈節點處下載索引區塊鏈帳帳本的帳帳本資料,以對自身發送給共享平臺的索引資訊集合進行查詢,以確定共享平臺是否已經將該索引資訊集合發布至索引區塊鏈。
在一實施例中,各個成員被配置為索引區塊鏈的區塊鏈節點,使得每一成員可以為自身所維護的私有資料產生索引資訊集合,並透過向索引區塊鏈中提交包含索引資訊集合的區塊鏈交易,從而將索引資訊集合發布至索引區塊鏈,無需依賴於共享平臺。
在一實施例中,共享平臺可以被配置為所述索引區塊鏈的節點,即該共享平臺維護有索引區塊鏈對應的索引區塊鏈帳帳本。相應地,作為資料請求方的成員可以根據已知的目標資料的特定資訊(比如當目標資料為交易記錄時,該特定資訊可以包括交易記錄對應的交易用戶ID等),產生相應的密文索引(比如特定資訊的散列值),並向所述共享平臺發起查詢請求,所述查詢請求中包含所述密文索引,以指示所述共享平臺從所述索引區塊鏈中查詢包含所述密文索引的索引資訊集合,即由共享平臺根據密文索引對索引區塊鏈帳帳本進行檢索、查詢到該密文索引對應的索引資訊集合。或者,作為資料請求方的成員可以請求下載所述共享平臺維護的所述索引區塊鏈的帳帳本資料(即索引區塊鏈帳帳本的資料),並由該資料請求方自身根據密文索引對帳帳本資料進行檢索,以查詢出包含所述密文索引的索引資訊集合。
在一實施例中,所述資料請求方被配置為所述索引區塊鏈的節點。相應地,作為資料請求方的成員可以根據已知的所述目標資料的特定資訊,產生相應的密文索引,並根據所述資料請求方維護的所述索引區塊鏈的帳帳本資料,查詢出包含所述密文索引的索引資訊集合,無需依賴於共享平臺。
在一實施例中,由於私有資料由各個成員進行維護,而共享平臺僅能夠接觸到私有資料對應的索引資訊(包含於上述的索引資訊集合中),可以避免共享平臺獲取私有資料並違規外洩私有資料。同時,透過採用索引區塊鏈來記錄索引資訊集合,可以利用區塊鏈的鏈式資料結構,確保已經上鏈的索引資訊集合無法被隨意修改,並且可供共享平臺和各個成員進行查詢、驗證,具有極高的可靠性。此外,由於索引區塊鏈上記錄的索引資訊集合中,與私有資料相關的索引資訊為密文索引、呈現為密文形式,因而不會向共享平臺透露出資料提供方實際持有的私有資料的內容,也不會暴露資料請求方請求了何種資料,具有極高的私密性。
步驟304,將資料請求方發起的資料獲取請求轉發至所述資料提供方,所述資料獲取請求包含所述目標資料的密文索引。
在一實施例中,透過確定出索引資訊集合,使得資料請求方可以獲知該索引資訊集合中包含的資料提供方的資訊,即確定出目標資料對應的資料提供方,從而向共享平臺發起針對該資料提供方的資料獲取請求。
在一實施例中,資料獲取請求還包含:所述資料請求方的身分公鑰、透過所述資料請求方的身分私鑰產生的資料請求方簽名,使得資料提供方在獲得共享平臺轉發的該資料獲取請求後,可以從資料獲取請求中提取出身分公鑰,以針對資料請求方簽名進行驗證,若驗證成功則確定該資料獲取請求確實來自於該資料請求方。當然,在一些情况下,資料獲取請求中可以不包含資料請求方的身分公鑰,比如可以包含唯一對應於該資料請求方的身分標識,而資料提供方可以據此選取預先獲得的該資料請求方的身分公鑰,以針對資料請求方簽名進行驗證。
步驟306,將所述資料提供方提供的響應資料返回至所述資料請求方,所述響應資料由所述資料請求方的身分公鑰進行加密。
在一實施例中,資料提供方根據資料獲取請求中包含的密文索引,以及自身維護的密文索引與明文索引之間的映射關係,確定出明文索引,並基於該明文索引查詢出相應的私有資料,以作為上述的響應資料而返回至共享平臺、由共享平臺轉發至資料請求方。當然,資料提供方也可以維護有密文索引與私有資料之間的映射關係,從而直接根據密文索引查詢到對應的私有資料。
在一實施例中,透過採用資料請求方的身分公鑰對響應資料進行加密,使得該響應資料只有資料請求方可以透過自身的身分私鑰進行解密,那麽即便由共享平臺對該響應資料進行轉發,該共享平臺也只能夠獲得加密狀態的響應資料,從而杜絕了共享平臺沉澱與外洩私有資料的可能性。
在一實施例中,所述響應資料中還包含:透過所述資料提供方的身分私鑰產生的資料提供方簽名,使得資料請求方可以根據該資料提供方的身分公鑰進行驗證,若驗證通過則確定該響應資料確實來自於所述資料提供方。
在一實施例中,所述索引資訊集合中包含所述目標資料的散列值;資料請求方可以將所述響應資料對應的解密後資料進行散列計算,並與索引資訊集合中的散列值進行比較,當計算得到的散列值與所述索引資訊集合中的散列值一致時,可以確定所述解密後資料為所述目標資料,表明資料提供方確實擁有相關資料並且沒有無意或刻意提供錯誤的資料,且資料傳輸過程中沒有發生資料損壞或資料替換,也可以表明資料提供方提供至索引區塊鏈的索引資訊集合與其實際擁有的私有資料之間內容相符、不存在欺騙行為。
在一實施例中,共享平臺可以接收所述資料請求方向所述共享平臺發起針對所述目標資料的投訴請求,所述投訴請求中包含投訴理由和相關資料;當基於所述相關資料驗證所述投訴理由成立時,在所述索引區塊鏈中為所述索引資訊集合添加無效標識。其中,根據投訴理由的不同,投訴請求所包含的相關資料的類型也可能存在差異,需要根據實際情况而確定。例如,當投訴理由為資料重複時,相關資料可以包括資料請求方持有資料的資訊和被訴資料的資訊,使得兩者被確認為一致且資料請求方所持有資料的索引資訊集合在索引區塊鏈上的區塊高度相對較小(即更早提交至索引區塊鏈)時,可以判定為投訴理由成立。再例如,當投訴理由為資料不符時,相關資料可以包括資料請求方獲得的目標資料、相應的索引資訊集合、資料請求方從資料提供方處獲得該目標資料的歷史記錄等,使得共享平臺可以根據歷史記錄確定該目標資料來自資料提供方,以及共享平臺可以計算目標資料的散列值、與索引資訊集合中包含的散列值進行比較,從而該比較結果為不一致時,判定為投訴理由成立。
在一實施例中,共享平臺可以確定所述資料請求方與所述資料提供方之間的資料共享事件,並將所述資料共享事件發布至所述交易區塊鏈,其中所述共享平臺被配置為所述交易區塊鏈的節點。其中,交易區塊鏈區別於上述的索引區塊鏈,該交易區塊鏈用於記錄各個成員之間的資料共享事件,以便後續查詢與驗證。而透過採用相互獨立的索引區塊鏈與交易區塊鏈,可以將索引資訊集合的資料與資料共享事件的資料相互分離,尤其是索引區塊鏈需要頻繁實施索引查詢操作,這樣有助於提升對索引資訊集合的查詢效率。當然,也可以僅採用單一的區塊鏈,並將索引資訊集合與資料共享事件均記錄至該區塊鏈中,本說明書並不對此進行限制。
需要說明的是:在本說明書中所描述的交易(transfer),是指用戶透過區塊鏈的客戶端創建,並需要最終發布至區塊鏈的分布式資料庫中的一筆資料。其中,區塊鏈中的交易,存在狹義的交易以及廣義的交易之分。狹義的交易是指用戶向區塊鏈發布的一筆價值轉移;例如,在傳統的比特幣區塊鏈網路中,交易可以是用戶在區塊鏈中發起的一筆轉帳。而廣義的交易是指用戶向區塊鏈發布的一筆具有業務意圖的業務資料;例如,運營方可以基於實際的業務需求搭建一個聯盟鏈,依托於聯盟鏈部署一些與價值轉移無關的其它類型的在線業務(比如,資料共享業務、租房業務、車輛調度業務、保險理賠業務、信用服務、醫療服務等),而在這類聯盟鏈中,交易可以是用戶在聯盟鏈中發布的一筆具有業務意圖的業務消息或者業務請求。
為了便於理解,以資料共享系統為例,對本說明書一個或多個實施例的技術方案進行說明。圖4是一示例性實施例提供的一種資料共享系統的結構示意圖。如圖4所示,該資料共享系統可以包括:共享平臺和若干成員,比如圖4中示出了成員1~成員6,每一成員分別維護有可共享的私有資料,共享平臺分別連接至每一成員,從而實現各個成員之間的資料共享。圖5是一示例性實施例提供的一種資料共享過程的互動示意圖;如圖5所示,該資料共享過程可以包括以下步驟:
步驟501a,機構1透過在共享平臺進行身分認證,加入為共享平臺相關聯的成員1。
在一實施例中,資料共享系統中的成員可以包括管理資料的機構;或者,資料共享系統中的成員還可以包括個人或除機構之外的其他類型的組織等,本說明書並不對此進行限制。
以機構1為例,圖6是一示例性實施例提供的一種身分認證的互動示意圖;如圖6所示,在步驟601中由機構1向共享平臺發送成員加入申請,該成員加入申請中可以包含機構1的身分證明資訊(比如營業執照、法人資訊、資質證明等,本說明書並不對此進行限制),以使得共享平臺可以據此確認機構1真實的身分資訊;在步驟602中,共享平臺根據上述的成員加入申請,審核確認機構1的身分資訊;在步驟603中,在對身分資訊審核確認無誤後,共享平臺向機構1發送允許加入通知;在步驟604中,機構1向共享平臺發送數位證書,該數位證書可由第三方CA (Certificate Authority,證書頒發機構)發放或機構1自行産生,本說明書並不對此進行限制;在步驟605中,共享平臺將數位證書與機構1的身分資訊(即步驟602中審核確認的身分資訊)相關聯;在步驟606中,機構1針對預先產生的公私鑰池(包含任意數量的公私鑰對),用數位證書的私鑰對公鑰池資料進行簽名,並將簽名後的公鑰池資料發送至共享平臺;在步驟607中,共享平臺透過數位證書的公鑰對公鑰池資料進行簽名驗證,在驗證通過後將公鑰池資料包含的公鑰與機構1上述的身分資訊相關聯,從而將該公鑰作為機構1的身分標識。透過上述互動過程,可使機構1在共享平臺處完成身分認證,從而將該機構1認證為共享平臺相關聯的成員,比如上述的成員1。
步驟501b,機構2透過在共享平臺進行身分認證,加入為共享平臺相關聯的成員2。
在一實施例中,機構2可以採用與機構1相類似的方式和處理過程,將自身認證為上述的成員2;類似地,其他機構也可以據此將自身認證為相應的成員,此處不再贅述。
步驟502a,成員1產生記錄申請包,並上傳至共享平臺。
在一實施例中,成員1維護有一定的私有資料,而為了對這些私有資料進行共享,成員1可以為自身維護的私有資料產生對應的記錄申請包,從而透過共享平臺發布至索引區塊鏈中。例如,圖7是一示例性實施例提供的一種記錄申請包的結構示意圖。如圖7所示,記錄申請包可以包括主體標識ID的散列值、主體描述資訊、資訊內容的散列值、資料提供方的公鑰、資訊價格和資料提供方的私鑰簽名等,本說明書並不對此進行限制。
步驟502b,成員2產生記錄申請包,並上傳至共享平臺。
在一實施例中,成員2可以針對自身維護的私有資料產生如圖7所示結構的記錄申請包;類似地,其他成員可以分別針對自身維護的私有資料產生記錄申請包,此處不再贅述。
步驟503,共享平臺驗證收到的記錄申請包,並針對通過驗證的記錄申請包,向索引區塊鏈發布索引記錄。
在一實施例中,共享平臺可以提取記錄申請包中包含的“資料提供方的公鑰”,驗證該公鑰是否處於成員公鑰池中,該成員公鑰池內包含所有已認證的成員的公鑰;如果處於成員公鑰池中,表明該公鑰屬有效的成員所有,則共享平臺可以透過該公鑰對記錄申請包中包含的“資料提供方的私鑰簽名”進行驗證,在驗證通過後確定該記錄申請包確實來自於對應成員,至此完成驗證。若未通過驗證,共享平臺可以丟棄相應的記錄申請包。
在一實施例中,共享平臺針對已通過驗證的記錄申請包,可以產生相應的索引記錄;其中,由於共享平臺已經被配置為索引區塊鏈的區塊鏈節點,因而該共享平臺可以透過向索引區塊鏈中提交包含該索引記錄的區塊鏈交易,從而將該索引記錄發布至索引區塊鏈中,使得該索引記錄被記載於索引區塊鏈對應的區塊鏈帳帳本中。
以成員1上傳的記錄申請包為例:
在一實施例中,索引記錄可以包含記錄申請包中的“主體標識ID的散列值”,該“主體標識ID”是成員1所維護的私有資料的索引資訊,比如當私有資料為商家銷售記錄時,主體標識ID可以包括“商家ID+支付帳號”,而透過產生相應的散列值,使得索引資訊“主體標識ID”被處理為相應的密文索引,即上述的“主體標識ID的散列值”。索引記錄還可以包含成員1的服務位址,該服務位址用於指向該成員1,以便於其他成員可以據此向成員1發起資料獲取請求;其中,由於記錄申請包由成員1發送至共享平臺,因而共享平臺在針對該記錄申請包產生相應的索引記錄時,可以自動將成員1的服務位址添加至該索引記錄中。
在一實施例中,除了密文索引與服務位址之外,索引記錄還可以包含記錄申請包中的“主體資訊描述”,該“主體資訊描述”用於對成員1所維護的私有資料進行一定程度的描述,相當於成員1對於該私有資料的內容聲明,以便於其他成員確定是否需要獲得相關私有資料。譬如,對於上述的商家銷售記錄而言,該主體資訊描述可以包括“2018年5月~2018年6月的記錄”,表明其對應於這一時間段內的商家銷售記錄。
在一實施例中,除了密文索引與服務位址之外,索引記錄還可以包含記錄申請包中的“資訊內容的散列值”,該“資訊內容”即成員1所維護的私有資料,透過產生該私有資料的散列值,便於資料請求方在獲得相關私有資料後,對資料內容的完整性和正確性予以檢驗,這將在步驟509進行描述。
在一實施例中,除了密文索引與服務位址之外,索引記錄還可以包含資訊價格,該資訊價格標示出了其他成員為獲得相應的私有資料所需付出的代價,這一代價可以採用多種形式進行呈現,比如一定數額的資産憑證(如會員積分、代金券、貨幣餘額等)、執行預設操作、提供指定的資料等,本說明書並不對此進行限制。
對於成員2或其他成員上傳的記錄申請包,共享平臺均可以產生相應的索引記錄並發布至索引區塊鏈中,其產生過程和索引記錄的內容均可以參考上述描述,此處不再贅述。
步驟504,共享平臺根據成員1發起的查詢請求,查詢索引區塊鏈對應的區塊鏈帳帳本。
步驟505,共享平臺根據對區塊鏈帳帳本的查詢情况,向成員1返回相應的查詢結果。
在一實施例中,共享平臺作為索引區塊鏈的區塊鏈節點,維護有索引區塊鏈的區塊鏈帳帳本,該區塊鏈帳帳本包含索引區塊鏈的全量資料,即記錄有共享平臺上傳至索引區塊鏈的所有索引記錄。
在一實施例中,成員1至少可以獲知其所需查詢的私有資料的部分資訊,比如對於上文所述的商家銷售記錄,成員1可以獲知“商家ID+支付帳號”,即上述的主體標識ID;相應地,成員1發起的查詢請求中可以包括主體標識ID的散列值,使得共享平臺可以根據該散列值對區塊鏈帳帳本進行檢索,以獲得相應的索引記錄,並向成員1返回包含該索引記錄的查詢結果。
步驟506,共享平臺獲取成員1發起的資料獲取請求,並轉發至相應的資料提供方。
在一實施例中,成員1根據查詢結果中包含的索引記錄,獲取該索引記錄中包含的服務位址,使得成員1可以向該服務位址發起資料獲取請求。該服務位址由共享平臺所維護,且共享平臺能夠明確該服務位址與相關成員之間的映射關係;比如,當該服務位址對應於成員2時,如果共享平臺收到成員1向該服務位址發起的資料獲取請求,共享平臺可以將該資料獲取請求轉發至成員2,即成員2被作為相應的資料提供方。
步驟507,成員2對收到的資料獲取請求執行驗證操作。
在一實施例中,圖8是一示例性實施例提供的一種資料獲取請求包的結構示意圖。如圖8所示,該資料獲取請求包為上述資料獲取請求的資料結構的表現形式,可以包括主體標識ID的散列值、資料請求方的公鑰、已有簽名在索引區塊鏈的位置、資料請求方的私鑰簽名等,本說明書並不對此進行限制。針對如圖8所示的資料獲取請求包,成員2執行的驗證操作可以包括:基於“已有簽名在索引區塊鏈的位置”確定相應的資料請求方是共享平臺處的有效成員;提取“資料請求方的公鑰”,對“資料請求方的私鑰簽名”進行驗證。
步驟508,成員2產生響應包並返回至共享平臺,由共享平臺轉發至成員1。
在一實施例中,成員2可以提取資料獲取請求包含的“主體標識ID的散列值”,並基於該密文索引對自身維護的私有資料進行檢索,從而確定出相應的響應資料。當然,成員2維護的私有資料並不一定支持基於密文索引的檢索操作;例如,成員2可以維護密文索引與明文索引的映射關係,據此確定出密文索引對應的明文索引,再基於明文索引對私有資料進行檢索,從而確定出相應的響應資料。
在一實施例中,成員2對檢索得到的響應資料進行封裝,以產生相應的響應包。例如,圖9是一示例性實施例提供的一種響應包的結構示意圖。如圖9所示,該響應包可以包括主體標識ID的散列值、主體資訊描述、資訊內容的散列值等,以便於成員1確定該響應包所對應的索引記錄。響應包可以包括資料請求方的公鑰,以使得共享平臺據此確定響應包的發送目標為成員1,從而將該響應包發送至成員1。響應包可以包括加密後的資料內容,由成員2根據資料請求方的公鑰對響應資料進行加密後得到。響應包可以包括資料提供方的私鑰簽名,即成員2的私鑰簽名。
步驟509,成員1針對收到的響應包執行驗證操作。
在一實施例中,成員1對響應包的驗證操作可以包括:根據資料提供方的公鑰對私鑰簽名進行驗證,若驗證通過則表明該響應包確實來自於相應的資料提供方。透過成員1自身的公鑰對加密後的資料內容進行解密處理,得到解密後資料,即成員2提供的上述響應資料;其中,由於成員1可能存在多個公鑰,因而可以對響應包中包含的資料請求方的公鑰進行驗證,當確定該公鑰為成員1自身擁有的公鑰時,使用該公鑰對加密後的資料內容進行解密。
在一實施例中,在獲得解密後資料後,成員1可以產生該解密後資料的散列值,並將其與響應包中的“資訊內容的散列值”進行比較;當比較結果一致時,可以確定響應包在傳輸過程中未受損。成員1可以將解密後資料的散列值與先前獲得的索引記錄所包含的“資訊內容的散列值”進行比較;當比較結果一致時,可以確定成員2提供了正確資料,且響應包在傳輸過程中未被惡意替換。
在一實施例中,成員1可以確定解密後資料的描述內容;比如當解密後資料為商家銷售記錄時,描述內容可以包括該商家銷售記錄對應的月份,如果該月份為“2018年5月-2018年6月”,而主體資訊描述為“2018年5月~2018年6月的記錄”,表明成員2所提供的資料與其在索引區塊鏈中聲明的資訊相符。
在一實施例中,對應於圖7所示的“資訊價格”,成員1需要向成員2付出相關代價後,才能夠獲得成員2提供的資料。以會員積分為例,共享平臺可以作為各個成員之間的第三方,使得成員1可以根據索引記錄中標注的資訊價格,向共享平臺轉入相應數額的會員積分,使得共享平臺將資料獲取請求轉發至成員2;而當成員2返回響應包之後,或者在成員1確認收到響應包後,共享平臺可以將相應的會員積分轉至成員2,相當於成員1與成員2之間完成了一筆資料共享交易。相應地,當共享平臺被配置為交易區塊鏈的區塊鏈節點時,共享平臺可以向交易區塊鏈提交一筆區塊鏈交易,該區塊鏈交易中包含成員1與成員2之間的上述資料共享交易的交易記錄,以對該資料共享交易進行可靠記載,並且可以隨時進行查詢和核驗。
步驟510,成員1可以向共享平臺發起投訴請求。
步驟511,共享平臺可以對投訴請求進行驗證。
步驟512,在投訴請求被確認為驗證通過時,共享平臺可以為索引區塊鏈中對應的索引記錄添加無效標識。
在一實施例中,圖10是一示例性實施例提供的一種投訴請求包的結構示意圖。如圖10所示,投訴請求包為上述投訴請求的資料結構的表現形式,可以包括:包類型,用於表明當前資料包的類型為“投訴請求包”;被投訴資料的索引資訊,比如被投訴資料對應的密文索引或索引記錄;資料內容,明文資料內容;投訴原因,如獲得的資料與索引記錄中的“主體資訊描述”不相符、獲得的資料為虛假資料、獲得的資料與自身或其他成員維護的資料雷同(比如成員2從成員1處購得資料後,產生並上傳相應的記錄申請包,以添加為自身維護的資料,侵犯成員1的權益)等,本說明書並不對此進行限制;投訴者的私鑰簽名。
例如,當投訴原因為獲得的資料與索引記錄中的“主體資訊描述”不相符時,共享平臺可以根據“被投訴資料的索引資訊”獲取相關索引記錄、提取出相關資料的散列值,並對“資料內容”中的明文資料內容計算散列值,若兩個散列值一致,表明該明文資料內容為相關索引記錄對應的資料;進一步的,共享平臺可以將該明文資料內容與索引記錄中聲明的“主體資訊描述”進行比較,從而確定兩者是否存在不相符的情况。
在一實施例中,當投訴請求被確認為驗證通過後,共享平臺可以向索引區塊鏈中提交一筆區塊鏈交易,該區塊鏈交易的內容包含:為被投訴資料的索引記錄添加無效標識,使得該“被投訴資料的索引記錄”在區塊鏈帳帳本中對應的狀態參數發生變化,即被標記為無效狀態。那麽,在後續的資料共享過程中,被標記為無效狀態的索引記錄無法被共享,可由共享平臺對此進行過濾與核驗。
進一步的,共享平臺還可以針對被投訴資料的資料提供方實施懲戒措施,比如限制其可獲得資料的範圍、提高其獲取資料的價格、剝奪其成員身分等,本說明書並不對此進行限制。
在一實施例中,除了由成員進行投訴之外,共享平臺可以對資料共享過程進行監督,以保障成員所提供資料的規範性和質量、打擊惡意提供重複資料的成員等。例如,共享平臺可以在成員的請求下,對可疑資料或其資料提供方進行核查;再例如,共享平臺可以透過資料抽查的方式,以普通成員的身分從相關成員處獲得相關資料,並對其資料的規範性、真實性、與聲明的一致性等進行核實。
圖11是一示例性實施例提供的一種設備的示意結構圖。請參考圖11,在硬體層面,該設備包括處理器1102、內部線匯流排1104、網路介面1106、內部記憶體1108以及非易失性記憶體1110,當然還可能包括其他業務所需要的硬體。處理器1102從非易失性記憶體1110中讀取對應的電腦程式到內部記憶體1108中然後運行,在邏輯層面上形成資料共享裝置。當然,除了軟體實現方式之外,本說明書一個或多個實施例並不排除其他實現方式,比如邏輯裝置抑或軟硬體結合的方式等等,也就是說以下處理流程的執行主體並不限定於各個邏輯單元,也可以是硬體或邏輯裝置。
請參考圖12,在軟體實施方式中,該資料共享裝置應用於作為資料請求方的成員,所述裝置可以包括:
確定單元1201,確定索引區塊鏈中記錄的對應於目標資料的索引資訊集合,所述索引資訊集合包含所述目標資料的密文索引和所述目標資料的資料提供方的成員資訊,所述索引資訊集合由所述資料提供方共享至所述索引區塊鏈;
請求單元1202,透過共享平臺向所述資料提供方發起資料獲取請求,所述資料獲取請求包含所述目標資料的密文索引;
接收單元1203,接收所述共享平臺返回的響應資料,所述響應資料由所述資料請求方的身分公鑰進行加密。
可選的,所述共享平臺被配置為所述索引區塊鏈的節點;所述確定單元1201具體用於:
根據已知的所述目標資料的特定資訊,產生相應的密文索引;
向所述共享平臺發起查詢請求,所述查詢請求中包含所述密文索引,以指示所述共享平臺從所述索引區塊鏈中查詢包含所述密文索引的索引資訊集合;或者,下載所述共享平臺維護的所述索引區塊鏈的帳帳本資料,以查詢出包含所述密文索引的索引資訊集合。
可選的,所述資料請求方被配置為所述索引區塊鏈的節點;所述確定單元1201具體用於:
根據已知的所述目標資料的特定資訊,產生相應的密文索引;
根據所述資料請求方維護的所述索引區塊鏈的帳帳本資料,查詢出包含所述密文索引的索引資訊集合。
可選的,所述資料獲取請求還包含:所述資料請求方的身分公鑰、透過所述資料請求方的身分私鑰產生的資料請求方簽名,以供所述資料提供方進行驗證。
可選的,所述響應資料中還包含:透過所述資料提供方的身分私鑰產生的資料提供方簽名,以供所述資料請求方進行驗證。
可選的,所述索引資訊集合中包含所述目標資料的散列值;所述裝置還包括:
計算單元1204,將所述響應資料對應的解密後資料進行散列計算;
判斷單元1205,當計算得到的散列值與所述索引資訊集合中的散列值一致時,確定所述解密後資料為所述目標資料。
可選的,還包括:
投訴單元1206,向所述共享平臺發起針對所述目標資料的投訴請求,所述投訴請求中包含投訴理由和相關資料;
其中,當所述投訴理由被所述共享平臺或所述共享平臺在所述索引區塊鏈中調用的智慧合約基於所述相關資料而驗證為成立時,所述索引資訊集合在所述索引區塊鏈中被添加無效標識。
可選的,還包括:
提交單元1207,向所述索引區塊鏈提交投訴類型的交易,以調取用於處理投訴的智慧合約,其中所述交易包含投訴理由和相關資料;
其中,所述智慧合約被用於根據所述相關資料驗證所述投訴理由,並在所述投訴理由被驗證為成立時,在所述索引區塊鏈中為所述索引資訊集合添加無效標識。
可選的,還包括:發布單元1208或發送單元1209;
所述發布單元1208用於將所述資料請求方與所述資料提供方之間的資料共享事件發布至交易區塊鏈,其中所述資料請求方被配置為所述交易區塊鏈的節點;
所述發送單元1209用於將所述資料共享事件發送至所述共享平臺,以由所述共享平臺發布至所述交易區塊鏈,其中所述共享平臺被配置為所述交易區塊鏈的節點。
圖13是一示例性實施例提供的一種設備的示意結構圖。請參考圖13,在硬體層面,該設備包括處理器1302、內部線匯流排1304、網路介面1306、內部記憶體1308以及非易失性記憶體1310,當然還可能包括其他業務所需要的硬體。處理器1302從非易失性記憶體1310中讀取對應的電腦程式到內部記憶體1308中然後運行,在邏輯層面上形成資料共享裝置。當然,除了軟體實現方式之外,本說明書一個或多個實施例並不排除其他實現方式,比如邏輯裝置抑或軟硬體結合的方式等等,也就是說以下處理流程的執行主體並不限定於各個邏輯單元,也可以是硬體或邏輯裝置。
請參考圖14,在軟體實施方式中,該資料共享裝置應用於作為資料提供方的成員,所述裝置可以包括:
共享單元1401,將對應於目標資料的索引資訊集合共享至索引區塊鏈,所述索引資訊集合包含所述目標資料的密文索引和所述資料提供方的成員資訊;
接收單元1402,接收資料請求方透過共享平臺發起的資料獲取請求,所述資料獲取請求包含所述目標資料的密文索引;
返回單元1403,透過所述共享平臺向所述資料請求方返回響應資料,所述響應資料由所述資料請求方的身分公鑰進行加密。
可選的,所述資料獲取請求還包含:所述資料請求方的身分公鑰、透過所述資料請求方的身分私鑰產生的資料請求方簽名,以供所述資料提供方進行驗證。
可選的,所述響應資料中還包含:透過所述資料提供方的身分私鑰產生的資料提供方簽名,以供所述資料請求方進行驗證。
可選的,所述共享單元1401具體用於:
將所述索引資訊集合發布至所述索引區塊鏈,其中所述資料提供方被配置為所述索引區塊鏈的節點;
或者,將所述索引資訊集合提交至所述共享平臺,以由所述共享平臺發布至所述索引區塊鏈,其中所述共享平臺被配置為所述索引區塊鏈的節點。
可選的,還包括:發布單元1404或發送單元1405;
所述發布單元1404用於將所述資料請求方與所述資料提供方之間的資料共享事件發布至所述交易區塊鏈,其中所述資料提供方被配置為交易區塊鏈的節點;
所述發送單元1405用於將所述資料共享事件發送至所述共享平臺,以由所述共享平臺發布至所述交易區塊鏈,其中所述共享平臺被配置為所述交易區塊鏈的節點。
圖15是一示例性實施例提供的一種設備的示意結構圖。請參考圖15,在硬體層面,該設備包括處理器1502、內部線匯流排1504、網路介面1506、內部記憶體1508以及非易失性記憶體1510,當然還可能包括其他業務所需要的硬體。處理器1502從非易失性記憶體1510中讀取對應的電腦程式到內部記憶體1508中然後運行,在邏輯層面上形成資料共享裝置。當然,除了軟體實現方式之外,本說明書一個或多個實施例並不排除其他實現方式,比如邏輯裝置抑或軟硬體結合的方式等等,也就是說以下處理流程的執行主體並不限定於各個邏輯單元,也可以是硬體或邏輯裝置。
請參考圖16,在軟體實施方式中,該資料共享裝置應用於共享平臺,所述裝置可以包括:
第一發布單元1601,將對應於目標資料的索引資訊集合發布至索引區塊鏈,所述索引資訊集合包含所述目標資料的密文索引和所述目標資料的資料提供方的成員資訊,所述索引資訊集合由所述資料提供方提交至所述共享平臺;
轉發單元1602,將資料請求方發起的資料獲取請求轉發至所述資料提供方,所述資料獲取請求包含所述目標資料的密文索引;
返回單元1603,將所述資料提供方提供的響應資料返回至所述資料請求方,所述響應資料由所述資料請求方的身分公鑰進行加密。
可選的,還包括:
第一接收單元1604,接收所述資料請求方發起的查詢請求,所述查詢請求中包含根據已知的所述目標資料的特定資訊產生的密文索引;
查詢單元1605,從所述索引區塊鏈中查詢包含所述密文索引的索引資訊集合,以告知所述資料請求方。
可選的,還包括:
第二接收單元1606,接收所述資料請求方向所述共享平臺發起針對所述目標資料的投訴請求,所述投訴請求中包含投訴理由和相關資料;
添加單元1607,當基於所述相關資料驗證所述投訴理由成立時,在所述索引區塊鏈中為所述索引資訊集合添加無效標識。
可選的,還包括:
確定單元1608,確定所述資料請求方與所述資料提供方之間的資料共享事件;
第二發布單元1609,將所述資料共享事件發布至所述交易區塊鏈,其中所述共享平臺被配置為所述交易區塊鏈的節點。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的産品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、行動電話、相機電話、智慧電話、個人數位助理、媒體播放器、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。
在一個典型的配置中,電腦包括一個或多個處理器 (CPU)、輸入/輸出介面、網路介面和內部記憶體。
內部記憶體可能包括電腦可讀媒體中的非永久性記憶體,隨機存取記憶體(RAM)和/或非易失性內部記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。內部記憶體是電腦可讀媒體的示例。
電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變內部記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可編程唯讀記憶體(EEPROM)、快閃記憶體或其他內部記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶、磁碟儲存、量子記憶體、基於石墨烯的儲存媒體或其他磁性儲存設備或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀媒體不包括暫存電腦可讀媒體(transitory media),如調變的資料信號和載波。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情况下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
上述對本說明書特定實施例進行了描述。其它實施例在申請專利範圍的範圍內。在一些情况下,在申請專利範圍中記載的動作或步驟可以按照不同於實施例中的順序來執行並且仍然可以實現期望的結果。另外,在圖式中描繪的過程不一定要求示出的特定順序或者連續順序才能實現期望的結果。在某些實施方式中,多任務處理和並行處理也是可以的或者可能是有利的。
在本說明書一個或多個實施例使用的術語是僅僅出於描述特定實施例的目的,而非旨在限制本說明書一個或多個實施例。在本說明書一個或多個實施例和申請專利範圍中所使用的單數形式的“一種”、“所述”和“該”也旨在包括多數形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語“和/或”是指並包含一個或多個相關聯的列出項目的任何或所有可能組合。
應當理解,儘管在本說明書一個或多個實施例可能採用術語第一、第二、第三等來描述各種資訊,但這些資訊不應限於這些術語。這些術語僅用來將同一類型的資訊彼此區分開。例如,在不脫離本說明書一個或多個實施例範圍的情况下,第一資訊也可以被稱為第二資訊,類似地,第二資訊也可以被稱為第一資訊。取决於語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當……時”或“響應於確定”。
以上所述僅為本說明書一個或多個實施例的較佳實施例而已,並不用以限制本說明書一個或多個實施例,凡在本說明書一個或多個實施例的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本說明書一個或多個實施例保護的範圍之內。
1102:處理器
1104:內部匯流排
1106:網路介面
1108:內部記憶體
1110:非易失性記憶體
1201:確定單元
1202:請求單元
1203:接收單元
1204:計算單元
1205:判斷單元
1206:投訴單元
1207:提交單元
1208:發布單元
1209:發送單元
1302:處理器
1304:內部匯流排
1306:網路介面
1308:內部記憶體
1310:非易失性記憶體
1401:共享單元
1402:接收單元
1403:返回單元
1404:發布單元
1405:發送單元
1502:處理器
1504:內部匯流排
1506:網路介面
1508:內部記憶體
1510:非易失性記憶體
1601:第一發布單元
1602:轉發單元
1603:返回單元
1604:第一接收單元
1605:查詢單元
1606:第二接收單元
1607:添加單元
1608:確定單元
1609:第二發布單元
[圖1] 是一示例性實施例提供的一種資料共享方法的流程圖。
[圖2] 是一示例性實施例提供的另一種資料共享方法的流程圖。
[圖3] 是一示例性實施例提供的又一種資料共享方法的流程圖。
[圖4] 是一示例性實施例提供的一種資料共享系統的結構示意圖。
[圖5] 是一示例性實施例提供的一種資料共享過程的互動示意圖。
[圖6] 是一示例性實施例提供的一種身分認證的互動示意圖。
[圖7] 是一示例性實施例提供的一種記錄申請包的結構示意圖。
[圖8] 是一示例性實施例提供的一種資料獲取請求包的結構示意圖。
[圖9] 是一示例性實施例提供的一種響應包的結構示意圖。
[圖10] 是一示例性實施例提供的一種投訴請求包的結構示意圖。
[圖11] 是一示例性實施例提供的一種設備的結構示意圖。
[圖12] 是一示例性實施例提供的一種資料共享裝置的方塊圖。
[圖13] 是一示例性實施例提供的另一種設備的結構示意圖。
[圖14] 是一示例性實施例提供的另一種資料共享裝置的方塊圖。
[圖15] 是一示例性實施例提供的又一種設備的結構示意圖。
[圖16] 是一示例性實施例提供的又一種資料共享裝置的方塊圖。