基于DEMATEL-ISM的粮油质量安全区块链优化
2023-01-05许继平张博洋王小艺赵燕东
许继平 张博洋 张 新 王小艺 李 飞 赵燕东
(1.北京工商大学北京市食品安全大数据技术重点实验室,北京 100048;2.北京工商大学中国轻工业工业互联网与大数据重点实验室,北京 100048;3.北京林业大学工学院,北京 100083)
0 引言
粮油质量安全关系到人民群众的健康和社会的稳定,当前粮油质量安全问题主要集中在真菌毒素污染严重、非法添加有毒有害物、掺假勾兑以及以次充好等[1]。近年来粮油质量安全事件引起了政府和社会的广泛关注[2-4]。保障粮油质量安全对国民生命健康、社会和谐发展以及人类营养安全具有重要意义[5]。
传统粮油质量安全监管体系多为中心化的模式,由供应链中核心企业集中采集全环节数据并存储到中心化的服务器进行管理,但中心化的管理模式易受篡改等攻击[6],安全性无法保障。区块链作为一种去中心化的分布式账本技术,通过共识机制、加密算法、时间戳等底层技术保证上链的数据不被伪造和篡改[7],因此适用于多主体业务系统进行数据信息共享管理的场景[8-10]。区块链的技术特点决定了将其应用于粮油食品质量安全保障领域能够降低交易风险以及监管成本,提高数据可信度以及信息安全性等,为解决粮油质量安全溯源控制问题提供了解决方案[11]。通过区块链技术建立粮油供应链参与主体间的互信机制,解决信息不透明、不对称等问题,对于快速追踪、精准定位粮油质量安全风险源头有重要意义[12-14]。
目前粮油领域区块链技术的研究侧重于溯源监管等应用层面,包括基于区块链的信息溯源监管模型的研究以及结合区块链和物联网等技术的溯源监管应用研究等[15-16]。此类研究虽在一定程度上解决了传统溯源监管技术存在的数据信任等问题,但由于粮油供应链具有主体复杂、风险多、供应网络跨域、信息链难以打通等特点,区块链技术应用于粮油质量安全保障和追溯场景下也引入了新的系统性风险和挑战。基于传统公链改进存储、共识等的优化方案未能较好地解决区块链扩展性、性能、安全方面的局限,针对区块链技术的优化改进尤其是针对粮油领域等特定场景区块链技术应用的风险分析及优化改进逐渐兴起[17-20]。
本文在综合国内外区块链技术应用研究现状及发展趋势的基础上,基于集成决策实验室法(Decision making trial and evaluation laboratory,DEMATEL)-解释结构模型(Interpretative structural modelling method, ISM)可解释性算法模型解析粮油质量安全区块链风险特征,在此基础上改进并优化现有完全非可信执行场景中通用型区块链结构,包括在网络层研究适用于非完全可信执行场景中粮油质量安全专用型区块链网络结构,在共识层提出一种基于实用拜占庭容错(Practical Byzantine fault tolerance,PBFT)来改进拜占庭容错能力,符合粮油质量安全区块链特征的Kafka共识优化算法P-Kafka(Practical Byzantine fault tolerance-Kafka),使得区块链在风险可辨识和可控的情形下适用于粮油质量安全专用场景。
1 基于DEMATEL-ISM的粮油质量安全区块链网络结构优化
粮油质量安全溯源控制场景下,供应链参与主体众多,且从粮油种植到成品售出全供应链中不同参与节点之间存在复杂嵌套、相互交织的关系,采用传统“一条链”式区块链及相应的共识机制容易造成区块链系统网络拥塞、计算成本高以及共识效率低等一系列问题。基于集成DEMATEL-ISM可解释性算法构造粮油质量安全区块链风险多级递阶有向图,建立粮油质量安全区块链优化网络结构,并对新型区块链网络中的参与节点进行分层分区以及子链划分,可在一定程度上节省区块链系统运行计算成本,提高节点隐私信息安全性以及全网节点共识效率。
1.1 基于DEMATEL-ISM的粮油质量安全区块链多级递阶网络结构
粮油质量安全溯源场景中参与节点众多、风险关联关系复杂且溯源数据量大,容易导致区块链网络负载大、延时较长、广播资源占用严重且耗能高等。粮油质量安全区块链系统中各风险节点关系错杂但处于同一网络系统,符合DEMATEL和ISM的应用条件,故引入DEMATEL和ISM两种系统分析方法并进行集成,根据粮油质量安全区块链风险间的关联关系对风险节点进行分层分区处理,以理清粮油质量安全区块链风险因素节点间的关联关系并改进传统粮油质量安全区块链网络的结构。
1.1.1DEMATEL和ISM结合机理
DEMATEL是一种通过计算系统各要素的中心度和原因度进而分析该要素的系统重要性以及与其它要素间的相互作用关系的算法[21]。ISM是一种研究复杂系统内部各元素间的影响与被影响的关系,且能够清晰反映系统内部结构的结构模型化算法[22]。
DEMATEL和ISM两种算法各有优缺点,DEMATEL虽能够通过系统要素的中心度、原因度等识别出复杂系统的关键要素及其影响程度,但其不能明确影响因素间的层次、结构,因此不能有效地对系统进行层次结构的划分,也不能确定系统的基础性要素和每个要素的影响范围。ISM虽能确定系统各要素间的内在逻辑结构,但却无法知悉各要素的影响度与被影响度,即不能明确要素在系统中的作用。因此,本文综合两种算法的优势,通过DEMATEL简化ISM中可达矩阵的计算过程,构造集成DEMATEL-ISM可解释性算法模型,使得在明确粮油质量安全区块链风险因素影响权重的同时,形成层次性、结构化的多级递阶解释结构模型,具备更强的解释力。集成模型实施流程如图1所示。
图1 DEMATEL-ISM集成模型实施流程
1.1.2DEMATEL-ISM集成模型实施步骤
实施步骤如下:
(1)确定粮油质量安全区块链风险因素。通过分析已有研究成果并结合业内专家意见进行筛选处理,构建粮油质量安全区块链风险指标体系,如表1所示。
表1 粮油质量安全区块链风险指标体系
(2)构建直接影响矩阵。基于构建的风险指标体系,通过专家小组问卷调研,对风险因素间影响关系进行量化评价,将风险因素间的影响程度定义为[0,9]内10个自然数等级,“0” 代表影响因素对被影响因素无影响,依次递增,“9”代表影响因素对被影响因素影响程度很高,目标风险因素对自身无影响。根据专家打分的平均数得到一个25×25的风险因素直接影响关系矩阵X,矩阵X的行和列元素为二级和一级风险指标,如表2所示。
表2 风险因素间直接影响矩阵
(3)计算规范化直接影响矩阵。将直接影响矩阵X的每一个元素除以X中各行元素之和的最大值,得到规范化直接影响矩阵G,公式为
(1)
式中n——矩阵维数
aij——矩阵第i行第j列的元素
(4)确定综合影响矩阵。将步骤(3)得到的规范化直接影响矩阵G自乘n次,并将此n+1个矩阵相加即可得到综合影响矩阵T,公式为
G(I-G)-1
(2)
式中I——n阶单位阵
tij——矩阵中第i行第j列元素
(5)确定各要素的中心度与原因度。中心度与原因度是由系统要素的影响度与被影响度决定的。影响度fi、被影响度ei、各风险因素的中心度Mi、原因度Ni计算公式为
(3)
Mi=fi+ei(i=1,2,…,n)
(4)
Ni=fi-ei(i=1,2,…,n)
(5)
(6)确定风险因素整体影响矩阵。由于DEMATEL中默认元素不影响自身,ISM则相反,因此将综合影响矩阵T加上n阶单位阵,形成可用于ISM计算的整体影响矩阵H,即
H=T+I
(6)
(7)
得出标准化可达矩阵R。
(8)确定可达集、先行集。根据标准化可达矩阵R对各风险因素的可达集、先行集进行划分。
(9)元素分层处理。满足
Ri=Ri∩Si(i=1,2,…,N)
(8)
为第1层,然后去除已分层元素并重新筛选第2层元素,依次循环至各元素分层完毕。其中,Ri代表标号为i的风险因素的可达集,Si代表标号为i的风险因素的先行集,N代表总的风险因素数,取值为19。本文风险因素节点层级划分结果如表3所示。
表3 风险因素节点层级划分结果
(10)多级递阶解释结构绘制及解释。根据风险因素分层结果以及各因素的可达集、前因集,通过缩边、缩点输出最简的风险因素多级递阶有向图结构模型,如图2所示。
图2 粮油质量安全区块链风险多级递阶有向图
1.1.3多级递阶网络结构模型构建
根据图2并结合各风险因素间的二元关系绘制粮油质量安全区块链多级递阶解释结构模型图,引入“粮油质量安全区块链风险”作为第0级因素,通过缩边、缩点、删除重复强连通关系以及跨层越级关系转化等处理简化系统风险传导过程,并以上文中计算得到的各风险因素的可达集、先行集作为参考和检验,最终绘制出粮油质量安全区块链风险多级递阶解释结构模型图,如图3所示。
图3 粮油质量安全区块链多级递阶解释结构模型
通过分析,把影响粮油质量安全区块链的风险因素归结为直接影响因素、表层影响因素、浅层影响因素、深层影响因素以及底层影响因素5类影响因素(图3)。各层影响因素相互关联,构成了一个复杂的多层递阶结构,反映了各个风险因素对粮油质量安全区块链的影响机理及各节点或风险因素间的传导关系。
1.2 区块链网络节点分区
传统区块链结构中所有参与节点同步共识对区块链网络的性能带来巨大挑战,不仅容易导致共识效率低下,而且还容易造成网络拥塞甚至节点崩溃的情况发生。因此,基于集成DEMATEL-ISM可解释性模型构建的粮油质量安全区块链风险多级递阶解释结构,对粮油质量安全区块链网络中各节点进行分层分区划分处理,实现区块链网络中各参与节点带有交易逻辑关系的分层分区。基于此,建立一种更高效的区块链生成机制,区块链网络中的全部参与节点分层分区共识可有效降低区块链系统运行的计算资源成本、减少网络拥塞情况、提高节点共识效率,进而实现对粮油质量安全区块链结构进行优化。
本文根据各风险节点在区块链网络中的地位重要性以及节点间的交易关联关系对粮油质量安全区块链网络中各风险节点进行分层分区处理。区块链网络中的共识节点的分层是实现节点分区的基础,基于DEMATEL-ISM集成模型构建的风险节点多级递阶有向图,根据各个风险节点对整个粮油质量安全区块链系统作用的影响程度和地位对其进行区域划分,建立从底层节点区域、中层节点区域、上层节点区域的“六层三区”区块链网络节点分层分区体系,其中,多级递阶解释结构模型表层影响因素又划分为了层级2和层级3,如图4所示。
图4 区块链节点分层分区体系
在粮油质量安全区块链共识节点分层分区体系构建过程中,各参与节点在区块链系统中的交易地位与区块链节点分层分区体系的区域层级成反比,由粮油质量安全区块链风险分析结果可知,图4中区域3为底层节点区域,其所覆盖的区块链网络节点主要为对整个粮油质量安全区块链系统影响更为深层和全面的影响因素节点,包括底层因素节点以及深层因素节点,此类节点在区块链网络中节点交易关系中占据的地位也较高。区域2为中层节点区域,其中覆盖的区块链网络节点主要为浅层因素节点,此类风险节点作用机理复杂,风险节点相互之间也呈集聚的态势,将其划分为一个单独的区域进行内部共识不仅可显著提高区块链全网共识效率,还能在一定程度上提升参与节点的隐私信息安全。区域1为上层节点区域,覆盖的区块链网络节点主要为威胁粮油质量安全区块链的直接因素节点以及表层因素节点,此类节点位于粮油质量安全溯源供应链的末端,对整个粮油质量安全区块链系统的影响机理相对简单,作用范围也较小,因此在区块链全网节点进行交易、共识时的地位也相对较弱。
通过对基于DEMATEL-ISM的粮油质量安全区块链网络结构中的共识节点进行分层分区处理,构建了多个松耦合的区块链共识节点集群区域,各共识节点区域之间无相互干扰,可协同并发执行节点共识,进而提高区块链全网的共识效率、吞吐量等性能。
1.3 区块链网络子链划分
基于集成DEMATEL-ISM可解释性算法模型构建的粮油质量安全区块链网络结构,结合“六层三区”的区块链网络节点分层分区体系以及各风险节点在整个区块链系统中的影响程度,对分层分区体系内的区块链网络各节点进行进一步的子链划分。在粮油质量安全区块链节点分层体系中,通过从底层起始节点逐渐向上层节点探寻,遇分叉节点终止,将由起始节点至分叉节点之间的所有节点划分为一个共识节点子链,再以分叉节点作为起始节点重复向上层节点探寻,直至完成所有子链的划分。并根据划分子链中各节点的中心度,选举出每一条子链的主节点,划分后的子链以及每条子链的主节点如图5所示,其中,6条子链分别以不同的线型标注以示区分。
图5 粮油质量安全区块链网络子链划分示意图
图5中6条不同的线型分别代表划分的6条不同子链,每条子链中中心度最高的节点即为该条子链的主节点,如图5中的加粗节点,其在子链各节点交易共识中的地位也相对更高。网络内各条子链的主节点之间相互通信,并通过共识机制保障整个区块链网络的分布式一致性。不同的子链之间能在同一时间段并发执行共识,打包生成新的区块,并按照时间的顺序有序地添加到区块子链中,而不必等待区块链全网所有节点同步完成共识,这种基于分布式共识的区块链网络子链划分结构从根本上解决了传统“一条链”式区块链无法在短时间内全部节点达成共识并完成大量交易的问题,有效提升了粮油质量安全区块链的共识效率和交易处理能力,且子链分布共识缩小了参与节点的信息共享范围,在一定程度上降低了潜在的隐私信息安全风险。
2 粮油质量安全区块链共识机制优化
粮油质量安全区块链参与节点众多、风险因素复杂且溯源数据量大,容易导致区块链网络拥塞、延时较长等,因此对区块链的性能要求较高。Kafka作为一种高性能、高可扩展性的共识机制,将其应用于粮油质量安全区块链系统可有效提升区块链网络的扩展性和共识效率,但对于参与节点众多且关联关系复杂的粮油质量安全区块链应用场景,Kafka共识仍存在一些不足使得其应用于粮油质量安全区块链优势效果并不突出。一个区块链网络中会有多个Orderer节点分布式部署于多个机构,共同提供排序服务。Kafka共识过程中,同一时刻只能对同一个主题中同一个分区的消息进行排序,不支持跨主题跨分区的排序处理。虽然Kafka集群中每个分区都可以拥有相同的副本提升集群的容灾能力,支持崩溃容错,但它并不能提供对网络中恶意攻击的保护。因此,本文针对Kafka共识的拜占庭容错能力以及集群分区机制进行优化改进,以使Kafka共识机制在粮油质量安全区块链溯源场景下既能发挥更高的性能优势,也能对区块链系统的安全性提供较好的保障,从而使得区块链系统更加适用于粮油质量安全溯源控制专用场景。
2.1 Kafka共识机制分析
Kafka共识机制本质是一个性能高、崩溃容错能力强、可扩展性强的分布式消息系统[32]。Kafka共识的集群时序消息服务基于Paxos算法,通过zookeeper组件进行多通道分区,无法对抗恶意节点攻击,但能容忍少于半数的网络节点发生宕机崩溃等故障。Kafka使用经典的发布-订阅式消息处理模型,工作原理如图6所示,其中,系统中生产者节点负责交易消息的广播发布,消费者节点通过订阅集群分区中特定的消息主题接收新的交易消息。
图6 Kafka共识工作原理图
Kafka共识机制下,当网络中数据规模逐渐庞大时,可以将Kafka集群拆分为多个分区,Kafka集群能够在一定时间及规模阈值内保存交易消息且保证各分区内交易消息按顺序排列,但并不读取交易消息,消费者节点根据需求定位查询交易消息,由此形成回溯机制。此外,Kafka共识下各消费者节点匹配单个或多个消息主题,且属于不同的集群分区,因此使得交易消息进入Kafka集群后能够分配给特定的分区并发执行处理进程,且交易消息不会被多次重复读取,有效提高了网络的共识效率。
Kafka共识通过一种领导-跟随机制在多个排序节点之间进行分区复制以实现崩溃容错。领导节点在网络分区内负责分区的共识以及公共账本的维护,跟随节点则通过复制维护更新分区账本,在分区网络内领导节点发生宕机崩溃等问题时,通过将某一跟随节点转变为新的领导节点继续进行分区内共识,使得网络中的交易数据在当某一节点崩溃失效无法进行共识时也不会丢失。Hyperledger Fabric中的Kafka实际运行逻辑如图7所示。
图7 Hyperledger Fabric中的Kafka运行逻辑图
2.2 基于PBFT改进Kafka拜占庭容错能力
传统Kafka共识机制下,虽然其能够通过排序节点复制支持崩溃容错,但它并不能抵抗区块链网络中恶意节点进行女巫攻击或验证节点作恶等[33-34]。针对此类问题,首先,将排序服务节点部署到子链的每一个参与企业节点中,使子链中的每一个节点均参与到交易消息的排序服务中,再通过引入PBFT共识机制的原理,在各排序节点收到交易消息进而将其中继到Kafka集群之前先在各排序节点之间进行PBFT共识,以此验证交易消息的一致性,防止网络中恶意节点的攻击,实现区块链网络的拜占庭容错能力。本文提出一种基于PBFT改进Kafka共识机制的拜占庭容错能力的共识算法P-Kafka,其原理如图8所示,其中,C代表消息请求客户端,OSN10、OSN12、OSN5和OSN19分别代表粮油质量安全区块链各子链主排序服务节点。
图8 改进Kafka共识机制拜占庭容错能力原理图
改进Kafka拜占庭容错能力共识机制的具体执行流程如下:
(1)每次共识执行前,即每次视图开启前,首先计算更新主节点,公式为
p=vmodn′
(9)
式中v代表当前视图编号,n′表示每次共识执行中主节点广播消息的唯一递增序号,mod为取余运算。
随着视图v不断增长,主节点p也相应随之变化,采用这种轮换的方式从各子链产生的排序服务主节点中再次选举产生拜占庭容错共识的主节点,可避免单一节点长期占据主节点位置进而威胁区块链全网数据安全,图8中OSN10即代表排序服务主节点。
(2)客户端发送交易消息m至排序服务主节点OSN10,排序服务主节点由此开始执行三阶段协议进行拜占庭容错共识,排序服务主节点若出现崩溃,则通过视图切换更换新的排序服务主节点。
(3)排序服务主节点OSN10收到客户端发送来的消息后,构造预准备消息pre-prepare,v,n′,dm,其中,pre-prepare代表当前消息所处的共识阶段,d为交易消息m的摘要,并将消息广播至区块链网络中其他排序服务副节点,也即各子链的主排序服务节点,如图8中OSN12、OSN5、OSN19节点所示。
(4)排序服务副节点收到主节点的预准备消息后,首先验证交易的合法性,以防止客户端造假或排序服务主节点进行恶意篡改。若经验证交易消息非法,则该排序服务副节点舍弃该条交易信息并且不参与此次共识过程,若消息验证合法后则进入准备阶段,生成准备消息
(5)排序服务副节点收到准备消息后,同样先验证交易消息的合法性,当排序服务副节点收到包含本节点在内2f+1条一致的准备消息后,进入确认阶段,构造确认消息
(6)排序服务节点收到包含自身在内2f+1条一致性的确认消息后,将交易消息m中继至Kafka集群,待Kafka集群对交易消息处理完毕后,再通过排序服务节点打包生成新的区块添加上链,并将其发送至请求客户端,由此实现Kafka的拜占庭容错共识。
2.3 粮油质量安全区块链场景下的Kafka分区优化
分区机制是Kafka共识实现高吞吐量、高性能的重要手段,但分区的数量并非与分区的效果以及区块链网络的性能成正比,区块链网络中分区的数量越多,网络消耗的计算资源也就越多,分区数量过多或过少均无法较好地发挥Kafka的高伸缩性、负载均衡以及动态调节等能力。尤其当应用于实际场景中时,由于每个业务场景都不同,分区策略的制定,包括分区数目以及分区节点等的设定也需要结合具体业务应用场景。
目前Kafka使用随机策略、轮询策略以及按键保存策略3种常用的分区策略。随机策略属于最原始的Kafka分区策略,通过产生随机数将交易消息随机分配,其分配的均衡性较差,容易给网络造成负担。目前Kafka已经默认改为轮询策略,即按交易消息的顺序轮流将每条数据分配到集群分区中。按键保存策略即当区块链网络内的生产者节点发送交易消息时指定一个key值,通过计算这个key的哈希值,按照哈希值对不同的交易消息进行分区存储。本文考虑粮油质量安全特定应用场景,通过采用按键保存分区策略,结合粮油质量安全区块链优化网络结构以及子链划分情况对Kafka集群分区进行优化,分区优化示意图如图9所示。
图9 Kafka共识分区优化示意图
Kafka分区的设置与区块链网络分区体系以及子链划分相匹配,每条子链对应一个Broker,一个Kafka集群可以由多个Broker组成,可根据实际业务场景需要进行拓展,如图9中一个Kafka集群包含6条子链对应的6个Broker。此外,根据前文中构建的粮油质量安全区块链网络节点“六层三区”的分层分区体系,分别将底层、中层、上层节点区域设置为3个不同的Topic,Topic作为Kafka集群中交易消息的主题,可对交易消息进行分类。根据粮油质量安全实际业务场景将其分为3个主题,不同区域内节点交易消息相互之间降低干扰,可有效降低区块链网络中交易消息的混乱对系统性能造成的影响,且一个较大的Topic可以分布到多个Broker上,以提高区块链网络的扩展性,如 图9 中Topic 1分布在Broker 1、Broker 2上,Topic3分布在Broker 4、Broker 5、Broker 6上。以子链划分为依据将每个Topic内部再划分为若干Partition,且同一Topic内部不同Partition分区只处理相关子链节点的交易消息,因此不同Partition上的数据是不重复的。通过对每个Partition分区设定不同的参数,节点客户端产生的交易消息在经各子链主排序节点完成PBFT共识后,由子链主排序节点添加消息键key,交易消息进入Kafka集群后,由消息键key与Kafka集群内相应的Partition分区进行匹配,Kafka通过交易消息key的哈希值来确定消息需要写入哪个具体的分区,由此确保不同key值的数据写入不同的Partition分区,不同分区内部各节点再按照交易消息的顺序打包形成交易消息序列并存储,再经由各个子链的主排序服务节点打包生成新的区块,并添加至区块链系统中。通过这种Kafka分区优化的方法实现了粮油质量安全区块链各子链分区同步共识,避免重复共识造成的资源浪费,同时也有效提高了交易消息的处理效率和区块链网络的吞吐量。
3 结果分析
本文基于集成DEMATEL-ISM可解释性算法模型构建了一种基于多级递阶解释结构的新型粮油质量安全区块链网络结构,在风险节点多级递阶有向无环图的基础上,对区块链网络内部的各个参与节点进行分层分区划分以及子链划分,并对其相应的共识机制进行了优化改进。本文以图10所示的架构从正确性、性能等方面对粮油质量安全区块链的优化改进结果进行分析。
图10 粮油质量安全区块链优化结果分析架构
3.1 正确性分析
通过将粮油质量安全区块链的结构设计成基于有向无环图的多层递阶网络结构,使得传统区块链结构形式下对计算资源的大量消耗以及共识效率难以提升的问题得到有效解决。此外,针对粮油质量安全溯源控制场景下传统单链式区块链项目在进行大量验证交易过程中存在的共识效率低等问题,通过对粮油质量安全区块链系统中区块生成共识机制进行优化设计,新的共识机制能够将区块存储结构与Kafka集群分区进行有效结合,从而能够有效应对大量验证交易,使得同一时间段内区块链网络内全体用户节点共同进行交易并同时生成区块的目标得以实现,且能够大幅节约区块链系统的计算资源。
区别于传统的公有链、联盟链等形式的区块链,本文提出的基于DEMATEL-ISM构建的有向无环图式结构的区块链使得区块链网络内的参与节点可在同一时间内并发执行共识,产生新的区块,不再需要像传统区块链一样等待其他区块生成完毕后才能生成新的区块。“六层三区”的粮油质量安全区块链网络节点分层分区体系使粮油质量安全区块链网络结构更加明晰,对于构建粮油质量安全区块链的共识机制以及底层智能合约提供了一种高效的设计指引。此外,通过划分子链的区块链网络结构使得粮油质量安全区块链网络节点执行共识仅需要同实际业务场景下具有强关联关系的相关子链参与节点之间进行,不需要全网所有节点共同参与共识,极大提高了区块链网络的共识效率、网络吞吐量等性能。
Raft算法是一种去中心化、高可用的非拜占庭容错分布式一致性算法,设置了Leader节点、Follower节点和Candidate节点3种角色。Raft共识中所有操作请求需要先转发到Leader节点,再由Leader节点发送数据到各Follower节点进行同步,Leader节点选举过程和日志复制过程都会因Leader负载不均问题而将直接影响共识效率,例如在Candidate节点选举过程中多个节点获得相同票数导致投票分歧。PoS(Proof of stake)权益证明引入“币龄”概念,持有更多币或更长时间则拥有更多权益,以此将PoW(Proof of work)算力竞争转化为权益竞争来节约算力,权益的引入也能够防止节点发起恶意攻击。但是新区块的生成倾向于权益更高的节点,并没有解决中心化程度增强的问题;相比于PoW工作量证明效率有所提高,但交易吞吐量小,共识效率仍无法满足需求。PBFT算法需要预准备、准备及提交三阶段投票达成共识,主节点收到超过2/3节点的准备消息就向全网广播一条提交消息,即可提交新区块到本地区块链, 达成对最新高度区块的共识,支持1/3总节点数量的容错能力。PBFT通过三阶段投票机制有效降低了恶意节点对共识的影响,但是由于一次共识过程需要经历一次单点全广播与两次全点全广播,通信开销大,并不适用粮油场景下高交易量的需求。
3.2 性能分析
从去中心化、安全性、共识效率、可扩展性以及一致性5方面分别对PoS、PoW、Raft、PBFT以及P-Kafka的性能做了分析比较,如表4所示。参与共识的节点数量、主节点的选择方式与共识节点的权重都影响共识的去中心化程度,节点的权利越分散,去中心化程度越高;共识节点数量指参与共识的是部分节点还是全网所有节点;主节点选择方式决定了共识属于竞争类还是选举类;共识节点权重指每一轮共识过程中成为主节点的概率是否相等。安全性主要包括容错率、节点可控性、攻击多样性、攻击成本与安全恢复性等指标;容错率指共识在保证区块链在达成共识的前提下所能接受的拜占庭恶意节点在全网节点的占比;节点可控性指参与共识的节点是否有排除恶意节点参与到共识中的能力;攻击多样性指共识算法所能承受攻击的种类、数量;攻击成本指恶意节点发起攻击所需要的代价;安全恢复性指区块链受到攻击后,使数据恢复到攻击发生前安全状态的能力。共识效率从延迟、交易吞吐量2个角度分析;延迟指从一个区块被生成到它的共识过程完成所需要的时间;吞吐量指单位时间内处理交易的数量,吞吐量越高性能越高。可扩展性包含资源消耗与通信复杂度两个因素;资源消耗指共识过程中节点对算力、存储及网络等资源的消耗程度;通信复杂度指节点与节点之间在区块链网络中的通信成本。一致性包含了分叉可能性与最终一致性;分叉可能性指区块链是否存在分叉的情况;最终一致性指各个节点的数据在有限时间内最终是否达成一致。
表4 共识算法性能比较
(1)去中心化
本文所提算法通过基于DEMATEL-ISM集成模型分析粮油质量安全实际场景下网络各节点的中心度,以此作为主排序服务节点选取及进行拜占庭容错共识的依据,子链各节点通过参与Kafka共识优化投票过程,具有一致公平性;PBFT共识中选取Leader过程各个节点参与投票,P-Kafka继承了这一逻辑,各个节点公平竞争,相比于PoW、PoS这类竞争共识拥有更多的资源就可以垄断主节点,去中心化程度更高。
(2)安全性
基于公链的PoW、PoS竞争类共识,对这类共识发动攻击的成本较高、难度较大,并且具有一定的安全恢复性。由于Raft共识仅支持故障节点容错,并不支持恶意节点容错,无法抵御拜占庭恶意节点的攻击,不能满足粮油质量安全场景的应用需求。
优化的粮油质量安全区块链网络结构更加关注各个参与节点之间的相互关联关系,将区块链系统的共识以多条子链分布式共识的形式完成,各个参与节点共识的对象和范围大幅减少和缩小,这在一定程度上控制了参与节点信息传播的范围,尤其对于保护粮油供应链中生产加工类企业节点关键生产数据等隐私信息的安全性具有重要意义。改进的共识在Kafka排序过程中引入PBFT投票机制,提升了共识的拜占庭容错能力,一定程度上提高共识的安全性。
(3)共识效率
传统的公有链、联盟链式区块链因其结构限制出块效率相对较低,每一笔交易达成共识写入区块链的过程都需要等待区块链全网中所有的节点完成后才能生成新的区块,以比特币区块链为例,其需要每10 min才能生成一个新的区块,显然不能满足实际业务场景的应用需求。本文所构建的粮油质量安全区块链网络结构以及优化的Kafka共识机制仅在子链主排序服务节点进行拜占庭容错共识时占用一定的计算资源,显著低于传统基于PoW等类型的区块链。此外,优化的共识机制基于粮油质量安全溯源场景中授权参与节点建立,其在生成区块后无需像PoW等传统公链的共识机制那样需通过连续6个区块确认才能添加至区块链,基于场景授权的共识机制能够在新区块打包完成后直接添加至区块链网络。对于节点参与众多、关联关系复杂、数据量日渐庞大的粮油质量安全区块链溯源场景而言,本文所设计的网络结构及共识机制在保证参与节点一致公平性的前提下,一定程度上提高了区块链网络中的交易区块出块效率。
(4)可扩展性
可扩展性方面,竞争类共识PoW、PoS资源消耗大,单个节点性能受限,不适合粮油质量安全这类大规模业务的场景。而本文基于PBFT改进的Kafka共识P-Kafka虽然通信复杂度较高,但是相比于竞争类共识可扩展性得到提升。
(5)一致性
在区块链网络节点达成共识方面,通过对粮油质量安全区块链中的Kafka共识机制进行优化,在交易消息经区块链网络中各子链排序节点中继到Kafka集群之前增加拜占庭容错共识的过程,保障了区块链系统在当网络中存在一定规模的恶意节点攻击时仍能进行分布式一致性共识,维持区块链系统正常运行。
4 结束语
本文通过对粮油质量安全区块链进行系统性的风险分析研究,通过建立粮油质量安全区块链风险指标体系,并在解析粮油质量安全区块链风险和信息特征的基础上,改进并优化了现有完全非可信执行场景中通用型区块链结构。包括在网络层提出了一种适用于非完全可信执行场景中粮油质量安全专用型区块链网络结构,在共识层提出一种基于PBFT改进拜占庭容错能力的符合粮油质量安全区块链特征的Kafka共识优化算法P-Kafka,使得区块链在风险可辨识和可控的情形下适用于粮油质量安全专用场景。