肖夢(mèng)雪, 左 力, 徐志錕, 田金簫
1(西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院, 成都 611756)
2(西南交通大學(xué) 計(jì)算機(jī)與人工智能學(xué)院, 成都 611756)
鐵路運(yùn)輸是國際貿(mào)易主要運(yùn)輸方式之一, 具有運(yùn)量大、連續(xù)性高、風(fēng)險(xiǎn)小等優(yōu)點(diǎn). 傳統(tǒng)的鐵路物流票據(jù)是運(yùn)單, 并不具有作為物權(quán)憑證的能力. 為確保貨物貿(mào)易的順利進(jìn)行, 在跨境運(yùn)輸中采用具有物權(quán)憑證功能的多式聯(lián)運(yùn)“一單制”提單已成為必然趨勢. 然而, 由于紙質(zhì)提單存在流轉(zhuǎn)成本高、速度慢、安全性低等問題, 極大地影響了貨物運(yùn)輸和資金流轉(zhuǎn)的效率, 提單電子化已然成為提單發(fā)展的重要方向.
目前, 電子數(shù)據(jù)交換(electronic data interchange,EDI)技術(shù)[1]是提單電子化的主要途徑, 然而, 基于EDI技術(shù)的電子提單系統(tǒng)存在以下弊端.
(1)效率低. 數(shù)據(jù)信息的統(tǒng)計(jì)與分析都集中在EDI網(wǎng)絡(luò)中心進(jìn)行, 信息傳輸效率低.
(2)安全性低. 采用中心化的B/S或C/S架構(gòu), 存在單點(diǎn)故障和數(shù)據(jù)篡改問題.
(3)公信力低. 文獻(xiàn)[2]指出, EDI系統(tǒng)中多機(jī)構(gòu)、多地域間的信任只能依靠第三方機(jī)構(gòu)建立, 然而這類機(jī)構(gòu)卻很難在世界各地同時(shí)取得話語權(quán)與公信力. 因此, 在EDI系統(tǒng)中, 提單不具有金融屬性. 這對(duì)電子提單跨機(jī)構(gòu)、跨地域的審查和價(jià)值轉(zhuǎn)移造成了阻礙.
而區(qū)塊鏈技術(shù)具有去中心化、高透明度、去信任、不可篡改的特性, 為上訴問題提供了有效解決方案. 目前已經(jīng)有學(xué)者對(duì)區(qū)塊鏈技術(shù)應(yīng)用于紙質(zhì)提單電子化做了相關(guān)研究, 如文獻(xiàn)[3,4]都提出了在國際多式聯(lián)運(yùn)中使用電子提單的構(gòu)想, 闡明了基于區(qū)塊鏈的電子提單系統(tǒng)的可行性. 成都陸港公司推出了針對(duì)提單金融服務(wù)的區(qū)塊鏈提單一點(diǎn)通, 運(yùn)用區(qū)塊鏈的防篡改優(yōu)勢與金融機(jī)構(gòu)銀行等進(jìn)行提單質(zhì)押貸款交易, 但僅限于公司與合作機(jī)構(gòu)內(nèi)部使用. 因此, 我們需要在此基礎(chǔ)上拓展業(yè)務(wù)主體均使用的統(tǒng)一區(qū)塊鏈電子提單, 推動(dòng)多式聯(lián)運(yùn)“一單制”的發(fā)展.
基于國際鐵路物流迫切的落地需求和區(qū)塊鏈技術(shù)的優(yōu)勢, 本文首先參考現(xiàn)有鐵路運(yùn)單與紙質(zhì)提單的功能與制式, 設(shè)計(jì)了一套電子提單數(shù)據(jù)結(jié)構(gòu); 其次, 依據(jù)EDI系統(tǒng)電子提單流轉(zhuǎn)模式[5]與當(dāng)前國際貿(mào)易規(guī)則,制定了物權(quán)轉(zhuǎn)移業(yè)務(wù)邏輯; 最后, 實(shí)現(xiàn)了一個(gè)多方監(jiān)管共同維護(hù)的區(qū)塊鏈電子提單系統(tǒng).
電子提單不同于以紙面為媒介的傳統(tǒng)提單, 其內(nèi)容以電子數(shù)據(jù)的形式存在, 可通過電子計(jì)算機(jī)通訊的形式傳輸. 文獻(xiàn)[6]指出, 電子提單在《海上貨物運(yùn)輸公約草案》中被定義為“可流通性電子記錄”, 具有與紙質(zhì)提單等價(jià)的功能, 包括: 貨物交付、運(yùn)輸合同證明、承運(yùn)人接收貨物證明、物權(quán)憑證與提單流轉(zhuǎn)、抵押貸款與單據(jù)交易.
目前, 鐵路電子提單發(fā)展停留在紙質(zhì)提單電子化階段, 其流轉(zhuǎn)模式和相關(guān)法制還不成熟, 缺少一個(gè)完善的電子提單國際貿(mào)易平臺(tái).
區(qū)塊鏈(Blockchain)[7]本質(zhì)是一個(gè)去中心化的、不可篡改的共享賬本. 使用區(qū)塊鏈技術(shù)在不可信網(wǎng)絡(luò)環(huán)境中構(gòu)建多方信任的分布式系統(tǒng), 將為企業(yè)和用戶提供更低的溝通整合成本和更高的業(yè)務(wù)效率. 除此之外, 國家的支持為基于區(qū)塊鏈技術(shù)的電子提單的實(shí)施提供了政策保障. 2016年工信部發(fā)布了區(qū)塊鏈白皮書[7],2019年國家互聯(lián)網(wǎng)信息辦公室發(fā)布了《區(qū)塊鏈信息服務(wù)管理規(guī)定》, 目前, 區(qū)塊鏈已上升為國家戰(zhàn)略.
與傳統(tǒng)的電子提單流轉(zhuǎn)平臺(tái)EDI系統(tǒng)相比, 區(qū)塊鏈技術(shù)具有以下優(yōu)勢: 一是去信任, 能夠在多地區(qū)、多機(jī)構(gòu)之間建立信任關(guān)系; 二是去中心, 區(qū)塊鏈中數(shù)據(jù)分布式存儲(chǔ), 邊緣數(shù)據(jù)訪問效率高; 三是不可篡改與可追溯, 能夠解決貨物溯源與物權(quán)歸屬問題; 四是高透明度,鏈上所有信息和業(yè)務(wù)規(guī)則能被參與方監(jiān)督和驗(yàn)證, 合法用戶可憑借鏈?zhǔn)浇Y(jié)構(gòu)追溯訂單本源.
超級(jí)賬本(hyperledger fabric)[8,9]是一種模塊化可插拔的區(qū)塊鏈實(shí)施方案, 從邏輯上結(jié)合了3個(gè)范疇, 即成員管理、區(qū)塊鏈和智能合約(鏈碼). 成員管理功能在準(zhǔn)入型區(qū)塊鏈中實(shí)現(xiàn)權(quán)限控制, 而合法的參與者只能通過智能合約記賬. 智能合約[10]是參與方之間必須執(zhí)行約定內(nèi)容的協(xié)議, 執(zhí)行過程不需要第三方干預(yù), 能夠避免任何參與方欺詐.
電子提單系統(tǒng)整體框架, 由下至上分為基礎(chǔ)技術(shù)層、系統(tǒng)核心層和應(yīng)用層, 如圖1所示.
圖1 電子提單系統(tǒng)整體框架
在基礎(chǔ)技術(shù)層中, P2P網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)了事務(wù)數(shù)據(jù)傳輸和區(qū)塊同步; TLS協(xié)議實(shí)現(xiàn)了對(duì)交易信息的驗(yàn)證以及安全保密通信; LevelDB數(shù)據(jù)庫和CouchDB數(shù)據(jù)庫則用于數(shù)據(jù)存儲(chǔ).
在系統(tǒng)核心層中, 聯(lián)盟管理者 (member service provider, MSP)進(jìn)行聯(lián)盟成員證書以及權(quán)限管理; 海關(guān)和監(jiān)察部門對(duì)合約執(zhí)行結(jié)果背書, 生成相應(yīng)事務(wù)信息;共識(shí)節(jié)點(diǎn)集群接受事務(wù)信息, 通過共識(shí)協(xié)議實(shí)現(xiàn)對(duì)區(qū)塊的更新和同步.
在應(yīng)用層中, 智能合約定義了系統(tǒng)的業(yè)務(wù)邏輯, 以網(wǎng)頁的方式向用戶提供服務(wù), 包括賬戶登錄/注冊(cè)、提單發(fā)布、金融質(zhì)押等. 其中, 用戶分為普通用戶(托運(yùn)人、承運(yùn)人、收貨人)、金融機(jī)構(gòu)和海關(guān)3種角色. 各個(gè)角色具體職能如下.
托運(yùn)方: 發(fā)起托運(yùn)請(qǐng)求, 提供貨物信息, 向海關(guān)提交申請(qǐng), 向金融機(jī)構(gòu)貸款還款.
承運(yùn)方: 運(yùn)輸貨物, 提供運(yùn)輸信息.
收貨人: 向提單持有方匯款獲得貨物支配權(quán), 從承運(yùn)人處提貨結(jié)束提單, 以及向金融機(jī)構(gòu)抵押贖回.
金融機(jī)構(gòu): 提供供應(yīng)鏈金融功能, 包括資金暫存與金融質(zhì)押.
海關(guān)和檢查部門: 對(duì)線上信息和線下貨物實(shí)體的一致性進(jìn)行核實(shí), 在系統(tǒng)中更新提單審核信息.
2.2.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)
參考《鐵路貨物運(yùn)輸國際公約》與《國際鐵路貨物聯(lián)運(yùn)協(xié)定》, 本系統(tǒng)設(shè)計(jì)了一套流通于電子提單平臺(tái)的數(shù)據(jù)結(jié)構(gòu), 包括賬戶和提單兩個(gè)部分.
(1) 賬戶用于保存用戶信息, 其內(nèi)容如表1所示.系統(tǒng)為每個(gè)用戶記錄了一個(gè)賬戶, 內(nèi)容包括用戶ID、角色、貨物質(zhì)量、貨運(yùn)能力、資金以及身份證書的哈希值. 其中貨運(yùn)能力、貨物、剩余資金等信息用于背書節(jié)點(diǎn)驗(yàn)證交易是否可被執(zhí)行; 證書的哈希值用于驗(yàn)證交易發(fā)起者是否是資產(chǎn)持有人.
表1 賬戶數(shù)據(jù)結(jié)構(gòu)
(2) 電子提單數(shù)據(jù)結(jié)構(gòu)記錄了交易的參與者、貨物所需運(yùn)力以及提單持有人的信息. 此外, 還記錄了提單當(dāng)前狀態(tài)、審核狀態(tài)和貸款抵押狀態(tài), 以及這些狀態(tài)對(duì)應(yīng)賬戶. 提單簽發(fā)后, 用戶可根據(jù)貨物狀態(tài)對(duì)提單內(nèi)容修改和更新, 提單操作將作為交易被打包上傳至區(qū)塊鏈, 具體結(jié)構(gòu)如表2.
表2 提單數(shù)據(jù)結(jié)構(gòu)
2.2.2 物權(quán)轉(zhuǎn)移業(yè)務(wù)邏輯設(shè)計(jì)
根據(jù)實(shí)際運(yùn)輸場景和物權(quán)轉(zhuǎn)移流程, 基于區(qū)塊鏈的電子提單系統(tǒng)業(yè)務(wù)邏輯如圖2所示, 可分為3大主要業(yè)務(wù)以及其他業(yè)務(wù), 其中主要業(yè)務(wù)包括提單簽發(fā)、金融質(zhì)押和結(jié)款提貨.
圖2 電子提單系統(tǒng)業(yè)務(wù)邏輯
(1) 提單簽發(fā)
提單簽發(fā)涉及到電子提單的初始化以及提單審核.如圖3所示, 電子提單簽發(fā)流程如下.
圖3 提單簽發(fā)流程圖
1) 托運(yùn)人提出托運(yùn)申請(qǐng), 區(qū)塊鏈平臺(tái)對(duì)該申請(qǐng)記鏈, 并生成待審核提單.
2) 海關(guān)審核貨物與用戶信息后, 更新提單中的審核狀態(tài), 并將更新后的提單發(fā)布到區(qū)塊鏈平臺(tái).
3) 收貨人查詢到該提單通過審核后可付款, 貨款暫存至金融機(jī)構(gòu), 區(qū)塊鏈平臺(tái)記鏈并更新提單的狀態(tài).
4) 托運(yùn)人確認(rèn)貨款已付至金融機(jī)構(gòu)后, 對(duì)貨物裝載并更新提單狀態(tài), 此時(shí)提單的持有人為托運(yùn)人.
5) 區(qū)塊鏈平臺(tái)更新提單狀態(tài), 提單簽發(fā)完畢.
(2) 金融質(zhì)押
賬本數(shù)據(jù)的不可篡改性和同構(gòu)性, 使提單具備物權(quán)屬性, 金融質(zhì)押成為可能. 如圖4所示, 金融質(zhì)押流程如下.
圖4 金融質(zhì)押流程圖
1) 抵押方, 即托運(yùn)人, 提出貸款申請(qǐng).
2) 借貸方, 即金融機(jī)構(gòu), 在鏈上查詢當(dāng)前提單的貸款申請(qǐng)情況, 并驗(yàn)證賬號(hào)的信用.
3) 金融機(jī)構(gòu)審核并完成轉(zhuǎn)賬操作后, 物權(quán)將轉(zhuǎn)移給借貸方, 即提單的持有人變?yōu)榻鹑跈C(jī)構(gòu).
4) 區(qū)塊鏈平臺(tái)更新提單狀態(tài), 金融質(zhì)押完畢.
(3) 結(jié)款提貨
承運(yùn)人運(yùn)輸貨物至目的地, 此時(shí)提單持有者為托運(yùn)人, 貨款代存在金融機(jī)構(gòu). 如圖5所示, 結(jié)款提貨流程如下.
圖5 結(jié)款提貨流程圖
1) 收貨人查詢貨物到站后, 可提出提貨申請(qǐng).
2) 金融機(jī)構(gòu)將代為暫存的貨款支付給托運(yùn)人, 并申請(qǐng)將物權(quán)轉(zhuǎn)移至收貨人, 銀行結(jié)款成功.
3) 區(qū)塊鏈平臺(tái)驗(yàn)證申請(qǐng), 更新提單狀態(tài).
4) 承運(yùn)人確認(rèn)提單持有者, 收貨人提貨成功.
(4) 其他業(yè)務(wù)
系統(tǒng)提供的其他業(yè)務(wù)包括注冊(cè)/登錄業(yè)務(wù)、海關(guān)審核業(yè)務(wù)、查詢賬戶/提單業(yè)務(wù)以及區(qū)塊查詢業(yè)務(wù).
基于區(qū)塊鏈的電子提單系統(tǒng)由3大部分組成, 分別為前端、后端和區(qū)塊鏈網(wǎng)絡(luò).
(1) 基于區(qū)塊鏈的電子提單系統(tǒng)前端
電子提單系統(tǒng)前端頁面設(shè)計(jì)采用HTML5、 CSS3以及JavaScript技術(shù). 下面是電子提單系統(tǒng)的前端組成與功能描述.
1) 首頁: 實(shí)時(shí)更新區(qū)塊, 提供區(qū)塊查詢功能.
2) 用戶注冊(cè)頁面: 初始化賬戶.
3) 普通用戶業(yè)務(wù)辦理頁面: 提供提單發(fā)布、付款、發(fā)貨、運(yùn)輸以金融質(zhì)押等業(yè)務(wù).
4) 海關(guān)審核頁面: 提單審核. 海關(guān)以及檢查部門在完成貨物審核后, 通過該頁面使提單生效.
5) 銀行處理頁面: 審核貸款、抵押業(yè)務(wù).
(2) 基于區(qū)塊鏈的電子提單系統(tǒng)后端
電子提單系統(tǒng)后端由Gin框架實(shí)現(xiàn), Gin是一個(gè)輕量級(jí)HTTP Web框架, 作用是創(chuàng)建路由引擎. 當(dāng)網(wǎng)頁發(fā)送請(qǐng)求某個(gè)路徑時(shí), 后端執(zhí)行相應(yīng)處理函數(shù), 并返回結(jié)果至頁面中. 其函數(shù)接口描述如表3所示.
表3 后端函數(shù)接口描述
(3) 區(qū)塊鏈網(wǎng)絡(luò)
電子提單系統(tǒng)運(yùn)行在一組經(jīng)過認(rèn)證的參與者之間,每筆交易都包含發(fā)起者的證書, 區(qū)塊鏈管理者可憑此進(jìn)行交易追溯. 故系統(tǒng)的可監(jiān)管性強(qiáng), 參與者帶來的風(fēng)險(xiǎn)較低. 基于此情況, 本論文考慮構(gòu)建部分同步通信模型, 要求系統(tǒng)能夠容忍故障錯(cuò)誤. 具體的軟件環(huán)境配置信息如表4所示, 在實(shí)現(xiàn)時(shí), 使用超級(jí)賬本提供聯(lián)盟鏈網(wǎng)絡(luò), 底層配置為Raft共識(shí)算法、Gossip數(shù)據(jù)分發(fā)協(xié)議以及LevelDB數(shù)據(jù)庫. 在應(yīng)用層, 通過編寫智能合約, 實(shí)現(xiàn)電子提單系統(tǒng)的業(yè)務(wù)邏輯, 智能合約函數(shù)接口描述如表5所示.
表4 軟件環(huán)境配置信息
表5 智能合約函數(shù)接口描述
在數(shù)據(jù)交互方面, 區(qū)塊鏈網(wǎng)絡(luò)、后端與前端之間的數(shù)據(jù)傳輸如圖6所示. 前端網(wǎng)頁發(fā)送請(qǐng)求參數(shù)至服務(wù)器, 服務(wù)器提交參數(shù)至區(qū)塊鏈網(wǎng)絡(luò)中的系統(tǒng)鏈碼、Fabric CA或用戶鏈碼, 并將請(qǐng)求結(jié)果返回給前端.
圖6 系統(tǒng)數(shù)據(jù)交互圖
圖7為提單發(fā)布頁面, 托運(yùn)人需提供托運(yùn)人ID、承運(yùn)人ID、收貨人ID、貨物信息等, 提交成功后系統(tǒng)將返回該提單ID. 圖8為海關(guān)審核頁面, 海關(guān)提供提單ID與自己的用戶ID完成貨運(yùn)提單的審核. 其他頁面操作與海關(guān)審核頁面類似, 使用提單ID和賬戶ID即可完成交易與查詢.
圖7 用戶注冊(cè)頁面
圖8 海關(guān)審核頁面
(1) 測試環(huán)境及配置
該系統(tǒng)中節(jié)點(diǎn)可分為對(duì)等節(jié)點(diǎn)(Peer)、排序服務(wù)節(jié)點(diǎn)(Orderer)、以及證書頒發(fā)機(jī)構(gòu)(CA). 其中Peer節(jié)點(diǎn)負(fù)責(zé)交易的執(zhí)行、背書與驗(yàn)證; Orderer節(jié)點(diǎn)采用Raft協(xié)議保持一致性, 組成共識(shí)集群, 負(fù)責(zé)交易的打包與排序; CA節(jié)點(diǎn)負(fù)責(zé)證書頒發(fā). 為實(shí)現(xiàn)物流信息數(shù)據(jù)共享及物權(quán)價(jià)值多方認(rèn)可, 在實(shí)際中, 節(jié)點(diǎn)分布于多地區(qū), 其中Orderer節(jié)點(diǎn)由海關(guān)和檢查機(jī)構(gòu)管理.
在系統(tǒng)的可用性及交易處理能力測試中, 使用Docker集群部署Peer與Orderer兩類節(jié)點(diǎn), 并為這些節(jié)點(diǎn)配置了證書. 此外, SDK為上層應(yīng)用, 能夠調(diào)用智能合約. 具體部署情況如表6所示.
表6 性能測試環(huán)境
同時(shí), 為滿足實(shí)際應(yīng)用需求, 限制區(qū)塊所含最大交易數(shù)為100, 單個(gè)交易最大為98 MB, 出塊時(shí)間不超過2 s.
(2) 測試內(nèi)容及測試結(jié)果
在容錯(cuò)能力方面, 共識(shí)集群采用Raft協(xié)議, 可容忍的故障共識(shí)節(jié)點(diǎn)數(shù)為總共識(shí)節(jié)點(diǎn)數(shù)的50%以內(nèi), 用戶讀寫具有強(qiáng)一致性, 符合應(yīng)用需求.
在性能方面, 測試內(nèi)容為提單發(fā)布(Invoke)業(yè)務(wù)性能與賬戶查詢(Query)業(yè)務(wù)性能, 指標(biāo)包括每秒交易數(shù)(TPS)、每秒查詢數(shù)(QPS)與平均響應(yīng)時(shí)間(ART).
可見, 隨著并發(fā)數(shù)增加, 平均響應(yīng)時(shí)間增長, TPS、QPS增加. 如圖9, 當(dāng)并發(fā)數(shù)為1 200時(shí), 系統(tǒng)TPS最大, 為182.1; 當(dāng)并發(fā)數(shù)為1 000時(shí), 系統(tǒng)QPS最大, 為6 310.3, 符合一般業(yè)務(wù)場景對(duì)并發(fā)數(shù)的需求. 在最大并發(fā)數(shù)下, 提單發(fā)布業(yè)務(wù)與賬戶查詢業(yè)務(wù)的平均響應(yīng)時(shí)間分別為5.616 s和0.517 s, 處于用戶普遍可容忍等待時(shí)間內(nèi), 滿足提單業(yè)務(wù)辦理的普遍要求.
圖9 性能測試結(jié)果
并且, 隨著并發(fā)數(shù)的增加, 系統(tǒng)CPU占用率與內(nèi)存占用率皆<20%, 在正常范圍內(nèi), 區(qū)塊鏈電子提單系統(tǒng)能夠在訂單量突增情況下正常處理業(yè)務(wù)辦理請(qǐng)求.
區(qū)別于傳統(tǒng)電子提單系統(tǒng), 本文設(shè)計(jì)并實(shí)現(xiàn)了具有去信任、防篡改、可溯源特性的電子提單平臺(tái), 使用統(tǒng)一制式實(shí)現(xiàn)了電子提單“一單制”. 該平臺(tái)中的電子提單具有物權(quán)屬性, 提供了一套適用于區(qū)塊鏈的提單流轉(zhuǎn)與質(zhì)押流程. 此外, 經(jīng)測試該系統(tǒng)性能滿足鐵路貨運(yùn)需求.
本文著重研究基于區(qū)塊鏈的電子提單系統(tǒng)基礎(chǔ)性設(shè)計(jì)與實(shí)現(xiàn)方案, 旨在為當(dāng)前多機(jī)構(gòu)、多地域的鐵路運(yùn)輸業(yè)務(wù)提供技術(shù)支撐. 同時(shí), 這也是對(duì)未來電子提單系統(tǒng)進(jìn)一步發(fā)展的前沿性探索.