段熙賓,王冰峰
(軌道交通工程信息化國家重點實驗室(中鐵一院),西安 710043)
BIM(Building Information Modeling,即建筑信息模型化)被稱為建筑行業的變革性力量,1975年發源于美國,由被譽為“BIM之父”的美國喬治亞理工大學教授提出[1]。隨著BIM技術對建筑行業帶來多方面的便利,各個國家都開始引入BIM技術并制定屬于自己國家的BIM標準,中國也不例外,在2001年開始引進BIM技術[2]并在2017年制定了自己的BIM標準[3]。近幾年,國內BIM技術的發展與應用開始大量興起。各個高校紛紛設定BIM課程并建立研究室,科研機構、施工單位建立了BIM小組,利用BIM技術的優點給建筑行業帶來更大的便捷[4-5]。隨后而來的設計院、國家對BIM技術給予了政策上的大力支持和提倡,相關建筑單位、企業對BIM技術進行了深入研究和應用,目前國內已有眾多BIM技術應用案例[6-7]。如BIM技術在無錫萬達室外主題樂園項目設計階段中,在吉隆坡地鐵車站施工階段中,在丁家營制梁場規劃與管理中都得到了有效應用等等。
BIM是一個智能化的建筑物3D模型,通過建立數字化模型,涵蓋大量服務于建筑安裝、設計的項目信息,可被建筑項目參與方共享,幫助項目團隊提升效率、提高質量、降低成本[8]。BIM技術的全面性體現在建筑的整個生命周期內,不同階段有不同階段的BIM模型及其對應的細節精度,僅靠一個BIM工具并不能完成所有的工作。所以,目前業內主要采用“分布式”BIM模型的方法,建立符合工程項目現有條件和使用用途的BIM模型[9]。這些模型根據需要大致可分為設計模型、施工模型、進度模型、成本模型、制造模型、操作模型等。與此同時,由于不同場景下不同的模型需要,同一個工程項目中會有大量的BIM模型文件需要管理。但由于BIM文件的特殊性,其安全性顯得格外重要,且存在BIM模型版本更新頻繁、協同傳遞中容易出錯、模型文件溯源困難等問題,目前專門針對BIM模型安全性存儲及管理的解決方案較少。
區塊鏈技術作為比特幣的底層開發技術,通過把區塊以鏈的方式組合相連在一起實現了每個區塊數據的可驗證及可追溯性,具有去中心化、開放性、自治性、信息不可篡改等眾多特點[10]。區塊鏈技術解決了兩個關鍵性的貨幣的問題:雙重支付和拜占庭將軍問題[11-12]。雙重支付指的是同一筆錢使用次數超過一次,區塊鏈可以在不需要可信第三方機構下就可解決雙重支付問題。拜占庭將軍問題是在缺少可信節點的時候,分布式節點建立互相信任的問題[13],區塊鏈使用數字加密技術和分布式共識算法,實現了一個去中心化的可信任網絡。區塊鏈技術以時間順序采用類似鏈表的方式將數據區塊進行組織和管理,適合存儲具有先后關系、能在系統內進行驗證的數據,采用加密技術對數據進行加密,保證區塊鏈數據完整性和安全性,因而具有較高的安全性[14]。區塊鏈技術以其突出的優勢,迅速地席卷了國內外眾多行業,從金融業開始,征信、物流、出版等一大批行業開始應用區塊鏈技術解決傳統業務模型中未能有效解決的信任及安全問題。在國外,區塊鏈應用延伸至供應鏈、商業、醫療保健、物聯網、隱私和數據管理等許多不同的領域。比如,哥倫比亞大學在項目Novum中應用區塊鏈解決視覺藝術和金融服務的組織和結構問題,也有學者在生物醫學和醫療保健領域進行區塊鏈的探索和應用。在國內,區塊鏈的研究和應用也與日俱增,在網絡交易、在線審計、物流溯源等場景中都有大量應用案例[15]。
針對軌道交通工程設計中BIM模型安全及責任溯源等管理問題,國內外也有一些專家學者進行了探索和研究。張欽禮等在鐵路工程安全管理體系研究中提出結合建筑信息模型對鐵路施工進行全生命周期安全管理[16],通過采用BIM技術,完成了施工模擬和安全預處理等質量安全問題,但由于BIM模型文件本身存在大量的樣本,其在傳遞過程中的安全性并未充分考慮。曹文巖等在針對施工管理過程中[17],應用區塊鏈技術進行了電子招標、施工質量控制、施工成本控制、施工安全管理、施工合同及信息管理等方面的結合探索,雖預測了使用場景但并未給出具體的應用方法和使用步驟。此外也有學者研究并提出了基于區塊鏈的bcBIM模型[18],該模型結合了移動云和大數據相關技術,用來解決信息安全、BIM模型審計和物聯網數據交互等問題,該文對公有鏈、聯盟鏈和私有鏈進行了比較,同時結合了BIM模型提出了對應的區塊鏈結構。但其對3種區塊鏈的選擇以及具體的應用場景并未結合具體的應用進行描述,對區塊鏈與BIM結合的流程也不夠深入。
通過使用私有鏈技術[19-20],提出一種針對軌道交通工程設計BIM模型管理過程中的安全性管理方法。利用區塊鏈技術和數字簽名,將軌道交通工程設計項目中的BIM模型文件操作信息及BIM模型的階段性成果信息入鏈存儲,通過時間戳和哈希加密保障入鏈信息的唯一性和安全性。
針對每個項目,設計項目總鏈和BIM操作記錄鏈兩條私有鏈,分別存儲BIM模型階段性成果信息和BIM模型操作信息,并面向不同的用戶,分別存儲對應數據,充分保障其信息安全。雙鏈結構如圖1所示。

