周 杰,李文敬
1.广西师范学院 计算机与信息工程学院,南宁 530023
2.广西师范学院 科学计算与智能信息处理高校重点实验室,南宁 530023
3.广西师范学院 物流管理与工程学院,南宁 530023
随着中本聪发明比特币,数字货币风靡全世界,而比特币中的区块链技术具有去中心化、透明可信任的特点,引起众多学者和风投家的追捧和关注[1]。区块链技术也从最初的比特数字货币推广到各行各业,特别是在物流运输、物流供应链等服务交易方面的应用更极具有颠覆性。区块链技术实质上是一种基于对等去信任网络,网络节点可直接通信而不存在某个中心节点,是融合数据加密、数据存储、数据通信、共识机制、网络结构等计算机技术的新型应用模式,其去中心化与去信任的特性克服了中心化网络过度集中的不安全性。由于传统的物流独立认证中心交易模型存在信息的安全问题:一是容易受到网络攻击,可导致保密信息被公开;二是无法验证用户身份真实性与审查溯源,交易双方身份唯一标志无法保证;三是通过交易双方的以往经验和资格审查进行信用评级,存在大量不可信的交易数据,要收集全面、完整、系统的物流交易信息非常困难[2-4]。物流交易活动的信息安全、上下游客户的共识信任问题亟待解决[5]。因此,融合云计算与区块链技术,提出区块链共识算法解决物流交易的去中心化及用户之间的信任问题,具有重要的科学意义和经济价值。
目前物流交易除了通过物流信息管理系统的相关模块进行定制运输计划,以及出入库模块对仓储进行简单管理跟踪,大部分操作仍停留在手工管理和纸质单据留存。物流交易流程包括了下单管理、出入库、库存盘点、运输跟踪、交易反馈等[6]。该流程所产生的运输费用、单据审核、交易对接、货品完整等流通环节的详细敏感信息没有进行统一集中处理,整个物流交易流程为非可见,无法衔接好供应链中的所有客户,以提供高效的物流服务,也不能达到物流去中心化、不可抵赖性的要求。
传统的物流中心化交易模型具备一定的现代化程度,通过物流中心的运营规范,物联网智能识别技术,以及物流中心的网络和数据库建立信息平台[7]。用户可在其平台上进行信息的查询和物流交易,这样中心化的交易信息平台一旦受到黑客网络攻击,窃取数据库中的敏感信息,导致客户信息泄露;用户审查机制不完善,导致网络注册用户泛滥,无法杜绝虚假交易等不公平竞争行为;物流运输过程中出现的货品丢失,不诚信交易等,无法做到货品的溯本求源,无法收集全面、完整、系统的物流交易信息。以上出现的种种问题,在传统的物流中心化模型的情况下,无法得到妥善解决。故此提出将云计算和区块链技术应用在物流交易模型中,以达到去中心化,诚信交易,可溯源的目的。
区块链技术的共识机制主要有:Pow(工作量证明机制)、PoS(股权证明机制)、DPoS(授权股权证明机制)、Pool(验证池机制)等。梁斌[8]通过“比特币挖矿”了解到区块链的共识机制,详细叙述了公链下的四种共识机制的优缺点以及指出在联盟链不需要完全的共识机制。王妙娟[9]指出区块链数据因完全透明可能导致的信息安全隐患,以及数据信息数量增加导致节点存储数据能力变得困难,节点竞争引发的博弈问题,最后设想了发行基于区块链的代币,以实现物流快递业务的数字化管理和包裹数据信息的存储。该方案并没有从本质上脱离代币的模式,但在对于物流业务中应用区块链技术提供了思路。物流链融合信息流、运输、仓储,跨越多个步骤和数百个地点,这使得事件追踪、验证核实、意外响应速度提出挑战。而且,由于缺乏透明度,很难调查物流链中的非法活动。区块链技术实际是安全高效的多方信息交换方式的分布式账本,其去中心化、不可篡改性、高度透明性都使其成为变革物流链的最佳工具。物流链所有参与者同处一共识网络中,可以为消费者和审计者提供简单有效的追踪工具。
云计算与区块链在网络拓扑均去除了服务器中心节点,都采用了点对点的去中心化网络结构[10-11]。区块链去除中心化机构的认证,进行数据分割,同时引入时间戳、签名密钥进行加密,将数据存储在分散节点网络中,数据不可篡改。通过特定的共识算法,即使有黑客攻击或者意图破坏,对全网实施51%攻击。而云计算的分布式存储结构,通过节点虚拟化技术,其高鲁棒性,高稳定性也足以应对风险。
在物流模型中应用云计算和区块链技术,区块链能够实现从寄件、收件、始发、终点、派件、签收的全流程区块链化,最终实现货物和资金可追溯,物流各方可以通过区块链实时掌握物流方向和包裹信息,能够有效地解决丢货问题,对保障物流各方的利益极为有利。
云计算和区块链均有去中心化、合约执行自动化、可追溯性和透明化等优势。对数据信息的记录需要多个节点参与,可以让数据信息有多个备份;同时,对数据信息的更新也必须由多个节点共同认证才能完成,区块链网络中所有节点之间的联系都是去信任的,也不会存在欺骗行为;而且由于所有节点存储的数据信息都相同,数据信息的交换也不会出现问题;区块链系统中所有交易信息及对应交易者信息都会被记录,传递路线也会被完整记录,数据信息都无法被摧毁或篡改,不仅保证了数据信息的准确性,也方便对每笔交易进行追溯,对提高交易监管效率和质量有很大帮助[9]。云计算的虚拟化节点存储技术,给网络稳定性和大规模高运算能力提供了有力保障。
综合物流交易流程、交易机制以及区块链、云计算的相关理论,利用区块链实用拜占庭算法的共识机制,提出物流区块链和云物流区块链的定义。
定义1物流区块链中至少存在3f+1个节点,彼此互为相邻节点,组成基本的拜占庭单元(UB),其中,f表示正常物流网点,UB表示共识网络单元。
定义2物流区块链中,有PBFT机制按划分视图(View)执行,并对该视图进行编号,记作v,一个共有3f+1个节点的视图中只有一个主节点,主节点的编号记为 p,其余节点为备份节点称为replica,每一个节点用整数表示依次为{ }0,1,…,3f+1 ,满足:
其中,v表示共识网络初始化,p表示创世区块[12]。
定义3物流区块链中所有节点Nodei,存储其余节点区块链信息,具有双链表结构,Nodei={a,b},a、b分别表示区块链头索引和区块链内容。
定义4区块链信息BInfo用来存储区块链数据信息H,同时记录该区块链所属的节点名称N、数据的密钥K和更新时间T,区块链信息BInfo结构[13]:
定义5云物流区块链的构建,在物流区块链基础上,云平台虚拟物流网络节点映射:
C表示云虚拟节点的集合。
定义6云物流区块链通过证书传递以达成虚拟节点共识过程。证书消息Message格式为,
其中REPLY为消息类型,根据证书类型不同b可能为区块或区块哈希,v代表视图View编号,i代表节点编号。
基于区块链的物流交易主体结构下,企业内部交易主体、供应商、销售商为区块链交易的认证主体,同时客户作为区块链交易的一个主体也进行交易行为认证,以此满足了实用拜占庭共识算法的3f+1个节点的要求。为此考虑构建基于区块链的物流模型[14],但各个节点需有大规模计算集群以快速完成共识认证过程。为实现资源弹性、节点快速调整、低成本、高鲁棒性的用户需求,各个交易主体不需要在本地部署大规模计算集群,所有的共识认证过程均有区块链云平台完成计算。因此,进一步提出构建基于云计算的物流区块链模型。
基于云计算的物流区块链模型真正做到了去中心化的核心要求,由多认证节点共同来验证物流活动中的交易行为。从长远来看,上游的供应商与下游的销售商是动态变化的,这样可以保证节点数量和防止恶意节点的大规模破坏[14]。各认证节点是作为物流交易行为的受益者,会主动遵守该共识认证机制,因此基云计算的物流区块链模型具有较高的交易稳定性和容错性。
图1 基于云计算的物流区块链模型
如图1可以看出,基于云计算的物流区块链模型,所有的交易认证行为均在Hadoop区块链云平台执行。其中HDFS模块负责存储更新区块链信息,JobClient模块执行查询操作和分配节点任务,Map模块分配任务节点进行区块链信息的传递更新操作,Reduce模块通过共识协议完成数据的规约处理;首先map函数动态的分配n个节点给各个交易主体,模拟其交易认证过程,通过Hash加密算法传递物流交易信息,进而实用拜占庭共识(PBFT)算法完成认证过程再使用reduce函数进行规约处理,整体认证过程具有较高容错性,这样便于企业内部交易主体、供应商、销售商共同维护物流交易信息。区块链共识机制及Hadoop分布式存储技术,从而达到物流去中心化、不可篡改性,客户可以溯本求源地跟踪整个货品的来源及物流运输过程。
根据云计算的物流区块链模型,结合实用拜占庭共识(PFBT)算法,提出基于云计算的物流区块链算法CloudPFBT,算法步骤如图2所示。
图2 CloudPFBT算法流程图
某同城快递网络中,有n个公司用区块链系统开展快递交易业务,通过CloudPBFT算法测试它们在系统中的物流交易中去中心化安全性和算法的性能。
云物流区块链的共识分为两大阶段:区块初始化和共识过程。在共识阶段[15],包括交易验证、区块验证、共识验证,其云物流区块链的形式化表述为:
其中,n+1产生的新区块B,确认的交易包括n个节点,C表示经全网物流区块链B状态迁移函数,β表示单节点区块链状态迁移函数,∂表示某个单一时刻的该区块链状态,N表示可用节点数量,∂n+1表示添加新区块B后的物流区块链状态。
实验环境见表1。
表1 实验环境
实验1区块链结构安全性,模型去中心化安全性。
实验2算法性能。
首先规定物流网络中正常节点传递物流区块链的概率为r,破坏节点伪造物流区块链的概率为ω,则破坏节点能够控制全网z个节点的概率为ωz:
由伪造节点与正常节点相差区块数量的规律来看,其满足泊松分布的概率密度关系,设有r<ω,伪造区块节点攻击成功概率P有:
其中,α、β为设定区间。
本文设定伪造物流区块链的概率ω分别为0.1和0.3,进行实验测试得表2。
表2 伪造区块成功概率
可以得出,伪造区块与正常区块数值增大,攻击成功概率P呈现指数下降趋势,如图2。在基于云计算的物流区块链模型中虚拟节点理论上可以无限大,结合PBFT共识算法采用的加密验证的机制可以有效的规避破坏节点。
图3 伪造区块成功概率趋势
以下是对三种算法PBFT,MinBFT和CloudPBFT算法性能的比较,在Hadoop云环境中设计分布了120个节点。
(1)算法延迟比较,结果如图4所示
图4 算法的延迟比较
在相同环境下,通过模拟物流交易主体节点,在0~50 ms的网络延迟中,三种算法均表现出递增的趋势,且波动较小,其中未优化的原始PBFT算法的总延迟最大。0~30 ms,MinBFT算法和CloudPBFT算法两者的总延迟基本一致,表现出优化后共识算法该有的网络延迟水平,后者在后半程开始发力,从总延迟时间来看,CloudPBFT算法是延迟最小的,只有120 ms。在实验中还发现节点越大,表现出延迟越小的趋势。由此可以得出,在算法延迟比较中,PBFT>MinBFT>CloudPBFT,表明本文算法在网络通信上具有比较好的优势,节点容错上充分发挥了Hadoop云计算分布式节点运算的优势,提高了区块链技术在实际共识认证过程中的速度。
(2)算法吞吐量比较,结果如图5所示
在节点数量小于10时,三种算法的吞吐量呈现出线性上升的趋势,CloudPBFT的吞吐量最大,达到了27 000次。把节点数量逐步增到120个,CloudPBFT吞吐量任然能波动上升,最高能实现36 000次。MinBFT算法在20~50个节点时表现出平缓的态势,之后继续增加节点数量,吞吐量随之增大,呈现出上升趋势,但也在27 000次时趋于饱和。PBFT在10~120个节点数量之间,吞吐量表现一致,且还有略有下降的趋势,说明在相同条件下,CloudPBFT和MinBFT两种优化算法性能均优于PBFT。CloudPBFT拥有动态容错机制和实时分配副本的能力,使得在信息处理过程中能更快的处理错误节点,以保障吞吐量的稳定上升。
图5 算法的吞吐量比较
(3)算法容错性
如图6、图7所示可知,错误节点在0~40之间,算法延迟时间呈下降趋势,说明该算法的容错机制能保证物流节点数在实际应用场景中可以完成操作,当错误节点数超过 f的峰值时,延迟明显上升,且在半数节点为错误节点时,共识网络宕机,此时交易将自动重启。物流交易区块高度也随着错误节点的增加,不再增高,这是受该算法设定其容错机制的影响。
图6 算法延迟时间
图7 算法区块高度
本文采用区块链技术和云计算,设计了基于云计算的物流区块链模型,以及基于实用拜占庭共识算法的CloudPBFT算法,保证了去中心化和不可篡改性的要求,应用了云计算的高鲁棒性、分布式存储的特性,解决了大规模共识运算的算力问题,为当前物流行业存在的交易不透明等一系列问题提供了区块链解决的思路。通过仿真实验表明,该模型在安全性、稳定性、吞吐量都有较高的表现。
但是,区块链的公开透明特性,也意味着物流信息公开在物流网络中,用户在对信息流溯本求源的同时,一些不适合公开的信息也将暴露,接下来的研究工作着眼于物流去中心化模型的构建优化,考虑应用数字签名技术,做好用户的隐私保密工作。