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