王 姝 孫善鵬 樊景超 劉 佳 郭志斌 王麗娟 李成贊 周?chē)?guó)民 周園春*
(1.中國(guó)科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心,北京 100190;2.國(guó)家農(nóng)業(yè)科學(xué)數(shù)據(jù)中心,北京 100081;3.中國(guó)農(nóng)業(yè)科學(xué)院科技管理局,北京 100081;4.中國(guó)農(nóng)業(yè)科學(xué)院農(nóng)業(yè)信息研究所,北京 100081)
近幾年農(nóng)業(yè)科學(xué)技術(shù)呈現(xiàn)快速發(fā)展的趨勢(shì),同時(shí)農(nóng)業(yè)科學(xué)數(shù)據(jù)的快速增長(zhǎng)為科研人員獲取信息和研究成果帶來(lái)更多機(jī)遇,同時(shí)農(nóng)業(yè)科學(xué)數(shù)據(jù)的開(kāi)放共享也帶來(lái)了巨大的挑戰(zhàn)。
在大數(shù)據(jù)背景下,農(nóng)業(yè)科學(xué)數(shù)據(jù)成為重要的數(shù)字資產(chǎn)。農(nóng)業(yè)科學(xué)數(shù)據(jù)溯源涉及科學(xué)數(shù)據(jù)生成、處理、發(fā)布等一系列環(huán)節(jié)[1]。傳統(tǒng)的數(shù)據(jù)溯源系統(tǒng)一般采用集中方式存儲(chǔ)數(shù)據(jù),存在單點(diǎn)故障、易受攻擊等安全問(wèn)題。農(nóng)業(yè)科學(xué)數(shù)據(jù)溯源目的是為了實(shí)現(xiàn)農(nóng)業(yè)科學(xué)數(shù)據(jù)生成、處理、發(fā)布等環(huán)節(jié)的追溯,而區(qū)塊鏈具備數(shù)據(jù)的防篡改、可溯源等特性,兩者的結(jié)合對(duì)于農(nóng)業(yè)科學(xué)數(shù)據(jù)溯源具有重要作用。同時(shí),如果科學(xué)數(shù)據(jù)沒(méi)有標(biāo)識(shí),數(shù)據(jù)溯源信息無(wú)法互聯(lián)互通及共享,導(dǎo)致溯源信息難以實(shí)現(xiàn)全環(huán)節(jié)覆蓋,給數(shù)據(jù)全生命周期的跟蹤與溯源造成阻礙。科學(xué)數(shù)據(jù)標(biāo)識(shí)技術(shù)將在Internet環(huán)境中提供對(duì)科學(xué)數(shù)據(jù)的便捷訪問(wèn),從而可以更有效地對(duì)各種科學(xué)數(shù)據(jù)進(jìn)行唯一標(biāo)識(shí)、引用、關(guān)聯(lián)、數(shù)據(jù)溯源、版本管理和重用等。
本文針對(duì)目前農(nóng)業(yè)科學(xué)數(shù)據(jù)工作中對(duì)數(shù)據(jù)標(biāo)識(shí)和數(shù)據(jù)溯源的問(wèn)題,提出了一種基于區(qū)塊鏈技術(shù)的解決方案,解決農(nóng)業(yè)科學(xué)數(shù)據(jù)溯源中存在的問(wèn)題。通過(guò)區(qū)塊鏈和標(biāo)識(shí)技術(shù)記錄數(shù)據(jù)集的變化和演變過(guò)程,實(shí)現(xiàn)驗(yàn)證數(shù)據(jù)集真實(shí)性、完整性并保證科學(xué)數(shù)據(jù)的可追溯性。
科學(xué)數(shù)據(jù)是人們通過(guò)觀測(cè)、實(shí)驗(yàn)、測(cè)量、調(diào)查和計(jì)算等方式進(jìn)行數(shù)據(jù)采集,形成對(duì)自然、社會(huì)等客觀現(xiàn)象描述的實(shí)體。目前農(nóng)業(yè)科學(xué)數(shù)據(jù)快速增長(zhǎng),對(duì)數(shù)據(jù)標(biāo)識(shí)的需求越來(lái)越大。利用標(biāo)識(shí)技術(shù)實(shí)現(xiàn)不同編碼體系之間的數(shù)據(jù)的互聯(lián)互通,對(duì)農(nóng)業(yè)科學(xué)數(shù)據(jù)的開(kāi)放共享具有重要的推動(dòng)作用。通過(guò)對(duì)農(nóng)業(yè)科學(xué)數(shù)據(jù)分配唯一標(biāo)識(shí),使用標(biāo)識(shí)解析服務(wù)實(shí)現(xiàn)農(nóng)業(yè)科學(xué)數(shù)據(jù)的定位、查詢、尋址訪問(wèn)等,從而實(shí)現(xiàn)科學(xué)數(shù)據(jù)層面的開(kāi)放共享[2]。
目前,國(guó)際上主要科學(xué)數(shù)據(jù)標(biāo)識(shí)體系包括Han‐dle、OID(Object Identifier)[3]、CSTR(China Science and Technology Resource)[4]等,其中Handle 標(biāo)識(shí)體系中主要面向科學(xué)數(shù)據(jù)應(yīng)用的DOI(Digital Object Iden‐tifier)[5‐6]和PID(Persistent Identifier)[7]。通過(guò)表1 分析對(duì)比了目前主要的科學(xué)標(biāo)識(shí)體系的編碼格式、應(yīng)用領(lǐng)域、優(yōu)缺點(diǎn)等方面內(nèi)容。
為了在推動(dòng)農(nóng)業(yè)科學(xué)數(shù)據(jù)廣泛的開(kāi)放共享,同時(shí)在保證安全性的前提下自主可控地開(kāi)放科學(xué)數(shù)據(jù),將區(qū)塊鏈技術(shù)應(yīng)用于科學(xué)數(shù)據(jù)溯源應(yīng)用將極大促進(jìn)數(shù)據(jù)的開(kāi)放共享,同時(shí)支持國(guó)際多種標(biāo)識(shí)體系和國(guó)家標(biāo)識(shí)標(biāo)準(zhǔn)的兼容互通。
2008 年比特幣白皮書(shū)中提出了“區(qū)塊鏈”的概念,區(qū)塊鏈技術(shù)逐漸引起全球范圍廣泛的關(guān)注,區(qū)塊鏈技術(shù)是由多方參與共同維護(hù)全網(wǎng)一致的分布式賬本,通過(guò)使用密碼機(jī)制確保傳輸數(shù)據(jù)和訪問(wèn)數(shù)據(jù)安全性的技術(shù)體系。隨著區(qū)塊鏈技術(shù)的發(fā)展,“區(qū)塊鏈+”行業(yè)應(yīng)用模式在各行各業(yè)積極探索[8‐10]。
根據(jù)區(qū)塊鏈的開(kāi)放程度,可以分為公有鏈和聯(lián)盟鏈,公有鏈沒(méi)有準(zhǔn)入要求,是一種完全去中心化的區(qū)塊鏈,而聯(lián)盟鏈只對(duì)聯(lián)盟成員開(kāi)放,參與用戶需要事先經(jīng)過(guò)審核,聯(lián)盟成員共同維護(hù)公共賬簿,聯(lián)盟鏈能夠更好地解決數(shù)據(jù)權(quán)限、開(kāi)放共享、數(shù)據(jù)安全、隱私保護(hù)等方面的問(wèn)題[11]。
Fabric 是一個(gè)模塊化且可擴(kuò)展的開(kāi)源系統(tǒng),用于部署和操作許可的區(qū)塊鏈,也是Linux 基金會(huì)(www.hyperledger.org)托管的Hyperledger 項(xiàng)目之一。Fab‐ric 是用于運(yùn)行分布式應(yīng)用程序的第一個(gè)真正可擴(kuò)展的區(qū)塊鏈系統(tǒng)。Fabric 和以太坊有些相似,企業(yè)級(jí)區(qū)塊鏈可以基于Fabric構(gòu)建支撐平臺(tái)。
目前,許多國(guó)內(nèi)的互聯(lián)網(wǎng)公司還與Hyperledger Fabric 合作推出了BaaS 平臺(tái),該平臺(tái)也用于貿(mào)易金融、數(shù)字出版、數(shù)據(jù)交易、產(chǎn)品追溯等應(yīng)用領(lǐng)域。為了虛擬和數(shù)字形式實(shí)現(xiàn)價(jià)值交換,通過(guò)采用分布式賬本技術(shù),實(shí)現(xiàn)安全可控的溯源和交易[12‐13]。
本文試驗(yàn)驗(yàn)證采用Fabric 聯(lián)盟鏈作為農(nóng)業(yè)科學(xué)數(shù)據(jù)溯源聯(lián)盟鏈的技術(shù)基礎(chǔ),將區(qū)塊鏈、數(shù)據(jù)標(biāo)識(shí)和科學(xué)數(shù)據(jù)溯源集成到平臺(tái)中,技術(shù)架構(gòu)如圖1 所示,同時(shí)提供異地節(jié)點(diǎn)運(yùn)行環(huán)境和科技云運(yùn)行環(huán)境。節(jié)點(diǎn)管理包括創(chuàng)建物理鏈、異地節(jié)點(diǎn)加入等,智能合約管理包括智能合約部署、更新、日志管理、合約瀏覽等。開(kāi)放區(qū)塊鏈API服務(wù)可以提供身份認(rèn)證、合約管理、節(jié)點(diǎn)管里、數(shù)據(jù)存儲(chǔ)等API為上層科研應(yīng)用提供服務(wù)[15]。
區(qū)塊鏈網(wǎng)絡(luò)中的成員共同創(chuàng)建區(qū)塊鏈網(wǎng)絡(luò)聯(lián)盟,這就是物理鏈,物理鏈中的成員需各自維護(hù)CA 節(jié)點(diǎn)和peer 節(jié)點(diǎn),并通過(guò)共用order 節(jié)點(diǎn)進(jìn)行共識(shí)。在Fabric 網(wǎng)絡(luò)中,CA 節(jié)點(diǎn)為物理鏈中的成員提供安全可靠的身份信息。Peer節(jié)點(diǎn)是記賬節(jié)點(diǎn),負(fù)責(zé)維護(hù)狀態(tài)數(shù)據(jù)和賬本的副本。除了記賬之外peer 節(jié)點(diǎn)也可以是背書(shū)節(jié)點(diǎn)、記賬節(jié)點(diǎn)或主節(jié)點(diǎn)等。
為了保護(hù)區(qū)塊鏈成員之間數(shù)據(jù)交易范圍和機(jī)密性。通過(guò)構(gòu)建邏輯鏈子鏈,包括區(qū)塊鏈網(wǎng)絡(luò)中兩個(gè)或多個(gè)特定成員,邏輯鏈成員共同維護(hù)一個(gè)分布式賬本。邏輯鏈上的成員可以通過(guò)安裝鏈代碼來(lái)執(zhí)行簡(jiǎn)單的交易指令。如圖2 所示展示了邏輯鏈的典型事務(wù)流程。