圖1 項目區塊鏈雙鏈結構
總鏈面向項目高層管理人員和項目其他關聯方人員,并為其提供查看的權限;BIM操作記錄鏈面向項目各專業BIM設計人員和各專業管理人員,也為其提供查看的權限。通過雙鏈來保障從專業設計到BIM模型校審等核心流程中的數據操作安全。針對具體項目的BIM模型安全管理流程如圖2所示,并從以下幾個步驟進行詳細說明。

圖2 BIM模型安全管理流程
(1)由專業設計人員向系統上傳BIM模型文件,系統觸發文件檢測并存儲該BIM模型文件。
(2)系統對上傳的BIM模型文件首先進行檢驗,判斷文件為新模型還是對已有模型的更新。若為新模型,則將該上傳記錄存入BIM操作記錄鏈,記錄數據包括上傳用戶名,上傳時間,上傳的模型名稱,模型大小等,并對數據進行加密處理。若BIM模型為已有模型的更新,則對模型版本號進行更新處理,在BIM操作記錄鏈中存入模型名稱及對應的新版本號上傳記錄。
(3)專業人員對BIM模型文件下載,BIM操作記錄鏈對下載人員、下載時間,下載模型等相關信息進行入鏈存儲;人員對BIM模型文件執行刪除,BIM操作記錄鏈對刪除操作人員、刪除時間、刪除模型等相關信息進行入鏈存儲。
(4)BIM模型需要通過校審才可觸發項目總鏈進行信息存儲。校審過程即為達成共識的過程。校審通過可以觸發智能合約,超過預定的通過比例即可達成共識。校審節點有多個,數量可控可調節,每個節點都可對BIM模型進行校審處理,并擁有投票權,多數節點擁有校審記賬權。投票即為一次校審過程,校審通過投票成功。系統記錄每一次投票過程,并記錄每次發起校審時的投票節點總數。
(5)每次投票都觸發智能合約進行通過性校驗。通過即可將對應模型數據存入到一個公共的“賬本”(項目總鏈,數據庫) 永久保存,從而實現BIM文件流轉存儲去中心化的安全可靠的數據存儲。可通過智能合約的方式設置數據共享條件、共享時長等參數,自動執行數據在鏈內節點間共享,以及系統授權的鏈外節點安全訪問。
(6)系統將通過智能合約校驗的BIM模型作為階段里程碑,并將對應信息存入系統總鏈進行內部公開。
(7)通過對BIM模型文件的備份和定期差異性檢測來保障BIM模型文件的存儲安全,一旦發現BIM模型文件備份與當前存儲的不一致性,即發出系統警告通知相關人員進行處理。
針對BIM模型的安全管理,本文設計了雙私有鏈的方式,鏈只對設計單位內部部分節點開放,提高了響應速度及安全性。兩條鏈面向不同的用戶群體存儲不同的數據。下面分別從區塊結構、節點設計、BIM操作記錄鏈設計、總鏈設計等幾個核心點進行更加詳細的說明。
區塊鏈中,數據存儲在區塊中,一個一個的區塊通過哈希唯一有序地鏈接在一起,形成一條不容易被篡改的長鏈。通常來說,數據越多、鏈的長度越長,鏈里面數據被篡改的難度就越高,安全性也越好。對于每一個區塊來說,它包含區塊必須的區塊信息和數據信息兩大塊,區塊結構如圖3所示。

