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

圖1 基于聯盟鏈和智能合約的核安全共識管理框架技術層次示意圖Fig.1 Illustration of consortium blockchain and smart contract based nuclear safety consensus management framework
賬本層:定義了區塊鏈的基本數據結構和邏輯單元;
共識層:控制區塊鏈系統的全局最終一致性并實現對違規事務的拒絕;
合約層:實現各種核電管理業務邏輯和規則,并直接與核電機組設備集群、核電管理部門集群或核電單位集群對接。
這三者的基本邏輯關系為:賬本層處理區塊鏈狀態變化,并向上提交至共識層,共識層根據合約層的業務邏輯進行全局共識,并將共識結果向下反饋給賬本層進行處理。
賬本層的本質是一個分布式區塊鏈賬本數據庫,其中每個節點持有一個區塊鏈副本。這些區塊鏈副本在共識層的控制下保持最終一致性。賬本層中的每個節點均有權提交帶有提交節點數字簽名和時間戳的事務記錄,并廣播至全網。任何節點收到事務之后進行簽名和時間戳的驗證,并且在收集一定數量的事務之后,將當前時間戳、上一區塊的封裝簽名等信息打包為區塊并簽名,生成區塊。區塊被廣播至全網,全網在共識層的控制下驗證區塊,驗證通過后將該區塊添加至鏈尾,區塊內的事務成功上鏈。區塊鏈賬本副本的數據結構如圖2所示。

圖2 區塊鏈副本數據結構Fig.2 The data structure of blockchain copy
本框架擬采取實用拜占庭容錯(Practical Byzantine Fault Tolerance,PBFT)協議實現全局共識和最終一致性。PBFT 協議在保證高效的同時,還可以使分布式系統具備f-異常節點容忍度(f<n/3,n 為分布式系統總節點數)。拜占庭容錯協議規避了傳統“挖礦”機制的弊端,不會消耗大量的計算資源。
具體而言,PBFT 協議分為“預備—廣播—確認接收—確認內容—確認”五步:
預備:在全區塊鏈系統收到若干條驗證通過的事務記錄之后,全系統通過全局隨機共識選出主節點Nm,其余節點作為從節點NR1,2,…,n;
廣播:Nm將事務打包為區塊C,并廣播至NR1,2,…,n;
確認接 收:Nis收到C 之 后,將C 轉 發至NR1,2,…,i-1,i+1,i+2,…,n。待Nis收到包括自己在內的2f+1 個相同的C 之后,則確認C 被大部分節點接收,轉入區塊內容確認程序;
確認內容:Nsi對C的內容合法性進行驗證確認,如果驗證通過則向NR1,2,…,i-1,i+1,i+2,…,n發送確認信息。待收到包括自己在內的2f+1 個確認信息后,則確認C 被大部分節點驗證通過,轉入區塊上鏈程序;
確認:Nis將C 添加至本地區塊鏈副本鏈尾,完成確認流程,C 中事務成功上鏈。
綜上所述,該協議能夠拒絕任何沒有得到超過2/3 節點確認的事務和區塊。換言之,任何事務的成功上鏈都需要通過2/3 節點的驗證和確認。
智能合約是運行在區塊鏈上層的“條件—響應”分布式程序,以新區塊中的事務序列為輸入,判斷鏈上狀態,并觸發相應的腳本,提交新的事務,更改鏈上狀態。為了方便說明智能合約對處理實際業務流程的基本邏輯,以《核動力廠營運單位核安全報告規定》《核動力廠營運單位核安全報告指南》[10](以下簡稱《報告指南》)中規定的運行階段事件為假設案例事件,將其寫入智能合約,并在鏈上狀態符合事件特征時觸發相應的報告與處理腳本,執行相關操作。
假設案例事件:結合核安全導則《核動力廠確定論安全分析》[11]中的相關描述,以《報告指南》中運行階段事件報告準則(一)和(三)為例,說明一個完整的基于智能合約的運行階段事件應急處理與報告流程。假設一個本文框架實例系統中已經發布智能合約A、B、C,具體見表1、表2 和表3。

表1 智能合約ATable 1 Smart contract A

表2 智能合約BTable 2 Smart contract B

表3 智能合約CTable 3 Smart contract C
對于假想中的一次反應堆冷卻劑系統一回路卸壓閥故障事件,上述代碼邏輯表達的事件處理流程如下:
(1)來自冷卻劑系統傳感設備監測的事務得到確認并上鏈:“記錄:一回路系統卸壓閥狀態離線”;
(2)來自一回路傳感設備的事務得到確認并上鏈:“記錄:一回路冷卻劑裝量低于最低安全閾值”;
(3)智能合約A 被觸發;
(4)來自智能合約A 的事務得到確認并上鏈:“指令:緊急停堆”;來自智能合約A 的事務得到確認并上鏈:“記錄:生成運行階段事件【設備不可用或者系統退出運行的持續時間超出核動力廠運行限值和條件所許可的時間】報告,報核安全局”;
(5)智能合約B 被觸發;
(6)來自堆芯傳感設備的事務得到確認并上鏈:“記錄:堆芯控制棒已完全插入”;“記錄:反應堆輸出功率已降為0”;
(7)來自堆芯傳感設備的事務得到確認并上鏈:“記錄:堆芯控制棒已經完全插入超過7 天”;
(8)智能合約C 被觸發;來自智能合約C的事務得到確認并上鏈:“記錄:生成運行階段事件【核動力廠營運單位執行核動力廠運行限值和條件所要求的停堆】報告,報核安全局”。
以上假設中的業務流程構成了一個簡單的智能合約處理核電安全管理業務的示例。示例表明,智能合約的可編程性能夠滿足豐富的核電安全管理業務需求,包括運行期間異常事件的即時判別、即時處理與即時報送。
如果把基于區塊鏈技術的核安全管理體系信息化看作一個軟件項目,則這一項目的開發建設須遵循以下原則:
一是要遵循統一規劃,分步實施的原則。由國家核安全局或行業協會在充分研究核電行業信息化建設基本情況的基礎上,充分考慮各核電機組在設計、建造、運行、退役全生命周期內的核安全管理要求,統一規劃,制定統一的體系架構和技術標準、開發規范,指導各核動力廠具體實施開發部署工作。各核動力廠要優先開發共性子系統,在此基礎上,再開發個性化子系統。根據區塊鏈的去中心化特性,共性子系統的開發,可由某個核動力廠牽頭,開發完成后向整個行業開放,共同使用。
二是要遵循保守決策,先易后難的原則。由于核安全的極端重要性,在系統開發的過程中,要充分評估擬開發系統對現有體系的影響。要始終堅持先易后難的原則,如果要開發接入核電機組運行參數的系統,則要嚴格按照核安全法規及導則對于核安全在設計、建造和運行的各項要求進行,以確保不會對現有核電機組的控制產生負面擾動。
三是要遵循基于現狀,逐步迭代的原則。多年來,隨著計算機技術的普及,各核動力廠的信息化建設已取得不同程度的進展。在利用最先進的計算機技術開展信息化建設的過程中,要充分考慮現有信息化建設成果,最大限度地利用現有的系統或數據,使各個信息化孤島形成網絡優勢,突出集群效應,在升級迭代過程中,逐步利用區塊鏈等先進技術。