本發明涉及一種基于區塊鏈的數據共享授權方法,屬于互聯網技術領域。
背景技術:
區塊鏈(Blockchain)是指通過去中心化和去信任的方式集體維護一個可靠數據庫的技術方案。該技術方案主要讓參與系統中的任意多個節點,通過一串使用密碼學方法相關聯產生的數據塊(block),每個數據塊中包含了一定時間內的系統全部信息交流數據,并且生成數據指紋用于驗證其信息的有效性和鏈接(chain)下一個數據庫塊。
傳統的數據共享授權技術主要有兩類:集中式授權和分散式授權。集中式授權工作過程為:系統中存在若干個需要授權用戶,其授權請求都發送到一個授權中心進行審核處理。分散式授權工作過程為:系統中存在若干個需要授權用戶,其授權請求發送到若干個授權中心進行審核處理。集中式授權采用一個授權中心管理,安全性高,但由于授權中心需要承擔較大的工作量而容易成為整個系統的瓶頸。分散式授權采用多個授權中心的方式,將集中式授權的工作量分散,但也增加了系統管理的復雜度,降低了安全性。兩種方式都需要至少一個授權中心的參與,如果因為某種原因授權中心無法連接,便無法通過授權實現數據共享。
技術實現要素:
針對現有技術的不足,本發明提供了一種基于區塊鏈的數據共享授權方法;
本發明的技術方案為:
一種基于區塊鏈的數據共享授權方法,具體步驟包括:
(1)按照授權關系,對所有用戶節點建立區塊鏈;
(2)在步驟(1)生成的區塊鏈中,第一級授權用戶節點創建本級數據共享授權集合K和本級授權節點信息N,具體步驟包括:
A、對系統需要共享的數據進行編號,按照編號建立索引,該索引的集合為數據共享集合D;同時,將系統中的所有用戶節點依據編號也建立索引;
B、第一級授權用戶節點的可共享的數據的索引的集合,即為本級數據共享授權集合K,K={U,D},U為系統中所有可被授權的用戶節點集合,K為以U為列、D為行的元素為1(階數取U和D的最大維數)的矩陣,對本級數據共享授權集合K可被共享的用戶節點進行編號,按照編號建立索引,該索引的集合為本級授權節點信息N;在區塊鏈上增加U、D和N,如圖1所示;
(3)第一級授權用戶節點創建下一級所有用戶節點的數據共享授權集合K1及下一級授權節點信息N1:下一級授權用戶節點可共享的數據的索引的集合即數據共享授權集合K1;對第一級授權用戶節點需要共享的數據進行編號,按照編號建立索引,該索引的集合為數據共享集合D1;K1={U1,D1},U1為可被第一級授權節點授權的用戶節點集合,K1為以U1為列、D1為行的元素為1(階數為步驟(1)中U和D的最大維數)矩陣;對K1可被下一級共享的用戶節點進行編號,按照編號建立索引,該索引的集合為第一級授權節點信息N1,在區塊鏈上增加U1、D1和N1,如圖1所示;
例如,假設系統中的所有授權用戶節點數為3個,編號為1,2,3,需要共享的數據數為3組,編號為1,2,3。則在步驟(2)中,建立好的U={1,2,3},D={1,2,3},N={1,3}。在步驟(3)中,U1={1,3},D1=(1,3),N1={3}。
(4)判斷本級授權用戶節點能否繼續授權,能的話,根據步驟(3)方法,本級授權用戶節點分別創建其下一級授權用戶節點的數據共享授權集合,在對應區塊上增加當前級授權用戶節點信息,并更新到區塊鏈中,對下一級授權用戶節點執行步驟(4);否則,本級全部或部分授權用戶節點根據其自身的數據共享授權集合進行權值計算,選出權值最高的用戶節點作為新的授權用戶節點,并更新區塊鏈對應信息。全部或部分授權用戶節點由用戶設定。
根據本發明優選的,所述步驟(4)中,本級全部或部分授權用戶節點根據其自身的數據共享授權集合進行權值計算,選出權值最高的用戶節點作為新的授權用戶節點,并更新區塊鏈對應信息,具體步驟包括:第一級授權用戶節點無法對其下級中用戶節點創建數據共享授權集合,下級中用戶節點個數為n,進入步驟A;
A、所述n個用戶節點依據其自身的數據共享授權集合創建數據共享授權集合,n個用戶節點中的任意用戶節點i的節點權值Ri計算公式如式(Ⅰ)所示:
式(Ⅰ)中,Ki是指任意用戶節點i的數據共享授權集合的矩陣,X為與Ki同階的歸一化行向量,Y為與Ki同階的元素歸一化列向量,1≤i≤n;
B、通過式(Ⅰ)中計算出n個用戶節點的節點權值,從中取最大值對應的授權用戶節點作為新的授權用戶節點,根據步驟(3)方法,新的授權用戶節點分別創建其下一級授權用戶節點的數據共享授權集合,在對應區塊上增加新的授權用戶節點信息,并更新到區塊鏈中,對下一級授權用戶節點執行步驟(4)。
本發明的有益效果為:
1、本發明與現有集中式授權和分散式授權的方法區別在于,基于區塊鏈技術進行授權,利用區塊鏈的去中心化、記錄信息完整且不可更改的特點,在區塊鏈上記錄所有節點的完整授權信息。由于區塊鏈分布式存放在所有用戶節點上,確保授權信息極難被偽造,提高了系統安全性。
2、本發明在中心授權節點缺失的情況下,可以由下級節點根據區塊鏈的信息新增或變更授權節點,解決了集中式授權和分散式授權都至少需要一個授權節點的缺陷,可以解決在無授權節點情況下的數據共享授權問題。
附圖說明
圖1為基于區塊鏈的數據共享授權方法中區塊鏈中的相關信息U、D、N結構示意圖;
圖2為實施例中基于區塊鏈的數據共享授權方法的流程示意圖。
具體實施方式
下面結合說明書附圖和實施例對本發明作進一步限定,但不限于此。
實施例
一種基于區塊鏈的數據共享授權方法,如圖2所示,具體步驟包括:
(1)按照授權關系,對所有用戶節點建立區塊鏈;
(2)在步驟(1)生成的區塊鏈中,第一級授權用戶節點創建本級數據共享授權集合K和本級授權節點信息N,具體步驟包括:
A、對系統需要共享的數據進行編號,按照編號建立索引,該索引的集合為數據共享集合D;同時,將系統中的所有用戶節點依據編號也建立索引;
B、第一級授權用戶節點的可共享的數據的索引的集合,即為本級數據共享授權集合K,K={U,D},U為系統中所有可被授權的用戶節點集合,K為以U為列、D為行的元素為1(階數取U和D的最大維數)的矩陣,對本級數據共享授權集合K可被共享的用戶節點進行編號,按照編號建立索引,該索引的集合為本級授權節點信息N;在區塊鏈上增加U、D和N,如圖1所示;
(3)第一級授權用戶節點創建下一級所有用戶節點的數據共享授權集合K1及下一級授權節點信息N1:下一級授權用戶節點可共享的數據的索引的集合即數據共享授權集合K1;對第一級授權用戶節點需要共享的數據進行編號,按照編號建立索引,該索引的集合為數據共享集合D1;K1={U1,D1},U1為可被第一級授權節點授權的用戶節點集合,K1為以U1為列、D1為行的元素為1(階數為步驟(1)中U和D的最大維數)矩陣;對K1可被下一級共享的用戶節點進行編號,按照編號建立索引,該索引的集合為第一級授權節點信息N1,在區塊鏈上增加U1、D1和N1,如圖1所示;
例如,假設系統中的所有授權用戶節點數為3個,編號為1,2,3,需要共享的數據數為3組,編號為1,2,3。則在步驟(2)中,建立好的U={1,2,3},D={1,2,3},N={1,3}。在步驟(3)中,U1={1,3},D1=(1,3),N1={3}。
(4)判斷本級授權用戶節點能否繼續授權,能的話,根據步驟(3)方法,本級授權用戶節點分別創建其下一級授權用戶節點的數據共享授權集合,在對應區塊上增加當前級授權用戶節點信息,并更新到區塊鏈中,對下一級授權用戶節點執行步驟(4);否則,本級全部或部分授權用戶節點根據其自身的數據共享授權集合進行權值計算,選出權值最高的用戶節點作為新的授權用戶節點,并更新區塊鏈對應信息。全部或部分授權用戶節點由用戶設定。
所述步驟(4)中,本級全部或部分授權用戶節點根據其自身的數據共享授權集合進行權值計算,選出權值最高的用戶節點作為新的授權用戶節點,并更新區塊鏈對應信息,具體步驟包括:第一級授權用戶節點無法對其下級中用戶節點創建數據共享授權集合,下級中用戶節點個數為n,進入步驟A;
A、所述n個用戶節點依據其自身的數據共享授權集合創建數據共享授權集合,n個用戶節點中的任意用戶節點i的節點權值Ri計算公式如式(Ⅰ)所示:
式(Ⅰ)中,Ki是指任意用戶節點i的數據共享授權集合的矩陣,X為與Ki同階的歸一化行向量,Y為與Ki同階的元素歸一化列向量,1≤i≤n;
B、通過式(Ⅰ)中計算出n個用戶節點的節點權值,從中取最大值對應的授權用戶節點作為新的授權用戶節點,根據步驟(3)方法,新的授權用戶節點分別創建其下一級授權用戶節點的數據共享授權集合,在對應區塊上增加新的授權用戶節點信息,并更新到區塊鏈中,對下一級授權用戶節點執行步驟(4)。