圖3 區塊結構
(1)區塊信息。區塊信息記錄當前區塊的基本信息,包括:區塊標識、區塊大小、前一個區塊的哈希值、默克爾樹根哈希、時間戳等。
(2)數據信息。BIM操作記錄鏈存儲BIM模型操作記錄數據、由各專業節點負責記錄并生成BIM操作記錄鏈區塊;項目總鏈存儲BIM模型階段性成果記錄,由部分校審節點負責記錄并產生總鏈區塊。每個新產生的區塊含有鏈接到上一個數據區塊的加密哈希值,這個哈希值能用于追蹤和查驗數據區塊。區塊與區塊相連,鏈的第一個節點為創世區塊,不需要存儲數據,從后續每個節點開始,都需要存儲對應的BIM模型記錄數據。在系統中,所有的BIM數據都將被定時核查,并存儲在部分節點中,進而在網絡節點中共享。
本文區塊鏈使用特殊的私有鏈,它建立在一定數目的預選認證節點上。區塊鏈的共識算法由這些預選節點執行,而非全網所有節點,從而能大大減少網絡開銷。區塊產生于部分數據參與的節點上,并由這些節點公開審計、安全存儲數據。系統不依賴于唯一可信的節點來執行數據存儲,將BIM資料數據進行多份存儲備份,保持同步更新與定期校驗,從而實現數據安全可靠存儲。
對于BIM操作記錄鏈,BIM操作記錄鏈的參與節點包含項目各專業的設計人員以及各專業的管理人員對應的節點;對于項目總鏈,總鏈的參與節點包含項目管理人員節點、校審人員節點以及其他參與人的節點,其中總鏈區塊記賬權是由占大多數的校審人員節點共同擁有。其余節點可根據安全性規則進行區塊數據的查看,但不具備對新區塊的記錄權。
BIM操作記錄鏈作為細粒度的BIM模型文件操作記錄存儲鏈,主要存儲BIM模型上傳,下載及刪除等敏感操作記錄。通過記錄時間、人員、操作內容等具體信息來保障BIM模型文件在系統中的安全性,為異常操作及數據提供可靠的溯源服務。針對BIM操作記錄鏈的BIM模型上傳操作記錄入鏈的流程如圖4所示。

圖4 專業子上傳記錄流程
(1)用戶上傳BIM模型文件。
(2)系統進行文件分析判斷其為新模型還是對已有模型的更新。
(3)若為新模型,則調用接口獲取上傳模型的用戶信息,模型文件信息,時間等記錄;若為已有模型,則更新模型版本號,并以新版本號將模型存儲,也調用接口獲取上傳模型的用戶信息,模型文件信息,版本信息,時間等記錄。
(4)對獲取的信息進行加密處理。
(5)調用接口,將數據打包成新區塊,將區塊存入BIM操作記錄鏈中。
(6)其他節點用戶查詢BIM操作記錄鏈數據,則需要進行解密,解密后可查詢BIM操作記錄鏈區塊信息。鏈信息對各專業內人員開放權限。
項目總鏈設計為存儲BIM模型文件校審后的階段性成果記錄,用來對項目管理人員及其他關聯用戶進行查詢展示,校審人員代表的節點擁有項目總鏈區塊的記賬權。針對項目總鏈校審入鏈的流程設計如圖5所示。

