一种基于四元组Petri网的区块链数据上链提效方法与流程

文档序号:37764094发布日期:2024-04-25 10:50阅读:6来源:国知局
一种基于四元组Petri网的区块链数据上链提效方法与流程

本发明属于区块链,尤其涉及一种基于四元组petri网的区块链数据上链提效方法。


背景技术:

1、区块链技术,也称分布式账本技术,具有去中心化、安全性、可追溯性等特征。基于此特征,企业将区块链技术应用到数据传输中的需求越来越高。其中,为了防止不当行为的发生,交易数据传输过程应用区块链技术的需求正在持续增加。

2、现如今的区块链系统已能够满足数据的传输及上链功能,但在区块传输及上链过程中,如遇到因硬件故障、网络连接中断、关键验证节点失联等问题,则会造成交易数据无法及时上链,而排查问题需要花费较多时间,这会影响整个系统的效率,不能满足数据上链及时性的需求。

3、随着区块链应用的不断增多,数据量越来越大,传统的完整数据传输方式显得过于冗余和低效。在区块链数据广播过程中,未经压缩处理的数据随着交易量的增加会大量占用网络带宽,降低数据广播效率。同时,数据传输过程中的安全性也是重点关注项,验证节点需要优先进行数据完整性验证,以确保数据在传输过程中未篡改或损坏,现阶段中区块链数据的传输效率和整体性能仍旧受限。


技术实现思路

1、发明目的:本发明的目的在于提供一种基于四元组petri网的区块链数据上链提效方法。通过构建petri网对区块链数据上链过程进行建模,采用自编码器算法压缩数据并将压缩后的数据上链,最终提高区块链数据的上链效率。

2、技术方案:本发明的一种基于四元组petri网的区块链数据上链提效方法,包括如下步骤:

3、步骤一、构建四元组petri网对区块链系统的数据上链过程进行建模,区块链系统中交易发起者将多条交易信息整合成一个交易包,使用自编码器压缩后广播至验证节点进行验证;

4、步骤二、验证节点判断交易包是否在验证时间窗口内开始验证,如在时间窗口内开始验证,进入步骤四;如未在时间窗口内开始验证,进入步骤三;

5、步骤三、通过共识算法提升该交易包的验证优先级,并开始对交易包进行验证,进入步骤四;

6、步骤四、对比交易指纹化数据,验证数据完整性;验证节点解码重构数据后,将交易包中的所有交易数据使用sha-256哈希函数进行哈希计算,与交易指纹化数据进行对比,判断交易数据在传输过程中是否被篡改,如对比结果不一致,进入步骤五;如对比结果一致,进入步骤六;

7、步骤五、验证节点将此交易包标记为交易指纹化数据对比不一致,并将交易指纹化数据对比不一致信号发送给交易发起者,交易发起者进行交易自检并进行处理,处理完成后生成新的交易包重新广播至验证节点,然后进入步骤二;

8、步骤六、验证节点对交易包执行有效性验证流程,如交易包未通过验证,进入步骤七,如交易包通过验证,验证节点将其标记为有效交易,进入步骤八;

9、步骤七、验证节点将此交易包标记为交易包有效性验证不通过,并将交易包有效性验证不通过信号发送给交易发起者,交易发起者进行交易自检并进行处理,处理完成后生成新的交易包重新广播至验证节点,然后进入步骤二;

10、步骤八:验证通过,验证节点继续执行上链流程,并完成交易数据上链。

11、进一步的,步骤一中,所述四元组petri网为四元组σ=(s,t;f,m),其中:(s,t;f)是petri网,s为库所的有限集,t为变迁的有限集,为弧的有限集;

12、映射m:s→z为标识,其中m0是初始标识;变迁t的具体实施规则,s表示库所;

13、对于t∈t,标识m能实施的条件是:

14、

15、

16、在变迁t发生后,对于t在m发生产生的新标识m'为:

17、

18、进一步的,步骤一中,所述交易包包括时间窗口内的所有交易数据、验证时间窗口、广播时间戳以及交易指纹化数据;交易数据包括交易发起者、交易接收者、交易金额和交易时间戳;验证时间窗口和广播时间戳为是否在时间窗口内验证提供判断依据;交易指纹化数据是对整个交易包中所有交易数据进行哈希计算得到,用于快速识别和验证交易的唯一性和完整性。

19、进一步的,所述交易指纹化数据的生成过程按照以下步骤进行:

20、(4.1)提取交易信息:首先,从交易数据中提取需要用于生成指纹的相关信息,相关信息包括交易的发送方地址、接收方地址、交易金额、时间戳;

21、(4.2)组合交易信息:将提取的交易信息按照字母顺序进行组合;

22、(4.3)计算哈希值:使用sha-256哈希函数对组合后的交易信息进行计算,生成交易指纹的哈希值,计算哈希值的过程是将输入的交易信息转换为固定长度的哈希值;

23、(4.4)生成指纹化数据:将计算得到的交易指纹的哈希值作为交易指纹化数据保存和传输,交易指纹化数据是一个固定长度的字符串或字节数组,用于表示交易的指纹信息。

24、进一步的,步骤一中,所述使用自编码器压缩按照以下步骤进行:

25、(5.1)数据预处理:通过数据清洗、去噪和归一化操作对原始的区块链交易包数据进行预处理;

26、(5.2)构建自编码器模型:自编码器分为编码器和解码器两部分,通过神经网络同时训练两个模块,其中,定义损失函数由数据本身决定,对于二进制输入,其损失函数采用交叉熵损失函数,对于实数输入,其损失函数一般采用均方差损失函数,交易数据为实数输入数据,采用均方差损失函数,定义为:

