方秋水,徐 鋒,陳衛(wèi)國
(廣東嶺南通股份有限公司,廣東 廣州 510110)
近年來隨著“比特幣”在全世界范圍內(nèi)的興起,“比特幣”受到各國用戶的追捧,越來越多大公司、政府組織對(duì)“比特幣”所使用的區(qū)塊鏈(Blockchain)技術(shù)進(jìn)行深入的探索和研究[1]。區(qū)塊鏈技術(shù)因其去中心化和防篡改等特點(diǎn)被業(yè)內(nèi)人士認(rèn)為是一種最新且最具顛覆性的技術(shù);同時(shí),技術(shù)專家預(yù)測(cè),區(qū)塊鏈技術(shù)將與移動(dòng)互聯(lián)網(wǎng)、云計(jì)算、大數(shù)據(jù)等新技術(shù)一起掀起第四次產(chǎn)業(yè)革命[2]。
當(dāng)前,國內(nèi)的城市一卡通主要使用實(shí)體卡作為交易介質(zhì),向卡片使用者提供公共交通、小額支付、電子票據(jù)等非現(xiàn)金支付應(yīng)用。但隨著近幾年智能手機(jī)終端的普及、移動(dòng)網(wǎng)絡(luò)的全面覆蓋,移動(dòng)支付的受眾群體已越來越廣泛,很多用戶在日常生活中已習(xí)慣于使用手機(jī)支付等方式進(jìn)行小額消費(fèi)。為了順應(yīng)客戶群體的使用習(xí)慣及滿足用戶的便利需求,通卡公司發(fā)行支持移動(dòng)支付的虛擬卡需求也越來越迫切。通卡公司需要考慮如何開展虛擬卡的發(fā)行、消費(fèi)結(jié)算等業(yè)務(wù),特別是虛擬卡在安全性、結(jié)算、交易速度等核心業(yè)務(wù)方面的保障,以及虛擬卡應(yīng)用建設(shè)等,這些都需要使用新技術(shù)、新方案來進(jìn)行解決。
由于虛擬卡是針對(duì)持卡用戶發(fā)行的城市通卡,其涉及線下服務(wù)、商品買賣的支付場(chǎng)景,公共交通服務(wù)是其中核心的消費(fèi)場(chǎng)景。支付場(chǎng)景決定交易時(shí)間必須高效完成。另一方面,考慮到目前虛擬卡的主要交易方是城市一卡通公司、公共交通服務(wù)商、大型商戶等,這些參與方都是虛擬卡業(yè)務(wù)的堅(jiān)實(shí)基礎(chǔ)以及受益方,同時(shí)這些單位、組織、公司具有較高的可信度,同時(shí)具備大型的信息系統(tǒng)、交易系統(tǒng)以及網(wǎng)絡(luò)處理能力。因此一卡通應(yīng)用系統(tǒng)可采用聯(lián)盟鏈的方式進(jìn)行系統(tǒng)的設(shè)計(jì)實(shí)施。通卡公司作為卡片發(fā)行方,對(duì)卡片及用戶進(jìn)行管理。通卡公司、公共交通服務(wù)提供商、大型商戶作為聯(lián)盟成員,負(fù)責(zé)對(duì)虛擬卡的各種交易進(jìn)行記賬和確認(rèn)。小型商戶以及持卡用戶作為使用者參與消費(fèi)。在虛擬卡的生命周期中,最核心的是資金的流轉(zhuǎn)??梢哉f,虛擬卡的生命周期其實(shí)就是資金在通卡公司、服務(wù)提供商、商戶以及消費(fèi)者之間的轉(zhuǎn)移過程。虛擬卡的資金流向如圖1所示。
圖2 系統(tǒng)架構(gòu)圖
圖1 虛擬卡的資金流向
區(qū)塊鏈?zhǔn)且环N鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu),是將單個(gè)數(shù)據(jù)區(qū)塊以時(shí)間為序相連的組合方式。而Hyperledger Fabric技術(shù)是由The Linux Foundation主辦的Hyperledger項(xiàng)目之一。該技術(shù)作為開發(fā)模塊化體系結(jié)構(gòu)的區(qū)塊鏈應(yīng)用程序基礎(chǔ),以便諸如共識(shí)和會(huì)員服務(wù)等組件可以即插即用。它使用容器技術(shù)來托管構(gòu)成系統(tǒng)應(yīng)用邏輯的智能合約(也稱為鏈代碼)。簡而言之,Hyperledger Fabric是為企業(yè)構(gòu)建的領(lǐng)先的開源、通用區(qū)塊鏈結(jié)構(gòu)[3-5]。以Hyperledger白皮書為基礎(chǔ)依據(jù),Hyperledger涉及到的超級(jí)賬本內(nèi)容包括了區(qū)塊鏈(Blockchain)、鏈碼(Chaincode)、成員權(quán)限管理(Membership)三大組件[6-9]。
基于Hyperledger Fabric的虛擬交通一卡通應(yīng)用系統(tǒng)架構(gòu)自下而上可劃分為4個(gè)層次,分別是接口層、業(yè)務(wù)層、集成層、視窗層,如圖2所示。
3.1.1接口層
接口層是指基于Hyperledger Fabric的虛擬交通一卡通應(yīng)用系統(tǒng)與所有外部系統(tǒng)的接口。其中應(yīng)用系統(tǒng)所對(duì)接的基礎(chǔ)設(shè)施主要是核心交易區(qū)塊鏈系統(tǒng),接口層可分為用戶管理接口、交易接口、數(shù)據(jù)查詢接口、區(qū)塊鏈網(wǎng)絡(luò)管理接口等4類業(yè)務(wù)類型接口。
3.1.2業(yè)務(wù)層
業(yè)務(wù)層包括了系統(tǒng)功能子系統(tǒng),集中、直觀地體現(xiàn)虛擬交通卡區(qū)塊鏈系統(tǒng)的各項(xiàng)業(yè)務(wù)功能。分別為用戶注冊(cè)、用戶登錄、區(qū)塊鏈賬戶的相關(guān)業(yè)務(wù)、系統(tǒng)管理。
3.1.3集成層
基于系統(tǒng)功能層規(guī)劃出集成各個(gè)子系統(tǒng)所需的系統(tǒng)功能即集成層,主要分為頁面集成和數(shù)據(jù)處理集成。
3.1.4視窗層
基于Hyperledger Fabric的虛擬交通一卡通應(yīng)用系統(tǒng)的視窗層是與用戶直接接觸的,一是可以顯示數(shù)據(jù),二是為了接收用戶所輸入的數(shù)據(jù),可以為用戶提供便于操作的交互式界面。視窗層主要分為虛擬交通一卡通APP視窗和后臺(tái)視窗。
基于Hyperledger Fabric的虛擬交通一卡通應(yīng)用的技術(shù)架構(gòu)如圖3所示。
核心組件層包含了應(yīng)用數(shù)據(jù)庫和基于IBM開源的Hyperledger Fabric區(qū)塊鏈兩個(gè)組件。應(yīng)用數(shù)據(jù)庫存儲(chǔ)的主要是應(yīng)用相關(guān)信息。區(qū)塊鏈層采用鍵值對(duì)數(shù)據(jù)庫,存儲(chǔ)區(qū)塊鏈相關(guān)數(shù)據(jù)[10-11]。
應(yīng)用服務(wù)層既包含使用RESTful、socket/ws接口、JDBC等持久化技術(shù)的J2EE Web應(yīng)用,也包含數(shù)據(jù)庫訪問組件。
圖3 技術(shù)架構(gòu)圖
客戶端是為了用戶能夠使用瀏覽器、手機(jī)兩種途徑進(jìn)行系統(tǒng)交互而設(shè)計(jì)的,其中表現(xiàn)層與業(yè)務(wù)邏輯層通過HTTP/HTML協(xié)議進(jìn)行交互,而移動(dòng)客戶端可通過socket接口進(jìn)行數(shù)據(jù)獲取。
基于Hyperledger Fabric的虛擬交通一卡通應(yīng)用系統(tǒng)在功能上主要分為前臺(tái)管理和后臺(tái)處理兩大塊功能模板,如圖4所示。
圖4 功能結(jié)構(gòu)圖
前臺(tái)管理功能主要是基于Web界面展示的虛擬交通一卡通操作和查詢功能,包括用戶管理、虛擬卡管理、查詢管理和系統(tǒng)管理等4大模塊。
后臺(tái)處理功能是針對(duì)虛擬交通一卡通用戶管理、充值、消費(fèi)等業(yè)務(wù)進(jìn)行后臺(tái)運(yùn)行數(shù)據(jù)的統(tǒng)計(jì)匯總,以供統(tǒng)計(jì)查詢。另外,借助區(qū)塊鏈天然的抗抵賴特性,能夠保證虛擬交通一卡通的交易發(fā)生滯后不會(huì)被篡改,所以清分結(jié)算可以由計(jì)算機(jī)自動(dòng)化完成,達(dá)到了實(shí)時(shí)清分結(jié)算的目的。
前臺(tái)管理功能和后臺(tái)處理功能的實(shí)現(xiàn)依賴于底層搭建的Hyperledger Fabric支撐平臺(tái),而該支撐平臺(tái)是根據(jù)虛擬交通一卡通業(yè)務(wù)的需要在系統(tǒng)上進(jìn)行搭建的。
基于Hyperledger Fabric的虛擬交通一卡通應(yīng)用系統(tǒng)的數(shù)據(jù)架構(gòu)主要是對(duì)系統(tǒng)中數(shù)據(jù)的靜態(tài)及動(dòng)態(tài)進(jìn)行說明,靜態(tài)數(shù)據(jù)結(jié)構(gòu)主要是將系統(tǒng)所產(chǎn)生的數(shù)據(jù)按照數(shù)據(jù)存儲(chǔ)位置分為兩類,動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)是指主要的數(shù)據(jù)流程圖,將虛擬交通一卡通業(yè)務(wù)過程中所處理的輸入、輸出以數(shù)據(jù)流的方式進(jìn)行有機(jī)集成,形成業(yè)務(wù)數(shù)據(jù)流程圖。
3.4.1靜態(tài)數(shù)據(jù)架構(gòu)
基于Hyperledger Fabric的虛擬交通一卡通應(yīng)用系統(tǒng)的靜態(tài)數(shù)據(jù)可分為兩類,如圖5所示。
圖5 靜態(tài)數(shù)據(jù)架構(gòu)
(1)虛擬交通一卡通應(yīng)用數(shù)據(jù)包括了用戶信息、發(fā)卡數(shù)據(jù)、兌換記錄、充值數(shù)據(jù)、消費(fèi)記錄、日志數(shù)據(jù)、區(qū)塊鏈節(jié)點(diǎn)數(shù)據(jù)等;
(2)虛擬交通一卡通區(qū)塊鏈結(jié)構(gòu)數(shù)據(jù)包括賬戶數(shù)據(jù)和歷史記錄兩部分。
3.4.2動(dòng)態(tài)數(shù)據(jù)架構(gòu)
基于Hyperledger Fabric的虛擬交通一卡通應(yīng)用系統(tǒng)的動(dòng)態(tài)數(shù)據(jù)構(gòu)架如圖6所示。
圖6 動(dòng)態(tài)數(shù)據(jù)架構(gòu)
(1)APP發(fā)送注冊(cè)、充值、兌換請(qǐng)求到虛擬交通一卡通服務(wù)平臺(tái),服務(wù)平臺(tái)會(huì)通過用戶驗(yàn)證、注冊(cè)處理、充值處理、兌換處理來完成對(duì)請(qǐng)求數(shù)據(jù)的消費(fèi),其中各種需要記錄的數(shù)據(jù)會(huì)提交到應(yīng)用數(shù)據(jù)庫,需要區(qū)塊鏈服務(wù)平臺(tái)進(jìn)一步處理的數(shù)據(jù)會(huì)發(fā)往區(qū)塊鏈服務(wù)平臺(tái)進(jìn)行處理。
(2)APP會(huì)將消費(fèi)請(qǐng)求發(fā)往最近的區(qū)塊鏈服務(wù)平臺(tái)進(jìn)行處理,區(qū)塊鏈服務(wù)平臺(tái)將處理好需要保留的數(shù)據(jù)并存儲(chǔ)到其分布式數(shù)據(jù)庫中。
區(qū)塊鏈技術(shù)具有分布式數(shù)據(jù)存儲(chǔ)、點(diǎn)對(duì)點(diǎn)傳輸、共識(shí)機(jī)制、加密算法、去中心化等優(yōu)點(diǎn)。通過區(qū)塊鏈技術(shù)解決公交一卡通虛擬卡的發(fā)行及交易問題,結(jié)合新的技術(shù)提供全新的公交一卡通解決方案。采用區(qū)塊鏈將通卡公司、公共交通服務(wù)提供商、大型商戶等企業(yè)內(nèi)的信息化治理提升到企業(yè)間的信息化治理,為數(shù)字資產(chǎn)跨企業(yè)間交易實(shí)現(xiàn)提供了技術(shù)保障。