圖5 項目總鏈入鏈流程
(1)用戶申請BIM模型校審。
(2)校審人員(由具體項目具體選定校審節點)均可對該模型進行詳細校審。并提交校審意見。
(3)校審通過與不通過都將被記錄存入數據庫。
(4)每次校審記錄均會被存儲,校審未通過需要繼續校審或者返回模型修改信息,用戶重新對模型進行修改。
(5)校審通過會觸發如圖6所示合約流程,合約流程中包含智能合約的校驗,用于驗證當前校審文件的校審通過比值。高于智能合約設定的數值,即為正式校審通過,并通過接口獲取上傳模型的用戶信息,模型文件信息,時間等記錄;此外也將在校審過程中,選擇通過校審的校審人員名單一并查出,便于對數據加強可溯源保障。
(6)對獲取的信息進行加密處理。
(7)調用接口,將數據打包成新區塊,將區塊存入項目總鏈中。
(8)若要查詢項目總鏈數據,則需要進行解密,解密后可查詢項目總鏈區塊信息。

圖6 BIM操作記錄鏈信息查詢
基于以上的思路和方法,本文設計了基于私有鏈的雙鏈模型,來保障BIM模型文件在其生命周期內的安全監管,通過時間戳和文件版本管理,可充分將BIM模型的每一次操作記錄存儲下來,并不可被修改。針對上述方法設計,使用真實的BIM模型數據進行安全管理應用。為了進一步加強BIM模型的安全和防篡改性,在區塊鏈技術的基礎上,增加了權限管理。對于不具備BIM模型訪問權限(尤其是修改權限)的用戶,不允許其對BIM模型進行修改,從而杜絕對模型的非法操作;而對于具有修改權限的用戶,如果他不小心誤操作了模型或者惡意修改了模型,本文的方法能夠及時有效記錄下這些信息并在一定程度上恢復被誤操作的BIM模型。
為了驗證該方法的應用效果,以某軌道交通項目為例進行說明。具有訪問權限的用戶在上傳BIM模型文件、更新BIM模型文件、刪除BIM模型文件時,都進行了區塊鏈服務的調用,并將執行BIM模型操作的用戶信息、項目信息、BIM模型文件信息及時間點進行有效記錄,并給予哈希加密和前后區塊驗證,充分保障了每一個BIM模型文件在系統中的生命周期內被嚴格監管。圖7為一些具有訪問權限的用戶進行BIM模型操作時被記錄的BIM操作記錄鏈數據。例如區塊20中,用戶楊永對某軌道交通項目中的橋梁設計.rvt文件進行上傳操作被記錄入鏈。用戶操作時間、操作內容都可被專業內其他管理人員觀察到,并通過與前區塊的Hash值對應起來。專業設計人員對BIM模型文件的操作記錄都被系統一一存入BIM操作記錄鏈。所有數據使用哈希加密,并對前一區塊的哈希進行鏈接,確保操作記錄難以被篡改。BIM操作記錄鏈對專業內的管理人員開放查看,管理人員可以方便的獲取專業設計人員對BIM模型文件的操作,方便對項目成員的工作進行評估,同時也提高了管理效率和責任的可追溯性。

圖7 某BIM模型操作記錄鏈(部分)
針對軌道項目全生命周期中BIM模型文件的安全存儲和責任問題,提出一種基于區塊鏈的BIM模型安全管理方法。該方法創新性地采用雙私有鏈模型:項目總鏈和BIM操作記錄鏈。項目總鏈用于存儲BIM模型階段性成果信息;BIM操作記錄鏈用于存儲BIM模型操作信息。該方法已應用于某軌道交通項目設計過程中,通過對BIM模型操作記錄數據和BIM模型階段性成果記錄的入鏈永久性存儲,保障了設計過程中BIM模型文件的流轉及其異常操作的責任溯源,有效提高了BIM模型文件的安全管理水平。
未來將在更多的軌道交通項目中應用本文提出的基于區塊鏈的BIM模型安全管理方法,并進一步為形成BIM安全管理標準提供有價值參考。此外,該方法不僅適用于軌道交通項目,還可以應用于一般建筑項目的協同設計、全生命周期管理、建筑模型歸檔等方面。