趙永登
(華能山東石島灣核電有限公司,威海 264312)
中共中央政治局第十八次集體學習專題研究了區(qū)塊鏈技術在新的技術革新和產(chǎn)業(yè)變革中的應用。習近平總書記在主持學習時強調,要把區(qū)塊鏈作為核心技術自主創(chuàng)新的重要突破口,明確主攻方向,加大投入力度,著力攻克一批關鍵核心技術,加快推動區(qū)塊鏈技術和產(chǎn)業(yè)創(chuàng)新發(fā)展。當前,區(qū)塊鏈技術應用已延伸到數(shù)字金融、物聯(lián)網(wǎng)、智能制造、供應鏈管理、數(shù)字資產(chǎn)交易等多個領域。習近平總書記特別指出,要推動區(qū)塊鏈底層技術服務和新型智慧城市建設相結合,探索在信息基礎設施、智慧交通、能源電力等領域的推廣應用。要求相關部門及其負責領導要注意區(qū)塊鏈技術發(fā)展現(xiàn)狀和趨勢,提高運用和管理區(qū)塊鏈技術的能力。在此之后,工信部等有關部門相繼出臺了引導、鼓勵、規(guī)范區(qū)塊鏈技術發(fā)展的相關制度和規(guī)范,至此,全社會掀起了應用區(qū)塊鏈技術的熱潮。
國家生態(tài)環(huán)境部新頒布的《核動力廠管理體系安全規(guī)定》[1]明確要求,核動力廠要“開展信息化建設,利用先進信息技術為知識和信息管理提供安全可靠的平臺和工具,采取有效措施保證網(wǎng)絡和信息安全”。近期,國家發(fā)展改革委、國家能源局、生態(tài)環(huán)境部、國資委、國防科工局聯(lián)合發(fā)文(發(fā)改能源〔2021〕1536 號文件),針對某核電廠燃料組件破損事件的教訓,要求各核電控股集團進一步加強核電運行管理,明確提出“積極利用信息化技術加強對人員行為的提醒和監(jiān)督”。在一系列政策的鼓勵和引導下,國內(nèi)部分核電廠已經(jīng)開始不斷升級迭代信息化系統(tǒng),智慧工廠、智能電站等信息化建設方興未艾。在可預見的未來,區(qū)塊鏈、人工智能等現(xiàn)代先進IT 技術必將廣泛應用到核電安全管理的各個領域。
雖然切爾諾貝利核事故已經(jīng)過去36 年了,但它仍然是我國核能與核技術利用事業(yè)安全發(fā)展的前車之鑒。隨著政策和技術等外部條件和環(huán)境的發(fā)展和變化,我們可以站在一個全新的角度分析這場事故,并總結新的經(jīng)驗教訓和痛點。
切爾諾貝利核事故[2,3]是一起由于管理嚴重缺位導致的核事故。切爾諾貝利核電站機組成員在無任何應急處理預案的條件下,開展一個沒有經(jīng)過嚴格論證的反應堆實驗,反應堆設計的先天缺陷以及操作員一系列違規(guī)操作導致核電站功率瞬間大幅度拉升,并最終導致核電站的爆炸與堆芯石墨外泄。綜觀整個核事故的過程,從反應堆設計環(huán)節(jié)引入的設計缺陷,到核電站的不規(guī)范調試活動,再到應急準備與應急響應預案的缺失,最后到一系列不遵守安全規(guī)定與安全預設的違規(guī)操作,都體現(xiàn)出了核安全管理的嚴重缺位。
通過切爾諾貝利核事故的慘痛教訓,我們可以總結出,在沒有新技術,特別是沒有計算機技術的支持下,核安全管理的兩大痛點:一是核安全管理對理性的高度需求與人的感性之間的矛盾;二是核安全應急響應對效率和即時性的高度需求與復雜管理流程之間的矛盾。這兩大痛點是當前核安全管理和運行面臨的重大挑戰(zhàn),是必須徹底解決的重大管理戰(zhàn)略問題。面向核安全管理信息化、智能化的未來,區(qū)塊鏈等新興計算機技術的集成應用在解決上述兩大痛點中的地位和作用將更加突出。
區(qū)塊鏈技術[4,5]本質上是一種由事務、區(qū)塊以及鏈三部分組成的分布式賬本技術。這里的“事務”,理論上可以是任何根據(jù)實際業(yè)務邏輯需求而抽象的數(shù)據(jù),而且這些數(shù)據(jù)的格式和內(nèi)容可根據(jù)實際業(yè)務需求自行定義。應用到核安全管理領域時,“事務”理論上可以抽象為諸如控制棒、閥門等某一核電設備的某一組動作的控制邏輯,也可以是核安全監(jiān)管指令的下達、執(zhí)行、反饋過程的數(shù)據(jù)化抽象,甚至可以是一個普通的核電管理程序(制度)文本的編制、審核、批準及其內(nèi)容的執(zhí)行、反饋等環(huán)節(jié)的過程記錄。這里的“區(qū)塊”,便可以看作承載上述“事務”的“容器”,或者是記載實際業(yè)務邏輯的“賬頁”。這里的“鏈”,便是這些“區(qū)塊”以密碼學的某種算法按照某種規(guī)則(如時間序列)組織起來的分布式存儲方式,且數(shù)據(jù)不可篡改。在一個分布式系統(tǒng)中,各個節(jié)點在本地維護一個由密碼學技術打包串聯(lián)的區(qū)塊鏈賬本副本,并通過特定的共識協(xié)議來保證各個節(jié)點的副本的最終一致性。分布式系統(tǒng)中的任何一方想要在賬本上添加一條事務記錄,必須將該條記錄使用數(shù)字簽名技術簽名后廣播至系統(tǒng)中的所有節(jié)點,并經(jīng)過半節(jié)點確認后分別添加至各自區(qū)塊鏈鏈尾,并使用哈希算法打包上鏈。區(qū)塊鏈的去中心化、高冗余、高備份以及共識協(xié)議保證最終一致性,決定了區(qū)塊鏈系統(tǒng)中區(qū)塊鏈的鏈式結構、時序記錄特性以及數(shù)字簽名的不可篡改、不可抵賴等技術特性,則決定了任何第三方都可以快速地回溯查找特定的上鏈記錄以及對應的記錄源頭,記錄源頭則對自己提交的記錄負責,不可抵賴。
綜上所述,區(qū)塊鏈技術可不依賴額外的第三方管理機構或硬件設施,在一定條件下,可不設中心管制,通過分布式計算和存儲,各個節(jié)點實現(xiàn)了信息自我驗證、傳遞和管理,所有節(jié)點能夠在系統(tǒng)內(nèi)自動安全地驗證、交換數(shù)據(jù),不需要任何人為的干預。此外,整個系統(tǒng)信息對授權的成員或節(jié)點高度透明,且數(shù)據(jù)不可篡改,便于回溯。區(qū)塊鏈技術的這些固有特征,與核安全管理體系的本質要求高度吻合。比如,“如何保證核安全的高效科學監(jiān)管,將核安全法規(guī)和導則明確的核電廠各項設計、建設、運營規(guī)定落到實處”,是核安全管理體系的關鍵;而區(qū)塊鏈技術以其數(shù)據(jù)的開放、獨立、可信等特征,可保證將核安全法定職責有效落實到監(jiān)管者、運營主體、電廠部門甚至具體崗位;再如,核安全管理的一個重要原則就是要充分考慮人的能力和其局限性,因此,每個核電廠都高度重視人因管理,目的就是要最大限度地減少人的非理性對核電安全的威脅;而區(qū)塊鏈作為先進的計算機技術,如果將人的一系列操作或者行動轉換成計算機邏輯并“上鏈”,從而輔助人進行操作或者決策,便可最大限度地克服人的非理性。另外,區(qū)塊鏈技術的開放、可信性,可非常方便地進行“鏈上”知識共享,便于形成理性、快速反應的經(jīng)驗反饋或操作輔助決策系統(tǒng)。特別是針對不同核電廠的相同型號的核電機組,如果由各核電廠共同維護一條相同型號機組的開放、可信的經(jīng)驗反饋“知識鏈”,則可有效規(guī)避相同的錯誤在其他時刻再次發(fā)生??傊?,一個用于管理和記錄核電運行與操作事務的區(qū)塊鏈系統(tǒng)能夠極大地加強核安全管理的責任落實。
智能合約[6,7]是一種以區(qū)塊鏈作為底層架構和邏輯的分布式程序,由特定的程序語言編寫,并在特定的區(qū)塊鏈虛擬機環(huán)境內(nèi)編譯部署。智能合約以新加入?yún)^(qū)塊鏈的區(qū)塊作為輸入,并根據(jù)輸入?yún)^(qū)塊上的事務以及自身程序邏輯來觸發(fā)特定的事務或操作。在軟件工程實踐中,智能合約可被理解為根據(jù)實際業(yè)務情景,以代碼形式組織而成的“if-then”結構的規(guī)則和邏輯。這類規(guī)則和邏輯應用在金融或交易領域,可按照交易雙方事先協(xié)商確定的協(xié)議,在滿足特定條件的情況下,由代碼自動完成相關交易。當這類規(guī)則和邏輯應用到核安全管理領域時,可以是工作票中的一系列實際業(yè)務的自動執(zhí)行或確認;也可以是某一既定工作流程在一系列代碼控制下的自動執(zhí)行;甚至可以是以經(jīng)驗反饋為主要內(nèi)容的核安全知識共享及價值傳播(或交易)系統(tǒng)。因此,智能合約具備實現(xiàn)大量的既定安全程序的能力,能夠有效輔助核電安全管理。
一份智能合約的完整生命周期如下:(1)初始化:由程序設計人員將業(yè)務邏輯和需求轉化為智能合約腳本代碼,并在區(qū)塊鏈系統(tǒng)上發(fā)布,區(qū)塊鏈中各個節(jié)點接收并在本地編譯部署,智能合約副本開始監(jiān)聽事務;(2)執(zhí)行:當已經(jīng)上鏈的事務共同組成某個特定的區(qū)塊鏈上狀態(tài)時,智能合約被觸發(fā),執(zhí)行相應的操作,并產(chǎn)生新的相關事務記錄,廣播至區(qū)塊鏈系統(tǒng);(3)銷毀:在智能合約自身邏輯或特定事務的控制下,智能合約程序在全區(qū)塊鏈系統(tǒng)終止,合約撤銷。
智能合約極大地豐富了區(qū)塊鏈的業(yè)務邏輯和適用范圍,使更細粒度的核安全管理業(yè)務需求在區(qū)塊鏈上的實現(xiàn)成為可能。理論上,所有核電運行與操作事務記錄均可上鏈,而核電機組的操作記錄或控制接口獲取的相關參數(shù),可以觸發(fā)實現(xiàn)各種核電安全既定規(guī)則或應急預案的智能合約,實現(xiàn)對核電機組操作的輔助決策。傳統(tǒng)“CS”或“BS”的軟件架構將數(shù)據(jù)存儲在中心節(jié)點,因此擁有管理權限的惡意用戶可對數(shù)據(jù)進行隨意的增、刪、改、查;而在共識協(xié)議的約束下,部署在區(qū)塊鏈上的智能合約只可對區(qū)塊鏈進行回溯查找,或者在區(qū)塊鏈鏈尾進行合法的“增”操作,少數(shù)惡意節(jié)點或用戶無法有效更改或刪除區(qū)塊鏈上的其他數(shù)據(jù)。因此,智能合約既可像傳統(tǒng)程序那樣處理豐富的實際業(yè)務,又繼承了區(qū)塊鏈去中心化、可信溯源等特征。這種特征符合核安全管理對理性的最大需求。
近年來,隨著計算機技術的進步,部署在區(qū)塊鏈上的智能合約,廣義上已超越了早期金融領域的自動化執(zhí)行“數(shù)字化合同”的概念,在軟件工程項目中常常作為一種處理實際業(yè)務邏輯的特定用例出現(xiàn),也為機器學習等人工智能技術在區(qū)塊鏈上的應用提供了一種可用的軟件架構,這將是研究和探索智慧核電廠的重要方向之一。
聯(lián)盟鏈[8,9]由最基本的區(qū)塊鏈系統(tǒng)發(fā)展而來,解決了傳統(tǒng)區(qū)塊鏈系統(tǒng)中權限管理不清晰的弊端。具體而言,傳統(tǒng)的區(qū)塊鏈系統(tǒng)中缺乏節(jié)點的權限管理機制,任何節(jié)點均可以自由地加入或退出區(qū)塊鏈系統(tǒng),從而導致一些沒有權限的節(jié)點接觸到一些不可以對外公開或部分范圍可公開的業(yè)務流程。因此,傳統(tǒng)區(qū)塊鏈系統(tǒng)也被稱為公有鏈。相比之下,聯(lián)盟鏈則是一種在公有鏈的基礎上,通過引入節(jié)點作用范圍與準入機制來明確節(jié)點的權限和責任劃分的新興區(qū)塊鏈架構,其中的節(jié)點加入聯(lián)盟鏈時必須獲取全網(wǎng)共識許可。在核電機組的安全管理中,我們可以將一個發(fā)電單位作為一個聯(lián)盟鏈系統(tǒng),以部門、業(yè)務流程或機組實體裝置和組成部分等基本運行單位作為聯(lián)盟鏈中的各個節(jié)點。以此類推,我們也可以將若干核電廠和各個上級主管單位,乃至國家層面的監(jiān)管機構作為聯(lián)盟鏈中的各個節(jié)點,組成一個聯(lián)盟鏈系統(tǒng)。如此設計,便可實現(xiàn)“國家監(jiān)管機構—核電廠主管企業(yè)集團—核電廠—部門或機組單元—具體崗位或獨立業(yè)務流程”核安全管理聯(lián)盟鏈體系,各個層級節(jié)點的職能劃分及職責邊界有效清晰,理論上可構建一套基于區(qū)塊鏈系統(tǒng)的、高效科學的核安全管理信息化體系。
綜上所述,區(qū)塊鏈以聯(lián)盟鏈的形式應用在核安全管理中技術可行、意義重大,具備實現(xiàn)有效約束違規(guī)操作、即時響應突發(fā)狀況、精準回溯事件責任等方面的潛力,能夠有效規(guī)避人的感性與管理理性之間的矛盾,能夠有效解決復雜流程與快速響應之間的矛盾。
本文提出一種基于聯(lián)盟鏈和智能合約的核電機組共識管理機制,旨在將各種核電操作指令與機組狀態(tài)落實至區(qū)塊鏈,將各種安全規(guī)則與應急預案以智能合約的形式予以實現(xiàn),從而解決違規(guī)操作不生效、突發(fā)狀況響應快、責任回溯準而快等核電安全管理與責任落實方面的迫切需求。
如圖1 所示,本文提出的框架分為三個技術層:賬本層、共識層、合約層,其中:
圖1 基于聯(lián)盟鏈和智能合約的核安全共識管理框架技術層次示意圖Fig.1 Illustration of consortium blockchain and smart contract based nuclear safety consensus management framework
賬本層:定義了區(qū)塊鏈的基本數(shù)據(jù)結構和邏輯單元;
共識層:控制區(qū)塊鏈系統(tǒng)的全局最終一致性并實現(xiàn)對違規(guī)事務的拒絕;
合約層:實現(xiàn)各種核電管理業(yè)務邏輯和規(guī)則,并直接與核電機組設備集群、核電管理部門集群或核電單位集群對接。
這三者的基本邏輯關系為:賬本層處理區(qū)塊鏈狀態(tài)變化,并向上提交至共識層,共識層根據(jù)合約層的業(yè)務邏輯進行全局共識,并將共識結果向下反饋給賬本層進行處理。
賬本層的本質是一個分布式區(qū)塊鏈賬本數(shù)據(jù)庫,其中每個節(jié)點持有一個區(qū)塊鏈副本。這些區(qū)塊鏈副本在共識層的控制下保持最終一致性。賬本層中的每個節(jié)點均有權提交帶有提交節(jié)點數(shù)字簽名和時間戳的事務記錄,并廣播至全網(wǎng)。任何節(jié)點收到事務之后進行簽名和時間戳的驗證,并且在收集一定數(shù)量的事務之后,將當前時間戳、上一區(qū)塊的封裝簽名等信息打包為區(qū)塊并簽名,生成區(qū)塊。區(qū)塊被廣播至全網(wǎng),全網(wǎng)在共識層的控制下驗證區(qū)塊,驗證通過后將該區(qū)塊添加至鏈尾,區(qū)塊內(nèi)的事務成功上鏈。區(qū)塊鏈賬本副本的數(shù)據(jù)結構如圖2所示。
圖2 區(qū)塊鏈副本數(shù)據(jù)結構Fig.2 The data structure of blockchain copy
本框架擬采取實用拜占庭容錯(Practical Byzantine Fault Tolerance,PBFT)協(xié)議實現(xiàn)全局共識和最終一致性。PBFT 協(xié)議在保證高效的同時,還可以使分布式系統(tǒng)具備f-異常節(jié)點容忍度(f<n/3,n 為分布式系統(tǒng)總節(jié)點數(shù))。拜占庭容錯協(xié)議規(guī)避了傳統(tǒng)“挖礦”機制的弊端,不會消耗大量的計算資源。
具體而言,PBFT 協(xié)議分為“預備—廣播—確認接收—確認內(nèi)容—確認”五步:
預備:在全區(qū)塊鏈系統(tǒng)收到若干條驗證通過的事務記錄之后,全系統(tǒng)通過全局隨機共識選出主節(jié)點Nm,其余節(jié)點作為從節(jié)點NR1,2,…,n;
廣播:Nm將事務打包為區(qū)塊C,并廣播至NR1,2,…,n;
確認接 收:Nis收到C 之 后,將C 轉 發(fā)至NR1,2,…,i-1,i+1,i+2,…,n。待Nis收到包括自己在內(nèi)的2f+1 個相同的C 之后,則確認C 被大部分節(jié)點接收,轉入?yún)^(qū)塊內(nèi)容確認程序;
確認內(nèi)容:Nsi對C的內(nèi)容合法性進行驗證確認,如果驗證通過則向NR1,2,…,i-1,i+1,i+2,…,n發(fā)送確認信息。待收到包括自己在內(nèi)的2f+1 個確認信息后,則確認C 被大部分節(jié)點驗證通過,轉入?yún)^(qū)塊上鏈程序;
確認:Nis將C 添加至本地區(qū)塊鏈副本鏈尾,完成確認流程,C 中事務成功上鏈。
綜上所述,該協(xié)議能夠拒絕任何沒有得到超過2/3 節(jié)點確認的事務和區(qū)塊。換言之,任何事務的成功上鏈都需要通過2/3 節(jié)點的驗證和確認。
智能合約是運行在區(qū)塊鏈上層的“條件—響應”分布式程序,以新區(qū)塊中的事務序列為輸入,判斷鏈上狀態(tài),并觸發(fā)相應的腳本,提交新的事務,更改鏈上狀態(tài)。為了方便說明智能合約對處理實際業(yè)務流程的基本邏輯,以《核動力廠營運單位核安全報告規(guī)定》《核動力廠營運單位核安全報告指南》[10](以下簡稱《報告指南》)中規(guī)定的運行階段事件為假設案例事件,將其寫入智能合約,并在鏈上狀態(tài)符合事件特征時觸發(fā)相應的報告與處理腳本,執(zhí)行相關操作。
假設案例事件:結合核安全導則《核動力廠確定論安全分析》[11]中的相關描述,以《報告指南》中運行階段事件報告準則(一)和(三)為例,說明一個完整的基于智能合約的運行階段事件應急處理與報告流程。假設一個本文框架實例系統(tǒng)中已經(jīng)發(fā)布智能合約A、B、C,具體見表1、表2 和表3。
表1 智能合約ATable 1 Smart contract A
表2 智能合約BTable 2 Smart contract B
表3 智能合約CTable 3 Smart contract C
對于假想中的一次反應堆冷卻劑系統(tǒng)一回路卸壓閥故障事件,上述代碼邏輯表達的事件處理流程如下:
(1)來自冷卻劑系統(tǒng)傳感設備監(jiān)測的事務得到確認并上鏈:“記錄:一回路系統(tǒng)卸壓閥狀態(tài)離線”;
(2)來自一回路傳感設備的事務得到確認并上鏈:“記錄:一回路冷卻劑裝量低于最低安全閾值”;
(3)智能合約A 被觸發(fā);
(4)來自智能合約A 的事務得到確認并上鏈:“指令:緊急停堆”;來自智能合約A 的事務得到確認并上鏈:“記錄:生成運行階段事件【設備不可用或者系統(tǒng)退出運行的持續(xù)時間超出核動力廠運行限值和條件所許可的時間】報告,報核安全局”;
(5)智能合約B 被觸發(fā);
(6)來自堆芯傳感設備的事務得到確認并上鏈:“記錄:堆芯控制棒已完全插入”;“記錄:反應堆輸出功率已降為0”;
(7)來自堆芯傳感設備的事務得到確認并上鏈:“記錄:堆芯控制棒已經(jīng)完全插入超過7 天”;
(8)智能合約C 被觸發(fā);來自智能合約C的事務得到確認并上鏈:“記錄:生成運行階段事件【核動力廠營運單位執(zhí)行核動力廠運行限值和條件所要求的停堆】報告,報核安全局”。
以上假設中的業(yè)務流程構成了一個簡單的智能合約處理核電安全管理業(yè)務的示例。示例表明,智能合約的可編程性能夠滿足豐富的核電安全管理業(yè)務需求,包括運行期間異常事件的即時判別、即時處理與即時報送。
如果把基于區(qū)塊鏈技術的核安全管理體系信息化看作一個軟件項目,則這一項目的開發(fā)建設須遵循以下原則:
一是要遵循統(tǒng)一規(guī)劃,分步實施的原則。由國家核安全局或行業(yè)協(xié)會在充分研究核電行業(yè)信息化建設基本情況的基礎上,充分考慮各核電機組在設計、建造、運行、退役全生命周期內(nèi)的核安全管理要求,統(tǒng)一規(guī)劃,制定統(tǒng)一的體系架構和技術標準、開發(fā)規(guī)范,指導各核動力廠具體實施開發(fā)部署工作。各核動力廠要優(yōu)先開發(fā)共性子系統(tǒng),在此基礎上,再開發(fā)個性化子系統(tǒng)。根據(jù)區(qū)塊鏈的去中心化特性,共性子系統(tǒng)的開發(fā),可由某個核動力廠牽頭,開發(fā)完成后向整個行業(yè)開放,共同使用。
二是要遵循保守決策,先易后難的原則。由于核安全的極端重要性,在系統(tǒng)開發(fā)的過程中,要充分評估擬開發(fā)系統(tǒng)對現(xiàn)有體系的影響。要始終堅持先易后難的原則,如果要開發(fā)接入核電機組運行參數(shù)的系統(tǒng),則要嚴格按照核安全法規(guī)及導則對于核安全在設計、建造和運行的各項要求進行,以確保不會對現(xiàn)有核電機組的控制產(chǎn)生負面擾動。
三是要遵循基于現(xiàn)狀,逐步迭代的原則。多年來,隨著計算機技術的普及,各核動力廠的信息化建設已取得不同程度的進展。在利用最先進的計算機技術開展信息化建設的過程中,要充分考慮現(xiàn)有信息化建設成果,最大限度地利用現(xiàn)有的系統(tǒng)或數(shù)據(jù),使各個信息化孤島形成網(wǎng)絡優(yōu)勢,突出集群效應,在升級迭代過程中,逐步利用區(qū)塊鏈等先進技術。