李廣橋,喬運華,周文坤,班玉榮,張應(yīng)剛
(1.北京機械工業(yè)自動化研究所,北京 100120;2.北京機械工業(yè)自動化研究所有限公司,北京 100120;3.中國機械科學研究總院集團有限公司,北京 100044)
傳統(tǒng)的合同管理采用手工管理的形式,審批簽訂過程也需要人員攜帶合同給相應(yīng)的上級以及合同方;信息化合同管理系統(tǒng)采用了高度集中的管理方式來管理合同數(shù)據(jù),以此來改變傳統(tǒng)企業(yè)信息分布離散化的狀況,提高合同信息查詢的效率,也避免過多的提取和翻閱原合同文檔。信息化合同管理系統(tǒng)還具有根據(jù)合同要素快速生成合同模板、直接線上發(fā)起內(nèi)部審批流程等優(yōu)勢。
合同管理系統(tǒng)在業(yè)務(wù)上是多方參與的,但是不管是傳統(tǒng)的還是信息化后的合同管理系統(tǒng)在系統(tǒng)層面上仍然是獨立操作。故存在以下幾個問題:
1)合同在錄入的過程也缺少合同方的監(jiān)管與參與,無法建立起信任。
2)合同方如果需要審閱核查并簽訂合同內(nèi)容,仍然是人員攜帶紙質(zhì)版合同給合同方。
3)有效且合法的仍然是紙質(zhì)合同。紙質(zhì)合同容易丟失,被篡改,不宜長期保存。
區(qū)塊鏈是一個眾多技術(shù)集合而成的新興技術(shù)體——分布式賬本,具有去中心化、數(shù)據(jù)難篡改,可追溯等特點。對解決跨機構(gòu)信任問題,增加數(shù)據(jù)的安全性和可靠性有著天然的優(yōu)勢。結(jié)合區(qū)塊鏈的合同管理系統(tǒng),能夠真正實現(xiàn)業(yè)務(wù)和系統(tǒng)操作上的多方參與,即解決了信任問題,又可以促進機構(gòu)之間更好的協(xié)同;同時完全數(shù)字化的合同,也更安全,易保存。
1)合同紙質(zhì)化,合同與相關(guān)文件封存到一個檔案袋里。
2)合同易丟失、風化。
3)合同內(nèi)容依靠線下集中討論商議,合同變更則需要再次集中討論商議。
4)合同審批流程:依靠人員攜帶文件尋找相應(yīng)審批人簽審。
5)合同的有效性、合法性:依靠參與各方的手寫簽名以及相關(guān)部門的印章來校驗。
1)合同信息化成多個要素組成的數(shù)據(jù)集。
2)合同數(shù)據(jù)存在被篡改的風險。
3)合同的錄入、審批由單機構(gòu)實行。
4)合同的有效性、合法性:依靠參與各方的手寫簽名以及相關(guān)部門的印章來校驗。
5)系統(tǒng)的只用于單機構(gòu)對已簽訂的合同進行審批管理或者生成未簽訂的合同。
6)合同簽訂仍然是依靠紙質(zhì)版來簽訂。
信息化合同管理系統(tǒng)的主要業(yè)務(wù)流程如圖1所示:
圖1
根據(jù)文獻[1~6]的分析,區(qū)塊鏈有以下主要的特點:
1)去中心化:區(qū)塊鏈數(shù)據(jù)由組成區(qū)塊鏈網(wǎng)絡(luò)的所有節(jié)點共同維護,每個節(jié)點都有著鏈上數(shù)據(jù)的全集。
2)數(shù)據(jù)安全可靠:區(qū)塊鏈網(wǎng)絡(luò)上的節(jié)點會通過達到共識保證數(shù)據(jù)的一致性。共識機制取決于該區(qū)塊鏈系統(tǒng)使用的共識算法。例如:比特幣的pow共識,通過投入算力解決數(shù)學難提來達成共識,攻擊者必須投入超過全網(wǎng)節(jié)點51%的算力,才能篡改結(jié)果;實用拜占庭共識,狀態(tài)機副本復(fù)制算法,具有拜占庭容錯即滿足n=3*f+1的條件下(n為全節(jié)點數(shù),f為作惡或者故障節(jié)點)能保證數(shù)據(jù)的安全性和活性。
3)數(shù)據(jù)公開可追溯且唯一:數(shù)據(jù)鏈上的數(shù)據(jù)是公開可見的,用戶通過鏈上交易的地址,可以追溯并查閱交易信息;區(qū)塊鏈通過在數(shù)據(jù)結(jié)構(gòu)加入時間戳來保證其唯一性。
4)匿名性、不可逆性:節(jié)點之間作信息交互時,只會涉及到交易用戶的公鑰地址信息,節(jié)點的信息并不會出現(xiàn),故節(jié)點在區(qū)塊鏈上具有匿名性;用戶一旦發(fā)起鏈上交易,交易記錄會被存到每個區(qū)塊上,不可逆性主要就是指交易的痕跡是不可抹滅的。
從區(qū)塊鏈本身的特點來看,區(qū)塊鏈適用于多方參與的交易、開放可追溯和安全可靠數(shù)據(jù)的共享等應(yīng)用場景。而合同管理恰恰是一個多方參與擬定的過程,并且合同信息對參與各方開放,區(qū)塊鏈技術(shù)的融入,有利于進一步的提高合同數(shù)據(jù)的易保存性、可塑性、可靠性和安全性。例如:利用區(qū)塊鏈去中心化的特點,可以有效解決多方擬定合同時,因各方信息不對稱而導(dǎo)致的信任問題;利用鏈上數(shù)據(jù)安全可靠的特點,可以保證合同信息的安全性(篡改合同信息難度大)、可靠性(合法性、有效性可進行鏈上驗證);利用鏈上數(shù)據(jù)公開可追溯以及不可逆性的特點,各方可以有效跟蹤合同,監(jiān)督從擬定到生效整個周期等。
合同管理系統(tǒng)從業(yè)務(wù)上滿足多方參與的條件;合同擬定到簽署的過程需要參與方公開一定的數(shù)據(jù),且要求數(shù)據(jù)盡可能的客觀真實,數(shù)據(jù)校驗依賴第三方;參與各方都希望能把控過程避免暗箱;只有參與的公司或者機構(gòu)能看到合同信息,即要求信息對內(nèi)公開,對外保密。綜上所述,滿足區(qū)塊鏈的適用場景,結(jié)合了區(qū)塊鏈的合同管理系統(tǒng)應(yīng)該具有以下特點:
1)合同數(shù)字化,可以是由合同要素組成的數(shù)據(jù)集,也可以是一個合同文件或者合同圖片。數(shù)字合同具有易保存、好維護以及查詢驗證方便等特點。
2)部分去中心化,多方協(xié)同。合同擬定、合同審批到合同的監(jiān)控維護,從業(yè)務(wù)和系統(tǒng)操作上都是一個多方參與的過程。多方協(xié)同,簡化了合同擬定和簽審流程,效率得到了有效的提高。
3)合同數(shù)據(jù)更安全可靠。每一份合同數(shù)據(jù)在鏈上都會有相應(yīng)且唯一的電子憑證。存于鏈上的電子憑證,由鏈上節(jié)點共同維護,在滿足拜占庭容錯的前提下,篡改數(shù)據(jù)十分困難,進一步保證了數(shù)據(jù)的安全性。
4)合同可追溯。只要業(yè)務(wù)操作觸發(fā)了鏈上的交易,交易的數(shù)據(jù)就會存到區(qū)塊中。
5)合同數(shù)據(jù)內(nèi)部公開,對外部保密。即只有加入了該業(yè)務(wù)群組的節(jié)點(節(jié)點歸屬機構(gòu),同機構(gòu)可能有多個節(jié)點)才能看到業(yè)務(wù)數(shù)據(jù)。例如:采購合同群組的合同數(shù)據(jù)只有加入了該群組的節(jié)點才能看到公開的采購數(shù)據(jù)。同樣不在同一個鏈上的節(jié)點是看不到該業(yè)務(wù)數(shù)據(jù)的。
3.1.1 Fisco bcos區(qū)塊鏈底層開源平臺介紹
FISCO BCOS是一個開源工作組研發(fā)的區(qū)塊鏈底層技術(shù)平臺。這個開源工作組是由眾多金融類機構(gòu)以及科技企業(yè)(“金鏈盟”)組建的。旨在大力推動中國在區(qū)塊鏈領(lǐng)域的發(fā)展,加速區(qū)塊鏈技術(shù)在各行各業(yè)的應(yīng)用落地,努力研發(fā)自主可控的區(qū)塊鏈技術(shù)[7]。
3.1.2 Fisco bcos區(qū)塊鏈的特征
根據(jù)文獻[7]的分析Fisco bcos區(qū)塊鏈有以下特征:
1)高性能
FISCO BCOS通過交易并行模型和c++編寫合約的預(yù)編譯框架大幅提升了系統(tǒng)的效率和鏈上區(qū)塊的處理速度。
FISCO BCOS還支持多群組架構(gòu)。傳統(tǒng)的區(qū)塊鏈是一條鏈一個賬本。與傳統(tǒng)鏈不同的是,多群組架構(gòu)是一條鏈維護多個賬本,一個群組相當于一個邏輯鏈(區(qū)分物理鏈和邏輯鏈的區(qū)別),對應(yīng)一個賬本。群組劃分是按節(jié)點劃分,只有加入到這個群組的節(jié)點才有這個區(qū)塊的數(shù)據(jù),所以群組中的區(qū)塊數(shù)據(jù)是物理上隔離的,一筆交易只能發(fā)往一個群組。物理上單鏈(區(qū)塊鏈網(wǎng)絡(luò)),邏輯上多賬本。每個群組獨立運行各自的共識算法,不同群組可使用不同的共識算法(同時支持PBFT、Raft等多種共識)。
2)高安全
FISCO BCOS從4個維度來維護數(shù)據(jù)的高度安全。
(1)節(jié)點層面,利用節(jié)點準入機制、ca黑名機制及時剔除作惡節(jié)點。
(2)外部用戶的權(quán)限,通過分布式存儲權(quán)限來控制。
(3)節(jié)點允許對本地數(shù)據(jù)進行加密保護,防止數(shù)據(jù)被遷移,如若被遷移,節(jié)點失效,數(shù)據(jù)永久加密。
(4)支持多種類加密算法和簽名算法。
3)高可用
FISCO BCOS各屬性支持全局配置,同時支持多種環(huán)境下的部署。
4)易用性
提供了鏈上各種操作的接口,以及各種主流編程語言(例如Java、python、go)的sdk。
3.1.3 WeIdentity基于區(qū)塊鏈的實體身份標識及可信數(shù)據(jù)交換解決方案
WeIdentity秉承多中心、開源開放、隱私保護、可移植性、互操作性和可擴展性的設(shè)計理念,給予實體一個數(shù)字身份,區(qū)塊鏈提供這個數(shù)字身份的安全性和可靠性,同時保證實體對象之間數(shù)據(jù)交換、訪問授權(quán)的安全。WeIdentity作為鏈接多個垂直行業(yè)領(lǐng)域的分布式商業(yè)基礎(chǔ)設(shè)施,以及解決跨機構(gòu)的信任問題上,具有很大的潛力[8]。
3.2.1 系統(tǒng)架構(gòu)
區(qū)塊鏈合同管理系統(tǒng)的架構(gòu)如圖2,主要分為5層:
圖2 區(qū)塊鏈合同管理系統(tǒng)的架構(gòu)
1)合同數(shù)據(jù)來源
合同的類型有很多,在協(xié)同制造業(yè)中,主要分為采購合同、銷售合同等等,故根據(jù)數(shù)據(jù)源的不同,相應(yīng)的合同模板也不同。得益于Fisco bcos的多群組架構(gòu),可以根據(jù)合同的業(yè)務(wù)類型劃分群組。有效的把將不同業(yè)務(wù)的數(shù)據(jù)隔離,既便于維護,又能防止數(shù)據(jù)污染。
2)應(yīng)用層
主要包括合同錄入、合同變更、合同審批和合同作廢等核心業(yè)務(wù)操作。合同錄入,主要是合同要素數(shù)據(jù)的錄入比如:合同內(nèi)容、合同類型、有效時間等;合同變更,主要是合同要素的變更;合同審批,包括定義審批人和發(fā)起審批流程等操作;合同作廢主要是取消合同有效性。
3)接口服務(wù)層
主要包括單簽服務(wù)、溯源服務(wù)、多簽服務(wù)和合同管理等為應(yīng)用層造作服務(wù)的接口。單簽服務(wù)主要是針對一級審批流程的接口服務(wù);多簽服務(wù)針對多級審批(多方參與)的接口服務(wù);溯源服務(wù)是根據(jù)合同號提供對該合同從擬定到生效過程的信息追蹤服務(wù);合同管理,主要有合同的查詢、錄入、變更和失效以及審批流程發(fā)起等業(yè)務(wù)接口服務(wù)。
4)鏈數(shù)據(jù)交互層
主要智能合約包括模板合約集、憑證合約集,以及WeIdentity、Fisco bcos提供的Java sdk。這一層主要是weidentity的智能合約集包括WeIdContract、CptController、Evidence等重要合約,通過weidentity提供的sdk來觸發(fā)。
5)區(qū)塊鏈層
主要負責區(qū)塊鏈網(wǎng)絡(luò)的搭建部署和管理。管理主要包括交易審計、節(jié)點管理、合約管理、私鑰管理以及系統(tǒng)權(quán)限的管理。Webase中間件提供了區(qū)塊鏈可視化的管理平臺以及接口,大大的降低區(qū)塊鏈的維護和監(jiān)控的難度。
(1)交易審計,記錄著鏈上的交易信息、異常信息和異常合約。
(2)節(jié)點管理,管理著節(jié)點的信息,允許修改節(jié)點的類型、增加節(jié)點前置。
(3)合約管理,管理著智能合約,包括開發(fā)、部署和交易等等。
(4)私鑰管理,管理鏈上用戶的導(dǎo)入導(dǎo)出。
3.2.2 基于WeIdentity sdk下的多簽算法流程圖
基于WeIdentity的底層實現(xiàn)多方簽名的流程描述:
1)公司A、B、C臨時組成一個組織union。
2)為公司A、B、C以及組織union分別創(chuàng)建對應(yīng)weid。
3)創(chuàng)建并注冊憑證模板(根據(jù)實際需要)。
4)為公司A、B、C根據(jù)同一個模板生成3份憑證(用戶交互的時候相當于簽名的過程)。
5)最后用組織union的私鑰對3份憑證組成的List數(shù)據(jù)進行簽名返回一個最終的憑證。(用戶看到的應(yīng)該是憑證的hash)。
6)用戶用的是組織的數(shù)據(jù)來驗證最終生成的合同憑證是否有效。
圖3 多簽算法流程圖
3.2.3 基于WeIdentity和Fisco bcos sdk下的溯源算法流程圖
溯源算法流程描述:
前提:建立合同與鏈上交易的關(guān)聯(lián)關(guān)系并存到數(shù)據(jù)庫中方便提取。
1)根據(jù)合同去數(shù)據(jù)查詢相關(guān)的鏈上交易信息返回交易hash組成的List。
2)通過fisco bcos提供的sdk,獲取交易信息和交易回執(zhí)。
3)解析交易信息和交易回執(zhí),并獲取交易類型,交易發(fā)起者和時間戳等重要信息。
4)將3)中獲取的信息組合一個數(shù)據(jù)集合。
5)所有交易的數(shù)據(jù)集按交易的時間戳先后排序,按照時間順序的發(fā)展,可以看到一份數(shù)字合同生命周期的經(jīng)歷的所有鏈上操作。
3.2.4 跨機構(gòu)業(yè)務(wù)協(xié)同流程
合同從制定開始就不再是單方參與,而是是多方參與,例如公司A、B、C先商議合同內(nèi)容,隨機選舉一個公司進行合同錄入,假設(shè)為公司A,則有公司A通過合同系統(tǒng)客戶端根據(jù)原商議內(nèi)容,錄入了一份合同,并向公司B、C發(fā)送審核流程,合同數(shù)據(jù)存在鏈上,通過區(qū)塊鏈網(wǎng)絡(luò)對節(jié)點的數(shù)據(jù)通步,公司B、C節(jié)點通過本地的系統(tǒng)客戶端,很快能查看到合同信息,若同意則雙方線上對合同數(shù)據(jù)進行簽名存證。若不同意,可以駁回再商議,或者更新合同信息并反向發(fā)送審核流程如圖5所示,合同數(shù)字憑證生成之后,各個公司可以通過系統(tǒng)的校驗服務(wù)來校驗合同的有效性、合法性,也可以通過追溯服務(wù),去看合同的過往改動如圖6所示。注意:
圖4 溯源算法流程圖
圖5 跨機構(gòu)業(yè)務(wù)協(xié)同流程
圖6 合同追溯、校驗服務(wù)
1)合同更新后,重新上鏈(相當于創(chuàng)建了新的合同模板代替原來的),區(qū)塊鏈上的節(jié)點數(shù)據(jù)同步,所有參與者都能從鏈上查詢到更新后的合同,最后合同更改方重新發(fā)起合同審批流程,所有參與者對新的合同進行簽審。
2)官方機構(gòu)的作用,即使是數(shù)字合同,也不能夠脫離法律的約束和監(jiān)管。所以整個區(qū)塊鏈網(wǎng)絡(luò)一定會需要一個或多個受到國家認可的機構(gòu)加入作為共識節(jié)點,官方機構(gòu)根據(jù)合同內(nèi)容來判斷合同的合法性,一旦簽名,意味著合同具備了法律效應(yīng)。
本文通過對傳統(tǒng)、信息化合同管理系統(tǒng)特點的分析,結(jié)合了區(qū)塊鏈技術(shù)的特點以及適用場景,展開了區(qū)塊鏈技術(shù)的合同協(xié)同管理系統(tǒng)的設(shè)計研究,以解決當下合同管理系統(tǒng)無法跨機構(gòu)協(xié)同、建立各方的信任關(guān)系,以及合同數(shù)據(jù)易遭篡改、不同種類合同數(shù)據(jù)相互污染等問題。目前合同協(xié)同管理系統(tǒng)的進展情況,利用weIdentity和fisco bcos提供的sdk,實現(xiàn)核心業(yè)務(wù)算法(多簽、溯源),其余的鏈上操作服務(wù)由fisco bcos提供的接口做支撐;在這些基礎(chǔ)上提出了合同管理系統(tǒng)的跨機構(gòu)進行合同擬定、更新、審批以及作廢的協(xié)同流程。但是目前的系統(tǒng)設(shè)計仍存在以下主要問題:
1)大量的業(yè)務(wù)邏輯都放到了鏈上進行,會導(dǎo)致區(qū)塊數(shù)量漲速快,長此以往,對內(nèi)存的消耗增加,進而導(dǎo)致系統(tǒng)的性能下降。
2)多方參與去維護一份電子合同,業(yè)務(wù)流程中必然會存在并發(fā)問題。
3)系統(tǒng)涉及了大量的權(quán)限分配問題,包括節(jié)點準入機制、鏈上用戶和合同系統(tǒng)用戶權(quán)限等等,如何管理權(quán)限需要進一步的思考設(shè)計。
后續(xù)工作將進一步研究區(qū)塊鏈技術(shù)以及合同管理的業(yè)務(wù)模型,通過技術(shù)的深入、優(yōu)化原有合同管理的業(yè)務(wù)模型或者引入新的合同管理模型,來優(yōu)化系統(tǒng)性能以及用戶體驗,合同協(xié)同系統(tǒng)才能離實際落地更近一步。