基於區塊鏈的資料存證方法及裝置、電子設備
本說明書一個或多個實施例涉及區塊鏈技術領域,尤其涉及一種基於區塊鏈的資料存證方法及裝置、電子設備。
區塊鏈技術,也被稱之為分散式帳本技術,是一種由若干台電腦設備共同參與“記帳”,共同維護一份完整的分散式資料庫的新興技術。由於區塊鏈技術具有去中心化、公開透明、每台電腦設備可以參與資料庫記錄、並且各電腦設備之間可以快速的進行資料同步的特性,使得區塊鏈技術已在眾多的領域中廣泛的進行應用。
本說明書提出一種基於區塊鏈的資料存證方法,應用於終端設備;其中,所述終端設備搭載了安全運算環境,所述安全運算環境中儲存了與所述終端設備對應的私密金鑰,所述方法包括:
獲取採集到的目標資料;
計算所述目標資料的資料摘要;
在所述安全運算環境中基於與所述終端設備對應的私密金鑰對所述資料摘要進行簽名,並將簽名後的所述資料摘要發佈至所述區塊鏈,以由區塊鏈中的節點設備基於所述私密金鑰對應的公開金鑰對所述資料摘要的簽名進行驗證,並在所述簽名驗證通過後,將所述資料摘要在區塊鏈中進行資料存證。
可選的,在所述安全運算環境中基於與所述終端設備對應的私密金鑰對所述資料摘要進行簽名,包括:
獲取所述終端的使用使用者輸入的身份資訊;
基於獲取到的所述身份資訊針對所述使用使用者進行身份認證;
如果針對所述使用使用者的身份認證通過,在所述安全運算環境中基於與所述終端設備對應的私密金鑰對所述資料摘要進行簽名。
可選的,所述安全運算環境中儲存了金鑰產生演算法;
所述方法還包括:
獲取所述終端設備的使用使用者在首次使用所述終端設備時輸入的身份資訊;
基於獲取到的所述身份資訊針對所述使用使用者進行身份認證;
如果針對所述使用使用者的身份認證通過,在所述安全運算環境中調用所述金鑰產生演算法產生所述私密金鑰以及公開金鑰;以及,
將產生的所述私密金鑰與所述使用使用者的身份資訊進行綁定,並將綁定關係在所述安全運算環境進行儲存。
可選的,在所述安全運算環境中基於與所述終端設備對應的私密金鑰對所述資料摘要進行簽名,包括:
獲取所述終端的使用使用者輸入的身份資訊;
判定所述安全運算環境中是否儲存了與所述身份資訊綁定的私密金鑰;
如果是,在所述安全運算環境中基於與所述身份資訊綁定的私密金鑰對所述資料摘要進行簽名。
可選的,所述安全運算環境中還儲存了基於所述終端設備的生產商持有的私密金鑰進行簽名後的設備認證資訊;
在所述安全運算環境中基於所述私密金鑰對所述資料摘要進行簽名之前,還包括:
基於所述終端設備的生產商持有的私密金鑰對應的公開金鑰,對所述設備認證資訊的簽名進行驗證;如果驗證通過,判定所述終端設備為所述生產商生產的合法終端設備,進一步在所述安全運算環境中基於與所述終端設備對應的私密金鑰對所述資料摘要進行簽名。
可選的,在所述安全運算環境中基於與所述終端設備對應的私密金鑰對所述資料摘要進行簽名,並將簽名後的所述目標資料發佈至所述區塊鏈,包括:
在所述安全運算環境中基於與所述終端設備對應的私密金鑰對所述資料摘要和所述目標資料的描述資訊進行整體簽名,並將簽名後的所述資料摘要和所述描述資料,發佈至所述區塊鏈證;或者,
在所述安全運算環境中基於與所述終端設備對應的私密金鑰對所述資料摘要進行簽名,並將所述目標資料的描述資料和簽名後的所述資料摘要發佈至所述區塊鏈。
可選的,所述描述資料包括:所述目標資料的採集時刻、採集地點、以及所述目標資料相關的物件中的一個或者多個的組合。
可選的,所述終端設備包括執法記錄器或者行車記錄器;所述目標資料包括視訊資料、音訊資料、圖像資料中的一種或者多種的組合。
本說明書還提出一種基於區塊鏈的資料存證裝置,應用於終端設備;其中,所述終端設備搭載了安全運算環境,所述安全運算環境中儲存了與所述終端設備對應的私密金鑰,所述裝置包括:
獲取模組,獲取採集到的目標資料;
計算模組,計算所述目標資料的資料摘要;
存證模組,在所述安全運算環境中基於與所述終端設備對應的私密金鑰對所述資料摘要進行簽名,並將簽名後的所述資料摘要發佈至所述區塊鏈,以由區塊鏈中的節點設備基於所述私密金鑰對應的公開金鑰對所述資料摘要的簽名進行驗證,並在所述簽名驗證通過後,將所述資料摘要在區塊鏈中進行資料存證。
可選的,所述存證模組進一步:
獲取所述終端的使用使用者輸入的身份資訊;
基於獲取到的所述身份資訊針對所述使用使用者進行身份認證;
如果針對所述使用使用者的身份認證通過,在所述安全運算環境中基於與所述終端設備對應的私密金鑰對所述資料摘要進行簽名。
可選的,所述安全運算環境中儲存了金鑰產生演算法;
所述獲取模組進一步:
獲取所述終端設備的使用使用者在首次使用所述終端設備時輸入的身份資訊;
所述存證模組進一步:
基於所述獲取模組獲取到的所述身份資訊針對所述使用使用者進行身份認證;如果針對所述使用使用者的身份認證通過,在所述安全運算環境中調用所述金鑰產生演算法產生所述私密金鑰以及公開金鑰;以及,將產生的所述私密金鑰與所述使用使用者的身份資訊進行綁定,並將綁定關係在所述安全運算環境進行儲存。
可選的,所述存證模組進一步:
獲取所述終端的使用使用者輸入的身份資訊;
判定所述安全運算環境中是否儲存了與所述身份資訊綁定的私密金鑰;
如果是,在所述安全運算環境中基於與所述身份資訊綁定的私密金鑰對所述資料摘要進行簽名。
可選的,所述安全運算環境中還儲存了基於所述終端設備的生產商持有的私密金鑰進行簽名後的設備認證資訊;
所述存證模組進一步:
在所述安全運算環境中基於所述私密金鑰對所述資料摘要進行簽名之前, 基於所述終端設備的生產商持有的私密金鑰對應的公開金鑰,對所述設備認證資訊的簽名進行驗證;如果驗證通過,判定所述終端設備為所述生產商生產的合法終端設備,進一步在所述安全運算環境中基於與所述終端設備對應的私密金鑰對所述資料摘要進行簽名。
可選的,存證模組:
在所述安全運算環境中基於與所述終端設備對應的私密金鑰對所述資料摘要和所述目標資料的描述資訊進行整體簽名,並將簽名後的所述資料摘要和所述描述資料,發佈至所述區塊鏈證;或者,
在所述安全運算環境中基於與所述終端設備對應的私密金鑰對所述資料摘要進行簽名,並將所述目標資料的描述資料和簽名後的所述資料摘要發佈至所述區塊鏈。
可選的,所述描述資料包括:所述目標資料的採集時刻、採集地點、以及所述目標資料相關的物件中的一個或者多個的組合。
可選的,所述終端設備包括執法記錄器或者行車記錄器;所述目標資料包括視訊資料、音訊資料、圖像資料中的一種或者多種的組合。
本說明書還提出一種電子設備,包括:
處理器;
用於儲存機器可執行指令的記憶體;
其中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的基於區塊鏈的資料存證的控制邏輯對應的機器可執行指令,所述處理器被促使:
獲取採集到的目標資料;其中,所述電子設備搭載了安全運算環境,所述安全運算環境中儲存了與所述電子設備對應的私密金鑰;
計算所述目標資料的資料摘要;
在所述安全運算環境中基於與所述電子設備對應的私密金鑰對所述資料摘要進行簽名,並將簽名後的所述資料摘要發佈至所述區塊鏈,以由區塊鏈中的節點設備基於所述私密金鑰對應的公開金鑰對所述資料摘要的簽名進行驗證,並在所述簽名驗證通過後,將所述資料摘要在區塊鏈中進行資料存證。
在以上技術方案中,一方面,透過對終端設備的硬體環境進行改造,在終端設備中搭載安全運算環境,並在安全運算環境中儲存與終端設備對應的私密金鑰,使得終端設備在將採集到的資料在區塊鏈上進行存證時,可以在安全運算環境中基於私密金鑰對需要存證的資料進行簽名,從而可以避免在區塊鏈上存證的資料在傳播過程中被篡改,可以保障在區塊鏈上存證資料時的資料安全;
另一方面,透過對區塊鏈上進行資料存證的流程進行改進,終端設備不再需要將採集到的資料的原始內容在區塊鏈上存證,而是將採集到的資料的原始內容在本機存放區,並將原始內容的資料摘要在區塊鏈上存證,使得終端設備可以作為實體世界和鏈上世界的樞紐,更加便捷的將採集到的資料在區塊鏈上進行存證;而且,對於獲得終端採集到的資料的第三方而言,由於透過將獲得的資料的資料摘要,與在區塊鏈上存證的該資料的資料摘要進行匹配,就可以便捷的對獲得的資料進行合法性驗證;因此,使得終端設備採集到的資料將可以作為證據提交給第三方,可以顯著的提升終端設備採集到的資料的可用性。
由於在區塊鏈儲存的資料具有不可篡改的特性,因此將資料儲存在區塊鏈上來做資料存證,是業界目前的主流趨勢。
然而,在實際應用中,對於一些流資料;比如,執法記錄器或者行車記錄器採集到的視訊串流、音訊串流等資料;由於其自身所需佔用的儲存空間較大,則通常無法直接儲存到區塊鏈上進行存證。
但在一些場景下,這類流資料卻又存在著強烈的存證需求;比如,在司法存證的場景,對於執法記錄器或者行車記錄器採集到的視訊串流,可能會作為證據提交給司法部門。
由於缺乏資料認證手段,這類流資料作為證據的合法性,通常會存在廣泛質疑。因此,對於這類流資料,最好的處理方式還是儲存在區塊鏈上進行資料局存證;同時,還需要能夠更加便捷的驗證這些存證的資料作為司法證據的合法性。
基於以上需求,本說明書提出一種將終端設備作為實體世界和鏈上世界的樞紐,來更加便捷的將其採集到的資料在區塊鏈上進行存證的技術方案。
在實現時,可以對終端設備的硬體環境進行改進,在終端設備的硬體環境中搭建安全運算環境,並在安全運算環境中儲存和維護與終端設備對應的私密金鑰。
例如,以終端設備為執法記錄器或者行車記錄器為例,可以在執法記錄器或者行車記錄器的硬體環境中搭載安全晶片,並基於該安全晶片來搭建安全運算環境,利用該安全運算環境來儲存和維護執法記錄器或者行車記錄器持有的私密金鑰,面向執法記錄器或者行車記錄器提供安全的運算環境。
進一步的,終端設備在採集到需要在區塊鏈上存證的資料之後,可以獲取採集到的資料,並計算採集到的資料的資料摘要,然後在安全運算環境中基於與終端設備對應的私密金鑰,對計算出的資料摘要進行簽名處理,然後將簽名後的資料摘要發佈至區塊鏈。
區塊鏈中的節點設備在收到終端設備發佈的簽名後的資料摘要之後,可以獲取與該終端設備的私密金鑰對應的公開金鑰,然後基於該公開金鑰對該資料摘要的簽名進行驗證;如果簽名驗證通過,可以將該資料摘要儲存到區塊鏈中進行資料存證。
在以上技術方案中,一方面,透過對終端設備的硬體環境進行改造,在終端設備中搭載安全運算環境,並在安全運算環境中儲存與終端設備對應的私密金鑰,使得終端設備在將採集到的資料在區塊鏈上進行存證時,可以在安全運算環境中基於私密金鑰對需要存證的資料進行簽名,從而可以避免在區塊鏈上存證的資料在傳播過程中被篡改,可以保障在區塊鏈上存證資料時的資料安全;
另一方面,透過對區塊鏈上進行資料存證的流程進行改進,終端設備不再需要將採集到的資料的原始內容在區塊鏈上存證,而是將採集到的資料的原始內容在本機存放區,並將原始內容的資料摘要在區塊鏈上存證,使得終端設備可以作為實體世界和鏈上世界的樞紐,更加便捷的將採集到的資料在區塊鏈上進行存證;而且,對於獲得終端採集到的資料的第三方而言,由於透過將獲得的資料的資料摘要,與在區塊鏈上存證的該資料的資料摘要進行匹配,就可以便捷的對獲得的資料進行合法性驗證;因此,使得終端設備採集到的資料將可以作為證據提交給第三方,可以顯著的提升終端設備採集到的資料的可用性。
下面透過具體實施例並結合具體的應用場景對本說明書進行描述。
請參考圖1,圖1是本說明書一實施例提供的一種基於區塊鏈的資料存證方法,應用於終端設備,其中,所述終端設備搭載了安全運算環境,所述安全運算環境中儲存了與所述終端設備對應的私密金鑰執行以下步驟:
步驟102,獲取採集到的目標資料;
步驟104,計算所述目標資料的資料摘要;
步驟106,在所述安全運算環境中基於與所述終端設備對應的私密金鑰對所述資料摘要進行簽名,並將簽名後的所述資料摘要發佈至所述區塊鏈,以由區塊鏈中的節點設備基於所述私密金鑰對應的公開金鑰對所述資料摘要的簽名進行驗證,並在所述簽名驗證通過後,將所述資料摘要在區塊鏈中進行資料存證。
在本說明書所描述的區塊鏈,具體可以包括私有鏈、共有鏈以及聯盟鏈等,在本說明書中不進行特別限定。
例如,在一個場景中,上述區塊鏈具體可以是由第三方支付平臺的伺服器、境內銀行伺服器、境外銀行伺服器、以及若干使用者節點設備作為成員設備組成的一個聯盟鏈。該聯盟鏈的運營方可以依託於該聯盟鏈,來線上部署諸如基於聯盟鏈的跨境轉帳、資產轉移等線上業務。
上述終端設備,可以包括能夠作為節點設備加入區塊鏈,並將採集到的資料在區塊鏈上進行存證的任意形式的終端設備;
例如,在實際應用中,上述終端設備具體可以包括執法記錄器或者行車記錄器等。執法記錄器或者行車記錄器可以作為節點加入區塊鏈,並將採集到的諸如視訊資料、音訊資料等流資料,在區塊鏈上進行存證。
其中,將資料在區塊鏈上進行存證,是指將資料作為證據在區塊鏈中進行持久化儲存。
上述目標資料,包括由終端設備採集到的,需要在區塊鏈的分散式資料庫中完成資料存證的任意類型的資料;
例如,上述目標資料具體可以是諸如執法記錄器或者行車記錄器等終端設備採集到的視訊資料、音訊資料、圖像資料等流資料。
在本說明書中,可以對終端設備的硬體環境進行改造,在終端設備的硬體環境中搭建安全運算環境,並利用搭建的安全運算環境,來儲存和維護與終端設備對應的私密金鑰,並面向終端設備提供安全的運算環境。
其中,在終端設備的硬體環境中搭建安全運算環境的具體方式,在本說明書中不進行特別限定。
在實際應用中,可以透過在終端設備的硬體環境中引入新的硬體來搭建安全運算環境,也可以對終端設備的硬體環境中已有的硬體的軟體環境進行改造來搭建安全運算環境;或者,也可以將在終端設備的硬體環境中引入新的硬體,以及對終端設備的硬體環境中已有的硬體的軟體環境進行改造的搭建方式進行結合的方式,來為終端設備搭建安全運算環境。
例如,在一種實施方式中,可以採用基於SE(Secure Element,安全元件)的解決方案,為終端設備搭建安全運算環境。在這種解決方案下,可以在終端設備的硬體環境中引入SE硬體(可以是內置於終端的硬體環境中的硬體,也可以是透過介面外接在終端上的硬體),利用SE硬體來儲存和維護終端設備的私密金鑰,並面向終端設備提供安全運算環境。
在示出的另一種實施方式中,可以採用基於TEE(Trusted Execution Environment,可信執行環境)的解決方案,為終端設備搭建安全運算環境。在這種解決方案下,可以對終端設備的硬體環境中已有的硬體(比如主晶片)的軟體環境進行改造,在該軟體環境中來搭建可信執行環境,利用該可信執行環境來儲存和維護終端設備的私密金鑰,並面向終端設備提供安全運算環境。
在示出的第三種實施方式,可以採用基於SE+TEE的解決方案,為終端設備搭建安全運算環境。在這種解決方案下,可以利用SE硬體來儲存和維護終端設備的私密金鑰,利用TEE來面向終端設備提供安全運算環境。
需要說明的是,以上列舉出的為終端設備搭建安全運算環境的實施方式,進為示例性的。在實際應用中,顯然也可以透過以上列舉出的其它實施手段,為終端設備搭建安全運算環境,在本說明書中不再進行一一列舉。
在本說明書中,上述終端設備可以作為節點設備加入到區塊鏈(也稱之為設備上鏈),並將與該終端設備對應的私密金鑰,在為該終端設備搭建的安全運算環境中進行儲存和維護。
其中,與終端設備對應的私密金鑰,具體可以是由終端設備持有的私密金鑰,也可以是終端設備的使用使用者所持有的私密金鑰。
也即,本說明書中描述的“與終端設備對應的私密金鑰”,具體可以是終端設備的設備生產商在設備生產階段,為該終端設備產生的,並由終端設備持有的私密金鑰;也可以是由終端設備在使用者使用該終端設備時,由終端設備自主的為該使用者產生的,並由該使用者個人持有的私密金鑰。
在示出的一種實施方式中,終端設備持有的私密金鑰以及公開金鑰,可以由設備生產商在設備生產階段為終端設備產生,並由設備生產商預先將該私密金鑰寫入該終端設備的安全運算環境中進行儲存和維護。
在這種情況下,終端設備持有的私密金鑰以及公開金鑰,則與終端設備的使用使用者的身份並不關聯。對於該終端設備的不同的使用使用者而言,可以共用由設備生產商預設寫入該終端設備的安全運算環境中的同一個私密金鑰。
在示出的一種實施方式中,終端設備持有的私密金鑰以及公開金鑰,也可以由終端設備自主的為該終端設備的使用使用者產生,並由終端設備自主的將該私密金鑰寫入該終端設備的安全運算環境。
在這種情況下,終端設備自主的產生的私密金鑰以及公開金鑰,可以與終端設備的使用使用者的身份相關聯,終端設備可以基於不同的使用使用者的身份資訊,為不同的使用使用者分別產生一對私密金鑰和公開金鑰,並將產生的私密金鑰與各使用使用者的身份資訊分別進行綁定,然後將綁定關係在安全運算環境中進行儲存和維護。
例如,在實現時,終端設備的生產商可以預先將金鑰產生演算法寫入該終端設備的安全運算環境。當終端設備的使用使用者在使用終端設備時,終端設備可以提示使用使用者輸入身份資訊進行身份認證;
其中,使用使用者輸入的身份資訊的資料類型,以及終端設備所採用的身份認證方式,在本說明書中均不進行特別的限定;例如,可以採用諸如輸入密碼或者口令的傳統認證方式,也可以採用諸如基於指紋或者人臉等生理特徵的認證方式。
當終端設備獲取到使用使用者輸入的身份資訊後,可以判定安全運算環境中是否儲存了與該身份資訊綁定的私密金鑰;如果安全運算環境中並未儲存與該身份資訊綁定的私密金鑰,表明該使用使用者為首次使用該終端設備的新使用者,此時終端設備可以基於獲取到的該身份資訊對該使用使用者進行身份認證;如果針對該使用使用者身份認證通過,則終端設備可以在上述安全運算環境中調用上述金鑰產生演算法產生一對私密金鑰以及公開金鑰,並將產生的私密金鑰與該使用使用者的身份資訊進行綁定,然後將綁定關係在上述安全運算環境中進行儲存和維護。
在本說明書中,使用者可以使用終端設備進行資料獲取,並透過終端設備將採集到的資料在區塊鏈上進行存證。
其中,在本說明書中,終端設備僅需要將採集到的資料在本機存放區,並將採集到的資料的資料摘要在區塊鏈上進行存證即可,不再需要將採集到的資料的原始內容在區塊鏈上進行存證。
需要說明的是,如果終端設備採集到的目標資料為諸如視訊資料、音訊資料等流資料,這類流資料在區塊鏈上進行存證時,終端設備可以按照預設的時間週期,對流資料進行分片存證的方式;
例如,以視訊資料為例,終端設備可以將每N分鐘的視訊資料作為一個分片,計算該分片的資料摘要,然後將該分片的資料摘要在區塊鏈中進行存證,並嚴格保證在區塊鏈上存證的各分片的資料摘要在時間上的順序,以便於進行回溯。
在本說明書中,終端設備在需要將採集到的目標資料在區塊鏈上進行存證時,首先可以計算該目標資料的資料摘要;比如,該資料摘要具體可以是基於特定的雜湊演算法計算該目標資料的hash值;然後,終端設備可以在安全運算環境中,基於安全運算環境中儲存的私密金鑰,對該資料摘要進行簽名處理。
在示出的一種實施方式中,在上述終端設備的安全運算環境中,還可以儲存和維護,基於該終端設備的生產商持有的私密金鑰進行簽名後的設備認證資訊;例如,該設備認證資訊,可以在設備產生階段有設備生產商基於持有的私密金鑰進行簽名處理後,寫入安全運算環境進行儲存和維護。
其中,上述設備認證資訊,具體可以是用於對終端設備進行合法性認證的任意形式的資訊;例如,上述設備認證資訊具體可以是諸如終端設備的生產編號或者其它形式的防偽資訊。
在這種情況下,終端設備可以在安全運算環境中,基於安全運算環境中儲存的私密金鑰,對該資料摘要進行簽名處理之前,可以獲取與該終端設備的生廠商持有的私密金鑰對應的公開金鑰,並基於獲取到的該公開金鑰,對該設備認證資訊的簽名進行驗證;如果驗證通過,可以判定該終端設備為該生產商生產的合法終端設備;此時,終端設備再進一步執行,在安全運算環境中,基於該安全運算環境中儲存的私密金鑰,對該資料摘要進行簽名的處理過程。
透過這種方式,可以在基於安全運算環境中儲存的私密金鑰,對上鏈的摘要資料進行簽名處理之前,引入終端設備的合法驗證,及時終止一些非法設備(比如偽造設備,或者被惡意改造後的合法設備)的資料上鏈行為,可以提升上鏈資料的安全等級。
在示出的一種實施方式中,如果終端設備的安全運算環境中儲存和維護的私密金鑰,為設備生產商在設備生產階段為終端設備產生的,由終端設備持有的私密金鑰;在這種情況下,可以引入對終端設備的使用使用者的身份認證機制,提示使用使用者輸入身份資訊進行身份認證;當終端設備獲取到使用使用者輸入的身份資訊後,可以基於獲取到的身份資訊對該使用使用者進行身份認證;如果針對該使用使用者的身份認證通過,終端設備可以在安全運算環境中,基於該安全運算環境中儲存和維護的由該終端設備持有的私密金鑰,對該資料摘要進行簽名處理。
在示出的一種實施方式中,如果終端設備的安全運算環境中儲存和維護的私密金鑰,終端設備自主的為使用使用者產生的,由使用使用者持有的私密金鑰;此時,安全運算環境中預先儲存和維護了使用使用者的身份資訊與私密金鑰的綁定關係。
在這種情況下,當終端設備獲取到該使用使用者輸入的身份資訊後,可以查詢安全運算環境中維護的綁定關係,判定安全運算環境中是否儲存了與該身份資訊綁定的私密金鑰;如果安全運算環境中儲存了該身份資訊綁定的私密金鑰,終端設備可以在安全運算環境中,基於查詢到的該私密金鑰,對該資料摘要進行簽名處理。
當然,如果安全運算環境中並未儲存與該身份資訊綁定的私密金鑰,表明該使用使用者為首次使用該終端設備的新使用者,此時終端設備可以基於獲取到的該身份資訊對該使用使用者進行身份認證,並在身份認證通過後,調用安全運算環境中儲存的金鑰產生演算法,為該使用使用者產生私密金鑰和公開金鑰,並使用產生的私密金鑰,對該資料摘要進行簽名處理;以及,將產生的私密金鑰與該使用使用者的身份資訊進行綁定,然後將綁定關係在安全運算環境中進行儲存和維護。
在本說明書中,當終端設備在安全運算環境中,基於安全運算環境中儲存的私密金鑰,對採集到的目標資料的資料摘要進行簽名處理完成之後,可以將簽名後的資料摘要,在區塊鏈中進行發佈;
例如,可以基於簽名後的資料摘要構建一筆區塊鏈交易(Transaction),將該交易向其它各節點設備進行廣播擴散。
區塊鏈中的節點設備在收到該簽名後的資料摘要後,可以獲取與安全運算環境中儲存的私密金鑰對應的公開金鑰,然後基於獲取到的公開金鑰對該資料摘要的簽名進行驗證;如果該資料摘要的簽名驗證通過,該節點設備可以在區塊鏈中發起對該資料摘要的共識處理,並在該資料摘要共識處理通過後,將該資料摘要打包進區塊在區塊鏈中進行儲存,以完成針對該資料摘要的資料存證。
其中,需要說明的是,本說明書中所描述的區塊鏈所採用的共識機制,在本說明書中不進行特別限定,在實際應用中,區塊鏈的運營方可以基於實際的需求來靈活的選擇。
在示出的另一種實施方式中,終端設備在將採集到的目標資料時,在區塊鏈上進行存證時,還可以將該目標資料的描述資料與該目標資料的資料摘要,一併在區塊鏈上進行存證。
這種情況下,終端設備在安全運算環境中,基於安全運算環境中儲存的私密金鑰,對該目標資料的資料摘要進行簽名處理時,可以將該資料摘要和該目標資料的描述資訊進行整體簽名;即將資料摘要和該目標資料的描述資訊進行打包後作為一個整體進行簽名;然後,將簽名後的資料摘要和上述目標資料的描述資料,發佈至區塊鏈進行資料存證。
例如,終端設備可以基於簽名後的資料摘要和上述目標資料的描述資料構建一筆區塊鏈交易,將該交易向其它各節點設備進行廣播擴散。
或者,在另一種情況下,終端設備在安全運算環境中,基於安全運算環境中儲存的私密金鑰,對該目標資料的資料摘要進行簽名處理時,也可以僅針對該資料摘要進行簽名;然後,將上述目標資料的描述資料,和將簽名後的資料摘要,發佈至區塊鏈進行資料存證。
例如,終端設備可以基於上述目標資料的描述資料,和簽名後的資料摘要來構建一筆區塊鏈交易,將該交易向其它各節點設備進行廣播擴散。
其中,上述目標資料的描述資訊所包含的具體內容,在本說明書中不進行特別限定,在實際應用中,可以涵蓋與上述目標資料相關的任意內容;
在示出的一種實施方式中,由於資料的採集時刻、採集地點和資料相關的物件,通常為資料作為證據檔的極其重要的屬性;因此,在本說明書中,上述目標資料的描述資訊,具體可以包括上述目標資料的採集時刻、採集地點、以及上述目標資料相關的物件中的一個或者多個的組合。
其中,在示出的一種實施方式中,目標資料的採集時刻,具體可以是終端設備在採集到目標資料時,與時間認證中心進行互動,從時間認證中心獲取到的經過認證的權威時刻(時間戳記)。目標資料的採集地點,可以是終端設備採集到目標資料時,即時調用終端設備搭載的定位模組(比如GPS模組)獲取到的精確採集地點。而與上述目標資料相關的物件,可以是終端設備在採集到目標資料後,由該終端設備的合法使用者手動輸入的相關物件。
例如,以執法記錄器採集到的與車禍事件的取證視訊資料為例,該視訊資料的描述資訊,具體可以包括採集到該視訊資料的時刻從時間認證中心獲取到的經過認證的權威時刻、採集到該視訊資料的時刻執法記錄器即時調用定位模組獲取到的精確採集地點、以及由執法者輸入的與該視訊資料相關的車輛資訊、駕駛者資訊等。
在以上技術方案中,一方面,透過對終端設備的硬體環境進行改造,在終端設備中搭載安全運算環境,並在安全運算環境中儲存與終端設備對應的私密金鑰,使得終端設備在將採集到的資料在區塊鏈上進行存證時,可以在安全運算環境中基於私密金鑰對需要存證的資料進行簽名,從而可以避免在區塊鏈上存證的資料在傳播過程中被篡改,可以保障在區塊鏈上存證資料時的資料安全;
另一方面,透過對區塊鏈上進行資料存證的流程進行改進,終端設備不再需要將採集到的資料的原始內容在區塊鏈上存證,而是將採集到的資料的原始內容在本機存放區,並將原始內容的資料摘要在區塊鏈上存證,使得終端設備可以作為實體世界和鏈上世界的樞紐,更加便捷的將採集到的資料在區塊鏈上進行存證;
而且,對於獲得終端採集到的資料的第三方而言,由於透過將獲得的資料的資料摘要,與在區塊鏈上存證的該資料的資料摘要進行匹配,就可以便捷的對獲得的資料進行合法性驗證;因此,使得終端設備採集到的資料將可以作為證據提交給第三方,可以顯著的提升終端設備採集到的資料的可用性。
例如,對於執法記錄器或者行車記錄器等終端設備,只需要將採集到的視訊資料、音訊資料等流資料的原始內容在本機存放區,並將這些流資料的原始內容的資料摘要在區塊鏈上存證即可,不再需要將將這些流資料的原始內容在區塊鏈上進行存證;
而且,使用者在將執法記錄器或者行車記錄器採集到的流資料作為證據提交給第三方機構(比如司法機構或者保險公司)時,第三方機構只需要重新計算獲得的資料的資料摘要,將該資料的資料摘要與在區塊鏈上存證的該資料的資料摘要進行匹配,就可以便捷的對獲得的資料進行合法性驗證,從而透過這種方式,可以顯著提升執法記錄器或者行車記錄器採集到的資料作為合法證據檔的高可用性。
與上述方法實施例相對應,本說明書還提供了一種基於區塊鏈的資料存證裝置的實施例。本說明書的基於區塊鏈的資料存證裝置的實施例可以應用在電子設備上。其中,所述電子設備搭載了安全運算環境,所述安全運算環境中儲存了與所述電子設備對應的私密金鑰,裝置實施例可以透過軟體實現,也可以透過硬體或者軟硬體結合的方式實現。以軟體實現為例,作為一個邏輯意義上的裝置,是透過其所在電子設備的處理器將非揮發性記憶體中對應的電腦程式指令讀取到記憶體中運行形成的。從硬體層面而言,如圖2所示,為本說明書的基於區塊鏈的資料存證裝置所在電子設備的一種硬體結構圖,除了圖2所示的處理器、記憶體、網路介面、以及非揮發性記憶體之外,實施例中裝置所在的電子設備通常根據該電子設備的實際功能,還可以包括其他硬體,對此不再贅述。
圖3是本說明書一示例性實施例示出的一種基於區塊鏈的資料存證裝置的方塊圖。
請參考圖3,所述基於區塊鏈的資料存證裝置30可以應用在前述圖2所示的電子設備中,包括有:獲取模組301、計算模組302和存證模組303。
獲取模組301,獲取採集到的目標資料;
計算模組302,計算所述目標資料的資料摘要;
存證模組303,在所述安全運算環境中基於與所述電子設備對應的私密金鑰對所述資料摘要進行簽名,並將簽名後的所述資料摘要發佈至所述區塊鏈,以由區塊鏈中的節點設備基於所述私密金鑰對應的公開金鑰對所述資料摘要的簽名進行驗證,並在所述簽名驗證通過後,將所述資料摘要在區塊鏈中進行資料存證。
在本實施例中,所述存證模組303進一步:
獲取所述終端的使用使用者輸入的身份資訊;
基於獲取到的所述身份資訊針對所述使用使用者進行身份認證;
如果針對所述使用使用者的身份認證通過,在所述安全運算環境中基於與所述電子設備對應的私密金鑰對所述資料摘要進行簽名。
在本實施例中,所述安全運算環境中儲存了金鑰產生演算法;
所述獲取模組301進一步:
獲取所述電子設備的使用使用者在首次使用所述電子設備時輸入的身份資訊;
所述存證模組303進一步:
基於所述獲取模組301獲取到的所述身份資訊針對所述使用使用者進行身份認證;如果針對所述使用使用者的身份認證通過,在所述安全運算環境中調用所述金鑰產生演算法產生所述私密金鑰以及公開金鑰;以及,將產生的所述私密金鑰與所述使用使用者的身份資訊進行綁定,並將綁定關係在所述安全運算環境進行儲存。
在本實施例中,所述存證模組303進一步:
獲取所述終端的使用使用者輸入的身份資訊;
判定所述安全運算環境中是否儲存了與所述身份資訊綁定的私密金鑰;
如果是,在所述安全運算環境中基於與所述身份資訊綁定的私密金鑰對所述資料摘要進行簽名。
在本實施例中,所述安全運算環境中還儲存了基於所述電子設備的生產商持有的私密金鑰進行簽名後的設備認證資訊;
所述存證模組303進一步:
在所述安全運算環境中基於所述私密金鑰對所述資料摘要進行簽名之前, 基於所述電子設備的生產商持有的私密金鑰對應的公開金鑰,對所述設備認證資訊的簽名進行驗證;如果驗證通過,判定所述電子設備為所述生產商生產的合法電子設備,進一步在所述安全運算環境中基於與所述電子設備對應的私密金鑰對所述資料摘要進行簽名。
在本實施例中,存證模組303:
在所述安全運算環境中基於與所述電子設備對應的私密金鑰對所述資料摘要和所述目標資料的描述資訊進行整體簽名,並將簽名後的所述資料摘要和所述描述資料,發佈至所述區塊鏈證;或者,
在所述安全運算環境中基於與所述電子設備對應的私密金鑰對所述資料摘要進行簽名,並將所述目標資料的描述資料和簽名後的所述資料摘要發佈至所述區塊鏈。
在本實施例中,所述描述資料包括:所述目標資料的採集時刻、採集地點、以及所述目標資料相關的物件中的一個或者多個的組合。
在本實施例中,所述電子設備包括執法記錄器或者行車記錄器;所述目標資料包括視訊資料、音訊資料、圖像資料中的一種或者多種的組合。
上述裝置中各個模組的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,在此不再贅述。
對於裝置實施例而言,由於其基本對應於方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的模組可以是或者也可以不是實體上分開的,作為模組顯示的部件可以是或者也可以不是實體模組,即可以位於一個地方,或者也可以分佈到多個網路模組上。可以根據實際的需要選擇其中的部分或者全部模組來實現本說明書方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
上述實施例闡明的系統、裝置、模組或模組,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、蜂巢式電話、相機電話、智慧型電話、個人數位助理、媒體播放機、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。
與上述方法實施例相對應,本說明書還提供了一種電子設備的實施例。該電子設備包括:處理器以及用於儲存機器可執行指令的記憶體;其中,處理器和記憶體通常透過內部匯流排相互連接。在其他可能的實現方式中,所述設備還可能包括外部介面,以能夠與其他設備或者部件進行通信。
在本實施例中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的資料存證的控制邏輯對應的機器可執行指令,所述處理器被促使:
獲取採集到的目標資料;其中,所述電子設備搭載了安全運算環境,所述安全運算環境中儲存了與所述電子設備對應的私密金鑰;
計算所述目標資料的資料摘要;
在所述安全運算環境中基於與所述電子設備對應的私密金鑰對所述資料摘要進行簽名,並將簽名後的所述資料摘要發佈至所述區塊鏈,以由區塊鏈中的節點設備基於所述私密金鑰對應的公開金鑰對所述資料摘要的簽名進行驗證,並在所述簽名驗證通過後,將所述資料摘要在區塊鏈中進行資料存證。
在本實施例中, 透過讀取並執行所述記憶體儲存的與基於區塊鏈的資料存證的控制邏輯對應的機器可執行指令,所述處理器被促使:
獲取所述終端的使用使用者輸入的身份資訊;
基於獲取到的所述身份資訊針對所述使用使用者進行身份認證;
如果針對所述使用使用者的身份認證通過,在所述安全運算環境中基於與所述電子設備對應的私密金鑰對所述資料摘要進行簽名。
在本實施例中,所述安全運算環境中儲存了金鑰產生演算法;
透過讀取並執行所述記憶體儲存的與基於區塊鏈的資料存證的控制邏輯對應的機器可執行指令,所述處理器被促使:
獲取所述電子設備的使用使用者在首次使用所述電子設備時輸入的身份資訊;
基於獲取到的所述身份資訊針對所述使用使用者進行身份認證;
如果針對所述使用使用者的身份認證通過,在所述安全運算環境中調用所述金鑰產生演算法產生所述私密金鑰以及公開金鑰;以及,
將產生的所述私密金鑰與所述使用使用者的身份資訊進行綁定,並將綁定關係在所述安全運算環境進行儲存。
在本實施例中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的資料存證的控制邏輯對應的機器可執行指令,所述處理器被促使:
獲取所述終端的使用使用者輸入的身份資訊;
判定所述安全運算環境中是否儲存了與所述身份資訊綁定的私密金鑰;
如果是,在所述安全運算環境中基於與所述身份資訊綁定的私密金鑰對所述資料摘要進行簽名。
在本實施例中,所述安全運算環境中還儲存了基於所述電子設備的生產商持有的私密金鑰進行簽名後的設備認證資訊;
透過讀取並執行所述記憶體儲存的與基於區塊鏈的資料存證的控制邏輯對應的機器可執行指令,所述處理器被促使:
基於所述電子設備的生產商持有的私密金鑰對應的公開金鑰,對所述設備認證資訊的簽名進行驗證;如果驗證通過,判定所述電子設備為所述生產商生產的合法電子設備,進一步在所述安全運算環境中基於與所述電子設備對應的私密金鑰對所述資料摘要進行簽名。
在本實施例中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的資料存證的控制邏輯對應的機器可執行指令,所述處理器被促使:
在所述安全運算環境中基於與所述電子設備對應的私密金鑰對所述資料摘要和所述目標資料的描述資訊進行整體簽名,並將簽名後的所述資料摘要和所述描述資料,發佈至所述區塊鏈證;或者,
在所述安全運算環境中基於與所述電子設備對應的私密金鑰對所述資料摘要進行簽名,並將所述目標資料的描述資料和簽名後的所述資料摘要發佈至所述區塊鏈。
本領域技術人員在考慮說明書及實踐這裡公開的發明後,將容易想到本說明書的其它實施方案。本說明書旨在涵蓋本說明書的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本說明書的一般性原理並包括本說明書未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本說明書的真正範圍和精神由下面的申請專利範圍指出。
應當理解的是,本說明書並不局限於上面已經描述並在圖式中示出的精確結構,並且可以在不脫離其範圍進行各種修改和改變。本說明書的範圍僅由所附的申請專利範圍來限制。
以上所述僅為本說明書的較佳實施例而已,並不用以限制本說明書,凡在本說明書的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本說明書保護的範圍之內。
102、104、106:步驟
30:基於區塊鏈的資料存證裝置
301:獲取模組
302:計算模組
303:存證模組
圖1是一示例性實施例提供的一種基於區塊鏈的資料存證方法的流程圖。
圖2是一示例性實施例提供的一種電子設備的結構示意圖。
圖3是一示例性實施例提供的一種基於區塊鏈的資料存證裝置的方塊圖。