聶野 毛世紅 張?jiān)栖? 于書強(qiáng)
摘 要:研究了一種基于區(qū)塊鏈技術(shù)的新型電子輪機(jī)日志系統(tǒng)。系統(tǒng)可以定時(shí)定點(diǎn)連續(xù)性地自動(dòng)提取船舶輪機(jī)日志相關(guān)的各項(xiàng)數(shù)據(jù),借助區(qū)塊鏈的點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)進(jìn)行自動(dòng)上傳和加密,利用區(qū)塊鏈的不可篡改特性實(shí)現(xiàn)了輪機(jī)日志的全程留痕、便于追溯的需求。研究協(xié)助更加完整和安全的記錄輪機(jī)日志,提供更為方便的查詢分析方法,為船舶輪機(jī)日常管理和事故追溯提供支撐。
關(guān)鍵詞:輪機(jī)日志;區(qū)塊鏈;數(shù)字摘要;共識(shí)機(jī)制;智能合約
輪機(jī)日志是反映船舶機(jī)電設(shè)備運(yùn)行和管理工作的原始記錄,是船舶的法定文件之一,是海事決策與監(jiān)管的主要憑借依據(jù),必須妥善保管。按照規(guī)定,輪機(jī)日志應(yīng)依時(shí)間順序逐頁連續(xù)記錄,不得間斷、遺漏、撕毀和增補(bǔ),應(yīng)使用不褪色的藍(lán)色和黑色筆記錄填寫,數(shù)字和文字要準(zhǔn)確,字體清楚端正,計(jì)量單位采用國家法定計(jì)量單位。
目前船舶上的輪機(jī)日志主要是通過人工填寫的方式完成記錄,輪機(jī)長全面負(fù)責(zé)審查監(jiān)督輪機(jī)日志的記載及保管,船舶航行狀態(tài)信息的記錄由船員負(fù)責(zé)填寫,受船員主觀意識(shí)影響較大。在船舶發(fā)生險(xiǎn)情時(shí),狀態(tài)信息的記錄會(huì)面臨時(shí)間和情形限制,會(huì)導(dǎo)致船舶狀態(tài)信息記錄不完整、不正確的風(fēng)險(xiǎn)。同時(shí),紙質(zhì)化手工書寫船舶狀態(tài)數(shù)據(jù)的記錄方式不便于計(jì)算機(jī)識(shí)別、提取、處理,記錄的數(shù)據(jù)也不便于高效地查詢和分析。
在本研究中提出了一種基于區(qū)塊鏈技術(shù)的電子輪機(jī)日志系統(tǒng),系統(tǒng)將紙質(zhì)的輪機(jī)日志轉(zhuǎn)化為可靠存儲(chǔ)的電子輪機(jī)日志,為用戶安全方便的記錄、查詢、管理輪機(jī)日志提供幫助。
1系統(tǒng)結(jié)構(gòu)
輪機(jī)日志包含的內(nèi)容多且復(fù)雜,而且隨著科技發(fā)展需要記錄的內(nèi)容和類別會(huì)不斷變化,因此本研究沒有將輪機(jī)日志完全記入?yún)^(qū)塊鏈,而是采用數(shù)據(jù)庫存儲(chǔ)日志完整內(nèi)容,將日志的存儲(chǔ)路徑和數(shù)字摘要部分記入?yún)^(qū)塊鏈。根據(jù)以上思路,電子輪機(jī)日志系統(tǒng)包括日志服務(wù)模塊、區(qū)塊鏈平臺(tái)和數(shù)據(jù)庫,如圖1所示:
用戶按照不同的業(yè)務(wù)需求分為記錄人員、查詢?nèi)藛T和管理人員,用戶訪問日志服務(wù)模塊完成輪機(jī)日志的記錄、查詢和核驗(yàn)等業(yè)務(wù)功能。日志服務(wù)模塊包括日志填寫、日志自動(dòng)采集、日志保存、日志查詢、日志核查等業(yè)務(wù)功能模塊,通過數(shù)據(jù)庫相關(guān)接口完成日志數(shù)據(jù)的存儲(chǔ)工作,依據(jù)約定算法將日志存儲(chǔ)路徑和日志的數(shù)字摘要計(jì)算得到元數(shù)據(jù),調(diào)用區(qū)塊鏈平臺(tái)的智能合約實(shí)現(xiàn)元數(shù)據(jù)讀寫、系統(tǒng)權(quán)限驗(yàn)證、系統(tǒng)數(shù)據(jù)核驗(yàn)等功能。
區(qū)塊鏈平臺(tái)采用以太坊技術(shù)構(gòu)建,以太坊是一種基于智能合約的開放式區(qū)塊鏈平臺(tái),開發(fā)者可以編寫智能合約并將合約部署到以太坊中創(chuàng)建去中心化應(yīng)用,實(shí)現(xiàn)了在沒有可信第三方的情況下進(jìn)行可追蹤、不可逆轉(zhuǎn)的交易。本研究的智能合約主要針對(duì)元數(shù)據(jù)和用戶權(quán)限構(gòu)建,針對(duì)輪機(jī)日志主要為內(nèi)部使用的特點(diǎn)優(yōu)化了系統(tǒng)的共識(shí)機(jī)制。
數(shù)據(jù)庫部分系統(tǒng)可以采用關(guān)系型數(shù)據(jù)庫,也可以采用非關(guān)系型數(shù)據(jù)庫,只需要具備日志屬性等結(jié)構(gòu)化數(shù)據(jù)和情況描述等非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)功能即可。從日志數(shù)據(jù)的安全性考慮,建議采用分布式數(shù)據(jù)庫。
2系統(tǒng)功能
電子輪機(jī)日志系統(tǒng)的功能主要通過日志服務(wù)模塊體現(xiàn),包括日志填寫、日志自動(dòng)采集、日志提交、日志查詢和日志核查等。在系統(tǒng)功能實(shí)現(xiàn)過程中,需要區(qū)塊鏈平臺(tái)和數(shù)據(jù)庫提供支撐。
2.1日志填寫
日志填寫功能主要用于記錄船舶輪機(jī)相關(guān)的各類事件及臺(tái)賬,這部分內(nèi)容多為非結(jié)構(gòu)化數(shù)據(jù),系統(tǒng)無法自動(dòng)獲取,需要記錄用戶按照實(shí)際情況填寫。填寫內(nèi)容具體包括:船長、輪機(jī)長的命令,值班駕駛員的通知;船舶的重要活動(dòng);檢修工作記錄; 燃油、潤滑油加裝、調(diào)駁的時(shí)間、地點(diǎn)、品種及數(shù)量; 船舶防污染設(shè)備的使用情況,污油水的排放時(shí)間、地點(diǎn);機(jī)電設(shè)備發(fā)生故障的原因及其處理經(jīng)過;船舶應(yīng)急設(shè)備的檢查、試驗(yàn)情況;船舶固定消防系統(tǒng)的檢查、試驗(yàn)情況;船舶重要設(shè)備的檢修及進(jìn)行明火作業(yè)的部位、審批情況;船舶重要設(shè)備的更換情況及主要技術(shù)數(shù)據(jù);船舶交通事故、機(jī)損事故發(fā)生的時(shí)間、地點(diǎn)、主要經(jīng)過及其處理情況;輪機(jī)部人員的重大人事變動(dòng)等。系統(tǒng)將以上內(nèi)容按照輪機(jī)日志的格式要求,分門別類列出供記錄人員填寫。
2.2日志自動(dòng)采集
日志自動(dòng)采集功能用于采集船舶航行和機(jī)艙設(shè)備運(yùn)行情況的結(jié)構(gòu)化數(shù)據(jù),本功能無需用戶操作。系統(tǒng)可以通過部署于船舶端的各類感知設(shè)備中獲取數(shù)據(jù),完成該部分日志數(shù)據(jù)的自動(dòng)采集??梢宰詣?dòng)采集的數(shù)據(jù)包括:主機(jī)啟動(dòng)、主機(jī)停止的時(shí)間,主機(jī)正常運(yùn)行時(shí)的轉(zhuǎn)速;船舶靠離碼頭、進(jìn)出港區(qū)、航行于危險(xiǎn)航區(qū)及進(jìn)行編解隊(duì)作業(yè)的時(shí)間、地點(diǎn)和車鐘令;柴油發(fā)電機(jī)組、輔助鍋爐及機(jī)電設(shè)備的啟用時(shí)間和停止時(shí)間;駁油量、駁水量,燃油艙轉(zhuǎn)換量及輕重燃油轉(zhuǎn)換的時(shí)間;機(jī)電設(shè)備發(fā)生故障及恢復(fù)正常的時(shí)間;燃油、潤滑油消耗量、庫存量等。自動(dòng)采集只需要管理人員針對(duì)當(dāng)前船舶進(jìn)行系統(tǒng)配置即可,一旦配置完成,系統(tǒng)即可根據(jù)約定的采集頻率和協(xié)議進(jìn)行連續(xù)自動(dòng)的數(shù)據(jù)采集,無需用戶操作。自動(dòng)采集的數(shù)據(jù)類型多樣,多數(shù)情況下并不能符合輪機(jī)日志的格式要求,需要進(jìn)一步的數(shù)據(jù)轉(zhuǎn)換和處理。
2.3日志提交
日志提交功能用于完成日志的數(shù)據(jù)采集和填寫后,定期自動(dòng)將日志數(shù)據(jù)提交至后臺(tái)存儲(chǔ),本功能無需用戶操作。輪機(jī)日志的提交涉及日志數(shù)據(jù)的保存和日志元數(shù)據(jù)的上鏈,具體過程包括數(shù)據(jù)處理、日志保存、數(shù)字摘要生成和元數(shù)據(jù)上鏈等。
(1)數(shù)據(jù)處理。自動(dòng)采集的數(shù)據(jù),需要按照輪機(jī)日志的格式要求進(jìn)行處理。在符合輪機(jī)日志格式要求后,將自動(dòng)采集數(shù)據(jù)和人工填寫的數(shù)據(jù)按照約定的時(shí)間段(一般是自然日)組合,形成原始輪機(jī)日志數(shù)據(jù)。根據(jù)需要,原始的輪機(jī)日志數(shù)據(jù)可以采用對(duì)稱加密的方式,生成輪機(jī)日志密文存儲(chǔ)。
(2)日志保存。系統(tǒng)調(diào)用數(shù)據(jù)庫的相關(guān)接口,將原始輪機(jī)日志數(shù)據(jù)上傳至數(shù)據(jù)庫進(jìn)行保存,獲取數(shù)據(jù)的存儲(chǔ)路徑。
(3)數(shù)字摘要生成。哈希算法是計(jì)算機(jī)領(lǐng)域中非?;A(chǔ)且重要的算法,它可以將任意長度的二進(jìn)制數(shù)據(jù)映射成較短的二進(jìn)制串(哈希值),且不同的二進(jìn)制數(shù)據(jù)映射的結(jié)果極大的概率下是不同的。本研究中利用SHA256的算法獲取原始輪機(jī)日志數(shù)據(jù)的哈希值,稱為輪機(jī)日志的數(shù)字摘要。利用哈希函數(shù)抗碰撞的特點(diǎn),數(shù)字摘要可以用來判斷輪機(jī)日志內(nèi)容是否被篡改,對(duì)數(shù)據(jù)完整性進(jìn)行校驗(yàn)。但是,若數(shù)字摘要值被篡改則數(shù)據(jù)完整性的驗(yàn)證失去了意義。因此,數(shù)字摘要需要被保存到區(qū)塊鏈中以保證安全性。
(4)元數(shù)據(jù)上鏈。數(shù)據(jù)的存儲(chǔ)路徑對(duì)應(yīng)輪機(jī)日志的存儲(chǔ)內(nèi)容,數(shù)字摘要?jiǎng)t可以保證存儲(chǔ)的輪機(jī)日志未被篡改,本研究將存儲(chǔ)路徑和數(shù)字摘要統(tǒng)稱為元數(shù)據(jù),下一步就需要將元數(shù)據(jù)保存在區(qū)塊鏈上,這就涉及到區(qū)塊鏈平臺(tái)的機(jī)制。系統(tǒng)將采用拜占庭共識(shí)機(jī)制作為區(qū)塊鏈平臺(tái)的共識(shí)機(jī)制,元數(shù)據(jù)產(chǎn)生后當(dāng)前節(jié)點(diǎn)作為輸入端啟動(dòng)交易,按照智能合約,交易將被發(fā)送給當(dāng)前視圖的主節(jié)點(diǎn),主節(jié)點(diǎn)負(fù)責(zé)分發(fā)元數(shù)據(jù)到在線節(jié)點(diǎn)進(jìn)行運(yùn)算,當(dāng)運(yùn)算結(jié)果達(dá)到算法要求的一致性時(shí)即產(chǎn)生新的區(qū)塊并加入?yún)^(qū)塊鏈,完成元數(shù)據(jù)的上鏈操作。
2.4日志查詢
日志查詢功能用于查詢指定條件的輪機(jī)日志,并按照指定格式進(jìn)行展示,本功能主要面向查詢用戶。輪機(jī)日志數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中,數(shù)據(jù)存儲(chǔ)路徑作為元數(shù)據(jù)的一部分存儲(chǔ)在區(qū)塊鏈中,因此若想訪問日志數(shù)據(jù),需要首先進(jìn)入?yún)^(qū)塊鏈平臺(tái),調(diào)用智能合約獲取數(shù)據(jù)存儲(chǔ)路徑。系統(tǒng)可以設(shè)置允許其他哪些節(jié)點(diǎn)訪問本節(jié)點(diǎn)寫入的輪機(jī)日志,設(shè)置完畢后,當(dāng)某節(jié)點(diǎn)發(fā)起日志查詢交易時(shí),合約函數(shù)會(huì)對(duì)調(diào)用者身份進(jìn)行判斷。通過交易的簽名可以得到發(fā)起者的真實(shí)身份,沒有私鑰的情況下無法偽冒身份。具體的日志查詢流程包括:
(1)查詢?nèi)藛T調(diào)用日志查詢功能,系統(tǒng)根據(jù)查詢條件構(gòu)造數(shù)據(jù)訪問交易提交至區(qū)塊鏈平臺(tái),并使用私鑰對(duì)交易簽名。
(2)區(qū)塊鏈節(jié)點(diǎn)先驗(yàn)證交易簽名,簽名在許可范圍內(nèi)則啟動(dòng)上鏈機(jī)制,將數(shù)據(jù)訪問的時(shí)間和以太坊賬號(hào)打包并廣播到全網(wǎng),在區(qū)塊鏈網(wǎng)絡(luò)對(duì)交易達(dá)成共識(shí)后,形成查詢交易區(qū)塊上鏈,供數(shù)據(jù)所有者對(duì)訪問記錄溯源。
(3)系統(tǒng)獲取元數(shù)據(jù),根據(jù)數(shù)據(jù)存儲(chǔ)路徑從數(shù)據(jù)庫中獲取對(duì)應(yīng)的輪機(jī)日志數(shù)據(jù),與元數(shù)據(jù)中的數(shù)字摘要進(jìn)行核對(duì)運(yùn)算驗(yàn)證數(shù)據(jù)完整性,最后返回給客戶端。
(4)如果在提交時(shí)有對(duì)稱加密操作,則用戶使用對(duì)稱加密密鑰解密獲得的密文數(shù)據(jù),得到明文。
2.5日志核查
日志核查功能是定時(shí)或在事故發(fā)生時(shí)對(duì)全部或者部分輪機(jī)日志進(jìn)行核查追溯,查看日志數(shù)據(jù)是否被篡改、日志寫入查詢等操作記錄等,主要面向機(jī)務(wù)主管部門的管理用戶。日志核查的范圍主要包括:
(1)元數(shù)據(jù)有效性核查。定時(shí)在元數(shù)據(jù)區(qū)塊鏈上驗(yàn)證指定區(qū)塊區(qū)間的相鄰區(qū)塊 Hash 值是否吻合。即檢查當(dāng)前區(qū)塊的 pre-hash 字段值是否為上一區(qū)塊的頭的 hash 值,以及當(dāng)前區(qū)塊頭的 Datahash 是否為本區(qū)塊所有交易的 hash 值等。
(2)數(shù)據(jù)庫數(shù)據(jù)有效性核查。定時(shí)追溯區(qū)塊鏈中的元數(shù)據(jù)區(qū)塊,提取元數(shù)據(jù)區(qū)塊中數(shù)據(jù)存儲(chǔ)路徑對(duì)應(yīng)的數(shù)據(jù)庫數(shù)據(jù),計(jì)算每條輪機(jī)日志數(shù)據(jù)的數(shù)字摘要,與元數(shù)據(jù)中存儲(chǔ)的數(shù)字摘要進(jìn)行比對(duì),核查數(shù)值是否吻合。
(3)用戶訪問記錄核查。核查全部或者指定的用戶訪問記錄,查看用戶的訪問時(shí)間及賬號(hào),檢查是否符合相關(guān)審核程序與授權(quán)許可。
(4)特定船舶輪機(jī)日志核查。對(duì)特定船舶提取符合查詢條件的電子輪機(jī)日志記錄,形成該船舶完整的輪機(jī)日志報(bào)告,作為相關(guān)事件處理的電子依據(jù)。
3結(jié)論
電子輪機(jī)日志系統(tǒng)可以定時(shí)定點(diǎn)連續(xù)性地自動(dòng)提取輪機(jī)日志的各項(xiàng)狀態(tài)和數(shù)據(jù),并且自動(dòng)保存并上傳。系統(tǒng)采用了基于區(qū)塊鏈技術(shù)的分布式存儲(chǔ),并且可以通過數(shù)據(jù)同步機(jī)制自動(dòng)恢復(fù),避免了傳統(tǒng)數(shù)據(jù)存儲(chǔ)模式下的單點(diǎn)故障風(fēng)險(xiǎn),保證了系統(tǒng)的可靠性。系統(tǒng)利用區(qū)塊鏈技術(shù)實(shí)現(xiàn)了管理范圍內(nèi)全部船舶的分布式透明記賬功能,采用數(shù)字簽名的過程保證了信息傳輸?shù)陌踩裕乐沽藢?duì)數(shù)據(jù)傳輸內(nèi)容的篡改行為。系統(tǒng)的研究有助于提升船舶輪機(jī)日志的完整性和可靠性,對(duì)于降低輪機(jī)工作強(qiáng)度和提升輪機(jī)工作效率具有重要意義。
參考文獻(xiàn):
[1] Nakamoto S. Bitcoin: A Peer-to-peer Electronic Cash System [EB/OL].https://bitcoin.org/bitcoin.pdf, 2008-10-31.
[2] King S, Nadal S. PPCoin: Peer-to-Peer Crypto-Currency with Proof-of-Stake[EB/OL]. https://www.kryptographe.com/peer-peer-crypto-cuiTency-proof-stake, 2012-08-19.
[3] drdobbs. The Byzantine Generals problem[J]. Acm Transactions on Programming Languages & Systems, 1982, 4(3):382-401.
[4] Castro M, Liskov B. Practical Byzantine fault to!erance[C]//Symposium on Operating Systems Design and Implementation. USENIX Association, 1999:173—186.
[5] 熊志強(qiáng),周吳.基于區(qū)塊鏈技術(shù)的電子病歷研究[j]. 中國數(shù)字醫(yī)學(xué),2019(01).