基于改进PBFT的区块链工程监理数据共享模型
2023-03-07黄子鑫党建武王阳萍
黄子鑫,党建武,王阳萍,雍 玖
(1.兰州交通大学 光电技术与智能控制教育部重点实验室,甘肃 兰州 730070;2.四电BIM工程与智能应用铁路行业重点实验室,甘肃 兰州 730070;3.兰州交通大学 电子与信息工程学院,甘肃 兰州 730070)
0 引言
近年来,工程建设项目呈现数量多、体量大、各参建系统组成复杂等特点,使得工程监理对项目建设的质量控制难度增大,对监理数据的可靠性、易获取性有较高要求,构建信息化监理数据共享平台,将有利于解决上述问题。对于监理数据交互过程产生的大量数据流无法使用单台计算机进行处理,云计算作为一种全新计算方式,利用动态、可伸缩的计算资源,能够对数据进行有效整合,提高数据的利用效率。尽管云计算在数据处理方面优势突出,但云环境下的信息共享平台受到云端第三方限制,数据安全存在隐患,导致提取的数据缺少法律效力;由于各项目参建方组织架构零散,很难实现对数据的完全信任与共享,使得监理方与工程项目各参建方的信息交流困难,监理记录(滞后)与现场实际情况不同步,影响施工质量。
区块链作为比特币的底层技术,本质上是一个不可篡改的分布式数据库,其不可篡改、去中心化和可溯源的特性,能够解决云环境下的数据共享网络中存在的安全性问题。对于采用区块链技术的数据共享方案进行研究,文献[1]设计了一个微电网数据安全共享方案,通过对传统权益证明(Proof of Stake,POS)共识作出改进,解决传统POS共识机制容易分叉的问题,但改进后的共识机制无法满足大规模节点应用场景下的共识需求。文献[2]提出了一种基于联盟区块链技术的知识共享模型,通过星际文件系统(InterPlanetary File System,IPFS)实现知识数据的可靠存储,并使用智能合约保障数据安全,但使用智能合约实现整个知识共享过程的设计导致系统开销过大,无法应用于大规模数据管理。文献[3]提出了病人可控、云链协同的病历共享模型,在病历共享上通过采用聚类算法对实用拜占庭共识算法加以改进,一定程度上提升了算法效率,但算法容错性有待提升。文献[4]提出了基于区块链的车联网数据共享模型,用于保障数据的安全传输,但以计算能力较弱的车辆作为节点,导致共识效率低下。文献[5]设计了一种基于区块链的动力电池数据监控与共享系统,由于未对传统共识机制进行优化,导致系统运行效率低下。
对于采用区块链技术的工程项目管理领域进行研究,文献[6]提出了基于区块链的质量信息管理模型,通过保障质量信息管理的一致性和透明性,避免利益相关者之间的纠纷。文献[7]针对工程建设质量管理及追溯中存在的问题,提出了基于区块链技术的多角色参与、全过程追溯的信息管理系统框架。文献[8]为解决铁路大数据在流转过程中存在的信任成本高、数据安全得不到保证等问题,提出了一种基于区块链技术的信息共享框架,并对方案可行性进行了分析。文献[9]对区块链在工程项目管理领域的适用性进行分析,并根据应用场景提出了相应的应用方案。文献[10]针对传统监理行业管理效率低下、管理不透明和数据资料有效性得不到保障的问题,提出了基于区块链技术的工程监理模式,并将其应用在雄安新区的工程建设上。综上所述,已有一些研究将区块链应用于工程项目管理中,但随着工程规模的扩大以及建设环境的复杂化,需要更加高效、可靠的区块链系统为项目管理提供保障,以上工作尚未针对系统的功能实现、共识效率及安全性问题对区块链自身关键技术进行研究改进。
本文在现有研究的基础上,提出一种基于区块链的工程监理数据共享模型。首先,将各工程建设参与方纳入平台管理构成监理数据共享联盟链,为缓解链上存储压力,采用文件摘要信息链上存储,源文件加密后进行链下IPFS存储的方式实现数据的安全存储;其次,设计智能合约来完成监理数据的上链存储及查询操作,保障了操作过程的高效性、透明性;最后,针对传统实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)算法[11-13]存在缺少节点以及退出机制、共识效率随节点规模增大而不断降低等问题,引入节点信任度评价模型对PBFT共识机制进行改进,并在完成共识后将存证数据向全网广播,进一步保障全网数据的一致性。通过对系统的安全性、性能测试结果进行论证分析,得出本方案具有良好的性能与安全性。
1 模型架构设计
基于区块链的工程监理数据共享模型能够有效提高监理部门的工作效率,且在保证监理数据安全的同时,解决监理方与各参建单位间因为信任成本高导致的信息交流困难问题。基于区块链的工程数据共享模型如图1所示。模型由用户端、工程数据共享联盟链和IPFS集群3部分组成。
图1 基于区块链的工程数据共享模型Fig.1 Engineering data sharing model based on blockchain
(1)用户端
普通用户在身份认证通过后由客户端向监理数据共享联盟链发起交易请求,调用相应的合约接口,通过部署完备的智能合约实现监理数据的存储及查询。
(2)监理数据共享联盟链
监理数据共享联盟链主要包括节点网络、共识机制以及智能合约。节点网络由参与工程建设的施工方、监理方、设计方、建设方以及政府监管部门组成。监理方项目管理部门承担系统中管理员的角色,主要包括创建部署区块链网络、管理链上节点及账本、用户身份注册以及证书的发放和管理、智能合约管理。本方案使用改进后的PBFT算法进行交易广播,参与共识的节点能够查询数据并负责执行共识算法,未参与共识的节点负责监督共识并将共识结果同步至各自的分布式账本。智能合约部署于区块链上,能够被链上节点查看并调用执行预置响应动作,通过智能合约保障数据流转过程中的一致性及透明性。
(3)IPFS集群
IPFS是一个点对点的分布式文件系统,有较高的安全性和存储能力,在本文模型中用于链下存储加密文件数据,用户可通过唯一标识文件的Hash地址查找 IPFS 中的对应文件。模型数据流说明如下:
① 项目参建单位用户在将文件分类整理后,将原文件通过项目参与方公钥加密并存储到IPFS集群。
② 上传完成后,IPFS返回数据访问地址到参建单位客户端。
③ 参建单位用户将文件相关各方私钥签名、文件ID和文件Hash地址等属性信息进行打包,构造存证信息;通过部署好的智能合约上传信息至区块链并加盖时间戳。
④ 在上链完成后,发回链上文件ID到参建单位客户端。
⑤ 链上的普通用户发送查询请求,根据链上文件ID通过智能合约执行查询操作。
⑥ 完成查询后返回操作状态和查询结果。
⑦ 项目参与方用户向IPFS发送文件数据获取请求,将文件的Hash地址发送至IPFS集群进行查询。
⑧ IPFS根据索引查询得到加密后的文件,发送至客户端,查询者在链下通过私钥解密后得到完整原文件。
2 实现方案设计
2.1 区块链与IPFS相结合的安全存储机制设计
考虑到现有区块链系统工作性能和存储能力不足,以及中心化数据库存在的数据安全问题,本文将采用链上存储结合IPFS的方式来进行存储机制设计。区块链与IPFS相结合的安全存储机制如图2所示。以监理部门进行监理数据上传为例,将原文件加密后存储至IPFS集群,IPFS系统返回文件唯一Hash地址至客户端, Hash地址作为交易数据同文件属性信息一同存储至区块链账本。若对原文件数据进行修改,由于 IPFS产生 Hash 地址与文件唯一对应,对原文件的更改会导致其对应Hash地址的改变,而上传至区块链中的 Hash 地址不可被篡改,通过对比检测,保证了监理数据的不可篡改。在存储性能上,由于Hash地址占用存储空间较小,相较于将原文件存储至区块链,本方案能够有效缓解链上的存储压力。
图2 区块链与IPFS相结合的安全存储机制Fig.2 Secure storage mechanism combining blockchain and IPFS
2.2 智能合约设计
为解决传统监理数据共享系统存在的执行过程不透明、执行标准不统一的问题,本方案采用智能合约实现监理数据交互过程中的各项功能,智能合约的核心算法逻辑包含监理方数据存储以及数据查询2部分。
2.2.1 监理数据存储合约
监理数据存储合约用于将文件摘要信息存储上链。用户发送存储申请,在数据存储的过程中调用已部署完备的RPC,为确保链下存储数据的机密性,管理员使用项目参与方的联合密钥K加密文件数据,并将加密后的数据发送至IPFS进行存储,成功存储后IPFS端会返回数据的访问地址CID。最后,将原文件Hash值h以及用户私钥签名文件s等相关属性信息打包,构造存证信息并执行上链操作,具体算法如下。
算法1监理数据存储合约输入:用户私钥SK,文件名N,文件内容C,时间戳Timestamp输出:交易哈希Tx_Hash,状态值R1. function EvidenceStorage (input list)2. h←Hash(C)3. s←Sign(SK,C)4. M←Encryption(C,K)∥ 原文件加密5. cid←StoreToIPFS(M) ∥ 密文上传至IPFS6. t←ConstructTx(N,h,s,cid,Timestamp) ∥构造交易7. Tx_Hash←BrocastTx(t) ∥广播交易8. if Tx_Hash is Null9. R ← fail10. else11. R ← success12. return {Tx_Hash,R}13. end function
2.2.2 监理数据查询合约
监理数据查询合约用于为链上用户提供存储数据查询功能。用户向区块链发送查询请求,通过文件ID进行索引,文件ID是文件的唯一特征值,完成查询后将结果返回给用户。为避免查询量增加导致的性能下降问题,本方案中监理方节点通过维护一张Hash表(TABLE)来实现基于文件ID进行的查询。
表中存储文件ID到文件属性值(索引)的映射。TABLE具体结构如下所示:
TABLE={KEY:id,VLAUE:(TimeStamp,name,register,hash,owner,cid)}
通过调用size方法判断是否查询到文件数据,若查询成功,则返回第一条存储记录,若失败则返回默认字符串。具体算法如下。
算法2监理数据查询合约输入:链上文件id输出:文件相关属性集合env(文件名name,登记人register,文件哈希hash,时间戳timestamp,所有者owner, 索引值cid)1. function SelectEvidence (String id)2. t←getTableContract(C)3. c←newCondition(id) ∥以id为查询主键4. q←InvokeSelect(t ,c)5. If (q.size > 0) ∥ 判断该id对应的证据记录是否存在6. env←q.getResult[0] ∥获取第一条存证记录7. else8. env← empty9. return env10. end function
2.3 PBFT共识机制改进
针对传统PBFT算法在监理数据共享系统应用中存在的缺陷,例如存在主节点选取随意、共识效率随节点规模增大而不断降低等问题。本文结合监理数据共享的应用场景,引入节点信任度评价模型对PBFT进行改进。考虑到全节点参与完成一次共识,系统中广播的通信量较大,导致通信复杂度高、共识效率差。改进后的PBFT算法依据节点行为评价值对节点进行筛选,选取可靠的共识节点及主节点参与共识,通过缩小共识群组规模降低通信复杂度,在保证共识安全的前提下,有效地提升了共识效率。算法流程如图3所示。
图3 算法流程Fig.3 Algorithm flow chart
对节点历史共识行为进行评价,按历史评价值大小降序排列节点,在新一轮请求开始前选定共识节点群组及主节点。确定共识群组后执行共识协议,若在规定时间内完成共识则将新区块写入区块链,否则通过视图切换协议更改主节点。根据节点此轮共识行为评价对节点信任度进行更新,并对所有节点执行信任度恢复机制。根据更新后节点信任度值重新对节点进行等级划分,选取可靠节点进行下一轮共识,循环至客户端停止发送请求。
2.3.1 节点信任度评价模型
信任模型最早由Marsh系统论述,基于节点共识行为对其信任进行度量。在本文模型中,对于节点行为的监测参考文献[14]的方法,即完成共识后允许参与共识的节点根据节点历史交互情况相互进行行为评价,在评价过程中,由与其进行信息交互的节点进行标记,具体节点行为分类如表1所示。若节点i在规定时间内向节点j发送消息,且此消息与j接收到的大部分消息一致,则认为节点i共识行为正常,标记为正常节点;若节点j在规定时间内未收到节点i发送的消息,或节点i拒收节点j发送的确认消息,则认为节点i离线,标记为宕机节点;若节点j收到的大部分消息与节点i发送的消息不一致,则认为节点i是恶意行为,标记为恶意节点,且一旦被标记为恶意节点,后续节点的行为评价将无法更改标记。根据节点行为标记对节点进行信任度评价值计算,信任度评价值将作为节点等级划分的依据。
表1 节点行为分类Tab.1 Node behavior classification
(1)节点历史信任度评价
节点历史信任度评价值通过节点在上一轮请求前的历史共识行为进行计算,通过节点历史行为评价可以预测节点在将来共识过程中的活跃程度,有效防止节点在共识前刻意隐藏共识行为并伺机破坏共识,节点i的静态信任度评价Qi可以表示为:
Qi=Si-kEi,
(1)
式中,Si为节点i历史共识行为中诚实行为的次数;Ei为节点i历史行为中作恶次数;k为权重。节点的信任度历史评价值随节点历史行为中作恶次数增加而减小。
(2)节点近期信任度评价
节点近期信任度评价值依据节点在上一次共识中的行为进行计算,近期的共识行为作为评价节点的重要依据,使信任模型能够满足对正常参与共识节点进行奖励,容忍偶发故障节点,严厉惩罚作恶节点,信任度评价计算如下:
Mi=Si(t)-k2Di(t)-k4Ei(t),
(2)
式中,Si(t)表示节点在第t次共识中节点是否是正常行为,若表现为正常行为,则Si(t)=1,否则Si(t)=0;Di(t)表示节点第t次共识中是否有故障行为,若表现为故障行为,Di(t)=1,若无故障行为,Di(t)=0;Ei(t)表示节点第t次共识中是否有恶意行为,若表现为恶意行为,Ei(t)=1,若无恶意行为,Ei(t)=0。权重按指数级别设置,节点一但作恶,Mi迅速下降,使得系统能够及时对恶意节点做出反应。
(3)节点信任度动态更新
完成视图切换后,根据节点历史信任度值以及近期信任度值对群组内节点信任度进行动态更新,更新后的节点信任度值计算如下:
Ri=Rinit+α×Qi+β×Mi(i=1,2,…,n),
(3)
式中,Ri是节点综合信任度值,0 2.3.2 节点信用等级划分 为确保系统具有较高的共识效率,本方案根据信任度值对节点进行信用等级划分,选择部分信任度值较高的节点参与共识,并保证主节点的安全可靠。节点等级划分阈值如表2所示,Rg为优先节点集合阈值,信任度值满足Rg 表2 节点等级划分阈值Tab.2 Threshold of node level classification 表3 节点权限分类Tab.3 Node permission classification 2.3.3 节点信任度恢复 信用恢复机制通过节点已获得的信任度值来调节奖罚程度,用于对信任度值过高或过低的节点进行信任恢复,防止节点因为信任度过高而产生惰性行为,或者因信任度过低被永久隔离出共识群组。信用恢复机制可以在一定程度上降低系统中心化风险以及加速共识群组内成员流动,避免趋于集中化。信用恢复定义如下: Ri=Ri-[h/T]×γ(Ri>Rg), (4) Ri=Ri+[h/T]×γ(Ri (5) 式中,h为节点距离上一次共识的时间;Rg为B组上限阈值;T为设置的复苏周期,是一个常数;γ是设置的信用恢复权值。T,γ均可根据具体业务调整,为避免节点在成功参与共识后的信任度值出现负增长,T,γ的取值应满足T>γ。若节点的信用值Ri>Rg,对其信任度值逐步进行回收,一旦节点信任度值达到上限阈值或担任过主节点,在下一轮共识开始时该节点信任度值会被重置为B组上限阈值Rg;若节点的信用值Ri 2.3.4 广播结果与数据同步 共识算法用于保证系统内所有节点达到一致的共识状态,对于传统PBFT算法,达成共识后在回复阶段,所有参与共识的节点会返回响应到客户端,客户端根据接收到的响应结果数量判断是否保存共识。在建设工程监理数据共享的应用背景下,共识的目的是保障工程监理数据的存证效力,需要各工程建设参与方共同维护。基于文献[15]并结合本文研究背景对回复阶段进行改进,在完成共识后将数据向全网广播,使未参与共识的节点同步数据,共识节点对数据同步过程进行监督,共同维护链上数据的一致性,且一定程度上降低了缩小共识群组范围带来的系统中心化风险。一致性协议执行流程如图4所示。 图4 一致性协议执行流程Fig.4 Consistency protocol execution process 请求阶段(Request):用户通过客户端向主节点发送提案申请,在对请求数据格式及数字签名验证通过后构造提案信息。提案信息格式为 预准备阶段(Pre-Prepare):主节点将提案信息构造成预准备信息并发送至各副本节点。预准备信息格式为 准备阶段(Prepare):各副本节点接收主节点预准备信息,验证通过后进入准备阶段,生成准备信息并发送至其他节点,将预准备信息与准备信息写入自己信息日志,准备信息格式为 确认阶段(Commit):当副本节点收到2f+1个与预准备消息一致的准备消息后,表明共识完成。主节点将包含请求信息的区块连接至区块链,副本节点进行账本同步,并向除自己外的其他节点发送确认消息 回复阶段(Reply):共识完成后,主节点向全网节点广播共识结果,参与共识的节点对广播消息进行监督,未参与共识的节点进行账本同步。 本文提出基于区块链的监理方数据共享模型,需要保障数据的安全可靠,且由于本文共识算法的改进借鉴了POS的设计思路,将基于节点共识行为的信誉值作为权益,需要对常见的权益累积攻击及贿赂攻击进行攻击成本分析。 3.1.1 数据安全分析 由于区块链特殊的数据结构,通过计算数据Hash值生成Merkle树并将Merkle根存储在区块头部,若对链上数据进行更改会引起区块Hash值的变化,可通过Hash值检验判断链上数据是否被修改。结合Hash算法防碰撞的特性,改动数据并重新计算区块Hash需要耗费巨大计算量,保证了链上数据的安全。 对于数据链下存储安全,本文采用IPFS存储数据,能够避免因单节点宕机造成的数据丢失,保护了数据的完整性。使用项目参与方公钥加密上传数据后再存储至IPFS,使得只有与文件数据相关的项目参与方才可使用其私钥解密,保护了数据的机密性。在工程监理应用场景中,数据由监理方上传,同建设各参与方进行信息交互,整个过程由智能合约执行,有效保护了数据在传输过程中的安全。 3.1.2 攻击成本分析 (1) 权益累计攻击 权益累计攻击来源于POS 共识机制中的币龄累计攻击,攻击者通过在共识阶段累积信誉值并伺机对系统进行攻击。在基于动态信任度的PBFT共识算法中,节点的信誉值并非随共识次数的增加而无限制增长。文中提出的信任度恢复机制能够限制高信誉值节点的信誉值累积速度,并通过设置上限阈值增加信誉值累积难度,节点一旦进行恶意行为,系统会对节点进行处罚,且信誉值的下降幅度是任何理性节点所不能承受的。故在改进后的PBFT中,节点很难通过积累信誉值对系统发动攻击,有效避免了权益中心化问题。 (2) 贿赂攻击 贿赂攻击者在共识前“悬赏”共识组内节点在其提供的支链上进行打包记账,当作恶节点获得记账权后,攻击者便可以使区块链产生分叉。由于链上的所有节点均是利益持有者,节点作恶会受到处罚并被限制参与共识,一段时间内组织不再为其分配利益。由于节点信任度动态评价中对作恶节点严厉处罚,节点的惩罚损失远大于恶意行为所获得的利益,且攻击者无法确定每次参与出块的节点,故进行贿赂攻击是不可行的。使用文献[16]提出的量化分析方法对本文模型进行分析。 (6) (7) (8) 式(6)代表节点N在前n次共识中积累的信誉值,假设节点在接下来的x次共识中连续作恶。信誉度更新为式(7)。式(8)是节点N在诚实正常行为后进行恶意行为的信任度与之前诚实行为的信任度所占比例。可以看出,在作恶行为后,系统对节点作出严厉处罚,信誉度下降幅度较大,一但节点被隔离出共识组,在一段时间内将不能参加共识。 为了分析改进后PBFT算法的性能,通过建立仿真平台对其进行实验测试,该平台由10~50个节点组成,并设置占总节点数20%的拜占庭节点。为了实验的准确性,减弱网络环境对算法性能造成的影响,在实验中将共识节点部署在同一网络下的3台主机上,具体的环境配置如表4所示。本文实验结合2.3.1参数设置需求对公式中的参数进行设置。由于无法保障新加入节点的可靠性,为避免新加入节点参与主节点选举,Rinit需要满足Rinit 表4 软硬件环境配置Tab.4 Hardware and software environment configuration 3.2.1 共识时延测试 共识时延指客户端发送请求到系统执行完成所需要的时间,是衡量区块链性能的重要指标[17-18]。本文将进行2组实验,环境设置为节点数量规模由10递增至50,进行20次共识,以及设置节点数量为30,共识次数由1增加到40,分别测试2种算法在不同实验环境下的共识时延变化,2组实验均取多次结果的平均值作为算法的共识时延值。测试结果如图5和图6所示。 图5 算法交易时延随节点数量规模变化对比Fig.5 Comparison of algorithmic transaction latency varying with node number 图6 算法交易时延随共识轮数增加变化对比Fig.6 Comparison of algorithmic transaction latency varying with increase of number of consensus rounds 可以看出,当节点数量规模逐步增加时,2种算法的交易时延均随网络节点数量的增加而不断增大。由于存在节点行为评价过程,改进后的PBFT算法共识时延在共识节点数量较少时与传统PBFT算法差距较小,但随节点数量的上升,改进后的PBFT共识算法共识时延小于传统PBFT算法且始终保持较大优势;随着共识轮数的增加,改进后PBFT算法的交易时延趋于稳定且远小于传统PBFT算法。在共识时延方面,改进后的共识算法明显优于传统PBFT算法。 3.2.2 吞吐量测试 吞吐量是单位时间内系统所能处理的事物数量,其大小反映了系统处理交易的能力,计算如下: TPS=transcations/Δt, (9) 式中,transcations为系统在出块间隔内处理的总交易量;Δt为出块间隔。吞吐量测试同样选择在节点数量由10递增至50,进行20次共识,以及设置节点数量为30,共识次数由1增加到40的2组实验环境中测试,每次实验的事件量设置为10 000,2组实验均取多次测试结果平均值作为算法吞吐量测试结果,与传统PBFT算法的吞吐量对比如图7和图8所示。 图7 算法吞吐量随节点数量规模变化对比Fig.7 Comparison of algorithm throughput varying with node number 图8 算法吞吐量随共识轮数增加变化对比Fig.8 Comparison of algorithm throughput varying with increase of number of consensus rounds 可以看出,若节点规模增大,2种算法的吞吐量都随着点数的增加呈降低趋势,但改进后算法吞吐量要明显高于原机制中的系统吞吐量;同样,当共识轮数增加,改进后PBFT算法吞吐量要明显高于传统PBFT算法。从吞吐量上看,改进后的算法在共识过程中拥有更好的性能。 3.2.3 容错性能测试 改进后的PBFT存在基于节点信任度的分组机制,随共识轮数的增加,改进后算法能够将系统中拜占庭节点逐步排除出共识节点组,因此共识节点群组中拜占庭节点数量占比会逐渐降低,一定程度上提高了系统的容错性。实验设置节点数量为30,其中有20%拜占庭节点,随着共识轮数的增加,共识群组中拜占庭节点数量对比如图9所示。 图9 拜占庭节点数量对比Fig.9 Comparison of Byzantine node number 传统PBFT中拜占庭节点数量占比始终保持20%不变[19],而对于改进后的PBFT算法,进行30轮共识后,群组中拜占庭节点占比下降到0,且趋于稳定。可以看出,在长期运行的条件下,改进后的共识算法通过基于节点信任度的分组机制将拜占庭节点排除出共识群组,提升了参与共识节点的可靠性,大幅降低拜占庭节点被选为主节点的概率,相较于传统PBFT算法能够容忍更多的错误节点,满足应用平台的需求。 针对传统的中心化存储方式存在数据易被篡改的问题,基于区块链的数据存证平台能够有效保障数据安全[20-22],但需要高效率的共识以满足监理方与建设参与方之间的数据交互需求。从共识效率、吞吐量和算力需求3方面将本文方案与文献[23-24]中基于区块链的数据共享方案进行对比分析,结果如表6所示。 表6 对比分析结果Tab.6 Comparative analysis results 文献[23]基于比特币区块链系统进行模型设计,能够保证数据共享过程中的数据存储安全,方案使用工作量证明(Proof of Work,POW)机制来防止恶意节点对区块链的攻击,但POW用计算能力竞争的方式选取主节点,相较于PBFT算法共识效率低、算力需求大[19]。文献[24]提出了基于区块链技术的铁路数据汇集共享体系架构,通过基于联盟链的PBFT共识算法解决了POW算法高能耗的问题,但依据3.2.1的算法测试结果,传统PBFT的共识效率及算法安全性相较改进后算法更低。通过对比可以看出,本文所提方案在共识效率、吞吐量和算力需求几方面相较其他方案更优秀。 本文提出了一个基于区块链的监理方数据共享模型,解决了工程监理数据共享中存在的数据安全以及信息交互困难的问题,并对该模型架构及数据流程进行介绍;利用智能合约完成对监理数据的存储和查询,对核心算法逻辑进行说明;提出了一种基于节点信任度评价的PBFT共识机制,在保障共识安全的同时提高了节点间共识效率;通过仿真实验对所提出模型进行安全性及性能进行分析,相比其他模型,本文模型在保障数据安全的基础上有更好的性能,可以满足监理方工程监理数据共享的实际需要。在后续工作中将结合数字签名技术进一步保障用户隐私安全,并制定更详细的访问控制机制来保障数据流转过程中的数据安全。3 实验及理论分析
3.1 安全性分析
3.2 性能测试及结果分析
4 结束语