基于区块链的铁路电子提单系统①
2022-09-20肖梦雪徐志锟田金箫
肖梦雪, 左 力, 徐志锟, 田金箫
1(西南交通大学 信息科学与技术学院, 成都 611756)
2(西南交通大学 计算机与人工智能学院, 成都 611756)
铁路运输是国际贸易主要运输方式之一, 具有运量大、连续性高、风险小等优点. 传统的铁路物流票据是运单, 并不具有作为物权凭证的能力. 为确保货物贸易的顺利进行, 在跨境运输中采用具有物权凭证功能的多式联运“一单制”提单已成为必然趋势. 然而, 由于纸质提单存在流转成本高、速度慢、安全性低等问题, 极大地影响了货物运输和资金流转的效率, 提单电子化已然成为提单发展的重要方向.
目前, 电子数据交换(electronic data interchange,EDI)技术[1]是提单电子化的主要途径, 然而, 基于EDI技术的电子提单系统存在以下弊端.
(1)效率低. 数据信息的统计与分析都集中在EDI网络中心进行, 信息传输效率低.
(2)安全性低. 采用中心化的B/S或C/S架构, 存在单点故障和数据篡改问题.
(3)公信力低. 文献[2]指出, EDI系统中多机构、多地域间的信任只能依靠第三方机构建立, 然而这类机构却很难在世界各地同时取得话语权与公信力. 因此, 在EDI系统中, 提单不具有金融属性. 这对电子提单跨机构、跨地域的审查和价值转移造成了阻碍.
而区块链技术具有去中心化、高透明度、去信任、不可篡改的特性, 为上诉问题提供了有效解决方案. 目前已经有学者对区块链技术应用于纸质提单电子化做了相关研究, 如文献[3,4]都提出了在国际多式联运中使用电子提单的构想, 阐明了基于区块链的电子提单系统的可行性. 成都陆港公司推出了针对提单金融服务的区块链提单一点通, 运用区块链的防篡改优势与金融机构银行等进行提单质押贷款交易, 但仅限于公司与合作机构内部使用. 因此, 我们需要在此基础上拓展业务主体均使用的统一区块链电子提单, 推动多式联运“一单制”的发展.
基于国际铁路物流迫切的落地需求和区块链技术的优势, 本文首先参考现有铁路运单与纸质提单的功能与制式, 设计了一套电子提单数据结构; 其次, 依据EDI系统电子提单流转模式[5]与当前国际贸易规则,制定了物权转移业务逻辑; 最后, 实现了一个多方监管共同维护的区块链电子提单系统.
1 相关领域及技术介绍
1.1 电子提单
电子提单不同于以纸面为媒介的传统提单, 其内容以电子数据的形式存在, 可通过电子计算机通讯的形式传输. 文献[6]指出, 电子提单在《海上货物运输公约草案》中被定义为“可流通性电子记录”, 具有与纸质提单等价的功能, 包括: 货物交付、运输合同证明、承运人接收货物证明、物权凭证与提单流转、抵押贷款与单据交易.
目前, 铁路电子提单发展停留在纸质提单电子化阶段, 其流转模式和相关法制还不成熟, 缺少一个完善的电子提单国际贸易平台.
1.2 区块链技术
区块链(Blockchain)[7]本质是一个去中心化的、不可篡改的共享账本. 使用区块链技术在不可信网络环境中构建多方信任的分布式系统, 将为企业和用户提供更低的沟通整合成本和更高的业务效率. 除此之外, 国家的支持为基于区块链技术的电子提单的实施提供了政策保障. 2016年工信部发布了区块链白皮书[7],2019年国家互联网信息办公室发布了《区块链信息服务管理规定》, 目前, 区块链已上升为国家战略.
与传统的电子提单流转平台EDI系统相比, 区块链技术具有以下优势: 一是去信任, 能够在多地区、多机构之间建立信任关系; 二是去中心, 区块链中数据分布式存储, 边缘数据访问效率高; 三是不可篡改与可追溯, 能够解决货物溯源与物权归属问题; 四是高透明度,链上所有信息和业务规则能被参与方监督和验证, 合法用户可凭借链式结构追溯订单本源.
1.3 超级账本
超级账本(hyperledger fabric)[8,9]是一种模块化可插拔的区块链实施方案, 从逻辑上结合了3个范畴, 即成员管理、区块链和智能合约(链码). 成员管理功能在准入型区块链中实现权限控制, 而合法的参与者只能通过智能合约记账. 智能合约[10]是参与方之间必须执行约定内容的协议, 执行过程不需要第三方干预, 能够避免任何参与方欺诈.
2 基于区块链的电子提单系统方案
2.1 系统整体框架设计
电子提单系统整体框架, 由下至上分为基础技术层、系统核心层和应用层, 如图1所示.
图1 电子提单系统整体框架
在基础技术层中, P2P网络协议实现了事务数据传输和区块同步; TLS协议实现了对交易信息的验证以及安全保密通信; LevelDB数据库和CouchDB数据库则用于数据存储.
在系统核心层中, 联盟管理者 (member service provider, MSP)进行联盟成员证书以及权限管理; 海关和监察部门对合约执行结果背书, 生成相应事务信息;共识节点集群接受事务信息, 通过共识协议实现对区块的更新和同步.
在应用层中, 智能合约定义了系统的业务逻辑, 以网页的方式向用户提供服务, 包括账户登录/注册、提单发布、金融质押等. 其中, 用户分为普通用户(托运人、承运人、收货人)、金融机构和海关3种角色. 各个角色具体职能如下.
托运方: 发起托运请求, 提供货物信息, 向海关提交申请, 向金融机构贷款还款.
承运方: 运输货物, 提供运输信息.
收货人: 向提单持有方汇款获得货物支配权, 从承运人处提货结束提单, 以及向金融机构抵押赎回.
金融机构: 提供供应链金融功能, 包括资金暂存与金融质押.
海关和检查部门: 对线上信息和线下货物实体的一致性进行核实, 在系统中更新提单审核信息.
2.2 数据结构及业务逻辑设计
2.2.1 数据结构设计
参考《铁路货物运输国际公约》与《国际铁路货物联运协定》, 本系统设计了一套流通于电子提单平台的数据结构, 包括账户和提单两个部分.
(1) 账户用于保存用户信息, 其内容如表1所示.系统为每个用户记录了一个账户, 内容包括用户ID、角色、货物质量、货运能力、资金以及身份证书的哈希值. 其中货运能力、货物、剩余资金等信息用于背书节点验证交易是否可被执行; 证书的哈希值用于验证交易发起者是否是资产持有人.
表1 账户数据结构
(2) 电子提单数据结构记录了交易的参与者、货物所需运力以及提单持有人的信息. 此外, 还记录了提单当前状态、审核状态和贷款抵押状态, 以及这些状态对应账户. 提单签发后, 用户可根据货物状态对提单内容修改和更新, 提单操作将作为交易被打包上传至区块链, 具体结构如表2.
表2 提单数据结构
2.2.2 物权转移业务逻辑设计
根据实际运输场景和物权转移流程, 基于区块链的电子提单系统业务逻辑如图2所示, 可分为3大主要业务以及其他业务, 其中主要业务包括提单签发、金融质押和结款提货.
图2 电子提单系统业务逻辑
(1) 提单签发
提单签发涉及到电子提单的初始化以及提单审核.如图3所示, 电子提单签发流程如下.
图3 提单签发流程图
1) 托运人提出托运申请, 区块链平台对该申请记链, 并生成待审核提单.
2) 海关审核货物与用户信息后, 更新提单中的审核状态, 并将更新后的提单发布到区块链平台.
3) 收货人查询到该提单通过审核后可付款, 货款暂存至金融机构, 区块链平台记链并更新提单的状态.
4) 托运人确认货款已付至金融机构后, 对货物装载并更新提单状态, 此时提单的持有人为托运人.
5) 区块链平台更新提单状态, 提单签发完毕.
(2) 金融质押
账本数据的不可篡改性和同构性, 使提单具备物权属性, 金融质押成为可能. 如图4所示, 金融质押流程如下.
图4 金融质押流程图
1) 抵押方, 即托运人, 提出贷款申请.
2) 借贷方, 即金融机构, 在链上查询当前提单的贷款申请情况, 并验证账号的信用.
3) 金融机构审核并完成转账操作后, 物权将转移给借贷方, 即提单的持有人变为金融机构.
4) 区块链平台更新提单状态, 金融质押完毕.
(3) 结款提货
承运人运输货物至目的地, 此时提单持有者为托运人, 货款代存在金融机构. 如图5所示, 结款提货流程如下.
图5 结款提货流程图
1) 收货人查询货物到站后, 可提出提货申请.
2) 金融机构将代为暂存的货款支付给托运人, 并申请将物权转移至收货人, 银行结款成功.
3) 区块链平台验证申请, 更新提单状态.
4) 承运人确认提单持有者, 收货人提货成功.
(4) 其他业务
系统提供的其他业务包括注册/登录业务、海关审核业务、查询账户/提单业务以及区块查询业务.
3 系统实现及性能分析
3.1 系统实现
基于区块链的电子提单系统由3大部分组成, 分别为前端、后端和区块链网络.
(1) 基于区块链的电子提单系统前端
电子提单系统前端页面设计采用HTML5、 CSS3以及JavaScript技术. 下面是电子提单系统的前端组成与功能描述.
1) 首页: 实时更新区块, 提供区块查询功能.
2) 用户注册页面: 初始化账户.
3) 普通用户业务办理页面: 提供提单发布、付款、发货、运输以金融质押等业务.
4) 海关审核页面: 提单审核. 海关以及检查部门在完成货物审核后, 通过该页面使提单生效.
5) 银行处理页面: 审核贷款、抵押业务.
(2) 基于区块链的电子提单系统后端
电子提单系统后端由Gin框架实现, Gin是一个轻量级HTTP Web框架, 作用是创建路由引擎. 当网页发送请求某个路径时, 后端执行相应处理函数, 并返回结果至页面中. 其函数接口描述如表3所示.
表3 后端函数接口描述
(3) 区块链网络
电子提单系统运行在一组经过认证的参与者之间,每笔交易都包含发起者的证书, 区块链管理者可凭此进行交易追溯. 故系统的可监管性强, 参与者带来的风险较低. 基于此情况, 本论文考虑构建部分同步通信模型, 要求系统能够容忍故障错误. 具体的软件环境配置信息如表4所示, 在实现时, 使用超级账本提供联盟链网络, 底层配置为Raft共识算法、Gossip数据分发协议以及LevelDB数据库. 在应用层, 通过编写智能合约, 实现电子提单系统的业务逻辑, 智能合约函数接口描述如表5所示.
表4 软件环境配置信息
表5 智能合约函数接口描述
在数据交互方面, 区块链网络、后端与前端之间的数据传输如图6所示. 前端网页发送请求参数至服务器, 服务器提交参数至区块链网络中的系统链码、Fabric CA或用户链码, 并将请求结果返回给前端.
图6 系统数据交互图
图7为提单发布页面, 托运人需提供托运人ID、承运人ID、收货人ID、货物信息等, 提交成功后系统将返回该提单ID. 图8为海关审核页面, 海关提供提单ID与自己的用户ID完成货运提单的审核. 其他页面操作与海关审核页面类似, 使用提单ID和账户ID即可完成交易与查询.
图7 用户注册页面
图8 海关审核页面
3.2 系统测试与分析
(1) 测试环境及配置
该系统中节点可分为对等节点(Peer)、排序服务节点(Orderer)、以及证书颁发机构(CA). 其中Peer节点负责交易的执行、背书与验证; Orderer节点采用Raft协议保持一致性, 组成共识集群, 负责交易的打包与排序; CA节点负责证书颁发. 为实现物流信息数据共享及物权价值多方认可, 在实际中, 节点分布于多地区, 其中Orderer节点由海关和检查机构管理.
在系统的可用性及交易处理能力测试中, 使用Docker集群部署Peer与Orderer两类节点, 并为这些节点配置了证书. 此外, SDK为上层应用, 能够调用智能合约. 具体部署情况如表6所示.
表6 性能测试环境
同时, 为满足实际应用需求, 限制区块所含最大交易数为100, 单个交易最大为98 MB, 出块时间不超过2 s.
(2) 测试内容及测试结果
在容错能力方面, 共识集群采用Raft协议, 可容忍的故障共识节点数为总共识节点数的50%以内, 用户读写具有强一致性, 符合应用需求.
在性能方面, 测试内容为提单发布(Invoke)业务性能与账户查询(Query)业务性能, 指标包括每秒交易数(TPS)、每秒查询数(QPS)与平均响应时间(ART).
可见, 随着并发数增加, 平均响应时间增长, TPS、QPS增加. 如图9, 当并发数为1 200时, 系统TPS最大, 为182.1; 当并发数为1 000时, 系统QPS最大, 为6 310.3, 符合一般业务场景对并发数的需求. 在最大并发数下, 提单发布业务与账户查询业务的平均响应时间分别为5.616 s和0.517 s, 处于用户普遍可容忍等待时间内, 满足提单业务办理的普遍要求.
图9 性能测试结果
并且, 随着并发数的增加, 系统CPU占用率与内存占用率皆<20%, 在正常范围内, 区块链电子提单系统能够在订单量突增情况下正常处理业务办理请求.
4 结语
区别于传统电子提单系统, 本文设计并实现了具有去信任、防篡改、可溯源特性的电子提单平台, 使用统一制式实现了电子提单“一单制”. 该平台中的电子提单具有物权属性, 提供了一套适用于区块链的提单流转与质押流程. 此外, 经测试该系统性能满足铁路货运需求.
本文着重研究基于区块链的电子提单系统基础性设计与实现方案, 旨在为当前多机构、多地域的铁路运输业务提供技术支撑. 同时, 这也是对未来电子提单系统进一步发展的前沿性探索.