面向区块链应用的交通产品信息一致性检验方法研究*

2024-03-14 08:48刘姿彤毕靖文
甘肃科技 2024年1期
关键词:哈希一致性区块

刘姿彤,李 政,2,杨 丹,2,毕靖文,2

(1.甘肃省交通科学研究院集团有限公司,甘肃 兰州 730000;2.甘肃省公路试验检测创新服务平台,甘肃 兰州 730000)

在公路工程领域,交通产品质量是工程建设质量的重要影响因素之一,其试验检测工作则是质量检验的主要技术手段。

在互联网产业和信息技术快速发展的时代背景下,交通行业从业者积极探索、加快推进新一代信息技术与质量监督工作的深度融合应用和创新式发展[1]。曾辉[2]探讨了基于跨模态哈希解决不同数据模态之间相互检索的问题。张越[3]系统研究了基于区块链技术解决车辆的通信安全和隐私保护问题。李亚楠[4]在基于区块链的数据存储应用中研究了区块链在数据存储系统中的应用。李泗兰[5]、沈麒[6]等采用哈希算法在图像处理应用中做了深入研究。区块链技术已成为国家信息化战略规划和科技创新活动的重要组成和支撑部分,哈希算法作为其主要使用技术之一,在解决交通产品质检数据易篡改的风险问题上优势显著。

本研究基于区块链的交通产品抽检质量控制应用需求,采用SHA-2 族迭代改进的SHA-256 算法,将任意长度的消息和文档压缩到某一固定长度的消息摘要,研究实现各节点上链数据信息及文档数据一致性检验计算,保证链下及上链数据信息的不可篡改。

1 基于区块链的交通产品质量控制拓扑结构

根据交通产品抽检流程中各节点单位的设置及其数据流向,基于联盟链架构[7],链上包含项目质监机构、生产厂家(供货企业)、建设单位、施工单位、监理单位、检测机构共计6个节点。各节点上传的信息类型涉及文本、文档、图片、视频多种形式,最终形成“共同账本”,实现区块链上所有节点信息的共享连通。

基于区块链的交通产品质量控制网络拓扑结构如图1 所示,流程上共涉及6 个不同层次上的信息审核及确认。

图1 基于区块链的交通产品质量控制拓扑图

(1)交通产品信息备案及审核确认

施工单位作为交通产品信息的主要掌握节点,也是作为区块链链下交通产品信息采集的主要对象。首先由施工单位将产品名称、产品规格型号、产品采购批次及数量、产品采购合同、产品自检报告等信息上传区块链,监理单位将产品抽检报告上传至区块链。至此,施工单位、监理单位、建设单位和产品生产厂家开始对已上链产品信息进行第一次确认,并将结果上链保存。

(2)交通产品抽检信息确认

第一层次信息确认正常后,质检机构通知检测单位根据抽样要求和已上链交通产品信息实施抽样,并将抽样单、抽检产品、检测参数上传至区块链,由质检机构、检测单位、施工单位、监理单位、建设单位和产品生产厂家对抽检产品及其抽检相关参数信息进行第二次确认,将结果上链保存。

(3)交通产品封装信息确认

第二层次信息确认正常后,由检测单位组织人员进行产品封装,并将封装前后的信息以图片或者视频的形式上传至区块链,由质检机构、检测单位、施工单位、监理单位、建设单位和产品生产厂家对已封装产品信息进行第三次确认,并在区块链上保存最终信息。

(4)交通产品拆样信息确认

第三层次信息确认正常后,检测单位组织产品运输工作,直至检测单位试验人员将已封装产品拆样前后以图片或视频方式存证并上传区块链,由质检机构、检测单位、施工单位、监理单位、建设单位和产品生产厂家对已封装产品前后信息进行第四次确认,并在区块链上保存最终信息。

(5)交通产品检测报告信息确认

第四层次信息确认正常后,检测单位开始试验检测工作,检测工作完成以后将检测报告上传至区块链,由质检机构完成审核确认。

(6)交通产品检测结果告知确认

由质检机构将试验检测结果通知施工单位进行确认,至此一个样品抽检周期全部完成。