表1 不同標(biāo)識(shí)體系的特點(diǎn)Table 1 Characteristics of different identification systems
本文利用區(qū)塊鏈技術(shù)為農(nóng)業(yè)科學(xué)數(shù)據(jù)提供溯源方案,包括標(biāo)識(shí)平臺(tái)、科學(xué)數(shù)據(jù)中心等角色。標(biāo)識(shí)平臺(tái)為科學(xué)數(shù)據(jù)中心提供標(biāo)識(shí)注冊(cè)解析、標(biāo)識(shí)管理、關(guān)聯(lián)引用、元數(shù)據(jù)檢索、統(tǒng)計(jì)等服務(wù)。科學(xué)數(shù)據(jù)中心是農(nóng)業(yè)科學(xué)數(shù)據(jù)溯源聯(lián)盟鏈的使用者,利用區(qū)塊鏈技術(shù)的去中心化,不可篡改及可追溯的特征,基于聯(lián)盟鏈記錄和更新農(nóng)業(yè)科學(xué)數(shù)據(jù)從產(chǎn)生、處理,再到成果等各個(gè)環(huán)節(jié)的數(shù)據(jù)信息,保障農(nóng)業(yè)科學(xué)數(shù)據(jù)的高效利用。
農(nóng)業(yè)科學(xué)數(shù)據(jù)溯源聯(lián)盟鏈業(yè)務(wù)流程包括創(chuàng)建物理鏈、創(chuàng)建邏輯鏈、合約安裝、上層應(yīng)用調(diào)用4 個(gè)步驟,具體如下:
(1)創(chuàng)建鏈物理
首先確定物理鏈的成員信息,確定主機(jī)節(jié)點(diǎn),同時(shí)確定1 個(gè)或多個(gè)peer 節(jié)點(diǎn)。其次需要確定共識(shí)類型,同時(shí)確定加入本物理鏈的成員單位,如圖3 所示。成功創(chuàng)建物理鏈后,分別啟動(dòng)標(biāo)識(shí)平臺(tái)和數(shù)據(jù)中心各自的CA 及peer 節(jié)點(diǎn),等待創(chuàng)建邏輯鏈和安裝智能合約。
(2)創(chuàng)建邏輯鏈
具有相同需求的節(jié)點(diǎn)可以共同創(chuàng)建一條邏輯鏈,針對(duì)標(biāo)識(shí)及數(shù)據(jù)溯源信息的訪問(wèn)需求,標(biāo)識(shí)平臺(tái)和數(shù)據(jù)中心之間可以共建一條邏輯鏈。成功創(chuàng)建邏輯鏈之后,成員和根據(jù)應(yīng)用需求創(chuàng)建智能合約,并進(jìn)行區(qū)塊的寫(xiě)入和訪問(wèn)操作。
(3)編寫(xiě)安裝合約及實(shí)例化
創(chuàng)建邏輯鏈之后,標(biāo)識(shí)平臺(tái)或數(shù)據(jù)中心可以通過(guò)授權(quán)登錄并進(jìn)行智能合約的編寫(xiě)操作,完成智能合約編寫(xiě)后可以上傳到區(qū)塊鏈平臺(tái)。區(qū)塊鏈平臺(tái)的其他管理員根據(jù)對(duì)數(shù)據(jù)操作的需求,可以選擇合適的智能合約,并安裝運(yùn)行在所屬節(jié)點(diǎn)上,作為背書(shū)候選節(jié)點(diǎn),最后安裝了這個(gè)智能合約的成員,可以進(jìn)行實(shí)例化合約操作,如圖4所示。
(4)調(diào)用合約
與區(qū)塊鏈賬本直接交互的一系列操作過(guò)程是通過(guò)調(diào)用智能合約實(shí)現(xiàn)。數(shù)據(jù)中心和標(biāo)識(shí)平臺(tái)需要開(kāi)發(fā)相應(yīng)的應(yīng)用程序及SDK 來(lái)遠(yuǎn)程調(diào)用智能合約進(jìn)行賬本的讀寫(xiě)操作。
農(nóng)業(yè)科學(xué)數(shù)據(jù)溯源是通過(guò)數(shù)據(jù)溯源記錄信息來(lái)實(shí)現(xiàn)追源的目的,但是記錄信息本身也是數(shù)據(jù),同樣存在安全問(wèn)題,為了防止有人惡意篡改數(shù)據(jù)溯源記錄的相關(guān)信息,利用區(qū)塊鏈技術(shù)有效地防止惡意篡改聯(lián)盟鏈中的溯源記錄,對(duì)農(nóng)業(yè)科學(xué)數(shù)據(jù)對(duì)象在生命周期內(nèi)修改行為的記錄按時(shí)間先后組成溯源鏈,通過(guò)溯源鏈記錄數(shù)據(jù)上鏈、更新等數(shù)據(jù)全生命周期信息,數(shù)據(jù)溯源信息賬本寫(xiě)入流程如圖5所示。
農(nóng)業(yè)科學(xué)數(shù)據(jù)溯源上鏈步驟:
1.農(nóng)業(yè)科學(xué)數(shù)據(jù)上鏈數(shù)據(jù)準(zhǔn)備,上鏈數(shù)據(jù)包括:數(shù)據(jù)集標(biāo)識(shí)、版本信息、元數(shù)據(jù)、數(shù)據(jù)發(fā)布者信息、關(guān)聯(lián)標(biāo)識(shí)、關(guān)鍵字、數(shù)據(jù)集簽名等。
2.數(shù)據(jù)集標(biāo)識(shí)注冊(cè),數(shù)據(jù)集標(biāo)識(shí)是科學(xué)數(shù)據(jù)的永久唯一標(biāo)識(shí),可實(shí)現(xiàn)科學(xué)數(shù)據(jù)的定位、追溯、引用、統(tǒng)計(jì)與評(píng)價(jià)。數(shù)據(jù)中心向標(biāo)識(shí)平臺(tái)注冊(cè)數(shù)據(jù)集標(biāo)識(shí),通過(guò)標(biāo)識(shí)解析可以獲取數(shù)據(jù)集的URL和標(biāo)識(shí)信息等。
3.數(shù)據(jù)集簽名,對(duì)數(shù)據(jù)集中每個(gè)文件內(nèi)容進(jìn)行簽名,簽名算法包括:MD5、SHA‐256、SM3 等。更新數(shù)據(jù)集或數(shù)據(jù)集合時(shí),將跟蹤所有上鏈數(shù)據(jù)的更改,包括該數(shù)據(jù)集合中每個(gè)文件的簽名,從而使用戶可以查看該數(shù)據(jù)集隨時(shí)間的詳細(xì)演變歷史。
4.調(diào)用智能合約寫(xiě)入數(shù)據(jù),數(shù)據(jù)中心通過(guò)接口的方式調(diào)用智能合約,在驗(yàn)證身份及權(quán)限信息之后,才能將準(zhǔn)備的上鏈數(shù)據(jù)寫(xiě)入賬本。
本文是通過(guò)使用科學(xué)數(shù)據(jù)存儲(chǔ)庫(kù)(簡(jiǎn)稱Sci‐enceDB)中數(shù)據(jù)集更新過(guò)程記錄來(lái)進(jìn)行試驗(yàn)驗(yàn)證,ScienceDB 是一個(gè)公共的通用型科學(xué)數(shù)據(jù)存儲(chǔ)庫(kù),主要面向科研人員、科研項(xiàng)目/團(tuán)隊(duì)、科研期刊、科研機(jī)構(gòu)及高校等利益相關(guān)者,提供科學(xué)數(shù)據(jù)匯交、長(zhǎng)期保存、出版、共享和獲取等服務(wù)。科學(xué)數(shù)據(jù)溯源上鏈?zhǔn)腔赟cienceDB 中數(shù)據(jù)集標(biāo)識(shí)信息、元數(shù)據(jù)、簽名信息的上鏈,當(dāng)數(shù)據(jù)集更新或版本變化時(shí),也將這些更新記錄上鏈,最終完成整個(gè)科學(xué)數(shù)據(jù)溯源記錄上鏈。
農(nóng)業(yè)科學(xué)數(shù)據(jù)溯源鏈可以使研究人員有效地驗(yàn)證數(shù)據(jù)集的真實(shí)性,查看歷史數(shù)據(jù)并驗(yàn)證所有權(quán)信息,跟蹤來(lái)源并安全存儲(chǔ)有關(guān)農(nóng)業(yè)科學(xué)數(shù)據(jù)的元數(shù)據(jù)和驗(yàn)證信息,并以可驗(yàn)證的方式跟蹤該數(shù)據(jù)的更改,以安全且可獨(dú)立驗(yàn)證的方式促進(jìn)數(shù)據(jù)重用,這對(duì)于農(nóng)業(yè)科學(xué)數(shù)據(jù)研究發(fā)展至關(guān)重要。
數(shù)據(jù)溯源驗(yàn)證是檢驗(yàn)數(shù)據(jù)集是否正確,數(shù)據(jù)中心將農(nóng)業(yè)科學(xué)數(shù)據(jù)集溯源信息存儲(chǔ)到區(qū)塊鏈上后,其他節(jié)點(diǎn)可從區(qū)塊鏈上獲取溯源對(duì)象的溯源信息,進(jìn)行溯源數(shù)據(jù)的真實(shí)性驗(yàn)證,農(nóng)業(yè)科學(xué)數(shù)據(jù)溯源驗(yàn)證示例如圖6所示。
農(nóng)業(yè)科學(xué)數(shù)據(jù)溯源驗(yàn)證步驟:
1.在農(nóng)業(yè)科學(xué)數(shù)據(jù)溯源鏈上通過(guò)標(biāo)識(shí)可以查詢到所對(duì)應(yīng)數(shù)據(jù)集,數(shù)據(jù)集的驗(yàn)證信息與元數(shù)據(jù)一起存儲(chǔ)在區(qū)塊鏈中,其他數(shù)據(jù)存儲(chǔ)在鏈外。
2.通過(guò)數(shù)據(jù)集標(biāo)識(shí)可以獲得原始數(shù)據(jù)的URL,可以與鏈上存儲(chǔ)的信息進(jìn)行比對(duì)驗(yàn)證。通過(guò)比對(duì)數(shù)據(jù)集簽名和鏈上存儲(chǔ)的數(shù)據(jù)集簽名驗(yàn)證是否正確。
農(nóng)業(yè)科學(xué)數(shù)據(jù)溯源鏈并不要求其驗(yàn)證信息存儲(chǔ)在區(qū)塊鏈中的數(shù)據(jù)類型和內(nèi)容。在溯源數(shù)據(jù)模型中,需要數(shù)據(jù)集的標(biāo)識(shí)以便快速通過(guò)標(biāo)識(shí)解析的具體位置,數(shù)據(jù)集驗(yàn)證信息和有關(guān)發(fā)布者的信息作為元數(shù)據(jù)的強(qiáng)制性部分,未來(lái)可以根據(jù)反饋和使用情況分析,逐步擴(kuò)展以包括其他可選的元數(shù)據(jù)元素。農(nóng)業(yè)科學(xué)數(shù)據(jù)溯源鏈將為鏈上存儲(chǔ)的信息,如數(shù)據(jù)標(biāo)識(shí)、發(fā)布者信息、數(shù)據(jù)簽名等信息關(guān)聯(lián)在一起。
通過(guò)農(nóng)業(yè)科學(xué)數(shù)據(jù)溯源鏈可以查詢到數(shù)據(jù)集所有版本記錄,可以跟蹤到數(shù)據(jù)集的更新過(guò)程。通過(guò)數(shù)據(jù)標(biāo)識(shí)或元數(shù)據(jù)都可以查詢到對(duì)應(yīng)數(shù)據(jù)集。如圖7所示,使用科學(xué)數(shù)據(jù)存儲(chǔ)庫(kù)中的數(shù)據(jù)集更新記錄進(jìn)行試驗(yàn)驗(yàn)證,數(shù)據(jù)集更新或版本變化時(shí),計(jì)算的數(shù)據(jù)集簽名也相應(yīng)發(fā)生變化,這些記錄都存儲(chǔ)的溯源鏈上,通過(guò)查詢對(duì)應(yīng)數(shù)據(jù)集,可以獲取數(shù)據(jù)集版本變化的記錄過(guò)程。因此,農(nóng)業(yè)科學(xué)數(shù)據(jù)溯源鏈能保證溯源記錄不可篡改,同時(shí)也能確保溯源記錄順序不會(huì)被改變。
依據(jù)本文所述的方案,通過(guò)農(nóng)業(yè)科學(xué)數(shù)據(jù)溯源鏈,科研人員可以注冊(cè)自己的數(shù)據(jù),溯源鏈為每個(gè)數(shù)據(jù)集文件計(jì)算其簽名,然后將數(shù)據(jù)集的元數(shù)據(jù)和簽名一起存入?yún)^(qū)塊鏈中,原始數(shù)據(jù)脫鏈存儲(chǔ),通過(guò)數(shù)據(jù)集標(biāo)識(shí)可以定位尋址數(shù)據(jù)集,通過(guò)在區(qū)塊鏈上的數(shù)據(jù)集簽名進(jìn)行驗(yàn)證,在數(shù)據(jù)使用過(guò)程中,可以根據(jù)溯源鏈來(lái)進(jìn)行可信的數(shù)據(jù)溯源。研究人員能夠有效地共享和驗(yàn)證科學(xué)數(shù)據(jù)的真實(shí)性。在下一步工作中,我們將嘗試探索農(nóng)業(yè)科學(xué)數(shù)據(jù)溯源鏈在更多數(shù)據(jù)類型的可信共享應(yīng)用,并將繼續(xù)探索區(qū)塊鏈技術(shù),利用其具有不可篡改、可追溯等特點(diǎn),為農(nóng)業(yè)科學(xué)數(shù)據(jù)溯源提供了更為完善的解決方案[15]。
農(nóng)業(yè)大數(shù)據(jù)學(xué)報(bào)2020年2期