全 立 新
(湖南财政经济学院 信息技术与管理学院,长沙 410205)
经过改革开放40多年的持续发展,中国公路通车总里程达到500×104km,居世界第一。2020年公路货物周转量达60 171.8×108t·km[1],中国已经成为全球最大的物流市场。中国公路货运规模很大,但是绩效并不理想[2]。随着中国现代化进程的深入推进,物流业发展的需求、技术供给等会发生重大变化,这些都要求中国物流业朝着更安全、高效、信息化、网络化、智能化的方向发展[2]。解决公路货运物流问题具有实际意义。
目前,各物流企业、各省市交通运管部门都建立了各自的信息平台,但是各个平台之间互不相通,形成一个个信息“孤岛”,这会造成整个社会物流信息不畅通,整体物流效率低下。另外,广大个体车主一般通过加盟或挂靠某物流企业获得运输业务,货主往往通过某平台发布需求信息,车主和货主都增加了成本,而且价格不透明。如果有一个开放共享式物流信息平台,它可以在无需信任的网络环境下使供需双方直接交易,那么将大大减少物流管理成本,真正做到“信息流”驱动“货品流”,从而提升整个社会的物流绩效。
本次研究在提高公路物流绩效的基础上,实现了在互联网不安全的环境下,进行安全的公路货运交易,在保障供需双方利益的同时构建开放式共享信息平台,节约了供需双方的运营成本。
目前,公路交易模式主要有两种:第1种是直接交易模式。此模式是车主或运输企业在网上公益平台查找货源,然后直接与货主发生交易;或是货主在公益平台直接与车主或运输企业发生交易(见图1)。
图1 直接交易模式
第2种是平台交易模式。货主将货源交与平台,直接与平台发生交易,车主或运输企业在平台注册,平台把接收到的货源分配给车主或运输企业,车主或运输企业与平台结算,货主不与车主直接发生交易(见图2)。
图2 平台交易模式
平台交易模式原则上比直接交易模式更加高效和安全,货主和车主通过平台的聚集功能,达到交易目的,因为有平台担保,故其交易比较规范,供需双方利益容易得到保障。但是,平台出于自身利益的考虑,可能会收取车主和货主的管理费,同时,平台之间信息互不相通,各平台运营能力不同可能会造成车主等货、回程空载、货主库存积压等问题,从而影响整个物流业绩效。信息不通畅是制约公路货运物流提升绩效的主要障碍之一。
区块链技术伴随着比特币的成功而受到工业界和学术界的高度关注[3-4],并获得高速发展。区块链可以简单理解为在P2P网络上的一个分布式共享账本。它集成了P2P网络、数据加密、编程、分布式存储等计算机技术的创新应用模式,可以方便构建去信任化的价值传播网络。区块链技术已经在转账支付、资金结算、身份认证、版权保护、电子商务、智能合约等场景得到了广泛应用[3]。区块链主要特征:一是分布式存储。在P2P网络中每个节点都存储全网认可的同一份账本,并在共识协议下维护各节点账本的一致性。二是去中心化。网络中没有所谓的“中心”特权节点,每个节点都有记账权,但是,每一次记账权的获得均由共识协议选举产生,保证参与节点的公平性。三是数据不可篡改。区块链采用了哈希换算、对称和非对称加密、数字签名、群签名等加密技术,使得单个区块的交易无法被修改,并且可以保证除创世区块外的每个区块都有唯一的父区块。
随着区块链3.0的到来,区块链在物流业的应用得到了人们的关注。Kuhi等人对比了目前主流区块链系统的各方面性能和它们应用于物流行业的优势与不足,并展望了其在物流行业的应用方向[5]。周杰等人提出了一种基于云计算的物流区块链模型和共识算法,并对所提出的共识算法进行了仿真实验,验证了其在理论上存在的性能优势[6]。王思静在理论上探讨了区块链技术在医药冷链物流领域的应用,给出了概念性构想,但并没有给出具体技术实现[7]。李军祥等人通过借助Stackelberg博弈模型分析了采用区块链技术对防范第三方物流服务商道德风险的策略,分析了区块链技术应用前后供应链利润与技术成本投入的关联性,证明了应用区块链可以有效降低第三方物流服务商存在的道德风险[8]。张志等人通过对比采用区块链技术前后的最优收益,提出区块链技术在供应链中的应用策略和条件[9]。
目前,国内外学者对区块链在物流业的研究与应用仍处于初级阶段,还没有形成有价值的区块链应用于公路货运交易的架构体系。大部分研究集中在区块链在物流领域的应用前景、联盟链共识算法、应用方案的概念设计等方面的探索,基本都是理论阐述,并没有给出具体的架构和设计方案。本次研究从公路货运物流的现状出发,结合区块链思想和技术特点,提出一种物流模型,可以解决传统公路货运交易过程中出现的诚信缺失、交易成本高等问题,具有现实意义和实用价值。
开放可共享公共信息平台是提升整个公路货运绩效的重要前提之一。区块链是一个分布式价值传输网络,能够实现在不安全网络、缺少信任的前提下达成交易,可以认为区块链是公路货运开发共享信息平台的理想基础设施。本次研究运用CAP(Consistency,Availability,Partition-Tolerance)布鲁尔定理[10],提出一种基于区块链的公路货运交易架构。
公路货运交易架构分为应用层、扩展层、网络层和存储层等4层。如图3所示。
图3 公路货运交易总体架构
(1)应用层。应用层类似电脑中的各种应用软件,是个体货主/车主、货主企业、运输企业、各级交通运管部门、金融机构、工商税务等普通用户可以直接使用的软件产品,也是各类企业、管理部门、服务机构的现有管理信息系统的接口。将应用层设想为各省部级交通运输开放平台所提供的接口,目的是减少开发工作量、更好对接交通运输行业信息化成果、降低用户使用难度。
(2)扩展层。扩展层类似电脑驱动程序,使公路货运区块链网络更加实用。扩展层主要包括交易类、货源信息发布、信用画像等智能合约,查询和数据统计类组件、货源信息推送、竞价竞拍功能类组件等。为了方便与各省部级交通运输平台集成,拟采用Web Server服务方式提供各类组件。
(3)网络层。网络层类似个人电脑的操作系统,用以维护P2P网络节点的安全性。网络层提供各种API以供调用,从而实现公路货运区块链的网络编程、分布式算法、密码学和数据存储功能等核心功能。
(4)存储层。存储层负责以区块链方式存储公路货运业务所涉及的运单、车辆、货源、各主体信用等各类数据,只有网络层有权生成区块、维护区块链的一致性和合法性,只有委员会节点才有权存储区块链数据。存储层采用交易、货源发布和信用画像等3条区块链进行分类记载。
共识协议是区块链的核心,可以从联盟链的构成机制、出块节点的选举算法、区块随机数和主链共识等4个方面进行阐述。
(1)联盟链的构成机制。在《交通运输物流公共信息平台建设纲要》的指导下形成公路货运交易网络节点构成机制,交通运输部和32个省级行政区(不包括港澳台)均建立了各自的交通运输公共信息平台,这些平台为本地交通运输的管理和服务发挥着很大作用,但是这些平台“各自为政”,互不相通,要实现各省之间的互联互通还有很长一段时间。
本着“行业管理部门主导和政府可控”的思想,将交通运输部和32个省级交通运管部门设为P2P网络的33个委员会节点,组成联盟链。各省级交通运管部门可以授权社会力量组建监督节点,只有委员会节点才有权生成区块、监督节点、负责用户和交易认证等辅助业务,只有通过认证的数据才能被打包进区块。这样做的目的:一是方便各省交通物流信息平台的集成,有利于形成全国性的公路物流生成圈;二是方便政府部门执行政策、法规和使用现有交通信息平台的服务功能,减少应用层的重复开发;三是确保委员会节点当值时间,保证区块链的网络安全;四是吸引社会参与,提高交易速度。
(2)出块节点的选举算法。出块节点也称为当值节点,负责在某个时间间隔生成区块。当值节点只能在33个委员会节点中产生,具体在某个时间间隔、谁来充当当值节点,是通过特征值而不是算力竞争产生的,这样就不会出现电力消耗过大的问题。具体算法如图4所示。
系统每33 min制定一轮当值委员会节点安排表(见图4)。以当前网络时间作为随机种子,随机生成33个整数([1,33]),将其依次分配给各个委员会节点作为排序依据。根据各委员会节点分配的随机值按从小到大的排序产生本轮当值安排表。如果多个委员会节点的随机值相同,则按照初始排名表的先后顺序确定这几个委员会节点的当值顺序。
图4 委员会节点当值安排表算法
采用这种函数生成随机数的选举方式,使得每轮(每个委员会节点当值一次称为一轮)各个委员会节点都当值一次且当值顺序是随机的。这样可以避免当值节点的人为干扰,为缩短区块周期、提高交易吞吐量提供算法理论保障。拟定货运交易区块的出块周期为1 min,区块大小的上限为2 Mib,交易记录的大小是固定的170 B,理论上每分钟可以确认12 335笔货运交易。
(3)区块的随机数。区块的随机数是委员会节点验证最新区块的重要数据项。区块头={上一个区块哈希,梅克尔根,随机数,出块节点,时间戳}。随机数由出块节点的公钥哈希与最近N个区块进行多个哈希换代计算得到(见图5)。
图5 随机数生成算法
首先,当值委员会节点获得本地最近区块的高度用来确定哈希计算次数,如果最近区块高度低于33(即系统没有完成第一轮区块生成的情况),哈希计算次数为实际区块数,否则,哈希计算次数为33;然后,用当值节点的公钥进行哈希计算,产生随机数P的初始值;最后,根据哈希计算次数把最近区块头与P进行哈希迭代计算,得到最新区块的随机数。这样设计的目的:一是方便其他委员会节点验证新区块;二是每一个新区块都需要最近N(N<34)个区块作前向证明,这样进一步保障了区块链的不可篡改性。
(4)主链共识。主链共识是指出块节点产生的新区块如何取得全网认可。目前,主链共识有弱共识和强共识两类[11]。弱共识的效率低,交易确认所需时间长、交易吞吐量低、区块链容易产生分叉。根据本次设计的区块链特点,拟采用强共识,提高共识效率。下面提出一种改进的PBFT 算法。分为归约和认可两个阶段(见图6)。
图6 区块链共识算法
归约阶段是一个无限循环。首先,进行主链高度归约:当值委员会节点发起区块链最高高度投票,其他委员会节点对当值委员会节点的高度提议投票。如果某委员会节点的本地区块高度与提议的高度不一致,投反对票并通过当值委员会节点同步至本地区块链。当值委员会节点统计所有高度提议投票结果,如果有反对票,则再进行区块链高度提议投票,直到没有反对票为止。其次,进行最近区块归约:当值委员会节点广播本地最近区块的哈希,发起最近区块投票,其他委员会节点哈希各自本地最近区块,并与提议区块哈希对比。如果对比结果不同,投反对票并广播投票结果,如果反对票超过或等于所有委员会节点半数,则当值委员会节点同步至本地区块链;否则,投反对票的委员会节点同步至本地区块链,再次进行高度归约,直到最近区块没有反对票为止。最后,各节点归约值设置为true,归约阶段结束。
认可阶段是对最新区块二进制的认可。当值委员会的归约值如果不为true,本次共识结束;否则,广播最新区块至其他委员会节点。各委员会节点生成最新区块随机数与收到的最新区块中的随机数作对比,并且检查收到的最新区块梅克尔根等区块头字段是否正确,只要其中一项不正确,投反对票并广播投票结果。如果各委员会节点统计发现没有反对票,则把收到的最新区块存储至本地区块链中;否则,存储一个空区块(没有交易记录的区块)至本地区块链中,本次区块链共识结束。
如果某当值委员会节点存在2次区块链共识不成功的情况,该节点会被视为拜占庭节点,将被强行取消。
区块链共识协议的安全性一般围绕区块链的持久性和活性[11]。
(1)持久性。新的区块在取得强共识之前需要进行归约处理,即每个委员会节点所存储的区块链高度一致。例如,某区块在某委员会节点的本地区块链拥有h个区块的高度,那么该区块在其他节点的本地区块链中也拥有h个区块的高度。网络传播延时问题可能造成各个委员会节点区块高度暂时不一致,但是通过归约处理,33个委员会节点的区块高度大概率是一致的。同时,根据主链共识算法,主链上任意高度K对应的区块在各个委员会节点的区块链上对应的区块都将是相同的。
(2)活性。活性指非拜占庭节点发起的交易最终被打包进区块链中,并满足持久性[10]。本案例中,货运交易首先通过公路货运开放平台发起并传输至某监督节点;该监督节点对此交易进行认证、签名并传输至某个委员会节点(认证后的交易会考虑各委员会节点本地交易缓冲池的交易数量平衡而选择传输至哪个委员会节点);最后,各委员会节点采取先进先出的策略打包交易进区块链。虽然交易可能受交易吞吐量等限制而不能立即被打包处理,但是最终都会被处理,从而满足区块的一致性。
本次研究采用的混合共识协议可以杜绝“双花”“女巫”“自私挖矿”攻击,满足货运交易安全性要求。
为了探研区块链性能,本次研究采用Node.js(v5.4.0)平台,引入Express框架,操作系统为Ubuntu(v0.29.0),处理器为Intel(R)Core(TM)i7-9750H CPU @ 2.60 GHz,内存16 GiB,模拟网络规模为33个委员会节点,对交易确认时间进行测试。
实验结果表明,当区块周期为1 min、区块大小为2 MiB、网络规模为33个委员会节点时,通过10轮区块打包确认,交易平均确认时延小于1.25 s,绝大多数网上交易的用户是可以接受的。当然,这个数据只是在虚拟环境下的仿真结果,其与真实环境可能存在差异。
本次研究提出了一种基于区块链的公路货运交易平台的架构和共识协议,通过实验分析,该架构和共识协议可以在一定程度上解决公路货运物流的诚信交易和隐私保护等问题。
从网络拓朴的结构来看,设计的公路货运交易平台可以满足我国《交通运输物流公共信息平台建设纲要》中信息化建设的要求,利用区块链网络可以很好地把各级交通运输物流公共信息平台连接起来,构建一个政府主导、可监管、可测量、全行业诚信的公路货运物流生态环境。