各层次确认后的质量控制数据存在本地数据库,但是本地数据库信息存在数据篡改的风险。在交通产品质量数据检验一致性判断的时候,基于SHA-256 哈希算法可以将本地数据库信息与已上链的区块链数据库信息的区块哈希值进行比较,若有数据篡改现象,则两者的哈希值会有差异。

2 哈希算法

哈希算法是区块链加密技术的主要代表算法,在不同行业内业务数据信息快速查找和加密方面得到了推广应用[8]。

哈希算法的核心是将任意长度的二进制值映射为较短的、固定长度的二进制值,该二进制值就称为哈希值,它是一段数据唯一性且紧凑性的数值表示形式。若哈希算法的输入为一段明文字符串,哪怕是这个字符串中有一个字母或者字符的微小变化,经过哈希算法计算出的哈希值将产生较大幅度的畸变,而且该过程不可逆,即要通过何种计算反推出来同一个哈希值的2 个不同输入,理论计算的可操作性是无法实现的,所以说哈希值计算的唯一性是可以检验原始输入数据的完整性和一致性的。因此,哈希算法作为一种单向散列算法,具有如下特点。

(1)压缩性:不同长度、不同大小的输入字符串,其计算的Hash值长度很小或者相对固定。

(2)易计算:基于不同应用软件,Hash值的计算方便、快捷。

(3)单向性:Hash值计算的过程不可逆,即计算存在单向性,这是哈希函数安全性的基础,也是哈希函数被广泛应用的核心。

(4)高灵敏性:从比特位的角度来说,1 比特位的输入变化会造成1/2比特位的变化。输入信息的任何改变都会导致计算哈希值明显的改变。

本研究结合区块链在交通产品质量控制工作中的应用需求,针对各节点确认上链的数据信息,应用哈希算法,让大容量的本地数据库信息在各节点用数字签名后的数据信息被压缩成一种加密的数据格式,使其他节点使用者或者数据管理者知晓本次计算的哈希值,并能看到哈希算法的描述,以下结合实际案例对哈希算法在项目中的应用进行详细阐述。

3 信息一致性检验流程设计

现有的一致性检验主要包括基于时间戳、工作量证明、权益证明以及状态机复制等方法。这些方法在保证区块链数据一致性方面存在一定效果但也存在问题。例如,基于时间戳的方法可能会受到时钟同步问题的限制,而基于工作量证明和权益证明的方法则可能面临资源消耗大和验证时间长等问题。本研究重点讨论哈希算法在区块链中的应用,并以验证数据的完整性和一致性为目标,有效地检测数据是否被篡改或损坏。

研究提及的区块哈希就是对区块头进行哈希计算,得出某个区块的哈希值,用这个哈希值可以唯一标识确定某一个区块,相当于给该区块设定了一个ID,区块与区块之间就是通过这个ID 进行串联,从而形成了一个区块链机构。这样的结构也是区块链数据难以篡改的技术基础之一,哈希值相当于一个指针,传统的指针提供的是一种获取信息的方法,而哈希指针则提供了一种检验数据信息是否被改变的测试方法,如果信息存在篡改现象,那么其哈希值和哈希指针的值必定是不等的。

3.1 字符串信息一致性检验

交通产品质量监督领域涉及的基础字段多为字符串类型,因此首先研究字符串信息一致性的检验。字符串信息一致性检验流程如图2所示。getInstance(String algorithm)返回指定算法的Message Digest对象,Message Digest类是为应用程序提供信息摘要算法的功能,如MD5(信息摘要算法)或SHA(安全散列算法)算法等。信息摘要是安全的单向哈希函数,它接收任意大小的数据,并能输出固定长度的哈希值。Message Digest对象开始被初始化,该对象通过使用update函数处理数据,任何时候都可以调用reset函数的方法重置摘要,一旦所有需要更新的数据都已经被更新了,则就应该调用digest函数完成哈希计算。对于一个给定数量的更新数据,digest方法只能被调用一次,在调用digest之后,Message Digest对象被重新设置成其初始状态。

图2 字符串信息哈希值计算流程

3.2 文档资料信息一致性检验

在交通产品抽检质量监督领域,其质量数据信息除了字符串信息,更多的质量保证资料是以文档的形式体现的,故加强文档资料的不可篡改性在交通产品质量保证方面有重要意义。

