李 玨,余 雷,邢方亮
(1.貴州省水利水電勘測設(shè)計研究院,貴陽 550002;2.貴州思索電子有限公司,貴陽 550002;3.珠江水利委員會珠江水利科學(xué)研究院,廣州 510611)
區(qū)塊鏈這個詞最早出現(xiàn)在比特幣的白皮書里,是分布式數(shù)據(jù)存儲、點對點傳輸、共識機制、加密算法等計算機技術(shù)的新型應(yīng)用模式,本質(zhì)上是一個去中心化的數(shù)據(jù)庫,特點是不可篡改、開放透明、可審計。幾年的發(fā)展后,相較于比特幣,區(qū)塊鏈已完全是不同的概念了,而基于一種信任機制,在新一代的互聯(lián)網(wǎng)中,區(qū)塊鏈已成為戰(zhàn)略支撐技術(shù),區(qū)塊鏈技術(shù)的產(chǎn)業(yè)發(fā)展和創(chuàng)新獲得了國家的高度重視,提出要“加強對區(qū)塊鏈、人工智能、虛擬現(xiàn)實等新興技術(shù)在行業(yè)系統(tǒng)解決方案中的應(yīng)用推廣”。
在國家經(jīng)濟建設(shè)和社會發(fā)展中,所有與水相關(guān)活動的決策均來源于基礎(chǔ)水文資料,準(zhǔn)確的的水文資料是水文事業(yè)服務(wù)于社會經(jīng)濟、生態(tài)環(huán)境及交通等信息產(chǎn)品的重要戰(zhàn)略資源。水文數(shù)據(jù)庫的建設(shè)是現(xiàn)代化水文工作的重要組成部分之一,而區(qū)塊鏈和水文數(shù)據(jù)庫建設(shè)的結(jié)合將是未來水文水利發(fā)展最容易落地的實踐應(yīng)用場景。將區(qū)塊鏈技術(shù)應(yīng)用于水文數(shù)據(jù)的分布式存儲方式中,通過加密增加安全性和可靠性,從而保證數(shù)據(jù)的完整性、真實性和可審計性。
水文資料種類多,規(guī)模大,品質(zhì)高,數(shù)據(jù)類型具有代代相傳的特點,是在水文數(shù)據(jù)的基礎(chǔ)上記錄了地球水圈和人民改造生活環(huán)境的依據(jù)。水文數(shù)據(jù)庫包含和使用一些密切相關(guān)銜接的數(shù)據(jù),從實際調(diào)查數(shù)據(jù)到月度統(tǒng)計數(shù)據(jù),含水流銜接和數(shù)據(jù)說明、測站分布和方法信息、測站屬性和率定信息、斷面信息及數(shù)據(jù)可靠性信息、降水、蒸發(fā)、流量、冰凌、潮水、水位、泥沙和水量等統(tǒng)計特征值,所有的水文分析均可與水利工程數(shù)據(jù)結(jié)合,并在水文數(shù)據(jù)的基礎(chǔ)上用以實現(xiàn)水力計算和力學(xué)計算[1],故水文數(shù)據(jù)庫建設(shè)是重要的水文運維基本業(yè)務(wù)。以往的水文數(shù)據(jù)庫建設(shè)存在如下幾點問題:①水文數(shù)據(jù)未加密;②容易在傳輸過程中被修改;③使用不受控制;④使用人不受控制。
隨著水文業(yè)務(wù)需求的深化、區(qū)塊鏈技術(shù)的發(fā)展和經(jīng)濟社會的不斷進步?jīng)Q定了水文數(shù)據(jù)庫的建設(shè)是一個復(fù)雜的、動態(tài)的系統(tǒng)建設(shè)工程,解決水文現(xiàn)代化數(shù)據(jù)庫建設(shè)和水文應(yīng)用服務(wù)中存在的問題已勢在必行。
2008年中本聰發(fā)表論文《比特幣——一種點對點的電子現(xiàn)金系統(tǒng)》,文中設(shè)計了一個全新的電子貨幣系統(tǒng),可在去中心化管理的情況下進行全網(wǎng)賬本的共同維護和更新,并保證交易記錄的真實有效且不可篡改。隨著比特幣系統(tǒng)的運行,實現(xiàn)這一系統(tǒng)的技術(shù)方案的重要性逐漸體現(xiàn)出來,人們將其提煉稱之為區(qū)塊鏈技術(shù),因此,區(qū)塊鏈的第一個應(yīng)用是比特幣,比特幣是區(qū)塊鏈的底層技術(shù),兩者既有聯(lián)系又有區(qū)別。
IDC(Internet Data Center)將區(qū)塊鏈定義為數(shù)據(jù)區(qū)塊按時間順序相連的鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu),用密碼學(xué)保證安全的分布式數(shù)字賬本,是一種全新的分布式基礎(chǔ)架構(gòu)與范式。
1)分布式:區(qū)塊鏈系統(tǒng)中每個節(jié)點均具有對等的權(quán)利和義務(wù),均能獲得完整的數(shù)據(jù)拷貝,因而,區(qū)塊鏈系統(tǒng)無需配置相應(yīng)的硬件設(shè)備及管理機構(gòu),將維護工作分散,由多個節(jié)點共同維護系統(tǒng)。
2)多節(jié)點共識:公開數(shù)據(jù)內(nèi)容和系統(tǒng)運作規(guī)則,各節(jié)點間無需相互信任,入鏈數(shù)據(jù)通過共識機制進行驗證,由技術(shù)手段自動實現(xiàn)信任關(guān)系,無需配備審批結(jié)算交易的中心化管理員。
3)公開透明:利用時間戳機制追溯用戶行為,而共識機制則保證賬本和商業(yè)規(guī)則可被所有人審閱,從而保證透明的系統(tǒng)。
4)不可篡改:通過新增區(qū)塊來修改交易,原區(qū)塊仍然存在,所有的區(qū)塊變動將留有痕跡,永久保留。
1)去中心化或多中心化:不再有中心數(shù)據(jù)庫,而是分布在世界各地的計算機中,形成分布式數(shù)據(jù)庫進行計算,弱化甚至消除管理中心性。
2)開放性:開放式是區(qū)塊鏈設(shè)計的初衷,每一條數(shù)據(jù)均由所有人驗證通過,每個人均可隨時查看。每一次記錄都全網(wǎng)公開,所有人都能看到記錄的內(nèi)容,并來驗證其真實性,只有真實的信息才能被計入數(shù)據(jù)塊中,掛在鏈上,之后所有的人也可以再查看,保障操作者的公的權(quán)益。
3)自治性:區(qū)塊鏈一開始就設(shè)置了統(tǒng)一的平臺協(xié)議和技術(shù)規(guī)范,讓后續(xù)的開發(fā)者和使用者能統(tǒng)一的使用分布式數(shù)據(jù)庫進行安全交易。
4)不可篡改:不可篡改性是區(qū)塊鏈信任機制的基礎(chǔ),其鏈條結(jié)構(gòu)能向整個網(wǎng)絡(luò)公告并認(rèn)可每次的交易環(huán)節(jié),驗證并記錄之后,所有人均無權(quán)對其進行修改和刪除。
目前全國水文數(shù)據(jù)資料龐大,但完善的水文數(shù)據(jù)庫應(yīng)用很少,每次使用數(shù)據(jù)大多是查閱PDF文檔或者手工抄錄,整個過程中存在很多問題,如工作量大、響應(yīng)緩慢、數(shù)據(jù)傳輸不安全和數(shù)據(jù)可被篡改等,嚴(yán)重的阻礙制約了水利大數(shù)據(jù)和智慧水利的發(fā)展。區(qū)塊鏈技術(shù)在水文數(shù)據(jù)庫中的應(yīng)用,去除了中間機構(gòu),改變傳統(tǒng)水文的由組織機構(gòu)完成集中數(shù)據(jù)的權(quán)限審查和數(shù)據(jù)校驗的方式,節(jié)約時間成本,提高安全性。
1)水文機構(gòu)服務(wù)器群:水文資源數(shù)據(jù)目前的分布現(xiàn)狀,主要的水文數(shù)據(jù)信息服務(wù)和數(shù)據(jù)存儲節(jié)點均在國家水利行政單位及大型水利企業(yè),因而可將水文機構(gòu)進行等級劃分,明確授權(quán)機制,實現(xiàn)節(jié)點之間的共識。
2)水文數(shù)據(jù)存儲結(jié)構(gòu):將數(shù)據(jù)的節(jié)點根錨定在區(qū)塊鏈,實現(xiàn)高效傳播和不可篡改。
3)分布式數(shù)據(jù)庫系統(tǒng)(Distributeddatabasesystem,DDBS):將水文數(shù)據(jù)存儲在分布式數(shù)據(jù)庫中并進行加密,減輕高頻訪問的壓力。
2.1.1 水文數(shù)據(jù)庫組成
水文數(shù)據(jù)庫含主題、元、專用和基礎(chǔ)數(shù)據(jù)庫,ETL(Extract-Transform-Load)負(fù)責(zé)抽取分布的數(shù)據(jù),清洗和轉(zhuǎn)換后加載,為數(shù)據(jù)挖掘和分析提供基礎(chǔ)數(shù)據(jù)[2]。
2.1.2 水文數(shù)據(jù)管理設(shè)計
通過區(qū)塊鏈管理信息資源目錄實現(xiàn)數(shù)據(jù)的管理與共享,詳細(xì)數(shù)據(jù)存儲在數(shù)據(jù)倉庫中,為進一步處理與分析提供數(shù)據(jù)支撐。
2.1.3 水文信息資源目錄管理
水文元數(shù)據(jù)主要包含技術(shù)元、業(yè)務(wù)元和內(nèi)斂映射元等幾種數(shù)據(jù)類型,故設(shè)計過程中,要抓住規(guī)律,實現(xiàn)加工、處理和再次開發(fā)。將元數(shù)據(jù)中的8個不能重復(fù)利用的主要子集和5個可重復(fù)利用的次要子集運用在數(shù)據(jù)集,搭建元數(shù)據(jù)組織的框架。將元數(shù)據(jù)對應(yīng)區(qū)塊鏈的Merkle樹節(jié)點,實現(xiàn)數(shù)據(jù)的不可篡改和真實性。
2.2.1 分布式水文數(shù)據(jù)庫系統(tǒng)
來源于不同渠道的專用數(shù)據(jù)及水文技術(shù),在內(nèi)容和格式上區(qū)別較大,無法支持高級決策和分析,故在采用區(qū)塊鏈技術(shù)建立分布式數(shù)據(jù)庫時,需重新構(gòu)建數(shù)據(jù)模型,根據(jù)不同構(gòu)造的數(shù)據(jù)庫裝載基礎(chǔ)和專用的數(shù)據(jù),采用主數(shù)據(jù)進行決策分析,通過水文數(shù)據(jù)建立分布式數(shù)據(jù)庫。
2.2.2 水文數(shù)據(jù)抽取
將原有備份在光盤或磁帶上的歷史數(shù)據(jù)、基礎(chǔ)數(shù)據(jù)和外部文件調(diào)至相應(yīng)分類的水文數(shù)據(jù)即為抽取水文數(shù)據(jù),在抽取過程中,不宜采用直接鏈接水文數(shù)據(jù)庫的方式,應(yīng)采用不同的接口對不同源數(shù)據(jù)進行調(diào)取,同時需建立安全保證措施,保證一定的抽取效率[3]。
2.2.3 水文數(shù)據(jù)加載
在加載經(jīng)過轉(zhuǎn)換的水文數(shù)據(jù)時,需先刪除原有的歷史數(shù)據(jù),且要保在同一加載時間的加載過程中的數(shù)據(jù)具有一致性與完整性。
2.3.1 水文數(shù)據(jù)交換體系
水文數(shù)據(jù)交換體系具有統(tǒng)一的標(biāo)準(zhǔn)規(guī)范,其用戶分為完備、輕量及普通三個用戶類型,其中輕量級用戶可使用網(wǎng)站或APP查看水文數(shù)據(jù),并可授權(quán)或取消訪問權(quán)限。這里客戶端可分為:
1)完備級客戶端:可提供對外服務(wù)接口,并存儲所有的記錄。
2)輕量級客戶端:可提供查詢接口,不保存記錄,需要時向其他節(jié)點查詢,可完成個人授權(quán)。
3)在線客戶端:網(wǎng)頁瀏覽模式。行業(yè)背景研究發(fā)現(xiàn),小型水文機構(gòu)水文數(shù)據(jù)少,數(shù)據(jù)中心不完善,數(shù)據(jù)處理能力弱,故水文大數(shù)據(jù)中心基本都建設(shè)在重點水文機構(gòu),基于此現(xiàn)狀,采用區(qū)塊鏈技術(shù),即能實現(xiàn)去中心化的安全快捷的數(shù)據(jù)共享,對于體積較大的設(shè)計圖、圖片、視頻等數(shù)據(jù),可將所有者公鑰加密放在分布式數(shù)據(jù)庫中,將所有數(shù)據(jù)的摘要保存在分層機構(gòu)中,將數(shù)據(jù)哈希值保存在Item結(jié)構(gòu)中,再將每個Item的哈希值放在Item塊機構(gòu)中,從而加快使用者對記錄的校核速度,實現(xiàn)高速、可靠、透明和安全的數(shù)據(jù)共享。
2.3.2 水文數(shù)據(jù)安全
采用安全系數(shù)較高的操作系統(tǒng)作為數(shù)據(jù)庫和數(shù)據(jù)倉庫服務(wù)器的操作系統(tǒng),同時進行恢復(fù)和備份的設(shè)計,而區(qū)塊鏈的鏈條結(jié)構(gòu)可保證每次經(jīng)過公告和認(rèn)可的交易記錄的真實性,從而保證了數(shù)據(jù)信息的不可篡改。
在此,文章實現(xiàn)一個簡單的水文數(shù)據(jù)區(qū)塊鏈??紤]到水文工作的實際需求,這里主要是利用了區(qū)塊鏈的數(shù)據(jù)溯源和不可篡改特性,常見區(qū)塊鏈中工作量證明等與實際需求無關(guān)的部分不予實現(xiàn),生成一個新區(qū)塊的權(quán)限不以工作量證明為依據(jù),而是由各采集終端節(jié)點依照水文測驗規(guī)則采集數(shù)據(jù)后生成。
設(shè)想中的水文數(shù)據(jù)區(qū)塊鏈的區(qū)塊基本結(jié)構(gòu)如下:
1)index:區(qū)塊索引值。
2)hash:本區(qū)塊哈希值。
3)p_Hash: 上一區(qū)塊哈希值。
4)timestamp:時間戳。
5)W_data:水文數(shù)據(jù)塊。
6)C_data:存儲認(rèn)證中心、采集終端信息的數(shù)據(jù)塊。
7)O_data: 其他數(shù)據(jù)塊。
采集終端節(jié)點采集數(shù)據(jù)后,經(jīng)RSA非對稱數(shù)據(jù)加密算法進行數(shù)字簽名后上傳至所屬的水文數(shù)據(jù)認(rèn)證中心,認(rèn)證中心通過該數(shù)字簽名驗證確認(rèn)數(shù)據(jù)來源的可信性和數(shù)據(jù)可用性后,發(fā)起生成新區(qū)塊的廣播,并向水文數(shù)據(jù)區(qū)塊鏈網(wǎng)絡(luò)進行廣播。新區(qū)塊的W_data字段為符合《水文監(jiān)測數(shù)據(jù)通信規(guī)約》(SL651-2014)的數(shù)據(jù)報文,C_data字段用于存儲采集W_data數(shù)據(jù)的采集終端信息以及認(rèn)證該數(shù)據(jù)的認(rèn)證中心的信息,O_data字段用于存儲其他信息。
每一個區(qū)塊代表一個或一批水文測驗數(shù)據(jù),所有水文測驗數(shù)據(jù)的請求、使用等信息視為交易數(shù)據(jù),合規(guī)的、被允許的請求和使用等數(shù)據(jù)操作,按照區(qū)塊鏈相關(guān)算法及規(guī)則(如PBFT、PoW算法、PoS算法、DPoS算法、Ripple算法等)解決共識問題并生成記錄后,分布存儲于各區(qū)塊的O_data數(shù)據(jù)中。
隨著信息技術(shù)的發(fā)展,將區(qū)塊鏈應(yīng)用于水文數(shù)據(jù)庫建設(shè)是大勢所趨,文章借鑒區(qū)塊鏈這一分布式數(shù)據(jù)庫技術(shù)來解決現(xiàn)有水文資源數(shù)據(jù)中存在的問題,從分類分級、加密水文數(shù)據(jù)集、分布式數(shù)據(jù)存儲三個方面探討區(qū)塊鏈與水文數(shù)據(jù)庫的融合,將區(qū)塊鏈技術(shù)應(yīng)用于水文數(shù)據(jù)庫管理,助力水利工程活動轉(zhuǎn)型升級,實現(xiàn)經(jīng)營目標(biāo)。