于愛榮,王 俊,孫 海,王 勇
(1.中國人民解放軍陸軍工程大學 指揮控制工程學院,江蘇 南京 210007;2.南京信息工程大學 管理工程學院,江蘇 南京 210044;3.易霸科技(威海)股份有限公司,山東 威海 264200)
近年來,作為新興信息技術代表之一的區(qū)塊鏈技術越來越受到了政府、企業(yè)和各類機構(gòu)的廣泛關注,并已經(jīng)在許多領域得到了廣泛運用。區(qū)塊鏈是一種計算機技術的新型運用模式,其涵蓋了分布式數(shù)據(jù)儲存、P2P技術、數(shù)據(jù)可信加密、共識機制等技術,究其本質(zhì)來說,區(qū)塊鏈就是一個個數(shù)據(jù)塊的序列組合,在數(shù)據(jù)塊上保存了交易信息的全部痕跡。區(qū)塊鏈技術是一種新形態(tài)的分布式基礎架構(gòu)與計算范式[1]。
隨著互聯(lián)網(wǎng)技術的高度滲透,各企業(yè)的財務管理逐步從單機、局域網(wǎng)管理模式轉(zhuǎn)變?yōu)樵朴嬎?、移動網(wǎng)絡化的新型管理模式?!笆濉逼陂g,中國中鐵各公司內(nèi)部也構(gòu)建了自己的財務管理系統(tǒng),涵蓋了公司內(nèi)部管理所涉及到的人員、物資、材料、機械等多類資源,這些系統(tǒng)往往依托于互聯(lián)網(wǎng)開發(fā)。雖然系統(tǒng)的建設極大地便利了企業(yè)的財務管理工作,提供比較準確的查詢與分析等服務,為企業(yè)決策者和業(yè)務管理部門提供了財務情況查詢的可信數(shù)據(jù)來源,但是,由于大部分信息系統(tǒng)在設計時采用數(shù)據(jù)庫集中設計、存儲和管理的模式,隨著系統(tǒng)建成和上線運行,系統(tǒng)管控數(shù)據(jù)的中心化特征逐步凸顯,數(shù)據(jù)中心化導致的數(shù)據(jù)易于被攻擊、被篡改的風險隱患逐漸加大,特別是在財務管理中,一旦出現(xiàn)數(shù)據(jù)安全問題,將會對企業(yè)的正常業(yè)務管理造成不可預估的惡劣影響。財務信息系統(tǒng)以上所暴露的問題,其本質(zhì)是由于系統(tǒng)設計架構(gòu)的“過于中心化”,數(shù)據(jù)與管理的集中是該系統(tǒng)的最主要特征。而伴隨著區(qū)塊鏈技術的出現(xiàn),為這類構(gòu)建在集中數(shù)據(jù)管控業(yè)務系統(tǒng)所面臨的數(shù)據(jù)中心化存儲、信息易被篡改等問題,提供了一種有效的技術解決思路[2-3]。
該文引入?yún)^(qū)塊鏈和智能合約技術,將區(qū)塊鏈技術的去中心化和安全性的特性應用到了企業(yè)財務管理中,使得企業(yè)的財務及相關原始憑證數(shù)據(jù)的安全性和真實性得到了保障,而且對企業(yè)內(nèi)部下屬的分支業(yè)務管理節(jié)點達成共識,每個分支業(yè)務節(jié)點都將是維護系統(tǒng)、存儲數(shù)據(jù)的組成部分,從而降低數(shù)據(jù)的管理維護的成本。通過系統(tǒng)構(gòu)建的區(qū)塊鏈網(wǎng)絡,每一次數(shù)據(jù)(包含財務數(shù)據(jù)和業(yè)務數(shù)據(jù))的改動都會永久地記錄在鏈中,同時,鏈上的所有信息全部公開,全程可追溯,確保數(shù)據(jù)的真實[4]。
區(qū)塊鏈是目前最炙手可熱的新興計算機技術之一,其概念最先來源于2008年中本聰發(fā)表的《比特幣:一種點對點的電子現(xiàn)金系統(tǒng)》一文。在該文中,作者描述了一種去中心化的電子先寄給系統(tǒng)的架構(gòu)思想,該架構(gòu)建立在P2P網(wǎng)絡、數(shù)據(jù)加密算法和時間戳技術之上。比特幣(Bitcoin)是區(qū)塊鏈技術應用的最典型和最成功的案例。通過區(qū)塊鏈技術,網(wǎng)絡上的任何個體在無第三方可信機構(gòu)參與的條件下,能夠自由交易,同時保證交易全過程的匿名和可追溯[5-6]。
如今,區(qū)塊鏈技術應用范圍不斷延伸,逐漸從以往的加密數(shù)字貨幣演變?yōu)橐环N提供可信區(qū)塊鏈即服務的平臺,區(qū)塊鏈技術對傳媒、醫(yī)療、物管、財會等多個傳統(tǒng)行業(yè)的影響日趨加深,人們也在積極探索“區(qū)塊鏈+”的行業(yè)應用創(chuàng)新模式。一般說來,區(qū)塊鏈系統(tǒng)由數(shù)據(jù)層、網(wǎng)絡層、共識層、激勵層、合約層和應用層組成[7-8]。具體如圖1所示。
圖1 區(qū)塊鏈基礎架構(gòu)模型
其中,數(shù)據(jù)層和網(wǎng)絡層分別提供了數(shù)據(jù)加解密算法和網(wǎng)絡分發(fā)與傳播機制;共識層通過各類共識算法來解決分布式系統(tǒng)的一致性問題;激勵層主要包括經(jīng)濟激勵的發(fā)行機制和分配機制等;合約層是建立在整個區(qū)塊鏈虛擬機之上的規(guī)則和商業(yè)邏輯,包含各類的算法、腳本和合約規(guī)則等;應用層則提供了各類典型場景和范例[9-11]。
智能合約(smart contract)是指一種特殊的計算機協(xié)議,該協(xié)議無需人為干預,一旦被制定和部署之后即可實現(xiàn)自我執(zhí)行和驗證。通過智能合約不僅可以實現(xiàn)去中心化的流程化操作,而且交易安全、公平和全程可追蹤。有的文獻中將智能合約描述為“執(zhí)行合約條款的計算機交易協(xié)議”[12]。
智能合約的出現(xiàn)有效解決了傳統(tǒng)人與人制定合約中存在的雙方信任問題。通過使用區(qū)塊鏈技術,充分利用智能合約在合約規(guī)則制定、執(zhí)行等方面的優(yōu)勢,避免主觀惡意行為對合約的干擾。通過在區(qū)塊鏈上部署智能合約,確保了在鏈上合約可以公平、公開、透明和可追溯的執(zhí)行下去[13]。
1.3.1 合約的精準執(zhí)行
由于智能合約部署前對合約中的執(zhí)行條件、交易規(guī)則和交易過程節(jié)點做出了明確界定,一旦合約在數(shù)據(jù)鏈上進行部署,計算機即可按照合約規(guī)定步驟進行執(zhí)行,合約執(zhí)行的結(jié)果都將精確記錄,不會出現(xiàn)合約預期外的執(zhí)行分支和結(jié)果[14]。
1.3.2 較低的人為干預
智能合約部署在區(qū)塊鏈之后,合約的所有條款和執(zhí)行結(jié)果都無法進行修改,避免了現(xiàn)實合同中存在的人為操縱和干預的可能,確保合約各方公平執(zhí)行合約。
1.3.3 可信的合約管理
智能合約的執(zhí)行無需可信任的第三方機構(gòu)或中心進行參與,也就是說,智能合約的全過程管理無需第三方的權(quán)威機構(gòu)來對合約是否按規(guī)定執(zhí)行進行認證,同時,合約執(zhí)行過程中的監(jiān)督和分歧仲裁也由計算機系統(tǒng)自行來完成[15]。
1.3.4 廉價的合約成本
智能合約具有自我治理、無需人為干預的智能化特征,當智能合約部署完成之后,在合約的條件觸發(fā)、流程執(zhí)行、分歧處理等以往需要人為干預的環(huán)節(jié)可以進行程序化處理,實現(xiàn)近乎零成本的人力資源投入。但要達到全程無需人為干預的目標,需要智能合約參與方能夠?qū)⒑霞s的每個細節(jié)都要考慮清楚,并在合約部署前確定下來[16]。
施工企業(yè)在開展建設過程中面對的各個合作供應商、材料和設備時,最關心的是質(zhì)量,同時施工全過程的質(zhì)量控制也是企業(yè)關注的核心。施工涉及到的質(zhì)量管理涵蓋了對施工項目的材料、人員、設備、工序等各個方面的規(guī)范性要求。由于區(qū)塊鏈技術具有來源可追溯的特性,充分利用該特點,將質(zhì)量過程中的各個節(jié)點進行記錄,從而可精準查詢不合格工序的問題,責任是由誰來承擔,哪家生產(chǎn)單位的建筑材料有缺陷的等等。區(qū)塊鏈技術的運用為工程質(zhì)量的實時監(jiān)督和事后追責提供了可能,同時也有利于材料供應鏈管理、工程設備租賃、材料自動采購和支付、預制品出廠前和出廠后溯源性管理[17]。
施工成本主要由人工費、材料費、機械使用費、管理費、稅金等多方面組成,每一筆費用的支出和進入都需要進行成本控制。利用區(qū)塊鏈對交易的記錄,可實現(xiàn)現(xiàn)場施工成本的分析與預警,并可將問題實時反饋到某項施工專業(yè)和施工活動中去,即時對管理人員進行提醒。同時區(qū)塊鏈技術的加密算法對工程敏感數(shù)據(jù)可進行隱私保護,對核心敏感的工程項目的人工費、材料費、機械使用費等數(shù)據(jù)信息進行脫敏處理后,在保護項目隱私的情況下提供安全的分布式數(shù)據(jù)存儲方案[11]。
區(qū)塊鏈中的智能合約與施工合同的形式類似,在設計合同管理時充分基于智能合約技術。具體內(nèi)容包括:
(1)構(gòu)建自動執(zhí)行的智能合約合同條款,解決合同上存在的拖延、扯皮等不嚴謹問題。實現(xiàn)了合同當事人無須信任彼此,無須建立在對任何個體、法律規(guī)則或社會機構(gòu)的信任之上。
(2)將施工合同在智能合約的體系框架下數(shù)字化,使得能夠利用計算機快速、準確地查閱和研究,能夠避免出現(xiàn)偽造合同、陰陽合同的出現(xiàn),有利于合同的動態(tài)管理和有效監(jiān)管。
(3)采用智能合約大大降低了合同簽訂、履行和監(jiān)管方面的人力與資源成本消耗,并且為合同履行過程中的索賠提供技術手段。
施工信息管理主要包括施工過程中產(chǎn)生的大量票據(jù)、文件、人員、財務信息等各類過程性數(shù)據(jù),以往這些數(shù)據(jù)停留在系統(tǒng)外,通常無法采集和利用,利用區(qū)塊鏈技術可在鏈上的任何節(jié)點進行采集和存儲,方便各項施工數(shù)據(jù)管理。將數(shù)據(jù)進行充分處理和整合之后,有利于施工企業(yè)在各管理領域如成本,質(zhì)量、安全等管理水平的提高,數(shù)據(jù)的流通和整合將有利于促進企業(yè)管理水平的提升。
基于區(qū)塊鏈和智能合約的財務管理系統(tǒng)主要由財務支撐服務平臺和項目部管理系統(tǒng)兩部分組成,見圖2。財務支撐服務平臺提供基于區(qū)塊鏈和智能合約的工程、合約、機械、財務等多維信息的管理,并對共享數(shù)據(jù)的行為進行激勵,促進平臺的活躍和成長[18]。項目部管理系統(tǒng)基于大數(shù)據(jù)和人工智能技術,構(gòu)建適合工程項目部實際的施工業(yè)務分析、管控、預警等模型、算法和管理流程,項目部管理系統(tǒng)還可將相關的模型和算法實現(xiàn)為智能合約,上傳到財務支撐服務平臺中,也可以從平臺中下載所需的智能合約,系統(tǒng)的運行架構(gòu)如圖2所示。
圖2 系統(tǒng)運行架構(gòu)
以區(qū)塊鏈技術為核心的財務支撐服務平臺提供了可信賴的區(qū)塊鏈運行環(huán)境,為區(qū)塊鏈上運行的各工程項目部管理系統(tǒng)提供基礎支撐,同時,服務平臺將區(qū)塊鏈技術進行技術封裝和業(yè)務整合,方便其到工程項目部中的集成使用。運用區(qū)塊鏈技術的工程管理包括合約、工程、機械、物資管理等各個環(huán)節(jié)。平臺通過以開放自定義化智能合約的方式幫助各項目部實現(xiàn)自主的成本分析和質(zhì)量控制,從而降低施工企業(yè)項目實施過程中使用區(qū)塊鏈技術的門檻,通過利用區(qū)塊鏈技術的可信度高、防篡改等特性,有效解決施工管理中的監(jiān)管難、取證難等問題,有效提升施工企業(yè)的科學管理運營水平。在本架構(gòu)中,整個服務平臺對運算資源和存儲資源均實現(xiàn)了虛擬化,同時,采用公私密鑰體系來對數(shù)據(jù)進行安全控制,確保數(shù)據(jù)存儲和管理的安全可控。
財務支撐平臺采用分層設計的技術思路,自下而上劃分為基礎設施層、數(shù)據(jù)層、服務支撐層、業(yè)務應用層和系統(tǒng)接入層五部分,技術架構(gòu)如圖3所示。
圖3 財務支撐服務平臺的技術架構(gòu)
3.2.1 基礎設施層
提供平臺運行所需的云計算與虛擬化環(huán)境,涵蓋平臺所需的操作系統(tǒng)、系統(tǒng)軟件等基礎設施。
3.2.2 數(shù)據(jù)層
為工程、合約、物資等業(yè)務系統(tǒng)提供數(shù)據(jù)集成、存儲的基礎平臺,形成統(tǒng)一的基礎數(shù)據(jù)、字典數(shù)據(jù)、業(yè)務數(shù)據(jù)和交互共享的集成數(shù)據(jù),為數(shù)據(jù)高效分析和綜合利用奠定基礎。
3.2.3 服務支撐層
為決策部門和業(yè)務管理部門提供全面的數(shù)據(jù)分析處理和面向業(yè)務應用的數(shù)據(jù)服務?;A服務包括賬本管理、交易管理、智能合約管理等;共用服務包括工作流引擎、消息服務、日志管理等;業(yè)務服務涵蓋了合約、物資、機械等各業(yè)務處理。
3.2.4 業(yè)務應用層
在服務支撐層提供各類服務的基礎上,提供了流程化的管理功能,每一個業(yè)務應用模塊均可以獨立運行或組合應用。同時提供二次開發(fā)接口便于無縫集成。
3.2.5 系統(tǒng)接入層
為項目部管理系統(tǒng)提供內(nèi)網(wǎng)或外網(wǎng)的接入服務,形式涵蓋網(wǎng)站、程序客戶端和移動APP等。
智能合約概念的提出已有很長時間,通常將智能合約定義為一種“執(zhí)行合約條款的可計算交易協(xié)議”[19]。從狹義上來說,智能合約是包含商業(yè)活動邏輯、規(guī)則和算法的程序代碼,可將行為人、權(quán)責義務和相互關系程序化。從廣義上來說,智能合約是一種特殊的計算機協(xié)議,一旦生效后能實現(xiàn)自我執(zhí)行、驗證和自治。智能合約不僅僅可運用于金融領域,其在物聯(lián)網(wǎng)、數(shù)字版權(quán)、公共服務等領域都有很廣闊的前景。智能合約在使用時類似于普通合約,其生命周期包括生成、發(fā)布和執(zhí)行三個階段,具體如圖4所示。
合約生成階段主要包括了合約參與方協(xié)商、合約定義與規(guī)范、合約驗證以及合約代碼生成四個環(huán)節(jié)。通過合約參與方的溝通協(xié)商可明確合約參與個體的責任、權(quán)利、義務和利益等,確定形式化的合約文本并實現(xiàn)其標準化和程序化,經(jīng)過驗證后可以生成規(guī)范的合約代碼。在合約標準化和驗證環(huán)節(jié)中需要引入特定領域的知識專家一起進行商定和研究,驗證過程應科學、合理和可追溯,確保合約文本與合約代碼的一致。
合約發(fā)布階段通過P2P方式將合約代碼分發(fā)至每一個區(qū)塊節(jié)點,區(qū)塊節(jié)點對收到的合約存儲并進行在線共識。共識的過程中需要對合約進行HASH計算和比對,經(jīng)過多次比對后形成對合約的共識,并以區(qū)塊方式進行全網(wǎng)的擴散。
圖4 智能合約的生命周期
合約執(zhí)行階段嚴格按照“事件觸發(fā)”機制,一旦合約預設的觸發(fā)條件達到,將會把合約排入等待驗證的隊列,待驗證的合約會推送至區(qū)塊上的每一個節(jié)點,驗證通過的合約經(jīng)過共識后便會成功執(zhí)行。整個合約的處理過程都由區(qū)塊鏈底層內(nèi)置的智能合約系統(tǒng)自動完成,公開透明。不可篡改同時結(jié)果進行及時反饋。
智能合約的架構(gòu)如圖5所示。自下而上劃分為數(shù)據(jù)層、傳輸層、智能合約對象層、驗證層、執(zhí)行層和應用層6個部分。
圖5 智能合約的基本架構(gòu)
其中,數(shù)據(jù)層包括了鏈上和鏈下數(shù)據(jù),為上層提供必要的數(shù)據(jù)源;傳輸層為數(shù)據(jù)交互提供協(xié)議和機制保證;智能合約對象層提供參數(shù)和協(xié)議兩部分的管理;驗證層主要以形式化方法對合約代碼進行判定,確保和合約文本保持一致;執(zhí)行層只要提供了智能合約運行的基礎軟件環(huán)境;應用層提供面向業(yè)務支撐的應用,涵蓋分布式計算、事務處理、可編程金融等。
智能合約在區(qū)塊鏈技術中的定位類似于現(xiàn)實生活中的合同或協(xié)議,所有在鏈上的參與者都需要遵照智能合約的約定規(guī)則來完成特定的行為或交易。設計者通過編寫和完善智能合約內(nèi)容規(guī)定用戶行為、交易準則和交易步驟等細則。智能合約完成后需部署在區(qū)塊鏈網(wǎng)絡中,部署后的智能合約對用戶是不可見的,這一特性也保證了智能合約的隱秘性。施工合同作為財務管理中的重要環(huán)節(jié),合同執(zhí)行是否安全性和公平性的問題,一直以來都是企業(yè)管理中難于處理的課題。通過引入智能合約,只要開始進行交易,智能合約就能夠被即時觸發(fā),保證了規(guī)定的權(quán)利與義務的嚴密執(zhí)行,同時智能合約不僅能被用于雙方交易,還能被用于多方交易,簡化了傳統(tǒng)多方交易面臨的手續(xù)復雜等問題[20-21]。
合同通常由一系列的關聯(lián)約定構(gòu)成,約定描述了一方需要承擔的義務。約定是合同組成的基本單位,在智能合約中該文對約定進行了如下定義:
約定是一個五元組A(a,b,c,o,tl),含義是乙方a向甲方b做出承諾,如果條件c達成,就產(chǎn)生操作。其中:
(1)條件c值是布爾型。當為true時,表示條件成立,而為false時,表示條件未成立;
(2)tl表示該約定的時間周期,tl為true時該約定有效。
約定在其時間周期內(nèi)有不同的狀態(tài)[22-24],狀態(tài)的變化如圖6所示。
圖6 智能合約的狀態(tài)轉(zhuǎn)換圖
智能合約是一個狀態(tài)機,因此必然包含狀態(tài)機和一系列接口函數(shù),本系統(tǒng)的智能合約開發(fā)用solidity編程語言,下面以機械合同交易為例,展示核心代碼[25]。
contract Purchase_Mechanics {
uint public Price;//價格
address public sellman;//賣方
address public buyman;//買方
enum State {Created,Locked,overtime,over}
State public state; //當前狀態(tài)
…
//修飾符,確保是賣方
modifier onlySellman () { … }
//修飾符,確保是買方
modifier onlybuyman () { … }
//交易部分
function confirmPurchase()
public
inState(State.Created)
//判定交易成立的條件
condition(msg.value==(150000))
payable
{
emit PurchaseConfirmed();
buyman=msg.sender;
state=State.Locked;
}
//買方確認收到機械實體,解鎖ether
function confirmReceived()
public
onlyBuyman
inState(State.Locked)
{emit ItemReceived();
//需要提前設置狀態(tài)為結(jié)束
state = State. over;
buyman.transfer(value);
sellman.transfer(this.balance);
}
該文在充分研究區(qū)塊鏈和智能合約技術的基礎上,針對目前企業(yè)傳統(tǒng)財務管理中存在的對各類成本、支出、決算難于精準可信掌握的難題,設計并實現(xiàn)了一種基于區(qū)塊鏈的系統(tǒng)構(gòu)建方案,將智能合約與施工合同進行了有機結(jié)合,完成了合同的形式化表示和合同交易的代碼實現(xiàn),對區(qū)塊鏈技術在施工企業(yè)財務管理工作中的應用進行了初步探索。