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