本申請涉及互聯(lián)網(wǎng)信息處理
技術(shù)領(lǐng)域:
,尤其涉及一種數(shù)據(jù)存儲、數(shù)據(jù)校驗、數(shù)據(jù)溯源方法和設(shè)備。
背景技術(shù):
:在數(shù)字化的信息時代,數(shù)據(jù)不再是冰冷的文本記錄,而是蘊含了生產(chǎn)價值的信息資源。為了精確分析數(shù)據(jù)中所蘊含的信息資源,需要保證數(shù)據(jù)存儲的真實性。即保證數(shù)據(jù)庫中存儲的數(shù)據(jù)為原始數(shù)據(jù)。所謂數(shù)據(jù)溯源可以理解為記錄原始數(shù)據(jù)在整個生命周期(從產(chǎn)生、傳播到消亡)的演變信息和演變處理內(nèi)容。那么通過對原始數(shù)據(jù)的研究,能夠跟蹤原始數(shù)據(jù)整個生命周期的演變,確定原始數(shù)據(jù)的數(shù)據(jù)溯源。這對于數(shù)據(jù)提供方和數(shù)據(jù)需求方來講具備重要意義。目前,數(shù)據(jù)提供方將數(shù)據(jù)存儲在數(shù)據(jù)庫中,并在數(shù)據(jù)庫中存儲待存儲的數(shù)據(jù)內(nèi)容以及與待存儲的數(shù)據(jù)相關(guān)的其他信息(例如:數(shù)據(jù)創(chuàng)建者、數(shù)據(jù)是否發(fā)生版本變更、數(shù)據(jù)產(chǎn)生時間等等)。當(dāng)數(shù)據(jù)需求方需要從數(shù)據(jù)庫中獲取數(shù)據(jù)時,數(shù)據(jù)提供方向數(shù)據(jù)需求方提供待獲取數(shù)據(jù)的數(shù)字簽名,數(shù)據(jù)需求方根據(jù)該數(shù)字簽名從數(shù)據(jù)庫中獲取待獲取的數(shù)據(jù),并校驗待獲取的數(shù)據(jù)是否真實。然而,數(shù)據(jù)提供方將數(shù)據(jù)存儲在數(shù)據(jù)庫中,而目前所使用的大量數(shù)據(jù)庫都具備可修改的功能。假設(shè),數(shù)據(jù)提供方承諾提供給數(shù)據(jù)需求方A版本數(shù)據(jù)(A版本數(shù)據(jù)對應(yīng)的數(shù)字簽名為A1),但是,因為其他原因,數(shù)據(jù)提供方向數(shù)據(jù)需求方提供了B版本數(shù)據(jù)(但是對于數(shù)據(jù)需求方并不知道所獲取的數(shù)據(jù)是A版本數(shù)據(jù)還是B版本數(shù)據(jù)),根據(jù)B版本數(shù)據(jù)得到的數(shù)字簽名為B1;數(shù)據(jù)提供方為了使數(shù)據(jù)需求方相信所獲取到的數(shù)據(jù)為A版本數(shù)據(jù),此時數(shù)據(jù)提供方可以對數(shù)據(jù)庫中存儲的A版本數(shù)據(jù)對應(yīng)的數(shù)字簽名進行修改,即將A版本數(shù)據(jù)的數(shù)字簽名修改為B1,這樣,數(shù)據(jù)需求方在使用B1進行驗證時,驗證結(jié)果為通過,使數(shù)據(jù)需求方相信所獲取到的B版本數(shù)據(jù)為自己需要獲取的A版本數(shù)據(jù)。但實際上,數(shù)據(jù)需求方獲取的數(shù)據(jù)并不是自己需要獲取的A版本數(shù)據(jù),這樣將使得數(shù)據(jù)需求方根據(jù)獲取到的B版本數(shù)據(jù)得到的數(shù)據(jù)分析結(jié)果與預(yù)期結(jié)果出現(xiàn)較大偏差,給數(shù)據(jù)需求方造成損失。綜上所述,亟需一種數(shù)據(jù)存儲方法,解決現(xiàn)有技術(shù)中數(shù)據(jù)容易被篡改導(dǎo)致的數(shù)據(jù)真實性無法確定的問題。技術(shù)實現(xiàn)要素:有鑒于此,本申請實施例提供的一種數(shù)據(jù)存儲、數(shù)據(jù)校驗、數(shù)據(jù)溯源方法和設(shè)備,用于解決現(xiàn)有技術(shù)中數(shù)據(jù)容易被篡改導(dǎo)致的數(shù)據(jù)真實性無法確定的問題。本申請實施例提供了一種數(shù)據(jù)存儲方法,包括:確定目標對象的第一數(shù)據(jù)版本的第一校驗值;查找所述目標對象的與所述第一數(shù)據(jù)版本相鄰的第二數(shù)據(jù)版本的第二校驗值;根據(jù)所述第一校驗值和所述第二校驗值創(chuàng)建數(shù)據(jù)區(qū)塊,并將所述數(shù)據(jù)區(qū)塊存儲至區(qū)塊鏈中,其中,存儲至所述區(qū)塊鏈的數(shù)據(jù)區(qū)塊不可被修改。本申請實施例提供了一種數(shù)據(jù)存儲設(shè)備,包括:確定模塊,確定目標對象的第一數(shù)據(jù)版本的第一校驗值;查找單元,查找所述目標對象的與所述第一數(shù)據(jù)版本相鄰的第二數(shù)據(jù)版本的第二校驗值;存儲模塊,根據(jù)所述第一校驗值和所述第二校驗值創(chuàng)建數(shù)據(jù)區(qū)塊,并將所述數(shù)據(jù)區(qū)塊存儲至區(qū)塊鏈中,其中,存儲至所述區(qū)塊鏈的數(shù)據(jù)區(qū)塊不可被修改。本申請實施例采用的上述至少一個技術(shù)方案能夠達到以下有益效果:通過確定目標對象的第一數(shù)據(jù)版本的第一校驗值,以及查找所述目標對象的與所述第一數(shù)據(jù)版本相鄰的第二數(shù)據(jù)版本的第二校驗值;根據(jù)所述第一校驗值和所述第二校驗值創(chuàng)建數(shù)據(jù)區(qū)塊,并將所述數(shù)據(jù)區(qū)塊存儲至區(qū)塊鏈中。通過數(shù)據(jù)區(qū)塊的形式在區(qū)塊鏈中存儲目標對象的第一數(shù)據(jù)版本的第一校驗值,由于區(qū)塊鏈具備不能篡改的特性,那么在數(shù)據(jù)需求方獲取到目標對象的第一數(shù)據(jù)版本對應(yīng)的數(shù)據(jù)內(nèi)容時,可以通過區(qū)塊鏈中存儲的第一校驗值驗證第一數(shù)據(jù)版本對應(yīng)的數(shù)據(jù)內(nèi)容是否發(fā)生修改,進而確定第一數(shù)據(jù)版本對應(yīng)的數(shù)據(jù)內(nèi)容的真實性,有效解決了數(shù)據(jù)內(nèi)容容易被篡改導(dǎo)致的數(shù)據(jù)內(nèi)容的真實性無法確定的問題,改善了數(shù)據(jù)需求方進行數(shù)據(jù)分析的效率。本申請實施例還提供了一種數(shù)據(jù)校驗方法,包括:接收數(shù)據(jù)驗證請求,所述數(shù)據(jù)驗證請求中包含待校驗數(shù)據(jù)的數(shù)據(jù)版本的版本標識以及基于所述待校驗數(shù)據(jù)的數(shù)據(jù)內(nèi)容得到的校驗值;根據(jù)所述數(shù)據(jù)校驗請求中包含的數(shù)據(jù)版本的版本標識,從區(qū)塊鏈中查找預(yù)先存儲的與所述數(shù)據(jù)版本的版本標識對應(yīng)的校驗值;根據(jù)接收到的所述數(shù)據(jù)驗證請求中包含的校驗值和查找到的校驗值,對所述待驗證數(shù)據(jù)的數(shù)據(jù)內(nèi)容進行驗證。本申請實施例還提供了一種數(shù)據(jù)校驗設(shè)備,包括:接收模塊,接收數(shù)據(jù)驗證請求,所述數(shù)據(jù)驗證請求中包含待校驗數(shù)據(jù)的數(shù)據(jù)版本的版本標識以及基于所述待校驗數(shù)據(jù)的數(shù)據(jù)內(nèi)容得到的校驗值;查找模塊,根據(jù)所述數(shù)據(jù)校驗請求中包含的數(shù)據(jù)版本的版本標識,從區(qū)塊鏈中查找預(yù)先存儲的與所述數(shù)據(jù)版本的版本標識對應(yīng)的校驗值;驗證模塊,根據(jù)接收到的所述數(shù)據(jù)驗證請求中包含的校驗值和查找到的校驗值,對所述待驗證數(shù)據(jù)的數(shù)據(jù)內(nèi)容進行驗證。本申請實施例采用的上述至少一個技術(shù)方案能夠達到以下有益效果:通過接收數(shù)據(jù)驗證請求,所述數(shù)據(jù)驗證請求中包含待校驗數(shù)據(jù)的數(shù)據(jù)版本的版本標識以及基于所述待校驗數(shù)據(jù)的數(shù)據(jù)內(nèi)容得到的校驗值;根據(jù)所述數(shù)據(jù)校驗請求中包含的數(shù)據(jù)版本的版本標識,從區(qū)塊鏈中查找預(yù)先存儲的與所述數(shù)據(jù)版本的版本標識對應(yīng)的校驗值;根據(jù)接收到的所述數(shù)據(jù)驗證請求中包含的校驗值和查找到的校驗值,對所述待驗證數(shù)據(jù)的數(shù)據(jù)內(nèi)容進行驗證。由于區(qū)塊鏈具備不能篡改的特性,那么從區(qū)塊鏈中查找預(yù)先存儲的與所述數(shù)據(jù)版本的版本標識對應(yīng)的校驗值是可信的,利用可信的校驗值校驗數(shù)據(jù)驗證請求中的待校驗數(shù)據(jù)是否被篡改,進而確保了待校驗數(shù)據(jù)的真實性。本申請實施例還提供了一種數(shù)據(jù)溯源方法,包括:接收數(shù)據(jù)回溯請求,所述數(shù)據(jù)回溯請求中包含待回溯數(shù)據(jù)的第一數(shù)據(jù)版本的版本標識;根據(jù)所述第一數(shù)據(jù)版本的版本標識,從區(qū)塊鏈中查找包含所述第一數(shù)據(jù)版本的版本標識的數(shù)據(jù)區(qū)塊,并從所述數(shù)據(jù)區(qū)塊中獲取與所述第一數(shù)據(jù)版本相鄰的第二數(shù)據(jù)版本的版本標識;根據(jù)查找到的所述第二數(shù)據(jù)版本的版本標識,依次回溯查找到包含所述待回溯數(shù)據(jù)的初始版本的版本標識的數(shù)據(jù)區(qū)塊;根據(jù)所述數(shù)據(jù)區(qū)塊,確定所述待回溯數(shù)據(jù)的初始版本對應(yīng)的數(shù)據(jù)內(nèi)容。本申請實施例還提供了一種數(shù)據(jù)溯源設(shè)備,包括:接收模塊,接收數(shù)據(jù)回溯請求,所述數(shù)據(jù)回溯請求中包含待回溯數(shù)據(jù)的第一數(shù)據(jù)版本的版本標識;回溯模塊,根據(jù)所述第一數(shù)據(jù)版本的版本標識,從區(qū)塊鏈中查找包含所述第一數(shù)據(jù)版本的版本標識的數(shù)據(jù)區(qū)塊,并從所述數(shù)據(jù)區(qū)塊中獲取與所述第一數(shù)據(jù)版本相鄰的第二數(shù)據(jù)版本的版本標識;根據(jù)查找到的所述第二數(shù)據(jù)版本的版本標識,依次回溯查找到包含所述待回溯數(shù)據(jù)的初始版本的版本標識的數(shù)據(jù)區(qū)塊;確定模塊,根據(jù)所述數(shù)據(jù)區(qū)塊,確定所述待回溯數(shù)據(jù)的初始版本對應(yīng)的數(shù)據(jù)內(nèi)容。本申請實施例采用的上述至少一個技術(shù)方案能夠達到以下有益效果:通過接收數(shù)據(jù)回溯請求,所述數(shù)據(jù)回溯請求中包含待回溯數(shù)據(jù)的第一數(shù)據(jù)版本的版本標識;根據(jù)所述第一數(shù)據(jù)版本的版本標識,從區(qū)塊鏈中查找包含所述第一數(shù)據(jù)版本的版本標識的數(shù)據(jù)區(qū)塊,并從所述數(shù)據(jù)區(qū)塊中獲取與所述第一數(shù)據(jù)版本相鄰的第二數(shù)據(jù)版本的版本標識;根據(jù)查找到的所述第二數(shù)據(jù)版本的版本標識,依次回溯查找到包含所述待回溯數(shù)據(jù)的初始版本的版本標識的數(shù)據(jù)區(qū)塊;根據(jù)所述數(shù)據(jù)區(qū)塊,確定所述待回溯數(shù)據(jù)的初始版本對應(yīng)的數(shù)據(jù)內(nèi)容。由于通過數(shù)據(jù)區(qū)塊的形式在區(qū)塊鏈中不僅存儲目標對象的第一數(shù)據(jù)版本的版本標識而且還存儲與第一數(shù)據(jù)版本相鄰的第二數(shù)據(jù)版本的版本標識,由于區(qū)塊鏈具備不能篡改的特性,且采用鏈式數(shù)據(jù)結(jié)構(gòu),這樣能夠回溯查找到待回溯數(shù)據(jù)的演變版本以及每一個演變版本對應(yīng)的數(shù)據(jù)內(nèi)容,并且保證數(shù)據(jù)演變的真實性。附圖說明此處所說明的附圖用來提供對本申請的進一步理解,構(gòu)成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:圖1為本申請實施例提供的一種數(shù)據(jù)存儲方法的流程示意圖;圖2為區(qū)塊鏈中多個不同區(qū)塊中創(chuàng)建的數(shù)據(jù)區(qū)塊的結(jié)構(gòu)示意圖;圖3為本申請實施例提供的一種數(shù)據(jù)校驗方法的流程示意圖;圖4為本申請實施例提供的一種數(shù)據(jù)校驗方法的場景示意圖;圖5為本申請實施例提供的一種數(shù)據(jù)溯源方法的流程示意圖;圖6為本申請實施例提供的一種數(shù)據(jù)溯源方法的場景示意圖圖7為本申請實施例提供的一種數(shù)據(jù)存儲設(shè)備的結(jié)構(gòu)示意圖;圖8為本申請實施例提供的一種數(shù)據(jù)校驗設(shè)備的結(jié)構(gòu)示意圖;圖9為本申請實施例提供的一種數(shù)據(jù)溯源設(shè)備的結(jié)構(gòu)示意圖。具體實施方式為了實現(xiàn)本申請的目的,本申請實施例提供了一種數(shù)據(jù)存儲、數(shù)據(jù)校驗、數(shù)據(jù)溯源方法和設(shè)備,通過數(shù)據(jù)區(qū)塊的形式在區(qū)塊鏈中存儲目標對象的第一數(shù)據(jù)版本的第一校驗值,由于區(qū)塊鏈具備不能篡改的特性,那么在數(shù)據(jù)需求方獲取到目標對象的第一數(shù)據(jù)版本對應(yīng)的數(shù)據(jù)內(nèi)容時,可以通過區(qū)塊鏈中存儲的第一校驗值驗證第一數(shù)據(jù)版本對應(yīng)的數(shù)據(jù)內(nèi)容是否發(fā)生修改,進而確定第一數(shù)據(jù)版本對應(yīng)的數(shù)據(jù)內(nèi)容的真實性,有效解決了數(shù)據(jù)內(nèi)容容易被篡改導(dǎo)致的數(shù)據(jù)內(nèi)容的真實性無法確定的問題,改善了數(shù)據(jù)需求方進行數(shù)據(jù)分析的效率。需要說明的是,本申請實施例中所記載的區(qū)塊鏈可以理解為一個可靠數(shù)據(jù)庫,該可靠數(shù)據(jù)庫屬于一種類似非關(guān)系型數(shù)據(jù)庫。該可靠數(shù)據(jù)庫與傳統(tǒng)數(shù)據(jù)庫不同,區(qū)別在于:該可靠數(shù)據(jù)庫具備去中心化和去信任的特點。所謂去中心化是指在由區(qū)塊鏈組成的系統(tǒng)中,沒有中心化的硬件或者管理機構(gòu),該系統(tǒng)的任意節(jié)點之間的權(quán)利和義務(wù)是均等的,且任一節(jié)點的損壞或者失去都不會影響整個系統(tǒng)的運行。所謂去信任是指參與整個系統(tǒng)的各個節(jié)點之間數(shù)據(jù)交換是無需互相信任的,整個系統(tǒng)的運行規(guī)則是公開透明的,整個系統(tǒng)的數(shù)據(jù)內(nèi)容也是公開的,因此在系統(tǒng)設(shè)定的規(guī)則范圍和時間范圍內(nèi),各節(jié)點之間是不能也無法欺騙其他節(jié)點。本申請實施例中所記載的技術(shù)方案,提出了一種數(shù)據(jù)結(jié)構(gòu)(在后續(xù)可以稱之為數(shù)據(jù)區(qū)塊),在該數(shù)據(jù)結(jié)構(gòu)中包含數(shù)據(jù)頭和數(shù)據(jù)體。該數(shù)據(jù)頭中存儲目標對象的當(dāng)前數(shù)據(jù)版本的校驗值和目標對象與當(dāng)前數(shù)據(jù)版本相鄰的前一個數(shù)據(jù)版本的校驗值,方便后續(xù)對該目標對象進行數(shù)據(jù)溯源。該數(shù)據(jù)體中可以存儲當(dāng)前數(shù)據(jù)版本對應(yīng)的目標對象的數(shù)據(jù)內(nèi)容,也可以存儲其他內(nèi)容,這里不做具體限定。這樣,利用該種數(shù)據(jù)結(jié)構(gòu)和區(qū)塊鏈確保目標對象本身以及其演變的完整性、真實可信性。下面結(jié)合本申請具體實施例及相應(yīng)的附圖對本申請技術(shù)方案進行清楚、完整地描述。顯然,所描述的實施例僅是本申請一部分實施例,而不是全部的實施例。基于本申請中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。以下結(jié)合附圖,詳細說明本申請各實施例提供的技術(shù)方案。實施例1圖1為本申請實施例提供的一種數(shù)據(jù)存儲方法的流程示意圖。所述方法可以如下所示。步驟101:確定目標對象的第一數(shù)據(jù)版本的第一校驗值。在本申請實施例中,這里的目標對象可以是任意形式的數(shù)據(jù),可以是一份商業(yè)表格,一份書籍原稿,一份軟件源碼;也可以是一套圖片,一首音樂,一部視頻,這里不做具體限定。這里的目標對象的數(shù)據(jù)版本可以是指在目標對象的整個生命周期內(nèi),演進產(chǎn)生的不同的數(shù)據(jù)內(nèi)容,可以為每一個數(shù)據(jù)內(nèi)容設(shè)置一個標識,這個標識可以稱之為數(shù)據(jù)版本的版本標識。例如:對于一部視頻,該視頻的每一部(或者每一季)可以稱之為一個數(shù)據(jù)版本,假設(shè)視頻A的第一部對應(yīng)數(shù)據(jù)版本1.0,那么演進過程中視頻A的第二部對應(yīng)數(shù)據(jù)版本2.0,視頻A的第三部對應(yīng)數(shù)據(jù)版本3.0,......,視頻A的第N部對應(yīng)數(shù)據(jù)版本n.0。再例如:對于一個應(yīng)用軟件,根據(jù)開發(fā)需要可以出現(xiàn)多個版本的應(yīng)用軟件。假設(shè)在應(yīng)用軟件演進過程中應(yīng)用軟件的版本包含版本1.0、版本1.0.1、版本1.0.1.1、版本2.0、版本2.0.1、......。本申請實施例中的目標對象的第一數(shù)據(jù)版本可以是指目標對象的當(dāng)前數(shù)據(jù)版本,以上述應(yīng)用軟件為例,第一數(shù)據(jù)版本對應(yīng)的版本號為2.0.1。具體地,本申請實施例中確定目標對象的第一數(shù)據(jù)版本的第一校驗值的方式包括但不限于以下方式:首先,確定目標對象在第一數(shù)據(jù)版本中的數(shù)據(jù)內(nèi)容摘要;其次,利用設(shè)定算法和所述數(shù)據(jù)內(nèi)容摘要,計算得到所述目標對象的第一數(shù)據(jù)版本的第一校驗值。例如:以目標對象為一份軟件源碼為例進行說明。針對該軟件源碼,確定該軟件源碼當(dāng)前版本的數(shù)據(jù)內(nèi)容摘要,并利用哈希算法,對該數(shù)據(jù)內(nèi)容摘要進行計算,得到該軟件源碼當(dāng)前版本的散列值(這里可以稱之為第一校驗值)。需要說明的是,設(shè)定算法可以是哈希算法,也可以是其他(例如:SHA-1)算法等等,這里不做具體限定。步驟102:查找所述目標對象的與所述第一數(shù)據(jù)版本相鄰的第二數(shù)據(jù)版本的第二校驗值。本申請實施例中的目標對象的第二數(shù)據(jù)版本可以是指目標對象的與當(dāng)前數(shù)據(jù)版本相鄰的前一個數(shù)據(jù)版本,以上述應(yīng)用軟件為例,第二數(shù)據(jù)版本對應(yīng)的版本號為2.0。具體地,確定所述目標對象的與所述第一數(shù)據(jù)版本相鄰的第二數(shù)據(jù)版本的版本標識;從區(qū)塊鏈中查找記錄所述第二數(shù)據(jù)版本的版本標識的數(shù)據(jù)區(qū)塊,并從該數(shù)據(jù)區(qū)塊中讀取所述目標對象的第二數(shù)據(jù)版本的第二校驗值。需要說明的是,若目標對象的當(dāng)前數(shù)據(jù)版本為首個數(shù)據(jù)版本(例如:應(yīng)用軟件的版本1.0),由于不存在與首個數(shù)據(jù)版本相鄰的前一個數(shù)據(jù)版本,則無需查找步驟102中記載的第二校驗值。此外,在確定所述目標對象的與所述第一數(shù)據(jù)版本相鄰的第二數(shù)據(jù)版本的版本標識后,也可以參照步驟101中所記載的第一校驗值的確定方式得到。這里需要說明的是,如果按照步驟101中所記載的第一校驗值的確定方式得到第二校驗值,那么需要確保所述目標對象的與所述第一數(shù)據(jù)版本相鄰的第二數(shù)據(jù)版本的數(shù)據(jù)內(nèi)容沒有被篡改?;蛘撸瑥膮^(qū)塊鏈中查找記錄所述第二數(shù)據(jù)版本的版本標識的數(shù)據(jù)區(qū)塊,并從該數(shù)據(jù)區(qū)塊中讀取所述目標對象的第二數(shù)據(jù)版本的數(shù)據(jù)內(nèi)容摘要,之后參照步驟101中所記載的第一校驗值的確定方式得到第二校驗值。步驟103:根據(jù)所述第一校驗值和所述第二校驗值創(chuàng)建數(shù)據(jù)區(qū)塊。在步驟103中,在得到目標對象的第一校驗值和第二校驗值后,根據(jù)第一校驗值和第二校驗值創(chuàng)建數(shù)據(jù)區(qū)塊。具體地,創(chuàng)建的數(shù)據(jù)區(qū)塊中包含數(shù)據(jù)頭部分和數(shù)據(jù)體部分。將所述第一校驗值和所述第二校驗值按照設(shè)定格式寫入所述數(shù)據(jù)區(qū)塊的數(shù)據(jù)頭部分。如表1所示,為數(shù)據(jù)區(qū)塊的數(shù)據(jù)頭部分中寫入的校驗值的示意表。表1數(shù)據(jù)頭部分第一校驗值:1234567890ZXCV第二校驗值:null時間標簽:XXXX年YYYY月ZZZZ日10:00:00從表1中可以看出,該數(shù)據(jù)區(qū)塊的生成時間標簽為:XXXX年YYYY月ZZZZ日10:00:00;該數(shù)據(jù)區(qū)塊中寫入的第一校驗值為1234567890ZXCV;第二校驗值為空,由此可見,該數(shù)據(jù)區(qū)塊是某一目標對象(例如:數(shù)據(jù))的初始數(shù)據(jù),即某一目標對象的數(shù)據(jù)源頭??蛇x地,由于目標對象的第一校驗值/第二校驗值通過不可逆算法得到,所以目標對象的不同數(shù)據(jù)版本計算得到的校驗值不同,即目標對象的第一校驗值/第二校驗值具備唯一性。如表2所示,為數(shù)據(jù)區(qū)塊的數(shù)據(jù)頭部分中寫入的校驗值的示意表。表2數(shù)據(jù)頭部分第一校驗值:!@#¥%……&*()ASDF第二校驗值:1234567890ZXCV時間標簽:MMMM年NNNN月ZZZZ日14:00:00從表2中可以看出,該數(shù)據(jù)區(qū)塊的生成時間標簽為:MMMM年NNNN月ZZZZ日14:00:00;該數(shù)據(jù)區(qū)塊中寫入的第一校驗值為!@#¥%……&*()ASDF;第二校驗值為1234567890ZXCV。由此可見,由于表2中第二校驗值與表1中的第一校驗值相同,所以表1中所示的數(shù)據(jù)區(qū)塊對應(yīng)的數(shù)據(jù)版本是表2中所示的數(shù)據(jù)區(qū)塊對應(yīng)的數(shù)據(jù)版本的相鄰前一個數(shù)據(jù)版本。需要說明的是,數(shù)據(jù)區(qū)塊的數(shù)據(jù)頭部分還可以存儲相鄰兩個數(shù)據(jù)版本的版本標識,即第一數(shù)據(jù)版本的版本標識和第二數(shù)據(jù)版本的版本標識??蛇x地,創(chuàng)建的數(shù)據(jù)區(qū)塊除了包含數(shù)據(jù)頭部分之外,還包含數(shù)據(jù)體部分。那么可以將所述目標對象在所述第一數(shù)據(jù)版本中的數(shù)據(jù)內(nèi)容摘要或所述第二校驗值或所述目標對象的所述第一數(shù)據(jù)版本的數(shù)據(jù)內(nèi)容寫入所述數(shù)據(jù)區(qū)塊的數(shù)據(jù)體部分。圖2為區(qū)塊鏈中多個不同數(shù)據(jù)區(qū)塊的結(jié)構(gòu)示意圖。從圖2中可以看出,數(shù)據(jù)區(qū)塊1、數(shù)據(jù)區(qū)塊2和數(shù)據(jù)區(qū)塊3對應(yīng)同一個目標對象。數(shù)據(jù)區(qū)塊1的數(shù)據(jù)體部分中存儲的是當(dāng)前數(shù)據(jù)版本/相鄰前一個數(shù)據(jù)版本的數(shù)據(jù)內(nèi)容摘要;數(shù)據(jù)區(qū)塊2的數(shù)據(jù)體部分中存儲的是當(dāng)前數(shù)據(jù)版本/相鄰前一個數(shù)據(jù)版本的校驗值;數(shù)據(jù)區(qū)塊3的數(shù)據(jù)體部分中存儲的是當(dāng)前數(shù)據(jù)版本/相鄰前一個數(shù)據(jù)版本的數(shù)據(jù)內(nèi)容。在本申請的另一個實施例中,對于目標對象的數(shù)據(jù)內(nèi)容可以存儲在數(shù)據(jù)區(qū)塊中,也可以存儲至云數(shù)據(jù)網(wǎng)關(guān)或者數(shù)據(jù)庫中。需要說明的是,當(dāng)數(shù)據(jù)內(nèi)容的數(shù)據(jù)量較小時,可以優(yōu)先選擇數(shù)據(jù)區(qū)塊3的方式存儲數(shù)據(jù)內(nèi)容。具體地,將所述目標對象的所述第一數(shù)據(jù)版本的數(shù)據(jù)內(nèi)容存儲至云數(shù)據(jù)網(wǎng)關(guān)或者數(shù)據(jù)庫中。需要說明的是,數(shù)據(jù)區(qū)塊的數(shù)據(jù)體部分除了可以存儲上述記載的內(nèi)容之外,還可以記錄數(shù)據(jù)提供方提供的目標對象的數(shù)字簽名,以便于數(shù)據(jù)需求方對數(shù)據(jù)提供方的身份進行鑒權(quán)認證;還可以記錄數(shù)據(jù)區(qū)塊創(chuàng)建時間等相關(guān)信息,數(shù)據(jù)版本的版本標識等等,這里不做具體限定。步驟104:將所述數(shù)據(jù)區(qū)塊存儲至區(qū)塊鏈中。其中,存儲至所述區(qū)塊鏈的數(shù)據(jù)區(qū)塊不可被修改。在步驟104中,按照鏈式數(shù)據(jù)結(jié)構(gòu),將所述數(shù)據(jù)區(qū)塊上鏈至區(qū)塊鏈中。具體地,在已經(jīng)上鏈的數(shù)據(jù)區(qū)塊的尾部加入新創(chuàng)建的數(shù)據(jù)區(qū)塊。在本申請的另一個實施例中,在將所述數(shù)據(jù)區(qū)塊存儲至區(qū)塊鏈中后,所述方法還包括:存儲所述目標對象的第一數(shù)據(jù)版本的版本標識與所述數(shù)據(jù)區(qū)塊的區(qū)塊標識之間的映射關(guān)系。也可以存儲所述目標對象的第一數(shù)據(jù)版本的版本標識與所述數(shù)據(jù)區(qū)塊的區(qū)塊標識之間的映射關(guān)系。需要說明的是,本申請實施例中將數(shù)據(jù)區(qū)塊存儲至區(qū)塊鏈中也可以稱之為對數(shù)據(jù)區(qū)塊執(zhí)行上鏈操作,使其被存儲至區(qū)塊鏈中。通過本申請實施例所記載的技術(shù)方案,確定目標對象的第一數(shù)據(jù)版本的第一校驗值,查找所述目標對象的與所述第一數(shù)據(jù)版本相鄰的第二數(shù)據(jù)版本的第二校驗值;根據(jù)所述第一校驗值和所述第二校驗值創(chuàng)建數(shù)據(jù)區(qū)塊,并將所述數(shù)據(jù)區(qū)塊存儲至區(qū)塊鏈中。通過數(shù)據(jù)區(qū)塊的形式在區(qū)塊鏈中存儲目標對象的第一數(shù)據(jù)版本的第一校驗值,由于區(qū)塊鏈具備不能篡改的特性,那么在數(shù)據(jù)需求方獲取到目標對象的第一數(shù)據(jù)版本對應(yīng)的數(shù)據(jù)內(nèi)容時,可以通過區(qū)塊鏈中存儲的第一校驗值驗證第一數(shù)據(jù)版本對應(yīng)的數(shù)據(jù)內(nèi)容是否發(fā)生修改,進而確定第一數(shù)據(jù)版本對應(yīng)的數(shù)據(jù)內(nèi)容的真實性,有效解決了數(shù)據(jù)內(nèi)容容易被篡改導(dǎo)致的數(shù)據(jù)內(nèi)容的真實性無法確定的問題,改善了數(shù)據(jù)需求方進行數(shù)據(jù)分析的效率。實施例2基于同一發(fā)明構(gòu)思,圖3為本申請實施例提供的一種數(shù)據(jù)校驗方法的流程示意圖。所述方法可以如下所示。步驟301:接收數(shù)據(jù)驗證請求。所述數(shù)據(jù)驗證請求中包含待校驗數(shù)據(jù)的數(shù)據(jù)版本的版本標識以及基于所述待校驗數(shù)據(jù)的數(shù)據(jù)內(nèi)容得到的校驗值。在步驟301中,本申請實施例的執(zhí)行主體可以為區(qū)塊鏈,也可以為其他設(shè)備,這里不做具體限定。具體地,當(dāng)數(shù)據(jù)需求方接收到數(shù)據(jù)提供方提供的數(shù)據(jù)時,可以將提供的數(shù)據(jù)視為待校驗數(shù)據(jù),并確定待校驗數(shù)據(jù)的數(shù)據(jù)版本的版本標識,以及基于獲取到的待校驗數(shù)據(jù)的數(shù)據(jù)內(nèi)容計算得到該待校驗數(shù)據(jù)的校驗值。此時數(shù)據(jù)需求方為了確保所接收到的待校驗數(shù)據(jù)真實可信,向區(qū)塊鏈發(fā)送數(shù)據(jù)校驗請求,以校驗數(shù)據(jù)提供方所提供的數(shù)據(jù)是否已被篡改。步驟302:根據(jù)所述數(shù)據(jù)校驗請求中包含的數(shù)據(jù)版本的版本標識,從區(qū)塊鏈中查找預(yù)先存儲的與所述數(shù)據(jù)版本的版本標識對應(yīng)的校驗值。在步驟302中,由于目標對象在被存儲時生成數(shù)據(jù)區(qū)塊,并將數(shù)據(jù)區(qū)塊存儲至區(qū)塊鏈中,那么在將數(shù)據(jù)區(qū)塊存儲至區(qū)塊鏈中時,存儲所述目標對象的第一數(shù)據(jù)版本的版本標識與所述數(shù)據(jù)區(qū)塊的區(qū)塊標識之間的映射關(guān)系。那么,在接收到數(shù)據(jù)校驗請求時,根據(jù)預(yù)先存儲的數(shù)據(jù)版本的版本標識、數(shù)據(jù)區(qū)塊的單元標識以及區(qū)塊的區(qū)塊標識之間的映射關(guān)系,確定所述數(shù)據(jù)驗證請求中包含的數(shù)據(jù)版本的版本標識對應(yīng)的數(shù)據(jù)區(qū)塊的區(qū)塊標識;從確定的所述區(qū)塊標識對應(yīng)的的數(shù)據(jù)區(qū)塊中讀取與所述數(shù)據(jù)版本的版本標識對應(yīng)的校驗值。需要說明的是,步驟302中查找的數(shù)據(jù)版本的版本標識對應(yīng)的校驗值是目標對象被存儲時生成的并存儲在區(qū)塊鏈中的,因此查找到的校驗值是可信的。步驟303:根據(jù)接收到的所述數(shù)據(jù)驗證請求中包含的校驗值和查找到的校驗值,對所述待驗證數(shù)據(jù)的數(shù)據(jù)內(nèi)容進行驗證。在步驟303中,比較接收到的所述數(shù)據(jù)驗證請求中包含的校驗值和查找到的校驗值;當(dāng)接收到的所述數(shù)據(jù)驗證請求中包含的校驗值與查找到的校驗值相同時,確定所述待驗證數(shù)據(jù)的數(shù)據(jù)內(nèi)容可信;當(dāng)接收到的所述數(shù)據(jù)驗證請求中包含的校驗值與查找到的校驗值不相同時,確定所述待驗證數(shù)據(jù)的數(shù)據(jù)內(nèi)容已被修改。通過本申請實施例提供的技術(shù)方案,接收數(shù)據(jù)驗證請求,所述數(shù)據(jù)驗證請求中包含待校驗數(shù)據(jù)的數(shù)據(jù)版本的版本標識以及基于所述待校驗數(shù)據(jù)的數(shù)據(jù)內(nèi)容得到的校驗值;根據(jù)所述數(shù)據(jù)校驗請求中包含的數(shù)據(jù)版本的版本標識,從區(qū)塊鏈中查找預(yù)先存儲的與所述數(shù)據(jù)版本的版本標識對應(yīng)的校驗值;根據(jù)接收到的所述數(shù)據(jù)驗證請求中包含的校驗值和查找到的校驗值,對所述待驗證數(shù)據(jù)的數(shù)據(jù)內(nèi)容進行驗證。由于區(qū)塊鏈具備不能篡改的特性,那么從區(qū)塊鏈中查找預(yù)先存儲的與所述數(shù)據(jù)版本的版本標識對應(yīng)的校驗值是可信的,利用可信的校驗值校驗數(shù)據(jù)驗證請求中的待校驗數(shù)據(jù)是否被篡改,進而確保了待校驗數(shù)據(jù)的真實性。圖4為本申請實施例提供的一種數(shù)據(jù)校驗方法的場景示意圖。從圖4中可以看出,區(qū)塊鏈中包含多個數(shù)據(jù)節(jié)點,這些數(shù)據(jù)節(jié)點可以接收不同用戶發(fā)送的數(shù)據(jù)驗證請求,根據(jù)數(shù)據(jù)驗證請求中攜帶的數(shù)據(jù)信息(這里可以指校驗值),從區(qū)塊鏈中查找相應(yīng)的數(shù)據(jù)信息,并基于接收到的數(shù)據(jù)信息與查找到的數(shù)據(jù)信息對數(shù)據(jù)驗證請求中包含的待驗證數(shù)據(jù)進行校驗,以此確保數(shù)據(jù)需求方能夠獲取到真實有效數(shù)據(jù)。實施例3圖5為本申請實施例提供的一種數(shù)據(jù)溯源方法的流程示意圖。所述方法可以如下所示。步驟501:接收數(shù)據(jù)回溯請求。所述數(shù)據(jù)回溯請求中包含待回溯數(shù)據(jù)的第一數(shù)據(jù)版本的版本標識。在步驟501中,當(dāng)需要查找目標對象的演進過程或者演變歷史時,可以啟動本申請實施例的操作,即發(fā)送數(shù)據(jù)回溯請求,在該數(shù)據(jù)回溯請求中包含待回溯數(shù)據(jù)的第一數(shù)據(jù)版本的版本標識。這里的第一數(shù)據(jù)版本的版本標識可以是當(dāng)前數(shù)據(jù)版本的版本標識,也可以是任意一個數(shù)據(jù)版本的版本標識,這里不做限定。這里第一數(shù)據(jù)版本的版本標識用來確定進行數(shù)據(jù)回溯的待回溯數(shù)據(jù)的回溯起點。例如:一個應(yīng)用軟件,當(dāng)前數(shù)據(jù)版本為3.0,那么一旦發(fā)起回溯請求,該回溯請求中攜帶的數(shù)據(jù)版本的版本標識可以為3.0,也可以為2.0,等等,這里不做限定。步驟502:根據(jù)所述第一數(shù)據(jù)版本的版本標識,從區(qū)塊鏈中查找包含所述第一數(shù)據(jù)版本的版本標識的數(shù)據(jù)區(qū)塊,并從所述數(shù)據(jù)區(qū)塊中獲取與所述第一數(shù)據(jù)版本相鄰的第二數(shù)據(jù)版本的版本標識。在步驟502中,由于數(shù)據(jù)區(qū)塊中不僅存儲了第一數(shù)據(jù)版本的版本標識還存儲了與第一數(shù)據(jù)版本的版本標識相鄰的前一個第二數(shù)據(jù)版本的版本標識,那么可以通過第一數(shù)據(jù)版本的版本標識,查找到包含第一數(shù)據(jù)版本的版本標識的數(shù)據(jù)區(qū)塊,并從數(shù)據(jù)區(qū)塊中獲取與第一數(shù)據(jù)版本的版本標識相鄰的前一個第二數(shù)據(jù)版本的版本標識。步驟503:根據(jù)查找到的所述第二數(shù)據(jù)版本的版本標識,依次回溯查找到包含所述待回溯數(shù)據(jù)的初始版本的版本標識的數(shù)據(jù)區(qū)塊。在步驟503中,以查找到的所述第二數(shù)據(jù)版本的版本標識為起點,按照步驟502中的方式依次回溯查找到包含所述待回溯數(shù)據(jù)的初始版本的版本標識的數(shù)據(jù)區(qū)塊。具體地,針對已查找到的數(shù)據(jù)版本的版本標識,執(zhí)行以下操作,直至查找到包含待回溯數(shù)據(jù)的初始版本的版本標識的數(shù)據(jù)區(qū)塊:從區(qū)塊鏈中查找包含所述已查找到的數(shù)據(jù)版本的版本標識的數(shù)據(jù)區(qū)塊,并從所述數(shù)據(jù)區(qū)塊中獲取與所述已查找到的數(shù)據(jù)版本相鄰的前一個數(shù)據(jù)版本的版本標識;觸發(fā)循環(huán)執(zhí)行上述操作,直至查找到包含待回溯數(shù)據(jù)的初始版本的版本標識的數(shù)據(jù)區(qū)塊。需要說明的是,這里已查找到的數(shù)據(jù)版本的版本標識可以是指除了第一數(shù)據(jù)版本的版本標識之外的其他數(shù)據(jù)版本的版本標識。步驟504:根據(jù)所述數(shù)據(jù)區(qū)塊,確定所述待回溯數(shù)據(jù)的初始版本對應(yīng)的數(shù)據(jù)內(nèi)容。需要說明的是,在本申請實施例中,在每查找到一個數(shù)據(jù)版本的版本標識時,同步可以確定該數(shù)據(jù)版本對應(yīng)的數(shù)據(jù)內(nèi)容。這樣可以基于查找到的數(shù)據(jù)內(nèi)容分析待回溯數(shù)據(jù)的演變過程,真實有效分析待回溯數(shù)據(jù)所蘊含的生產(chǎn)價值。通過本申請實施例提供的技術(shù)方案,接收數(shù)據(jù)回溯請求,所述數(shù)據(jù)回溯請求中包含待回溯數(shù)據(jù)的第一數(shù)據(jù)版本的版本標識;根據(jù)所述第一數(shù)據(jù)版本的版本標識,從區(qū)塊鏈中查找包含所述第一數(shù)據(jù)版本的版本標識的數(shù)據(jù)區(qū)塊,并從所述數(shù)據(jù)區(qū)塊中獲取與所述第一數(shù)據(jù)版本相鄰的第二數(shù)據(jù)版本的版本標識;根據(jù)查找到的所述第二數(shù)據(jù)版本的版本標識,依次回溯查找到包含所述待回溯數(shù)據(jù)的初始版本的版本標識的數(shù)據(jù)區(qū)塊;根據(jù)所述數(shù)據(jù)區(qū)塊,確定所述待回溯數(shù)據(jù)的初始版本對應(yīng)的數(shù)據(jù)內(nèi)容。由于通過數(shù)據(jù)區(qū)塊的形式在區(qū)塊鏈中不僅存儲目標對象的第一數(shù)據(jù)版本的版本標識而且還存儲與第一數(shù)據(jù)版本相鄰的第二數(shù)據(jù)版本的版本標識,由于區(qū)塊鏈具備不能篡改的特性,且采用鏈式數(shù)據(jù)結(jié)構(gòu),這樣能夠回溯查找到待回溯數(shù)據(jù)的演變版本以及每一個演變版本對應(yīng)的數(shù)據(jù)內(nèi)容,并且保證數(shù)據(jù)演變的真實性。圖6為本申請實施例提供的一種數(shù)據(jù)溯源方法的場景示意圖。從圖6中可以看出,由于區(qū)塊鏈采用鏈式數(shù)據(jù)結(jié)構(gòu),那么在確定其中一個數(shù)據(jù)區(qū)塊時,可以根據(jù)鏈式數(shù)據(jù)結(jié)構(gòu)的特點查找到與該數(shù)據(jù)區(qū)塊關(guān)聯(lián)的其他數(shù)據(jù)區(qū)塊,進而起到追溯數(shù)據(jù)源的目的,同時也能夠保證所獲取到的信息真實可信。假設(shè)與該目標對象對應(yīng)的數(shù)據(jù)區(qū)塊由5個,數(shù)據(jù)區(qū)塊1、數(shù)據(jù)區(qū)塊2、數(shù)據(jù)區(qū)塊3、數(shù)據(jù)區(qū)塊4和數(shù)據(jù)區(qū)塊5。這里以數(shù)據(jù)區(qū)塊內(nèi)存儲數(shù)據(jù)版本的版本標識為例進行說明。由于數(shù)據(jù)區(qū)塊5中存儲的數(shù)據(jù)版本的版本標識為5.0和4.0;數(shù)據(jù)區(qū)塊4中存儲的數(shù)據(jù)版本的版本標識為4.0和3.0;數(shù)據(jù)區(qū)塊3中存儲的數(shù)據(jù)版本的版本標識為3.0和2.0;數(shù)據(jù)區(qū)塊2中存儲的數(shù)據(jù)版本的版本標識為2.0和1.0;數(shù)據(jù)區(qū)塊1中存儲的數(shù)據(jù)版本的版本標識為1.0。那么在進行數(shù)據(jù)溯源時,首先確定數(shù)據(jù)區(qū)塊51,依次再確定數(shù)據(jù)區(qū)塊4、數(shù)據(jù)區(qū)塊3和數(shù)據(jù)區(qū)塊2,最后確定數(shù)據(jù)區(qū)塊1,這樣能夠完整實現(xiàn)數(shù)據(jù)溯源的目的。實施例4基于同一發(fā)明構(gòu)思,圖7為本申請實施例提供的一種數(shù)據(jù)存儲設(shè)備的結(jié)構(gòu)示意圖。所述數(shù)據(jù)存儲設(shè)備包括:確定模塊71、查找模塊72和存儲模塊73,其中:確定模塊71,確定目標對象的第一數(shù)據(jù)版本的第一校驗值;查找模塊72,查找所述目標對象的與所述第一數(shù)據(jù)版本相鄰的第二數(shù)據(jù)版本的第二校驗值;存儲模塊73,根據(jù)所述第一校驗值和所述第二校驗值創(chuàng)建數(shù)據(jù)區(qū)塊,并將所述數(shù)據(jù)區(qū)塊存儲至區(qū)塊鏈中,其中,存儲至所述區(qū)塊鏈的數(shù)據(jù)區(qū)塊不可被修改。在本申請的另一個實施例中,所述確定模塊71確定目標對象的第一數(shù)據(jù)版本的第一校驗值,包括:確定目標對象在第一數(shù)據(jù)版本中的數(shù)據(jù)內(nèi)容摘要;利用設(shè)定算法和所述數(shù)據(jù)內(nèi)容摘要,計算得到所述目標對象的第一數(shù)據(jù)版本的第一校驗值。在本申請的另一個實施例中,存儲模塊72根據(jù)所述第一校驗值和所述第二校驗值創(chuàng)建數(shù)據(jù)區(qū)塊,包括:創(chuàng)建數(shù)據(jù)區(qū)塊,并將所述第一校驗值和所述第二校驗值按照設(shè)定格式寫入所述數(shù)據(jù)區(qū)塊的數(shù)據(jù)頭部分。在本申請的另一個實施例中,所述數(shù)據(jù)存儲設(shè)備還包括:寫入模塊74,其中:所述寫入模塊74,將所述目標對象在所述第一數(shù)據(jù)版本中的數(shù)據(jù)內(nèi)容摘要或所述第二校驗值或所述目標對象的所述第一數(shù)據(jù)版本的數(shù)據(jù)內(nèi)容寫入所述數(shù)據(jù)區(qū)塊的數(shù)據(jù)體部分。在本申請的另一個實施例中,所述存儲模塊72,將所述目標對象的所述第一數(shù)據(jù)版本的數(shù)據(jù)內(nèi)容存儲至云數(shù)據(jù)網(wǎng)關(guān)或者數(shù)據(jù)庫中。在本申請的另一個實施例中,所述存儲模塊72,在將所述數(shù)據(jù)區(qū)塊存儲至區(qū)塊鏈的區(qū)塊中后,存儲所述目標對象的第一數(shù)據(jù)版本的版本標識與所述數(shù)據(jù)區(qū)塊的區(qū)塊標識之間的映射關(guān)系。在本申請的另一個實施例中,所述存儲模塊72將所述數(shù)據(jù)區(qū)塊存儲至區(qū)塊鏈中,包括:按照鏈式數(shù)據(jù)結(jié)構(gòu),將所述數(shù)據(jù)區(qū)塊上鏈至區(qū)塊鏈中。需要說明的是,本申請實施例提供的數(shù)據(jù)存儲設(shè)備可以通過硬件方式實現(xiàn),也可以通過軟件方式實現(xiàn),這里不做具體限定。數(shù)據(jù)存儲設(shè)備通過數(shù)據(jù)區(qū)塊的形式在區(qū)塊鏈中存儲目標對象的第一數(shù)據(jù)版本的第一校驗值,由于區(qū)塊鏈具備不能篡改的特性,那么在數(shù)據(jù)需求方獲取到目標對象的第一數(shù)據(jù)版本對應(yīng)的數(shù)據(jù)內(nèi)容時,可以通過區(qū)塊鏈中存儲的第一校驗值驗證第一數(shù)據(jù)版本對應(yīng)的數(shù)據(jù)內(nèi)容是否發(fā)生修改,進而確定第一數(shù)據(jù)版本對應(yīng)的數(shù)據(jù)內(nèi)容的真實性,有效解決了數(shù)據(jù)內(nèi)容容易被篡改導(dǎo)致的數(shù)據(jù)內(nèi)容的真實性無法確定的問題,改善了數(shù)據(jù)需求方進行數(shù)據(jù)分析的效率。實施例5圖8為本申請實施例提供的一種數(shù)據(jù)校驗設(shè)備的結(jié)構(gòu)示意圖。所述數(shù)據(jù)校驗設(shè)備包括:接收模塊81、查找模塊82和驗證模塊83,其中:接收模塊81,接收數(shù)據(jù)驗證請求,所述數(shù)據(jù)驗證請求中包含待校驗數(shù)據(jù)的數(shù)據(jù)版本的版本標識以及基于所述待校驗數(shù)據(jù)的數(shù)據(jù)內(nèi)容得到的校驗值;查找模塊82,根據(jù)所述數(shù)據(jù)校驗請求中包含的數(shù)據(jù)版本的版本標識,從區(qū)塊鏈中查找預(yù)先存儲的與所述數(shù)據(jù)版本的版本標識對應(yīng)的校驗值;驗證模塊83,根據(jù)接收到的所述數(shù)據(jù)驗證請求中包含的校驗值和查找到的校驗值,對所述待驗證數(shù)據(jù)的數(shù)據(jù)內(nèi)容進行驗證。在本申請的另一個實施例中,所述驗證模塊83根據(jù)接收到的所述數(shù)據(jù)驗證請求中包含的校驗值和查找到的校驗值,對所述待驗證數(shù)據(jù)的數(shù)據(jù)內(nèi)容進行驗證,包括:當(dāng)接收到的所述數(shù)據(jù)驗證請求中包含的校驗值與查找到的校驗值相同時,確定所述待驗證數(shù)據(jù)的數(shù)據(jù)內(nèi)容可信;當(dāng)接收到的所述數(shù)據(jù)驗證請求中包含的校驗值與查找到的校驗值不相同時,確定所述待驗證數(shù)據(jù)的數(shù)據(jù)內(nèi)容已被修改。在本申請的另一個實施例中,所述查找單元82根據(jù)所述數(shù)據(jù)校驗請求中包含的數(shù)據(jù)版本的版本標識,從區(qū)塊鏈中查找預(yù)先存儲的與所述數(shù)據(jù)版本的版本標識對應(yīng)的校驗值,包括:根據(jù)預(yù)先存儲的數(shù)據(jù)版本的版本標識與數(shù)據(jù)區(qū)塊的區(qū)塊標識之間的映射關(guān)系,確定所述數(shù)據(jù)驗證請求中包含的數(shù)據(jù)版本的版本標識對應(yīng)的數(shù)據(jù)區(qū)塊的區(qū)塊標識;從確定的所述區(qū)塊標識對應(yīng)的數(shù)據(jù)區(qū)塊中讀取與所述數(shù)據(jù)版本的版本標識對應(yīng)的校驗值。需要說明的是,本申請實施例提供的數(shù)據(jù)校驗設(shè)備可以通過硬件方式實現(xiàn),也可以通過軟件方式實現(xiàn),這里不做具體限定。所述數(shù)據(jù)校驗設(shè)備由于區(qū)塊鏈具備不能篡改的特性,那么從區(qū)塊鏈中查找預(yù)先存儲的與所述數(shù)據(jù)版本的版本標識對應(yīng)的校驗值是可信的,利用可信的校驗值校驗數(shù)據(jù)驗證請求中的待校驗數(shù)據(jù)是否被篡改,進而確保了待校驗數(shù)據(jù)的真實性。實施例6圖9為本申請實施例提供的一種數(shù)據(jù)溯源設(shè)備的結(jié)構(gòu)示意圖。所述數(shù)據(jù)溯源設(shè)備包括:接收模塊91、回溯模塊92和確定模塊93,其中:接收模塊91,接收數(shù)據(jù)回溯請求,所述數(shù)據(jù)回溯請求中包含待回溯數(shù)據(jù)的第一數(shù)據(jù)版本的版本標識;回溯模塊92,根據(jù)所述第一數(shù)據(jù)版本的版本標識,從區(qū)塊鏈中查找包含所述第一數(shù)據(jù)版本的版本標識的數(shù)據(jù)區(qū)塊,并從所述數(shù)據(jù)區(qū)塊中獲取與所述第一數(shù)據(jù)版本相鄰的第二數(shù)據(jù)版本的版本標識;根據(jù)查找到的所述第二數(shù)據(jù)版本的版本標識,依次回溯查找到包含所述待回溯數(shù)據(jù)的初始版本的版本標識的數(shù)據(jù)區(qū)塊;確定模塊93,根據(jù)所述數(shù)據(jù)區(qū)塊,確定所述待回溯數(shù)據(jù)的初始版本對應(yīng)的數(shù)據(jù)內(nèi)容。在本申請的另一個實施例中,所述回溯單元92根據(jù)查找到的所述第二數(shù)據(jù)版本的版本標識,依次回溯查找到包含所述待回溯數(shù)據(jù)的初始版本的版本標識的數(shù)據(jù)區(qū)塊,包括:針對已查找到的數(shù)據(jù)版本的版本標識,執(zhí)行以下操作,直至查找到包含待回溯數(shù)據(jù)的初始版本的版本標識的數(shù)據(jù)區(qū)塊:從區(qū)塊鏈中查找包含所述已查找到的數(shù)據(jù)版本的版本標識的數(shù)據(jù)區(qū)塊,并從所述數(shù)據(jù)區(qū)塊中獲取與所述已查找到的數(shù)據(jù)版本相鄰的前一個數(shù)據(jù)版本的版本標識;觸發(fā)循環(huán)執(zhí)行上述操作,直至查找到包含待回溯數(shù)據(jù)的初始版本的版本標識的數(shù)據(jù)區(qū)塊。需要說明的是,本申請實施例提供的數(shù)據(jù)溯源設(shè)備可以通過硬件方式實現(xiàn),也可以通過軟件方式實現(xiàn),這里不做具體限定。數(shù)據(jù)溯源設(shè)備由于通過數(shù)據(jù)區(qū)塊的形式在區(qū)塊鏈中不僅存儲目標對象的第一數(shù)據(jù)版本的版本標識而且還存儲與第一數(shù)據(jù)版本相鄰的第二數(shù)據(jù)版本的版本標識,由于區(qū)塊鏈具備不能篡改的特性,且采用鏈式數(shù)據(jù)結(jié)構(gòu),這樣能夠回溯查找到待回溯數(shù)據(jù)的演變版本以及每一個演變版本對應(yīng)的數(shù)據(jù)內(nèi)容,并且保證數(shù)據(jù)演變的真實性。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。在一個典型的配置中,計算設(shè)備包括一個或多個處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。內(nèi)存可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(flashRAM)。內(nèi)存是計算機可讀介質(zhì)的示例。計算機可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設(shè)備訪問的信息。按照本文中的界定,計算機可讀介質(zhì)不包括暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號和載波。還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。本領(lǐng)域技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、系統(tǒng)或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。以上所述僅為本申請的實施例而已,并不用于限制本申請。對于本領(lǐng)域技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進等,均應(yīng)包含在本申請的權(quán)利要求范圍之內(nèi)。當(dāng)前第1頁1 2 3