文档资料信息一致性检验计算主要流程如图3所示。

图3 文档资料哈希值计算流程

Step1:定义文档路径函数:def CalcSha256(filepath)。

Step2:使用二进制模式读取文档,并将该函数简化:with open(filepath,'rb')as f。

Step3:定义SHA-256 算法计算的结果类型:sha256obj=hashlib.sha256()。

Step4:计算目标文档Hash值:sha256obj.update(f.read())。

Step5:以2 倍长度字符串对象的形式返回摘要信息:hash=sha256obj.hexdigest(),其中仅包含十六进制数码。

Step6:输出hash值:print(hash)。

Step7:函数最终返回目标文档的Hash 值:return hash。

4 案例验证及应用分析

4.1 哈希算法选择

哈希算法是区块链系统数据信息不可篡改功能发挥的一项重要基础技术。目前,密码学相关行业中常用的哈希算法有MD5,SHA 系列等算法。MD5 算法已于2004 年被破解,SHA 算法是一个Hash函数集,现在有SHA-1、SHA-2、SHA-3等不同代表,SHA-256 到目前为止还没有被破解,故在交通产品质量数据唯一性方面选择SHA-256 算法进行应用分析。

无论哈希算法的输入是什么数字格式、文件有多大,输出都是相对固定长度的比特串。以比特币使用的SHA-256算法为例,无论输入是什么数据格式和文件,输出的都是256bit。其中每个bit 位就是一位0或者1,256bit就是256个0或者1的二进制数字串,用16进制数字来表示的话,16等价于2的4次方,所以每一位16 进制数字可以用4 位bit 位来代表。那么,256 位bit 信息通过用16 进制数字表示,也就是64位了。

4.2 交通产品信息一致性检验应用

以特定交通产品为例,从本地过程数据库中摘录主要试验检测数据信息及质量保证资料文档,经过项目质检机构、建设单位、施工单位、监理单位、检测单位、设备厂家或者供应商等节点的确认后,这些资料将被上传至区块链系统数据库。上传过程中,采用SHA-256 算法进行计算,并得出唯一值的16 进制(共计64 位)哈希计算结果,该结果具有不可逆性和唯一性,能够有效保障上传资料的完整性和真实性。

如图4 所示,如果在字符串“电缆ZR-KXGsFP2VRP2”中插入一个空格字符,会导致其哈希值计算结果改变。文章对试验检测数据信息进行了详细分类,并根据实际应用需求开展多次哈希计算及确认。结果表明,各节点单位如果篡改该产品检测数据及文档资料的信息,将会导致其哈希值发生明显改变。

图4 字符信息一致性哈希值计算结果

在交通产品质量控制区块链应用系统中,若检测到区块链数据库信息与链下各节点数据信息哈希值计算结果有不一致的现象时,证明数据存有篡改现象发生,系统设置本地数据库数据信息还原功能,可将篡改后的数据恢复为经各方确认后上链的原始数据。

5 结论

通过区块链技术在公路工程交通产品质量控制实际业务场景下的应用探索,针对Hyperledger Fabric 典型区块链平台,研究选择了SHA-2 族经过迭代改进后安全性更高的SHA-256散列算法,基于对算法的原理介绍,明确运用本算法解决公路工程交通产品试验检测数据不可篡改的思路和应用流程,最后以某高速公路某标段抽检电缆为例,验证了哈希算法在交通产品质量检测字符及文本信息一致性检验方面的有效性和可行性,实现了全过程重要节点信息上链的不可篡改、全员共享,并提供从结果到源头的可追溯性查询流程。研究成果可减少或者避免交通产品质量监督过程中的质疑、矛盾和纠纷等问题发生,确保数据安全,对各参建单位的工作效率和质量有显著的提升作用。

猜你喜欢
哈希一致性区块
关注减污降碳协同的一致性和整体性
注重教、学、评一致性 提高一轮复习效率
IOl-master 700和Pentacam测量Kappa角一致性分析
区块链:一个改变未来的幽灵
区块链:主要角色和衍生应用
区块链+媒体业的N种可能
读懂区块链
基于OpenCV与均值哈希算法的人脸相似识别系统
基于事件触发的多智能体输入饱和一致性控制
基于维度分解的哈希多维快速流分类算法