史 磊,李林峰
(山西省信息產(chǎn)業(yè)技術(shù)研究院有限公司技術(shù)中心,太原 030012)
重大突發(fā)疫情可造成公眾生命健康的損害,極大地影響社會(huì)的正常運(yùn)行。從2002年的“非典”、2009年的新型H1N1流感、2014年的埃博拉病毒以及2019新冠COVID-19等等事件可以看出,重大突發(fā)疫情事件主要有如下特點(diǎn):一是傳播的快速性、廣泛性。尤其是當(dāng)今時(shí)代下,交通非常便利,人員跨區(qū)域流動(dòng)頻繁,使得疫情多地區(qū)、全球性的傳播極為容易;二是危害的嚴(yán)重性。這類事件不但對人的生命健康有嚴(yán)重影響,而且對全球的經(jīng)濟(jì)、政治、文化都會(huì)產(chǎn)生嚴(yán)重的影響;三是治理的復(fù)雜性。疫情治理需根據(jù)國情綜合考量,既要盡快控制疫情,又要盡可能保障社會(huì)、經(jīng)濟(jì)的穩(wěn)定運(yùn)行。因此,研究及時(shí)有效的應(yīng)對策略及實(shí)施方法是非常必要的。傳統(tǒng)的信息系統(tǒng)對于已發(fā)生過的疫情能起到預(yù)警作用[1],而新的病毒由于在小樣本時(shí)臨床識(shí)別困難,臨床與臨床、科研與臨床交互不足,很容易失去控制的最佳窗口時(shí)間,因此需要構(gòu)建一個(gè)有效共識(shí)機(jī)制來應(yīng)對重大突發(fā)疫情事件。
對于已經(jīng)發(fā)生過的疫情,由于病毒的特征、病毒的防治手段已被人們了解并掌握,臨床醫(yī)師比較容易識(shí)別和應(yīng)對,能夠詳實(shí)填報(bào)疫情數(shù)據(jù)表,審核也會(huì)很快通過,數(shù)據(jù)分析信息系統(tǒng)很快能得出結(jié)果,決策部門對于防控的部署也就有把握。而新的病毒則反之,疫情發(fā)生初期上述各種情況均不明晰,各個(gè)醫(yī)院之間也存在信息溝通不暢的現(xiàn)象。一方面,醫(yī)師或醫(yī)院為避免誤報(bào)就需要積累一定量的病例。上報(bào)后,上級部門需組織專家實(shí)地調(diào)研,進(jìn)行毒株的獲取、基因組測序分型等一系列科學(xué)研究過程;另一方面隨著病毒傳播速度指數(shù)級的增長,疫情控制決策的難度也就越來越大。
從2002年廣東有力抗擊“非典”和2014年肆虐非洲的埃博拉病毒等經(jīng)驗(yàn)可以分析出抗擊疫情成功的要素:1) 確定疫情首例發(fā)生地;2) 臨床醫(yī)生敏銳發(fā)覺異常、及時(shí)隔離病患及追蹤密切接觸者;3) 專家、學(xué)者、臨床醫(yī)師及時(shí)地交流并達(dá)成共識(shí);4) 及時(shí)發(fā)出有影響力的預(yù)警。由上述分析可知,疫情始發(fā)地的一線臨床醫(yī)生,對于異常病例的專業(yè)性判斷,捕獲首個(gè)病例起著非常重要的作用。同時(shí)專家的及時(shí)跟進(jìn)和權(quán)威性判斷以及主管部門對于疫情防控的把握都是關(guān)鍵性因素。因此,面對突發(fā)疫情需要解決的問題是,當(dāng)異常病例在任何地方的醫(yī)院或醫(yī)療機(jī)構(gòu)被發(fā)現(xiàn)時(shí),需要有一個(gè)足夠權(quán)威的專家團(tuán)隊(duì),可以在新病毒始發(fā)地達(dá)成遠(yuǎn)程共識(shí),足以引起醫(yī)療、衛(wèi)生界同步的重視,使疫情危害降到最低。該系統(tǒng)要使臨床醫(yī)師、相關(guān)專家學(xué)者、衛(wèi)生界決策者在起始時(shí)刻即行協(xié)作,判斷病毒的類型、來源,探討控制方法,并貫穿始終。
目前已有的疫情防控系統(tǒng),主要基于病例大樣本的數(shù)據(jù)分析。在疫情初發(fā)期,由于樣本數(shù)據(jù)不完善或樣本數(shù)不足,并且其識(shí)別過程中專家、臨床科研缺乏在線的互動(dòng),疫情遏制時(shí)機(jī)不好把握。而突發(fā)疫情的防控,僅有單純性的信息技術(shù)系統(tǒng)是不易達(dá)到預(yù)期的目的。
區(qū)塊鏈將是繼互聯(lián)網(wǎng)之后的又一次新的信息化革命,并在一定程度上可改變現(xiàn)有的生產(chǎn)關(guān)系。2019年習(xí)近平在主持政治局學(xué)習(xí)時(shí)強(qiáng)調(diào),要把區(qū)塊鏈作為核心技術(shù)自主創(chuàng)新的重要突破口[2]。至此,區(qū)塊鏈上升為國家重大戰(zhàn)略。本研究整體運(yùn)用區(qū)塊鏈技術(shù),引入分布式存儲(chǔ)技術(shù),充分發(fā)揮共識(shí)機(jī)制作用,可讓廣大的臨床醫(yī)師、專家學(xué)者以及決策者參與在一個(gè)共識(shí)系統(tǒng)中,這就相當(dāng)于在任何疫情始發(fā)地均有一支強(qiáng)有力專業(yè)團(tuán)隊(duì)在及時(shí)控制、把握著局面。
區(qū)塊鏈發(fā)展目前經(jīng)歷了三個(gè)階段:1) 比特幣為代表的貨幣區(qū)塊鏈技術(shù)為1.0;2) 以太坊為代表的合同區(qū)塊鏈技術(shù)為2.0;3) 實(shí)現(xiàn)完備權(quán)限控制和安全保障的Hyperledger項(xiàng)目、EOS等代表3.0.比特幣是由系列概念和技術(shù)作為基礎(chǔ)構(gòu)建的數(shù)字貨幣態(tài)系統(tǒng)。以太坊將數(shù)字貨幣與智能合約相結(jié)合,對金融領(lǐng)域更廣泛的場景和流程進(jìn)行優(yōu)化的應(yīng)用?,F(xiàn)階段區(qū)塊鏈的應(yīng)用領(lǐng)域擴(kuò)展到人類生活的方方面面。袁勇等[3]對區(qū)塊鏈技術(shù)的各個(gè)層面以及智能合約做了詳盡的研究。高政風(fēng)等[4]對區(qū)塊鏈共識(shí)算法進(jìn)行了比較研究。目前,區(qū)塊鏈在醫(yī)療方面的應(yīng)用,大多是在現(xiàn)有技術(shù)系統(tǒng)上,利用區(qū)塊鏈進(jìn)行局部的改進(jìn),而且主要應(yīng)用于已有固定樣本數(shù)據(jù)的溯源,如基于區(qū)塊鏈的檔案管理,部分原因是沒有解決大量數(shù)據(jù)的存儲(chǔ)問題。目前利用區(qū)塊鏈共識(shí)機(jī)制對突發(fā)疫情的不明病例進(jìn)行交互式判斷尚處于前期階段。
由區(qū)塊鏈改變生產(chǎn)關(guān)系的本質(zhì)特點(diǎn)可知,區(qū)塊鏈技術(shù)可以將人與事、人與人緊密地聯(lián)系在一起,并且產(chǎn)生一種信任關(guān)系,而這種信任關(guān)系,正是及時(shí)準(zhǔn)確地把控重大疫情時(shí)所迫切需要的。系統(tǒng)基本架構(gòu)如圖1所示。
圖1 系統(tǒng)基本架構(gòu)Fig.1 System architecture
2.1.1共識(shí)機(jī)制
共識(shí)機(jī)制是系統(tǒng)的核心要素。區(qū)塊鏈具有去中心化、不可篡改、價(jià)值傳遞的特點(diǎn),分布在不同區(qū)域的節(jié)點(diǎn)共同參與決策并形成交易,在一定時(shí)間內(nèi),多個(gè)交易信息形成一個(gè)數(shù)據(jù)塊,通過密碼學(xué)將數(shù)據(jù)塊關(guān)聯(lián)起來,而這些決策規(guī)則的核心就是共識(shí)機(jī)制[6],示意圖如圖2所示。區(qū)塊鏈的分布式結(jié)構(gòu)可改變業(yè)務(wù)的協(xié)作關(guān)系,所有業(yè)務(wù)都是由相關(guān)參與方共同進(jìn)行驗(yàn)證、協(xié)調(diào)和同步的,保證各節(jié)點(diǎn)數(shù)據(jù)的一致性和準(zhǔn)確性。
圖2 區(qū)塊及區(qū)塊鏈結(jié)構(gòu)示意圖Fig.2 Block and blockchain structure
2.1.2數(shù)據(jù)不可篡改
系統(tǒng)信任傳遞數(shù)據(jù)是由數(shù)據(jù)的一致性與不可篡改來保障的。非對稱加密和哈希算法保證不可篡改。在區(qū)塊鏈網(wǎng)絡(luò)上,節(jié)點(diǎn)采用共識(shí)算法來維持?jǐn)?shù)據(jù)層的一致性,也就是分布式數(shù)據(jù)庫的數(shù)據(jù)的一致性;采用密碼學(xué)中的非對稱加密和哈希算法,來確保這個(gè)分布式數(shù)據(jù)庫的不可篡改和可追溯性。
2.1.3可追蹤溯源
系統(tǒng)的時(shí)間戳技術(shù)用于可追蹤溯源。在疫情辨識(shí)達(dá)成共識(shí)時(shí),可以準(zhǔn)確地追溯到首例患者而便于疫情控制。同時(shí),利用時(shí)間戳技術(shù)可以公正、透明地獎(jiǎng)勵(lì)有功人員,便于激勵(lì)機(jī)制的實(shí)行。在系統(tǒng)中,每一個(gè)新區(qū)塊生成時(shí),都會(huì)被打上時(shí)間戳,包括文件的摘要日期和時(shí)間、數(shù)字簽名。當(dāng)需要追蹤溯源時(shí),因?yàn)槊總€(gè)區(qū)塊對用戶都是可見的,根據(jù)時(shí)間戳就可很方便找到首例病例及發(fā)布人。
2.1.4數(shù)據(jù)文件存儲(chǔ)
系統(tǒng)采用IPFS可解決數(shù)據(jù)存儲(chǔ)難題。數(shù)據(jù)存儲(chǔ)是區(qū)塊鏈的重要技術(shù),區(qū)塊鏈的中的每一個(gè)區(qū)塊的大小只有幾MB,鏈上的數(shù)據(jù)傳輸越來越多,會(huì)導(dǎo)致區(qū)塊數(shù)量快速增加,而這樣可能造成交易堵塞,全節(jié)點(diǎn)存儲(chǔ)整個(gè)區(qū)塊的數(shù)據(jù)需要巨大的存儲(chǔ)空間。同時(shí),在系統(tǒng)中,評審病患癥狀及病毒相關(guān)數(shù)據(jù)文件以達(dá)成共識(shí)是必備要素。因此,媒體內(nèi)容、前端頁面及區(qū)塊數(shù)據(jù)存儲(chǔ)問題的解決是系統(tǒng)正常運(yùn)行的必備條件。設(shè)計(jì)采用默克爾樹(Merkle Tree)構(gòu)建的IPFS分布式存儲(chǔ)來存儲(chǔ)數(shù)據(jù)文件[7]。Merkle Tree可以快速歸納和檢驗(yàn)大規(guī)模數(shù)據(jù)的完整性,其樹狀的完整數(shù)據(jù)結(jié)構(gòu),在其葉頂點(diǎn)中有來自數(shù)據(jù)塊的哈希值,只要樹中的任一個(gè)節(jié)點(diǎn)被篡改,根節(jié)點(diǎn)哈希值就會(huì)變化而不匹配,從而可以達(dá)到校驗(yàn)?zāi)康?。存?chǔ)在IPFS網(wǎng)絡(luò)節(jié)點(diǎn)上的數(shù)據(jù)是被切分成若干的數(shù)據(jù)塊并且經(jīng)過加密后,再分散到不同的節(jié)點(diǎn)中進(jìn)行存儲(chǔ),這樣就保證了系統(tǒng)中數(shù)據(jù)的安全。
區(qū)塊鏈的類型基本分為公有鏈、聯(lián)盟鏈和私有鏈等,具體特征如表1所示。公有鏈上全網(wǎng)公開,無用戶授權(quán)機(jī)制,高度去中心化。私有鏈只有一個(gè)組織機(jī)構(gòu)能控制其寫入、讀取以及查詢交易權(quán)限。聯(lián)盟鏈的各個(gè)節(jié)點(diǎn)通常有與之對應(yīng)的通過授權(quán)的實(shí)體機(jī)構(gòu)組織。
表1 區(qū)塊鏈基本類型及比較Table 1 Basic types and compare of blockchain
在區(qū)塊鏈系統(tǒng)當(dāng)中,共識(shí)機(jī)制能夠解決區(qū)塊鏈在分布式場景下達(dá)成一致性的問題。共識(shí)機(jī)制有:工作量證明機(jī)制(PoW),代表工作越多收益越大;股權(quán)證明機(jī)制(PoS),按照持有資產(chǎn)來進(jìn)行分配;委托股權(quán)證明機(jī)制(DPoS),選舉出一些節(jié)點(diǎn)做為代表來記賬。
根據(jù)上述分析,疫情防控需要建立一個(gè)由臨床醫(yī)師、專家學(xué)者、決策者等同時(shí)參與的互動(dòng)系統(tǒng),使得在疫情初期,即使個(gè)別醫(yī)院的小樣例,也能夠通過分布式網(wǎng)絡(luò)匯集大量專業(yè)人員發(fā)現(xiàn)異常的病例,快速啟動(dòng)初步反應(yīng)機(jī)制,使在疫情爆發(fā)前就能采取協(xié)調(diào)配合的專業(yè)行動(dòng);同時(shí),對于各地臨床醫(yī)師提供的不完整的病患樣例,通過共識(shí)機(jī)制,形成完整的特異樣例特征,且容易得到一定數(shù)量的樣本,消除了單個(gè)醫(yī)療機(jī)構(gòu)的信息孤島現(xiàn)象,再加上專家的分析、科研的配合,在區(qū)塊鏈上迅速綜合起來判定是否突發(fā)疫情。系統(tǒng)基于區(qū)塊鏈可實(shí)現(xiàn)去中心化分布式系統(tǒng),為加快反應(yīng)速度以及安全性考慮,采用聯(lián)盟鏈作為區(qū)塊鏈主干,如圖3所示。考慮到臨床醫(yī)療發(fā)現(xiàn)異常病例的重要性,以臨床醫(yī)師、專家、醫(yī)衛(wèi)主管人員為一個(gè)交互群體建立一支主鏈,大學(xué)、科研單位為科學(xué)研究團(tuán)隊(duì)通過跨鏈技術(shù)與主鏈交換信息。側(cè)鏈的關(guān)鍵是雙向錨定機(jī)制,在鏈內(nèi)是由共識(shí)機(jī)制來達(dá)成交易,在鏈之間由智能合約作為對接的要素。本文研究以主鏈展開分析。
圖3 系統(tǒng)拓?fù)鋱DFig.3 System topology
從公平和節(jié)約能源的考量,共識(shí)機(jī)制方面選用DPoS.在DPoS共識(shí)機(jī)制下,為保證運(yùn)算的效率,并不是每個(gè)人都能參與記賬的。PoW和DoS雖然名義上是完全去中心化的,但實(shí)際上還是少數(shù)的幾個(gè)超大型礦池基本包攬了它們大部分的算力。在公眾認(rèn)可的公鏈中,前21個(gè)超級礦池基本包攬了他們各自97%左右的算力。同時(shí),奇數(shù)個(gè)數(shù)的生產(chǎn)者能夠保證最長鏈只有一條,所以DPoS共識(shí)機(jī)制出于去中心化和性能之間的平衡的考量,通過設(shè)置21個(gè)超級節(jié)點(diǎn)、49個(gè)備用節(jié)點(diǎn),從而達(dá)到整體系統(tǒng)效率的提升。
系統(tǒng)采用委托股權(quán)證明(DPoS)機(jī)制的石墨烯技術(shù)。在目前已知的去中心化共識(shí)算法中,只有該算法經(jīng)證明可以滿足區(qū)塊鏈上應(yīng)用程序的性能要求。該算法可以精確地每0.5 s產(chǎn)生一個(gè)區(qū)塊,每秒處理交易數(shù)(TPS)可達(dá)到2 000,并且在任意時(shí)間僅有一個(gè)生產(chǎn)者獲權(quán)生產(chǎn)區(qū)塊。如果在預(yù)定的時(shí)間沒有產(chǎn)生區(qū)塊,則跳過該塊。21個(gè)區(qū)塊生產(chǎn)者(超級節(jié)點(diǎn)),每一輪都有一個(gè)特定的生產(chǎn)者負(fù)責(zé)生產(chǎn)6個(gè)區(qū)塊,即一輪為63 s,共產(chǎn)生126個(gè)區(qū)塊。如果一個(gè)生產(chǎn)者錯(cuò)過生產(chǎn)一個(gè)區(qū)塊,并且在過去24 h均未產(chǎn)生過區(qū)塊,則會(huì)被從區(qū)塊生產(chǎn)者名單中剔除,用這種方式排除不可靠生產(chǎn)者,從而確保網(wǎng)絡(luò)的順暢運(yùn)行。因?yàn)樯a(chǎn)者生產(chǎn)區(qū)塊的方式是合作而非競爭,因此通常不會(huì)產(chǎn)生分叉。如果出現(xiàn)分叉,則共識(shí)算法的處理方式是自動(dòng)切換到最長的鏈上。
為了增強(qiáng)系統(tǒng)的可靠性,引入帶有異步拜占庭容錯(cuò)機(jī)制的DoPS共識(shí)算法。添加了aBFT-DPoS共識(shí)算法,需要所有區(qū)塊生產(chǎn)者簽名所有區(qū)塊,但禁止同一個(gè)區(qū)塊生產(chǎn)者簽名兩個(gè)時(shí)間戳或高度相同的區(qū)塊。一旦一個(gè)區(qū)塊被15個(gè)區(qū)塊生產(chǎn)者簽名,那么這個(gè)區(qū)塊就可以被視為不可逆。一旦任何區(qū)塊生產(chǎn)者簽名了兩個(gè)相同時(shí)間戳或相同區(qū)塊高度的區(qū)塊,這種不誠信行為就會(huì)留下密碼學(xué)證據(jù)。在這一模型下,不可逆的共識(shí)將在1 s內(nèi)達(dá)成。
參與系統(tǒng)運(yùn)行的節(jié)點(diǎn)由臨床醫(yī)師、專家、高級別專家、決策者組成。在不同階段,由具有不同權(quán)限的節(jié)點(diǎn)達(dá)成相應(yīng)的共識(shí)。決策者全程參與,密切關(guān)注整個(gè)預(yù)警過程,對于事情的發(fā)生、發(fā)展、嚴(yán)重性、病毒傳播速度有一個(gè)完整的認(rèn)識(shí),為線下采取的部署方式打下良好基礎(chǔ)。
系統(tǒng)運(yùn)行可分為相互關(guān)聯(lián)的7個(gè)進(jìn)程,各個(gè)進(jìn)程由智能合約觸發(fā),智能合約由相應(yīng)權(quán)限節(jié)點(diǎn)達(dá)成的共識(shí)啟動(dòng),智能合約驅(qū)動(dòng)下的系統(tǒng)運(yùn)行機(jī)制如圖4所示。
圖4 智能合約驅(qū)動(dòng)下的系統(tǒng)運(yùn)行機(jī)制 Fig.4 System operation mechanism driven by smart contract
第一進(jìn)程:不明病例上報(bào)。
當(dāng)主鏈上某個(gè)臨床醫(yī)療機(jī)構(gòu)或臨床醫(yī)師發(fā)現(xiàn)可疑病例,盡管上報(bào)數(shù)據(jù)不全面、特征不詳盡,但可以以廣播的方式及時(shí)在主鏈上發(fā)布不明病例。
第二進(jìn)程:疫情識(shí)別。
主鏈上的臨床醫(yī)師和專家在確認(rèn)的區(qū)塊上看到疑似病例時(shí),就可以進(jìn)行分析,用投票的方式發(fā)出自己的判斷,隨著同一節(jié)點(diǎn)或不同節(jié)點(diǎn)相近病例的增加,逐步達(dá)成初步共識(shí)。設(shè)定在線節(jié)點(diǎn)具有投票權(quán)的臨床醫(yī)師或?qū)<矣?1%以上達(dá)成疫情共識(shí),啟動(dòng)專家組進(jìn)行疫情確認(rèn)。這時(shí)自動(dòng)啟動(dòng)臨床醫(yī)師警示,以廣播的方式發(fā)出臨床醫(yī)療衛(wèi)生內(nèi)部線上預(yù)警。醫(yī)療部門的醫(yī)師可以立即加強(qiáng)防護(hù),避免醫(yī)護(hù)人員的感染。疫情達(dá)成共識(shí)后,可以根據(jù)區(qū)塊鏈時(shí)間戳及可篡改技術(shù)追溯到首個(gè)病例及始發(fā)地,迅速隔離病患,并追蹤隔離與病患密切接觸的所有人員,盡快從源頭上遏制病毒的傳播。這個(gè)過程中,管理部門決策者只是密切關(guān)注,并不影響專業(yè)人員的判斷過程。
第三進(jìn)程:疫情再確認(rèn)。
專家組進(jìn)行疫情級別判定,設(shè)定在線節(jié)點(diǎn)具有投票權(quán)的專家51%以上達(dá)成疫情確認(rèn)共識(shí),啟動(dòng)科研側(cè)鏈。臨床提取的毒株供專門機(jī)構(gòu)病毒分型、基因測序分析,進(jìn)行基因比對,以盡快發(fā)現(xiàn)病毒中間宿主,找到病毒來源,控制病毒的發(fā)散路徑??茖W(xué)研究組提取毒株、基因測序、病毒分型后,得出嚴(yán)重性結(jié)論后,通過智能合約反饋到專家級,專家組共識(shí)判斷嚴(yán)重,區(qū)塊鏈自動(dòng)向所有節(jié)點(diǎn)發(fā)出一級預(yù)警。這一過程中,管理部門決策者繼續(xù)關(guān)注,線上不輕易發(fā)表意見,以免干擾專家組的判斷。
第四進(jìn)程:警示級別確認(rèn)。
高級別專家組和管理部門決策者進(jìn)行疫情警示級別確認(rèn),設(shè)定在線節(jié)點(diǎn)具有投票權(quán)的專家和管理者各51%以上,達(dá)成疫情級別確認(rèn)共識(shí),觸發(fā)科研側(cè)鏈全方位支持主鏈。
第五進(jìn)程:疫情管控。
高級別專家組和管理部門決策者進(jìn)行管控投票,設(shè)定在線節(jié)點(diǎn)具有投票權(quán)的專家和管理者各80%以上,則向社會(huì)發(fā)布,實(shí)施相應(yīng)級別管控。
第六進(jìn)程:主側(cè)鏈互動(dòng)。
主鏈側(cè)鏈在病毒分型和基因測序的過程中不斷互動(dòng),形成疫情控制動(dòng)態(tài)共識(shí),同時(shí)側(cè)鏈進(jìn)入疫苗研發(fā)階段。
第七進(jìn)程:激勵(lì)機(jī)制。
在疫情發(fā)生或剛剛過去時(shí),人們警覺性和參與防疫的積極性較高,但隨著時(shí)間的推移,再加上參與人員新老迭代,對于疫情的警惕性就逐漸降低。這時(shí)根據(jù)區(qū)塊鏈不可更改的有時(shí)間序列的記錄,可以自動(dòng)追溯到“吹哨人”以及所有對疫情控制有功的人,由智能合約能公平、透明、及時(shí)地給予線內(nèi)有功人員晉升和獎(jiǎng)勵(lì),保障了系統(tǒng)長期有效運(yùn)行。
第七進(jìn)程:“穿透式”監(jiān)督和決策共識(shí)。
系統(tǒng)中的疾控行政管理人員全程參與,從首個(gè)異常病例出現(xiàn)到醫(yī)師、專家以專業(yè)性的共識(shí)和預(yù)警持續(xù)觀察,容易對專業(yè)人員預(yù)警達(dá)成共識(shí),對決策共識(shí)過程實(shí)現(xiàn)穿透式監(jiān)督和業(yè)務(wù)諳熟。
交易是一組操作的集合,投票也是一種交易。投票通過使用已安裝和解鎖的客戶端來簽署。每個(gè)客戶端分配一個(gè)賬戶,賬戶擁有Owner權(quán)限和Avtive權(quán)限,對應(yīng)的都是一串公鑰,如果此公鑰有對應(yīng)的私鑰則有對應(yīng)的操作權(quán)限。錢包是保護(hù)和利用密鑰的客戶端。投票機(jī)制及運(yùn)行安全通過通證(Token)來維持。通證是一種可流通的加密數(shù)字權(quán)益證明,其作用是保證了一個(gè)區(qū)塊鏈項(xiàng)目的安全性,增加作惡成本。在這里利用通證作為激勵(lì)手段,獎(jiǎng)勵(lì)踴躍提供異常病例、投票達(dá)成共識(shí)以及維持系統(tǒng)運(yùn)行的節(jié)點(diǎn)。賬戶和錢包的關(guān)系如圖5所示。
圖5 賬戶與錢包的關(guān)系Fig.5 Relationship between account and wallet
在系統(tǒng)運(yùn)行中,常見的操作是異常病例廣播交易和投票機(jī)制。投票發(fā)起人可在客戶端發(fā)起投票,任何人都可以公開查詢投票的結(jié)果。異常病例廣播交易是某節(jié)點(diǎn)在發(fā)現(xiàn)異常病例時(shí),就信任的主節(jié)點(diǎn)發(fā)起病例數(shù)據(jù)交易申請,進(jìn)行全網(wǎng)廣播,最接近的主節(jié)點(diǎn)依次進(jìn)行交易驗(yàn)證,達(dá)到主節(jié)點(diǎn)數(shù)15個(gè)以上則交易確認(rèn),交易成不可逆。這時(shí),每個(gè)節(jié)點(diǎn)根據(jù)形成的區(qū)塊都得到了該異常病例的數(shù)據(jù)。然后據(jù)此可以進(jìn)行投票。投票機(jī)制是區(qū)塊鏈為每個(gè)節(jié)點(diǎn)創(chuàng)建一個(gè)數(shù)字錢包,某個(gè)節(jié)點(diǎn)就信任的主節(jié)點(diǎn)發(fā)起投票申請,其他經(jīng)過授權(quán)的用戶如果同意,就用其錢包向該主節(jié)點(diǎn)傳送一個(gè)Token,區(qū)塊鏈記錄并確認(rèn)這筆交易,該主節(jié)點(diǎn)進(jìn)行投票統(tǒng)計(jì)。投票的結(jié)果超過51%則觸發(fā)智能合約。智能合約實(shí)現(xiàn)了一個(gè)自動(dòng)化且透明的投票應(yīng)用。
智能合約是一種計(jì)算機(jī)協(xié)議,旨在以數(shù)字方式促進(jìn)、驗(yàn)證或執(zhí)行合同的談判或履行。智能合約允許在沒有第三方的情況下執(zhí)行可信交易。系統(tǒng)的運(yùn)行機(jī)制中智能合約相當(dāng)于現(xiàn)實(shí)中的法律。智能合約是自動(dòng)化的程序合同,智能合約包含了有關(guān)交易的所有信息,反過來說,交易本身其實(shí)就是目前使用最廣的智能合約,符合設(shè)置的程序條件后觸發(fā)自動(dòng)執(zhí)行。
本系統(tǒng)達(dá)成共識(shí)的主要智能合約(即交易)如下:
合約1:臨床醫(yī)師有獨(dú)立發(fā)表不明病例的權(quán)利,信息發(fā)布后系統(tǒng)內(nèi)的所有人均能查看。
合約2:系統(tǒng)內(nèi)臨床主任醫(yī)師及專家以上的人有投票權(quán),如果對于某一類似的異常病例有超過51%的人投票,則形成新疫情共識(shí)。
合約3:專家組成員對新疫情進(jìn)行審核性判定,有超過51%的人投票,則形成內(nèi)部預(yù)警共識(shí),聯(lián)動(dòng)疾控上報(bào)系統(tǒng)。
合約4:疾控管理者與高級別專家80%以上達(dá)成共識(shí),向主管部門發(fā)出預(yù)警,觸發(fā)科研跨鏈。
合約5:提供異常病例并被確認(rèn)的臨床醫(yī)師可在系統(tǒng)內(nèi)晉升為具有投票權(quán)醫(yī)師;參與捕捉異常病例并成功的參與者均可獲得獎(jiǎng)勵(lì)。
其中,合約1的發(fā)布形成了一個(gè)交易,被記錄在區(qū)塊鏈中。當(dāng)發(fā)布的交易形成突發(fā)疫情所具有的特征(包括從數(shù)量上和特征一致性上),專家發(fā)起針對具備此特征的交易(疫情)投票,投票節(jié)點(diǎn)數(shù)超過一半,則形成交易1,同時(shí)觸發(fā)第二進(jìn)程,其它進(jìn)程同理。
為了保證合約1的數(shù)據(jù)被第二進(jìn)程合約2使用,引入智能合約數(shù)據(jù)庫。同樣,在第三進(jìn)程中也使用智能合約數(shù)據(jù)庫,以保證前面投票的結(jié)果可以為此進(jìn)程所用,以此類推。智能合約數(shù)據(jù)庫用于持久化的場景需求。一個(gè)操作在執(zhí)行時(shí)會(huì)有上下文變量出現(xiàn),包括事務(wù)機(jī)制的處理,這些內(nèi)容會(huì)使用鏈上分配的內(nèi)存資源,而如果沒有持久化技術(shù),當(dāng)執(zhí)行超過作用域時(shí),就會(huì)丟掉這些上下文數(shù)據(jù)。在智能合約被執(zhí)行完畢后所占用的內(nèi)存會(huì)被釋放。程序中所有的變量都會(huì)丟失。如果智能合約中要持久地記錄信息,就需要將數(shù)據(jù)存儲(chǔ)到智能合約數(shù)據(jù)庫中。
智能合約[8]的使用過程包括:構(gòu)建、部署、輸入、執(zhí)行。智能合約的構(gòu)建包括實(shí)現(xiàn)的假設(shè)條件、輸入?yún)?shù)、執(zhí)行邏輯、輸出結(jié)果等內(nèi)容。部署將構(gòu)建的智能合約代碼部署在分布式共識(shí)系統(tǒng)中。輸入作為智能合約代碼執(zhí)行的基本信息源。根據(jù)合約邏輯執(zhí)行基于輸入的智能合約代碼并反饋正確可信的執(zhí)行結(jié)果。智能合約寫在區(qū)塊鏈上的程序中,由超級節(jié)點(diǎn)來運(yùn)行。智能合約還定義了接口以及實(shí)現(xiàn)接口的代碼。這些智能合約代碼被編譯成字節(jié)碼形式超級節(jié)點(diǎn)來執(zhí)行。區(qū)塊鏈保存了所有智能合約的記錄。每一個(gè)智能合約必須實(shí)現(xiàn)李嘉圖合約,從而綁定法律相關(guān)條款。李嘉圖合約指的是人與機(jī)器都能讀懂的合同,相當(dāng)于一份法律文件,規(guī)定與智能合約發(fā)出的每個(gè)操作相關(guān)的被法律約束的行為。這樣就構(gòu)建了一個(gè)可讀的文檔,帶有可驗(yàn)證的數(shù)字簽名以及與每條記錄鏈接的不可偽造的標(biāo)識(shí)符,可以保證描述的內(nèi)容是否確實(shí)經(jīng)過簽約各方的同意,并且是當(dāng)事人簽署的,這使得每個(gè)可能的操作都關(guān)聯(lián),增加了共識(shí)的可靠性[9]。
智能合約并不強(qiáng)調(diào)不可更改性,主要強(qiáng)調(diào)的是鏈上的發(fā)布和出塊節(jié)點(diǎn)執(zhí)行。對智能合約的更新只需要使用重置合約命令再發(fā)布一次即可。區(qū)塊鏈上的爭議由核心仲裁法庭機(jī)制執(zhí)行,可以對錯(cuò)誤或者有問題的賬戶進(jìn)行凍結(jié)[10]。
部署合約時(shí)就產(chǎn)生一筆交易。每筆交易都存儲(chǔ)在區(qū)塊鏈上。這些交易每個(gè)人都可以看到并進(jìn)行驗(yàn)證。智能合約會(huì)定期逐條遍歷每個(gè)合約內(nèi)包含的狀態(tài)機(jī)、事務(wù)以及觸發(fā)條件;滿足的事務(wù)被推送到待驗(yàn)證的隊(duì)列中,等待共識(shí)[11]。共識(shí)時(shí)每一個(gè)驗(yàn)證節(jié)點(diǎn)首先進(jìn)行簽名驗(yàn)證,確保事務(wù)的有效性;驗(yàn)證通過的事務(wù)會(huì)進(jìn)入待共識(shí)集合,等大多數(shù)驗(yàn)證節(jié)點(diǎn)達(dá)成共識(shí)后,事務(wù)會(huì)成功執(zhí)行并通知用戶。事務(wù)執(zhí)行成功后,狀態(tài)機(jī)會(huì)將合約的狀態(tài)標(biāo)記為完成,并從最新的區(qū)塊中移除該合約[12]。智能合約是“執(zhí)行合約條款的計(jì)算機(jī)交易協(xié)議”。區(qū)塊鏈上的所有用戶都可以看到基于區(qū)塊鏈的智能合約。但是,這會(huì)導(dǎo)致包括安全漏洞在內(nèi)的所有漏洞都可見,并且可能無法迅速修復(fù)。運(yùn)行前的形式化驗(yàn)證是解決智能合約安全問題的重要手段,形式化驗(yàn)證是指利用精確的數(shù)學(xué)手段和強(qiáng)大的分析工具在合約的設(shè)計(jì)、開發(fā)、測試過程中驗(yàn)證智能合約是否滿足公平性、正確性、可達(dá)性、有界性和無二義性等預(yù)期的關(guān)鍵性質(zhì),提高合約的可靠性和執(zhí)行力,在合約上鏈前進(jìn)行形式化驗(yàn)證可避免一些常見的安全漏洞。
在共識(shí)機(jī)制下,區(qū)塊鏈技術(shù)的安全性、可信性、可回溯性的特點(diǎn)將事件發(fā)展的進(jìn)程實(shí)時(shí)地展現(xiàn)在相關(guān)專業(yè)人員面前,使他們能夠積極地密切跟蹤、相互配合、同步跟進(jìn),所以極大地縮短了判斷疫情的周期,提高了判斷的精準(zhǔn)性,具體表現(xiàn)在:
1) 疫情不明時(shí)群策群力的共識(shí);
2) 在毒株獲取、病毒分析溯源時(shí)的臨床與科研的線上交互;
3) 在疫情確認(rèn)后的追蹤溯源。這種新技術(shù)比傳統(tǒng)技術(shù)系統(tǒng)具有速度更快、準(zhǔn)確度更高的優(yōu)勢。本預(yù)警區(qū)塊鏈與科學(xué)研究區(qū)塊鏈可進(jìn)一步形成跨鏈深入互動(dòng),下一步也可與傳統(tǒng)疫情信息系統(tǒng)進(jìn)行銜接,并與大數(shù)據(jù)協(xié)同,形成疫情防控分布式多維網(wǎng)絡(luò),使得防控決策把控性大大增強(qiáng),有利于開展針對突發(fā)重大疫情的專業(yè)化行動(dòng),及時(shí)保護(hù)醫(yī)護(hù)人員和廣大民眾的生命安全,維護(hù)社會(huì)穩(wěn)定。