基於區塊鏈的隱私交易方法、裝置及其電腦設備、基於區塊鏈內的隱私交易的應用方法及其電腦設備
本發明涉及資料處理技術領域,尤其涉及一種基於區塊鏈的隱私交易方法、裝置及其應用方法、裝置。
區塊鏈技術,也被稱之為分散式帳本技術,是一種由若干台計算設備共同參與“記帳”,共同維護一份完整的分散式資料庫的新興技術。由於區塊鏈技術具有去中心化、公開透明、每台計算設備可以參與資料庫記錄、並且各計算設備之間可以快速的進行資料同步的特性,使得區塊鏈技術已在眾多的領域中廣泛的進行應用。
但是,目前的主流區塊鏈架構中,各個節點儲存相同的資料;在有些實際場景中,區塊鏈節點參與方不希望自己的資料被其它節點獲知。
針對以上提出的區塊鏈資料處理流程的現狀及問題,根據本發明一個或多個實施例的第一方面,提出了一種基於區塊鏈的隱私交易方法,應用於可信任用戶的節點設
備,其中,所述可信任用戶由區塊鏈的分散式資料庫儲存的信任設置交易確定,所述信任設置交易包括所述區塊鏈用戶對應的所有可信任用戶的標識;所述方法包括:接收所述區塊鏈用戶發送的第一訊息,所述第一訊息包括未隱私保護的第一資料資訊和受隱私保護的第二資料資訊,其中,所述受隱私保護的第二資料資訊是由所述未隱私保護的第一資料資訊轉化所得;將所述第一資料資訊儲存在所述可信任用戶的節點設備的本地資料庫;向所述區塊鏈發送第二交易,所述第二交易包括所述第二資料資訊,以使所述第二交易被驗證後收錄於所述區塊鏈的分散式資料庫中。
根據本發明一個或多個實施例的第二方面,提出了一種基於區塊鏈的隱私交易的應用方法,包括:從所述區塊鏈的分散式資料庫獲取由可信任用戶的節點設備發送的第二交易,所述第二交易包括受隱私保護的第二資料資訊,其中,所述可信任用戶由區塊鏈的分散式資料庫儲存的信任設置交易確定,所述信任設置交易包括所述區塊鏈用戶對應的所有可信任用戶的標識;接收所述可信任用戶的節點設備發送的未隱私保護的第一資料資訊,所述第一資料資訊被儲存在所述可信任用戶的節點設備的本地資料庫;驗證所述受隱私保護的第二資料資訊是否由所述未隱私保護的第一資料資訊轉化所得,如果是,執行對所述第二交易的應用邏輯。
根據本發明一個或多個實施例的第三方面,提出了一種基於區塊鏈的隱私交易裝置,應用於可信任用戶的節點設備,其中,所述可信任用戶由區塊鏈的分散式資料庫儲存的信任設置交易確定,所述信任設置交易包括所述區塊鏈用戶對應的所有可信任用戶的標識;所述裝置包括:
接收單元,接收所述區塊鏈用戶發送的第一訊息,所述第一訊息包括未隱私保護的第一資料資訊和受隱私保護的第二資料資訊,其中,所述受隱私保護的第二資料資訊是由所述未隱私保護的第一資料資訊轉化所得;
儲存單元,將所述第一資料資訊儲存在所述可信任用戶的節點設備的本地資料庫;
發送單元,向所述區塊鏈發送第二交易,所述第二交易包括所述第二資料資訊,以使所述第二交易被驗證後收錄於所述區塊鏈的分散式資料庫中。
根據本發明一個或多個實施例的第四方面,提出了一種基於區塊鏈的隱私交易的應用裝置,包括:
獲取單元,從所述區塊鏈的分散式資料庫獲取由可信任用戶的節點設備發送的第二交易,所述第二交易包括受隱私保護的第二資料資訊,其中,所述可信任用戶由區塊鏈的分散式資料庫儲存的信任設置交易確定,所述信任設置交易包括所述區塊鏈用戶對應的所有可信任用戶的標識;
接收單元,接收所述可信任用戶的節點設備發送的未隱私保護的第一資料資訊,所述第一資料資訊被儲存在所述可信任用戶的節點設備的本地資料庫;
驗證單元,驗證所述受隱私保護的第二資料資訊是否由所述未隱私保護的第一資料資訊轉化所得;
應用單元,執行對所述第二交易的應用邏輯。
本發明還提供了一種電腦設備,包括:記憶體和處理器;所述記憶體上儲存有可由處理器運行的電腦程式;所述處理器運行所述電腦程式時,執行上述基於區塊鏈的隱私交易方法所述的步驟。
本發明還提供了一種電腦設備,包括:記憶體和處理器;所述記憶體上儲存有可由處理器運行的電腦程式;所述處理器運行所述電腦程式時,執行上述基於區塊鏈的隱私資料應用方法所述的步驟。
由以上技術方案可見,本發明提供的基於區塊鏈的隱私交易方法及裝置,用戶通過信任設置交易在區塊鏈上設置其可信任的用戶,並將其欲隱私的第一資料資訊對其可信任用戶公開,而其可信任用戶將由上述第一資料資訊轉化來的、受隱私保護的第二資料資訊上傳至區塊鏈的分散式資料庫中,以使上述受隱私保護的第二資料資訊在區塊鏈上被共識驗證。採用本發明所提供的隱私交易方法,既可以保護用戶未隱私保護的第一資料資訊的隱私性,防止區塊鏈上其他任意節點獲得該第一資料資訊,又可將第一資料資訊資料轉化獲得的第二資料資訊在區塊鏈上予以存證保護;在以後任意節點需要應用或驗證該第二資料資訊時,可從上述用戶設置的可信任節點處獲取上述第一資料資訊,並驗證第一資料資訊與第二資料資訊的對應關係,從而既完成對區塊鏈上存證的第二資料資訊的驗證、又可獲取到第一資料資訊的原文以對其應用。
本發明提供的上述技術方案,基於區塊鏈技術的分散式資料庫儲存機制,用戶的第二資料資訊被去中心化地記錄在所有節點中,由所有參與方的節點共同維護,即時進行同步,所有記錄可回溯。而且,基於區塊鏈的共識機制,每個用戶提供的第二資料資訊不會在提供後被竄改,從而保證了用戶的第二資料資訊的真實性和安全性。 基於對可信任用戶的信任,在使用第二資料資訊對應的第一資料資訊時,由可信任用戶提供第一資料資訊的原文,從而保證了上述第一資料的真實性、安全性和準確性。
這裡將詳細地對示例性實施例進行說明,其示例表示在圖式中。下面的描述涉及圖式時,除非另有表示,不同圖式中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式並不代表與本發明一個或多個實施例相一致的所有實施方式。相反,它們僅是與如所附申請專利範圍中所詳述的、本發明一個或多個實施例的一些方面相一致的裝置和方法的例子。
需要說明的是:在其他實施例中並不一定按照本發明示出和描述的順序來執行相應方法的步驟。在一些其他實施例中,其方法所包括的步驟可以比本發明所描述的更多或更少。此外,本發明中所描述的單個步驟,在其他實施例中可能被分解為多個步驟進行描述;而本發明中所描述的多個步驟,在其他實施例中也可能被合併為單個步驟進行描述。
如圖1所示,本發明一示意性實施例提供了一種基於區塊鏈的隱私交易方法。本實施例所述的區塊鏈,具體可指一個各節點設備通過共識機制達成的、具有分散式資料儲存結構的P2P網路系統,該區塊鏈內的資料分佈在時間上相連的一個個“區塊(block)”之內,後一區塊包含前一區塊的資料摘要,且根據具體的共識機制(如POW、POS、DPOS或PBFT等)的不同,達成全部或部分節點設備的資料全備份。本領域的技術人員熟知,由於區塊鏈系統在相應共識機制下運行,已收錄至區塊鏈資料庫內的資料很難被任意的節點設備竄改,例如採用Pow共識的區塊鏈,至少需要全網51%算力的攻擊才有可能竄改已有資料,因此區塊鏈系統有著其他中心化資料庫系統所法比擬的保證資料安全、防攻擊竄改的特性。
在本發明中所描述的交易(transaction),是指用戶通過區塊鏈的節點設備創建,並需要最終發佈至區塊鏈的分散式資料庫中的一筆資料。其中,區塊鏈中的交易,存在狹義的交易以及廣義的交易之分。狹義的交易是指用戶向區塊鏈發佈的一筆價值轉移;例如,在傳統的比特幣區塊鏈網路中,交易可以是用戶在區塊鏈中發起的一筆轉帳。而廣義的交易是指用戶向區塊鏈發佈的一筆任意的數據:例如,運營方可以基於實際的業務需求搭建一個聯盟鏈,依託於聯盟鏈部署一些與價值轉移無關的其它類型的線上業務(比如,租房業務、車輛調度業務、保險理賠業務、信用服務、醫療服務等),而在這類聯盟鏈中,交易可以是用戶在聯盟鏈中發佈的一筆具有業務意圖的業務訊息或者業務請求;又如,在帳戶型的區塊鏈中,該交易還可以是用戶向區塊鏈發送的、用以更改用戶的帳戶狀態的資料(如帳戶餘額等)。因此,只要是用戶向區塊鏈的分散式資料庫發佈的任意資料,無論該任意資料被儲存在區塊的區塊體、區塊頭還是其他位置,均可屬於本發明所述的“交易”。
另外,值得注意的是,本發明所述的節點設備,不僅可包括備份有區塊鏈的分散式資料庫的全量資料的全節點設備,還可包括備份有區塊鏈的分散式資料庫的部分資料的輕節點設備,以及其他的終端設備或用戶端,在本發明中不做限定。
圖1所示的基於區塊鏈的隱私交易方法應用於可信任用戶的節點設備,其中,所述可信任用戶由區塊鏈的分散式資料庫儲存的信任設置交易確定,所述信任設置交易包括所述區塊鏈用戶確定的所有可信任用戶的標識,如可信任用戶的帳戶地址、可信任用戶的公開金鑰、或可信任用戶的帳戶名稱等可唯一確定可信任用戶的資訊。區塊鏈用戶可以基於自身對其他用戶的信任,選取設定其對應的可信任用戶,例如可選用信用較高的金融機構、認證機構、監督機構用戶或其他機構。上述信任設置交易可以由區塊鏈用戶直接向區塊鏈發佈,也可由區塊鏈用戶調用聲明有可信任用戶設置邏輯的智慧合約來發佈,在此不做限定。
圖1所示的方法包括:步驟102,接收所述區塊鏈用戶發送的第一訊息,所述第一訊息包括未隱私保護的第一資料資訊和受隱私保護的第二資料資訊,其中,所述受隱私保護的第二資料資訊是由所述未隱私保護的第一資料資訊轉化所得。
步驟102所述的接收所述區塊鏈用戶發送的第一訊息,是上述可信任用戶的節點設備通過鏈外通道與區塊鏈用戶通信而接收到的。所述鏈外通道,是指並非以向區塊鏈的分散式資料庫內發送交易的形式、而是以私下點對點通信、或通過其他中繼節點的網路通信方式。上述第一訊息所包括的未隱私保護的第一資料資訊和受隱私保護的第二資料資訊,既可以在一次通信中接收而獲得,也可以在多次通信中接收而獲得。值得注意的是,上述第一訊息可以與區塊鏈上發佈的交易有著相同的資料內容格式,之所以在此處被稱為“訊息”而非“交易”,是由於上述第一訊息被非向區塊鏈的分散式資料庫內發送,而是鏈外通道發送。未隱私保護的第一資料資訊,是指該第一資料資訊是未經隱私保護加密的資訊原文。
上述受隱私保護的第二資料資訊是由未隱私保護的第一資料資訊轉化所得,具體的資料轉化規則可以由該區塊鏈的底層協定設定,也可以由區塊鏈用戶自行設定。上述轉化過程可以為將上述第一資料資訊加密或編碼運算以獲得上述第二資料資訊。在一示出的實施方式中,為保證第二資料資訊僅可唯一地對應上述第一資料資訊, 第二資料資訊可以為第一資料資訊的雜湊摘要。
步驟104,將所述第一資料資訊儲存在所述可信任用戶的節點設備的本地資料庫。
上述可信任用戶的節點設備的本地資料庫是區別於該可信任用戶的節點設備的區塊鏈分散式資料庫而言的,儲存在節點設備的本地資料庫的第一資料資訊不會被區塊鏈上的其他節點設備獲知,因而保證了第一資料資訊的隱私性。
在又一示出的實施例中,為保證上述第一訊息所包含的內容的合法性,還可預先設置驗證規則,由上述可信任用戶的節點設備對上述第一訊息進行驗證,並在預設的驗證規則規定的驗證通過後,將所述第一資料資訊儲存在所述可信任用戶的節點設備的本地資料庫。上述預設的驗證規則至少可包括驗證所述受隱私保護的第二資料資訊是由所述未隱私保護的第一資料資訊轉化所得,從而保證第一資料資訊與第二資料資訊的相互對應性。
在又一示出的實施方式中,為防止其他終端設備冒充上述區塊鏈用戶發送上述第一訊息,或竄改上述區塊鏈用戶發送的第一訊息,以使可信任用戶的節點設備接收到非法產生的第一資料資訊和第二資料資訊,該第一訊息還包括所述區塊鏈用戶至少對所述未隱私保護的第一資料資訊所作的第一數位簽章,和所述區塊鏈用戶至少對所述受隱私保護的第二資料資訊所作的第二數位簽章;或者該第一訊息還包括所述區塊鏈用戶至少對所述未隱私保護的第一資料資訊和受隱私保護的第二資料資訊所作的第三數位簽章。上述區塊鏈用戶的節點設備通過分別對至少包括第一資料資訊的內容和至少包括第二資料資訊的內容進行數位簽章,或對至少包括第一資料資訊和第二資料資訊的內容進行數位簽章,既防止了其他終端設備冒充上述區塊鏈用戶,又防止了上述第一訊息所包括的第一資料資訊和第二資料資訊被其他終端設備竄改。
相應地,上述預設的驗證規則還應包括:驗證所述第一數位簽章是由所述區塊鏈用戶至少對所述未隱私保護的第一資料資訊所作,驗證所述第二數位簽章是由所述區塊鏈用戶至少對所述受隱私保護的第二資料資訊所作;或者,驗證所述第三數位簽章是由所述區塊鏈用戶至少對所述第一資料資訊和所述第二資料資訊所作。
步驟106,向所述區塊鏈發送第二交易,所述第二交易包括所述第二資料資訊,以使所述第二交易被所述區塊鏈中具有共識許可權的節點設備驗證後收錄於所述區塊鏈的分散式資料庫中。
該區塊鏈上的任意節點設備均可通過訪問區塊鏈的分散式資料庫的形式,獲得上述第二交易中的第二資料資訊;由於第二資料資訊處於被隱私保護的狀態,除了上述發送第一訊息的區塊鏈用戶自身和上述區塊鏈用戶所信任的可信任用戶,該區塊鏈上的其他用戶均不能獲知該第二資料資訊對應的第一資料資訊,從而有效地保護了第一資料資訊的隱私性。
上述實施例所述的使所述第二交易被收錄至所述區塊鏈的分散式資料庫中的詳細過程,可依據所述區塊鏈的共識機制及驗證規則而具體設定。在一示出的實施方式中,所述第二交易被收錄到所述區塊鏈的分散式資料庫中的具體步驟,可以包括:
所述區塊鏈中具有記帳許可權的節點設備將所述第二交易加入到候選區塊;
從所述具有記帳許可權的節點設備中確定滿足所述區塊鏈共識機制的共識記帳節點設備;
所述共識記帳節點設備向所述區塊鏈的節點設備廣播所述候選區塊;
在所述候選區塊通過所述區塊鏈符合預設數量的節點設備的驗證認可後,所述候選區塊被視為最新區塊,加入到所述區塊鏈的分散式資料庫中。
在上述的實施例中,具有記帳許可權的節點設備是指具有產生候選區塊許可權的節點設備,可包括具有較高信用用戶的節點設備、及上述區塊鏈中的其他節點設備。根據所述區塊鏈的共識機制,可從上述對所述候選區塊具有記帳許可權的節點設備中確定共識記帳節點設備,上述共識機制可以包括工作量證明機制(PoW)、或權利證明機制(PoS)、或股份授權證明機制(DPoS)等,或聯盟鏈通常採用的PBFT等。
關於對上述第二交易的驗證,通常可包括對第二交易的資料內容格式的驗證,或第二交易的全部或部分內容的驗證,或對第二交易所包含的數位簽章的驗證等等。在一示出的實施例中,為保證發送上述第二交易的可信任用戶的節點設備屬於上述區塊鏈用戶設定的可信任用戶,區塊鏈的節點設備應驗證上述可信任用戶的標識是否包含在上述區塊鏈用戶發起的信任設置交易中;如果是,表明該第二交易的發起用戶為合法的發起用戶。
在又一示出的實施例中,為防止其他任意節點設備冒充上述可信任用戶的節點設備發起上述第二交易,上述第二交易還包括所述可信任用戶至少對所述受隱私保護的第二資料資訊所作的第四數位簽章;為體現並存證上述第二交易中包含的第二資料資訊最初是由上述區塊鏈用戶的節點設備產生作出的,上述第二交易還可包括上述第一訊息所包括的、所述區塊鏈用戶至少對所述受隱私保護的第二資料資訊所作的第二數位簽章。相應地,區塊鏈中的節點設備對上述第二交易的驗證,至少應包括基於上述區塊鏈用戶的公開金鑰對第二數位簽章的驗證和基於可信任用戶的公開金鑰對第四數位簽章的驗證,以在驗證通過後,將上述第二交易收錄於區塊鏈的分散式資料庫中。
區塊鏈用戶在設置可信任用戶時,可以設置多個可信任用戶。區塊鏈用戶可從上述多個可信任用戶中選擇一個可信任用戶,發送上述第一訊息;相應地,上述一個可信任用戶除完成如上述實施例中步驟102至106所述的基於區塊鏈的隱私交易方法,還應將上述區塊鏈用戶發來的上述第一訊息傳輸至其他的可信任用戶的節點設備處,以使其他的可信任用戶在其節點設備的本地資料庫中備份該第一訊息中包含的未隱私保護的第一資料資訊。具體說來,如圖2所示,將上述區塊鏈用戶發來的上述第一訊息傳輸至其他的可信任用戶的節點設備處的步驟可以包括:
步驟202,從所述區塊鏈的分散式資料庫中獲取所述信任設置交易;
步驟204,基於所述信任設置交易確認所述區塊鏈用戶信任的其他可信任用戶;
步驟206,將所述區塊鏈用戶發送的第一訊息鏈外傳輸至所述用戶信任的其他可信任用戶的節點設備,以使所述第一資料資訊被儲存在所述其他可信任用戶的節點設備的本地資料庫中。
如上述實施例所述,信任設置交易包括所述區塊鏈用戶確定的所有可信任用戶的標識,如可信任用戶的帳戶地址、可信任用戶的公開金鑰、或可信任用戶的帳戶名稱等可唯一確定可信任用戶的資訊。因此,基於上述信任設置交易可確認除自身之外所述區塊鏈用戶信任的其他可信任用戶。
為防止第一訊息所包含的第一資料資訊被區塊鏈上的任意節點設備獲知而失去隱私性,上述可信任用戶的節點設備通過鏈外通道將其獲得的第一訊息傳輸至其他可信任用戶的節點設備。上述鏈外傳輸方式包括但不限於鏈外點對點通信、廣播等形式。
類似地,其他可信任用戶的節點設備也可基於預設的驗證規則驗證所述第一訊息,以在所述驗證通過後將所述第一資料資訊儲存在所述其他可信任用戶的節點設備的本地資料庫,其中所述預設的驗證規則包括驗證所述受隱私保護的第二資料資訊是由所述未隱私保護的第一資料資訊轉化所得,驗證所述第一數位簽章是由所述區塊鏈用戶至少對所述未隱私保護的第一資料資訊所作,驗證所述第二數位簽章是由所述區塊鏈用戶至少對所述受隱私保護的第二資料資訊所作,等等,在此不再贅述。
值得注意的是,當各個其他可信任用戶的節點設備接收到上述第一訊息後,各個其他可信任用戶的節點設備可向上述可信任用戶傳遞第一訊息接收完畢、或對所述第一訊息的驗證通過、或同意儲存上述第一訊息等回復。在又一示出的實施方式中,上述各個其他可信任用戶的節點設備向上述可信任用戶發送各個其他可信用戶至少對所述受隱私保護的第二資料資訊所作的各個數位簽章,上述各個數位簽章,既可以向上述可信任用戶表達各個其他可信任用戶的節點設備對上述第一訊息的驗證通過指示、或已儲存第一資料資訊的提示,上述可信任用戶的節點設備還可將上述各個數位簽章納入其向區塊鏈的分散式資料庫發佈的第二交易中,從而與上述可信任用戶的節點設備作出的第四電子簽名一起,為區塊鏈的其他任意節點設備對第二交易所包括的第二資料資訊的合法性驗證作出支持。
本發明所提供的以上實施例提供了可信任用戶的節點設備所執行的基於區塊鏈的隱私交易方法,通過在可信任用戶的節點設備的本地資料庫中儲存未隱私保護的第一資料資訊,可信任用戶的節點設備向區塊鏈的分散式資料庫中發送受隱私保護的第二資料資訊,使得區塊鏈的節點設備均可備份上述受隱私保護的第二資料資訊,達到了隱私保護上述第一資料資訊的效果。
相應地,本發明還提供了一種基於區塊鏈的隱私交易的應用方法。如圖3所示,在區塊鏈的任一節點設備需要應用上述第二交易時,該任一節點設備可執行以下步驟:
步驟302,從所述區塊鏈的分散式資料庫獲取由可信任用戶的節點設備發送的第二交易,所述第二交易包括受隱私保護的第二資料資訊,所述可信任用戶由區塊鏈的分散式資料庫儲存的信任設置交易確定,所述信任設置交易包括所述區塊鏈用戶對應的所有可信任用戶的標識。
步驟304,接收所述可信任用戶的節點設備發送的未隱私保護的第一資料資訊,所述第一資料資訊被儲存在所述可信任用戶的節點設備的本地資料庫。該區塊鏈的任一節點設備通過與發送上述第二交易的可信任用戶的節點設備進行鏈外通信,可獲得該可信任用戶的節點設備在本地資料庫中儲存的第一資料資訊。
步驟306,驗證所述受隱私保護的第二資料資訊是否由所述未隱私保護的第一資料資訊轉化所得。
如果是,
步驟308,執行對所述第二交易的應用邏輯。
關於上述信任設置交易的設置方式、第一資料資訊和第二資料資訊的轉化規則或方式、可信任用戶的選擇方式等,均已在上述基於區塊鏈的隱私交易方法所述的多個實施例中描述過,在此不再贅述。上述對第二交易的應用邏輯,包括獲取第二交易中受隱私保護的第二資料資訊所對應的未隱私保護的第一資料資訊、或基於該第一資料資訊開展的資料應用或業務應用等;該應用即可包括區塊鏈外的資料應用也可包括區塊鏈上的資料應用,如發佈基於該第一資料資訊的交易等,在本發明中不作限定。
相較於一般的設置參數狀態、或發佈被隱私保護的資料資訊的交易,區塊鏈中的轉帳交易由於需要涉及至少兩個用戶的帳戶餘額狀態發生聯動變化而有著一些獨有的特徵步驟。以下,本發明以區塊鏈用戶A向區塊鏈用戶B發送轉帳交易為例,詳細闡述本發明所提供的隱私交易方法。基於對自身帳戶的隱私安全考慮,區塊鏈用戶A協同其可信任用戶SA通過上述一個或多個實施例所述的方法,將其帳戶狀態中的餘額(假設為100)設置為受隱私保護的狀態(例如為餘額100所對應的雜湊摘要值hash(100))。
如圖4所示,將區塊鏈用戶A帳戶狀態中的餘額100設置為hash(100)的過程可包括:
步驟401,區塊鏈用戶A的節點設備向區塊鏈的分散式資料庫中發送信任設置交易,將用戶SA設置為其可信任用戶。
步驟402,區塊鏈用戶A的節點設備通過鏈外通道向可信任用戶SA的節點設備發送第一訊息,該第一訊息可包括:第一資料資訊——餘額100,第二資料資訊——被保護餘額hash(100),用戶A對第一資料資訊的數位簽章Sign 1,用戶A對第二資料資訊的數位簽章Sign2。
步驟403,可信任用戶SA的節點設備根據資料轉化規則驗證第二資料資訊是由第一資料資訊轉化而得,並驗證上述Sign 1、Sign 2。
步驟404,在步驟403所述的驗證都通過後,可信任用戶SA的節點設備將第一訊息所包含的第一資料資訊——餘額100儲存在本地資料庫中。可選的,可信任用戶SA的節點設備可在本地資料庫中設置一映射表格,用以記錄上述第一資料資訊和第二資料資訊。
步驟405,可信任用戶SA的節點設備對通過驗證的第二資料資訊進行數位簽章Sign 4。
步驟406,可信任用戶SA的節點設備向區塊鏈發送第二交易,該第二交易包括第二資料資訊——被保護餘額hash(100),用戶A對第二資料資訊的數位簽章Sign2,用戶SA對第二資料資訊的數位簽章Sign 4。
步驟407,根據該區塊鏈的共識規則,區塊鏈上的共識節點對上述第二交易進行驗證,上述驗證包括驗證用戶SA是否屬於用戶A通過信任設置交易確定的可信任用戶,驗證第二交易包括的數位簽章分別是用戶A和用戶A確認的可信任用戶SA對第二資料資訊所作出的。
步驟408,當步驟407所述的所有驗證均通過後,該區塊鏈的共識節點(具有共識許可權的節點)將包括上述第二交易的區塊收錄到上述區塊鏈的分散式資料庫中,該區塊鏈上的所有節點在其資料庫中將用戶A的餘額狀態更新為hash(100)。
同理,用戶B也可將其帳戶中的餘額狀態隱私保護起來,具體方法可與步驟401至408類似,在此不再贅述。
值得注意的是,在本發明所提供的隱私交易方法為隱私轉帳交易時,為保證轉出方用戶的帳戶餘額及轉入方用戶的帳戶餘額可被可信任用戶的節點設備驗證,並發生相應的餘額變動,轉出方用戶與轉入方用戶應至少信任一個相同的可信任用戶,亦即轉出方用戶與轉入方用戶發送的信任設置交易中應包括至少一個相同的可信任用戶的標識,在本實施例中,可信任用戶SA即為用戶A的可信任用戶,也為用戶B的可信任用戶。
用戶A完成向用戶B轉帳的過程可具體包括:
步驟409,用戶A的節點設備將用戶A向用戶B轉帳的交易訊息Txab發送至用戶A與用戶B共同的可信任用戶SA的節點設備;上述交易訊息Txab包括用戶A、用戶B的帳戶標識(帳戶位址或公開金鑰)、轉帳金額10、轉帳金額10的雜湊摘要hash(10),用戶A對轉帳金額10的數位簽章Sign (10),和用戶A對轉帳金額10的雜湊摘要hash(10)的數位簽章Sign(hash(10))。
步驟410,可信任用戶SA的節點設備根據資料轉化規則驗證雜湊摘要hash(10)是由轉帳金額10轉化而得、驗證用戶A的帳戶餘額100是否足以支付本次轉帳、驗證上述Sign(10)、Sign(hash(10))。
步驟411,在步驟410所述的驗證都通過後,可信任用戶SA的節點設備將上述轉帳訊息中的轉帳金額10儲存在本地資料庫中;基於本次轉帳,可信任用戶SA的節點設備還應在本地資料庫中更改用戶A和用戶B的帳戶餘額。
步驟412,可信任用戶SA的節點設備對通過驗證的受隱私保護的轉帳金額hash(10)進行數位簽章Sign 4(hash (10));並為轉帳完成後的用戶A和用戶B的帳戶餘額產生新的雜湊摘要hash(account A)、hash(account B)進行數位簽章Sign(hash(account A))、Sign(hash(account B))。
步驟413,可信任用戶SA的節點設備向區塊鏈發送第二交易,該第二交易包括被隱私保護的轉帳金額hash(10),轉帳完成後的用戶A和用戶B的帳戶餘額產生新的雜湊摘要hash(account A)和hash(account B),用戶A對被隱私保護的轉帳金額hash(10)的數位簽章Sign(hash(10)),和用戶SA的數位簽章Sign 4(hash(10))、Sign(hash(account A))、Sign(hash(account B))。
步驟414,根據該區塊鏈的共識規則,區塊鏈上的共識節點對上述第二交易進行驗證,上述驗證包括驗證用戶SA是否屬於用戶A和用戶B通過信任設置交易確定的可信任用戶,驗證第二交易包括的數位簽章Sign(hash(10))、Sign 4(hash(10))分別是用戶A和用戶A確認的可信任用戶SA對上述轉帳金額的雜湊摘要hash(10)所作出的、且用戶SA的數位簽章Sign(hash(account A))、Sign(hash(account B))是用戶SA分別對用戶A和用戶B的新的帳戶餘額的雜湊摘要hash(account A)、hash(account B)所作出的。
步驟415,當步驟414所述的所有驗證均通過後,該區塊鏈的共識節點(具有共識許可權的節點)將包括上述第二交易的區塊收錄到上述區塊鏈的分散式資料庫中,該區塊鏈上的所有節點在其資料庫中將用戶A的餘額狀態更新為hash(account A),將用戶B的餘額狀態更新為hash(account B)。
可選的,為保證上述可信任用戶SA的節點設備對轉帳發生後用戶A和用戶B的帳戶餘額的更新經過用戶A和用戶B的認可,用戶A和用戶B還可分別向上述可信任用戶SA的節點設備發送自身更新後的帳戶餘額、及更新後的帳戶餘額的雜湊摘要、或/及對上述更新後的帳戶餘額、及更新後的帳戶餘額的雜湊摘要的數位簽章。以上具體的過程與本發明各實施例所述的用戶選擇的可信任用戶在區塊鏈的分散式資料庫中儲存用戶的受隱私保護的第二資料資訊的過程類似,在此不再贅述。
與上述流程實現對應,本發明的實施例還提供了一種基於區塊鏈的隱私交易裝置和一種基於區塊鏈的隱私交易的應用裝置。上述裝置可以通過軟體實現,也可以通過硬體或者軟硬體結合的方式實現。以軟體實現為例,作為邏輯意義上的裝置,是通過所在設備的CPU(Central Process Unit,中央處理器)將對應的電腦程式指令讀取到記憶體中運行形成的。從硬體層面而言,除了圖7所示的CPU、內部記憶體以及記憶體之外,網路風險業務的實現裝置所在的設備通常還包括用於進行無線信號收發的晶片等其他硬體,和/或用於實現網路通信功能的板卡等其他硬體。
圖5所示為一種基於區塊鏈的隱私交易裝置50,應用於可信任用戶的節點設備,其中,所述可信任用戶由區塊鏈的分散式資料庫儲存的信任設置交易確定,所述信任設置交易包括所述區塊鏈用戶對應的所有可信任用戶的標識;所述裝置包括:
接收單元502,接收所述區塊鏈用戶發送的第一訊息,所述第一訊息包括未隱私保護的第一資料資訊和受隱私保護的第二資料資訊,其中,所述受隱私保護的第二資料資訊是由所述未隱私保護的第一資料資訊轉化所得;
儲存單元504,將所述第一資料資訊儲存在所述可信任用戶的節點設備的本地資料庫;
發送單元506,向所述區塊鏈發送第二交易,所述第二交易包括所述第二資料資訊,以使所述第二交易被驗證後收錄於所述區塊鏈的分散式資料庫中。
在又一示出的實施例中,所述裝置50還包括:
驗證單元508,基於預設的驗證規則驗證所述第一訊息,以在所述驗證通過後將所述第一資料資訊儲存在所述可信任用戶的節點設備的本地資料庫,其中所述預設的驗證規則包括驗證所述受隱私保護的第二資料資訊是由所述未隱私保護的第一資料資訊轉化所得。
在又一示出的實施例中,所述第一訊息包括所述區塊鏈用戶至少對所述未隱私保護的第一資料資訊所作的第一數位簽章,和所述區塊鏈用戶至少對所述受隱私保護的第二資料資訊所作的第二數位簽章;
所述預設的驗證規則還包括:驗證所述第一數位簽章是由所述區塊鏈用戶至少對所述未隱私保護的第一資料資訊所作,驗證所述第二數位簽章是由所述區塊鏈用戶至少對所述受隱私保護的第二資料資訊所作。
在又一示出的實施例中,所述第一訊息包括所述區塊鏈用戶至少對所述未隱私保護的第一資料資訊和所述受隱私保護的第二資料資訊所作的第三數位簽章;
所述預設的驗證規則還包括:驗證所述第三數位簽章是由所述區塊鏈用戶至少對所述未隱私保護的第一資料資訊和所述受隱私保護的第二資料資訊所作。
在又一示出的實施例中,所述第二交易還包括所述可信任用戶至少對所述受隱私保護的第二資料資訊所作的第四數位簽章和所述區塊鏈用戶至少對所述受隱私保護的第二資料資訊所作的第二數位簽章。
在又一示出的實施例中,所述的裝置50,還包括:
獲取單元510,從所述區塊鏈的分散式資料庫中獲取所述信任設置交易;
確認單元512,基於所述信任設置交易確認所述用戶信任的其他可信任用戶;
傳輸單元514,將所述區塊鏈用戶發送的第一訊息鏈外傳輸至所述用戶信任的其他可信任用戶的節點設備,以使所述第一資料資訊被儲存在所述其他可信任用戶的節點設備的本地資料庫中。
在又一示出的實施例中,所述的裝置50的接收單元502:接收所述其他可信任用戶至少基於所述第二資料資訊所作的數位簽章;
所述第二交易還包括所述其他可信任用戶至少基於所述第二資料資訊所作的數位簽章。
在又一示出的實施例中,所述受隱私保護的第二資料資訊為所述未隱私保護的第一資料資訊的資料摘要。
在又一示出的實施例中,所述第一訊息包括所述區塊鏈用戶向其他區塊鏈用戶的轉帳金額;所述第二交易包括受隱私保護的所述轉帳金額和所述區塊鏈用戶和所述其他區塊鏈用戶的受隱私保護的帳戶餘額;
所述可信任用戶也是所述其他區塊鏈用戶在信任設置交易中對應的可信任用戶。
圖6所示為本發明提供了一種基於區塊鏈的隱私交易的應用裝置60,包括:
獲取單元602,從所述區塊鏈的分散式資料庫獲取由可信任用戶的節點設備發送的第二交易,所述第二交易包括受隱私保護的第二資料資訊,其中,所述可信任用戶由區塊鏈的分散式資料庫儲存的信任設置交易確定,所述信任設置交易包括所述區塊鏈用戶對應的所有可信任用戶的標識;
接收單元604,接收所述可信任用戶的節點設備發送的未隱私保護的第一資料資訊,所述第一資料資訊被儲存在所述可信任用戶的節點設備的本地資料庫;
驗證單元606,驗證所述受隱私保護的第二資料資訊是否由所述未隱私保護的第一資料資訊轉化所得;
應用單元608,執行對所述第二交易的應用邏輯。
上述裝置中各個單元的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,相關之處參見方法實施例的部分說明即可,在此不再贅述。
以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離元件說明的單元可以是或者也可以不是實體上分開的,作為單元顯示的元件可以是或者也可以不是實體模組,即可以位於一個地方,或者也可以分佈到多個網路模組上。可以根據實際的需要選擇其中的部分或者全部單元或模組來實現本發明方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
上述實施例闡明的裝置、單元、模組,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、筆記型電腦、蜂巢式電話、相機電話、智慧型電話、個人數位助理、媒體播放機、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。
與上述方法實施例相對應,本發明的實施例還提供了一種電腦設備,該電腦設備包括記憶體和處理器。其中,記憶體上儲存有能夠由處理器運行的電腦程式;處理器在運行儲存的電腦程式時,執行本發明實施例中基於區塊鏈的隱私交易方法的各個步驟。對基於區塊鏈的隱私交易方法的各個步驟的詳細描述請參見之前的內容,不再重複。
與上述方法實施例相對應,本發明的實施例還提供了一種電腦設備,該電腦設備包括記憶體和處理器。其中,記憶體上儲存有能夠由處理器運行的電腦程式;處理器在運行儲存的電腦程式時,執行本發明實施例中基於區塊鏈的隱私交易的應用方法的各個步驟。對基於區塊鏈的隱私交易的應用方法的各個步驟的詳細描述請參見之前的內容,不再重複。
以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的範圍之內。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。
記憶體可能包括電腦可讀介質中的非永久性記憶體,隨機存取記憶體(RAM)和/或非揮發性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀介質的示例。
電腦可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。
電腦的儲存介質的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可程式設計唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁磁片儲存或其他磁性存放裝置或任何其他非傳輸介質,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀介質不包括暫存電腦可讀媒體(transitory media),如調變的資料信號和載波。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
本領域技術人員應明白,本發明的實施例可提供為方法、系統或電腦程式產品。因此,本發明的實施例可採用完全硬體實施例、完全軟體實施例或結合軟體和硬體方面的實施例的形式。而且,本發明的實施例可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存介質(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
102-415:步驟
50:裝置
502:接收單元
504:儲存單元
506:發送單元
60:裝置
602:獲取單元
604:接收單元
606:驗證單元
608:應用單元
圖1為本發明一示例性實施例提供的、可信任用戶的節點設備執行的基於區塊鏈的隱私交易方法的流程圖;
圖2為本發明一示例性實施例提供的、可信任用戶的節點設備向其他可信任用戶的節點設備傳輸未隱私訊息的流程圖;
圖3為本發明一示例性實施例提供的區塊鏈的任一節點設備執行的對被隱私保護的交易的應用方法的流程圖;
圖4為本發明又一實施例提供的基於區塊鏈的隱私交易方法及對被隱私保護的交易的應用方法的流程圖;
圖5為本發明所提供的一實施例提供的基於區塊鏈的隱私交易裝置的示意圖;
圖6為本發明所提供的一實施例提供的基於區塊鏈的隱私交易應用裝置的示意圖;
圖7為運行本發明所提供的基於區塊鏈的隱私交易裝置實施例或隱私交易應用裝置的一種硬體結構圖。