27、l(x,y)=(1/n)*σ(||x-y||^2)

28、其中,x表示输入样本,y表示重构输出,n表示输入样本的数量,||.||表示向量的范数;

29、(5.3)数据编码:使用自编码器模型对预处理后的数据进行编码,编码器将原始数据映射到一个低维的编码空间,将编码后的数据广播至区块链网络中的验证节点;

30、(5.4)数据解码和重构:验证节点使用相同的自编码器模型对广播数据进行解码重构为原始数据,进行验证操作;

31、(5.5)上链:验证通过,将编码数据上链保存;

32、(5.6)验证和还原:当需要访问上链的数据时,使用相同的自编码器模型对上链的数据进行解码和还原,解码后的数据与向全节点请求的原始区块链数据进行验证和比较,以确保数据的完整性和准确性。

33、进一步的,步骤二具体为:在区块链系统设置时间窗口判断机制,区块链系统为每个验证节点内置循环程序,以3-4分钟为周期,进行如下操作:解码经自编码器压缩的交易包,比较广播时间戳和当前时间的时间差来判断该交易是否在验证时间窗口内,若在验证时间窗口内,则销毁解码的交易包,该待验证交易包等待进入步骤四,若不在验证时间窗口内,则销毁解码的交易包,该待验证交易包立即进入步骤三。

34、进一步的,步骤三具体为:验证节点的队列管理策略为先进先出策略和最高优先级优先策略并行使用,先进先出策略按照交易包到达时间的先后顺序进行验证,提升交易包的优先级后,采用最高优先级优先策略,确保高优先级的交易被尽快验证。

35、进一步的,步骤四中,对交易数据进行sha-256哈希计算按照以下步骤进行:

36、(8.1)数据格式转换:将交易数据按照json编码方式转换为二进制数据。

37、(8.2)填充数据:为了满足sha-256算法对输入数据长度的要求,需要对数据进行填充。填充的规则是在数据末尾添加比特位,直到满足以下条件:数据长度+填充比特数=448。填充比特数由一个1比特和若干个0比特组成。

38、(8.3)添加长度信息:在填充完成后,将原始数据的长度添加到填充后的数据中。长度信息以64位的形式表示,并被附加在填充数据的末尾。

39、(8.4)分组处理:填充后的数据被划分为若干个512位(64字节)的分组,每个分组称为一个消息块。如果数据长度超过了512位,就会有多个消息块。

40、(8.5)压缩函数计算:对每个消息块应用sha-256的压缩函数,以生成中间结果。

41、(8.6)更新哈希值:在每次迭代后,将中间结果与之前的哈希值进行更新。初始时,哈希值由八个32位寄存器(a、b、c、d、e、f、g、h)组成,它们被初始化为固定的初始值。

42、(8.7)重复步骤8.4至步骤8.6:对所有消息块进行迭代计算,直到处理完所有的消息块。这样可以确保将所有交易数据都纳入计算,并生成最终的哈希值。

43、(8.8)输出结果:最终的哈希值由八个32位寄存器(a、b、c、d、e、f、g、h)组成。将它们连接起来,形成一个256位的二进制值,即sha-256的输出结果。

44、进一步的,步骤六中,所述验证节点对交易包执行有效性验证流程具体为:

45、(9.1)验证交易结构:验证节点首先检查交易包的结构是否符合规定的格式和字段要求,包括验证交易的类型、发送方地址、接收方地址、交易金额信息是否正确;

46、(9.2)验证交易签名:验证节点使用交易包中的公钥对交易进行签名验证,计算交易数据的哈希值,并使用发送方的公钥对该哈希值进行解密,以验证签名的有效性,如果签名验证失败,该交易将被认为无效;

47、(9.3)检查交易输入的可用性:验证节点检查交易包中所引用的交易输入是否存在,并且这些交易输入是否仍然未被使用,防止双重支付;

48、(9.4)验证交易金额和余额:验证节点根据交易包中的输入和输出金额来验证交易的金额是否正确,并确保发送方的账户余额足够支付交易金额和手续费;

49、(9.5)检查交易包的扩展字段:某些区块链系统允许交易包包含扩展字段,用于存储额外的数据,验证节点检查这些扩展字段,并确保其格式和内容符合规定。

50、有益效果:与现有技术相比,本发明具有如下显著优点:

51、1、通过采用petri网描述分布式的区块链系统,并结合监测验证节点返回的信号,该系统能够自行执行petri网模型定义的不同处理程序,从而增强了区块链系统的控制能力,提高数据上链的效率。

52、2、通过运用自编码器算法对数据进行压缩,并将压缩后的数据上链,可以减少数据传输量,进而降低传输所需的带宽和时间,从而提高数据传输效率。一旦压缩后的数据被上链,节点可以利用自编码器的解码模块来验证数据的完整性和一致性,以确保上链数据的完整性和抵御篡改的能力。

53、3、基于petri模型的区块链系统的特点是,交易发起者会持续监测区块链网络的返回信号,交易发起者接收到区块链网络返回的不同信号,系统能够根据petri网模型自行执行处理程序。其中,交易指纹化技术的应用虽然增加了交易包的体积,但验证节点可以首先通过对比交易指纹化数据的一致性来判断数据在广播过程中是否被篡改,从而保证数据的完整性。如对比不一致,将不进行后续验证,并直接标记该交易包为无效,提高了验证数据完整性的效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1