一种区块链网络数据快速传输方法与流程

文档序号:29800657发布日期:2022-04-23 20:03阅读:241来源:国知局
一种区块链网络数据快速传输方法与流程

1.本发明涉及区块链技术领域,具体涉及一种区块链网络数据快速传输方法。


背景技术:

2.区块链是基于p2p网络技术、加密技术、时间戳等技术的共享账本。使用者对等、公开的进行维护,使区块链具有不可伪造全程留痕、可追溯、公开透明、集体维护等特征。基于这些特征,区块链技术奠定了坚实的信任基础,创造了可靠的合作机制。近年来区块链应用获得快速发展,区块链网络中传递和存储的信息也越来越多,导致区块链网络经常出现堵塞的情况,严重影响了用户的使用,也给区块链的安全带来了风险。因而需要研究能够提高区块链网络数据交换效率的数据传输方案。
3.如中国专利cn109559122a,公开日2019年4月2日,一种区块链数据传输方法及区块链数据传输系统,该方法包括:对交易数据进行至少两次哈希运算,获得第一摘要信息;利用至少两个私钥对第一摘要信息进行多次加密,获得交易数据的数字签名信息;将交易数据、交易数据的数字签名信息以及至少两个私钥对应的至少两个公钥发送给区块链网络节点。其技术方案通过至少两次哈希算法,提高了哈希内部操作复杂度和哈希输出长度,提高了抵御攻击的能力,但同时增加了区块链网络的负载。提高区块链网络数据传输效率已成为目前亟待解决的技术问题。


技术实现要素:

4.本发明要解决的技术问题是:目前区块链网络数据传输效率低的技术问题。提出了一种区块链网络数据快速传输方法,能够提高区块链网络数据传输效率,缓解网络堵塞问题。
5.为解决上述技术问题,本发明所采取的技术方案为:一种区块链网络数据快速传输方法,包括:建立通信的两个区块链节点之间约定二元多项式f(x,y);发送数据的节点将待发送数据转换为二进制数据流;截取预设长度l的二进制数据流构成二进制数d;构建等式d=f(x_t,y_t)+



为偏移值,将(x_t,y_t,

)发送给接收数据的节点;接收数据的区块链节点将(x_t,y_t)代入约定的二元多项式并使用偏移值

修正后,获得二进制数d;全部二进制数d被传输后,接收数据的节点将获得完整二进制数据流,即完成数据传输。
6.作为优选,约定二元多项式的方法包括:发送数据的节点随机生成多个一元多项式f(x);规定自变量x的占用长度,获得变量x的取值范围,计算一元多项式f(x)的值域,多个一元多项式f(x)的值域构成总值域;增减一元多项式f(x),直到总值域覆盖长度l的二进制数取值范围达到预设要求;此时的一元多项式f(x)的数量记为m,将m个一元多项式f(x)排序编号;将系数为0的单项式补齐,m个一元多项式的最高次数记为n,一元多项式将具有n+1个单项式系数;将编号视为变量y的取值,将y取值对应编号的一元多项式的每个单项式系数视为系数函数值,建立n+1个系数多项式拟合;将补齐系数为0的单项式后的任一个一元多项式的单项式系数,使用系数多项式拟合替代,展开后即获得二元多项式;将二元多项
式通过常规加密方式发生给接收数据的节点,完成二元多项式的约定。
7.作为优选,发送数据的节点构建等式的方法包括:规定自变量x和y的占用长度,获得变量x和y的取值范围;计算在变量x和y的取值范围内,二元多项式f(x,y)的值域;建立速查表,所述速查表记录值域内的值对应的变量x和y的取值;发送数据的节点获得待发送的二进制数d后,检查二进制数d是否记录在速查表内;若二进制数d在速查表内,则按照速查表记录的x和y的取值,将偏移值设置为0,完成等式构建;若二进制数d不在速查表内,则从速查表内选取接近二进制数d的值;计算对应x和y的取值下,二进制数d与二元多项式取值的差值作为偏移值

,完成等式构建。
8.作为优选,截取预设长度l的二进制数据的方法包括:发送数据的节点将待发送数据转换为二进制数据流;按顺序从二进制数据流截取长度l的二进制数据;剩余二进制数据不足长度l时,补位至长度l,记录补位长度a;传送完最后一个二进制数d后,将补位长度a以常规方式发送给接收数据的节点。
9.作为优选,发送数据的节点生成二元多项式f(x,y)后,规定自变量x和y的占用长度,获得变量x和y的取值范围;计算在变量x和y的取值范围内,二元多项式f(x,y)的值域;列举未落入值域的二进制数d的取值,记为遗漏集合;获得遗漏集合内的每个取值最接近的二元多项式f(x,y)的取值,获得相应的偏移值

;若存在偏移值

超过预设阈值,则重新生成二元多项式f(x,y)。
10.本发明的实质性效果是:通过约定数据转换机制,使用占用字节少的二进制数据表示占用字节多的二进制数据,能够使在区块链网络上需要传输的数据量被压缩,从而提高区块链网络数据传输的效率;不同区块链节点之间约定的二元多项式不同,能够起到数据加密和防止伪装节点发送伪装数据的作用;建立通信时,只需进行一次约定。
附图说明
11.图1为实施例一数据快速传输方法示意图。
12.图2为实施例一约定二元多项式方法示意图。
13.图3为实施例一发送数据节点构建等式方法示意图。
14.图4为实施例一截取预设长度l二进制数据方法示意图。
具体实施方式
15.下面通过具体实施例,并结合附图,对本发明的具体实施方式作进一步具体说明。
16.实施例一:一种区块链网络数据快速传输方法,请参阅附图1,包括:步骤a01)建立通信的两个区块链节点之间约定二元多项式f(x,y);步骤a02)发送数据的节点将待发送数据转换为二进制数据流;步骤a03)截取预设长度l的二进制数据流构成二进制数d;步骤a04)构建等式d=f(x_t,y_t)+



为偏移值,将(x_t,y_t,

)发送给接收数据的节点;步骤a05)接收数据的区块链节点将(x_t,y_t)代入约定的二元多项式并使用偏移值

修正后,获得二进制数d;步骤a06)全部二进制数d被传输后,接收数据的节点将获得完整二进制数据流,即完成数据传输。
17.约定的二元多项式形式表达为:
f(x,y)=(a00+a01*y+a02*y^2+

+a0m*y^m)+(a10+a11*y+a12*y^2+

+a1m*y^m)*x+(a20+a21*y+a22*y^2+

+a2m*y^m)*x^2+

+(an0+an1*y+an2*y^2+

+anm*y^m)*x^n。
18.本实施例中约定的二元多项式为:f(x,y)=(3*y^5+9*y^4-2*y^2+8*y-10)*x^10+(21*y^5-12*y^3+20*y^2)*x^6+(19*y^4-6*y^3+7*y^2-2*y)*x^3。
19.二进制数d的长度为8字节,自变量x和y的长度为半个字节,即x,y∈[0x0,0xf],偏移值

长度不限。按照约定的二元多项式,构建二进制数d的等式如表1所示。可见使用3个字节的长度能够表达出8个字节长度的数据。将3个字节长度的数据发送给接收数据的节点。接收数据的节点复原即可。
[0020]
由于偏移值

长度不定,因而本实施例并非每次都传输3个字节长度的数据。当偏移值

等于0时,则只需要传输1个字节的数据。接收数据的节点将1字节数据的高位取出,作为x的值,低4位取出,作为y的值。若传输的数据多于1字节,则剩余字节均是用于表示偏移值

的。如表1中,偏移值

占用了2字节。由于需要传输的数据的不确定性。每次取出获得的二进制数d也是不确定的。偏移值

的取值也不确定。
[0021]
考虑一种极端糟糕情况:二元多项式f(x,y)=0,此时偏移值

正好等于二进制数d,与二进制数d占用长度相同。此时由于还需要传递x和y的值,导致需要传输的数据长度与原本的数据长度多出1字节。
[0022]
然而,在这种情况下,只要改动x或y的值,使f(x,y)》0,就可以减小偏移值

,进而减少偏移值

占用的字节数。使本实施例仍然具有压缩数据传输量的效果,从而提高数据传输效率。按照表1记载,能够减少将近3倍的数据传输量,仅考虑数据量,能够提高近3倍的数据传输效率。
[0023]
表1 二进制数d对应的等式
(x_t,y_t,

)(x_t,y_t,

)的二进制二进制数d(15,15,2610)1111111100001010001100100001010111100000100000100011111110110101010100111111110100010100(15,10,32010)1111101001111101000010100000001100011110110011010000010000101110100100101110010110100010
由于约定的二元函数占用了部分存储空间,且建立等式和复原二进制数d占用了部分计算资源,但目前的区块链网络中,区块链节点的存储空间和算力是有富余的。在区块链网络中,需要经常的广播及同步数据,出现网络拥堵。即目前区块链网络中,网络带宽相对存储空间和算力,是更为紧张的资源。牺牲部分存储空间和算力,提高数据传输效率,具有实际效益。
[0024]
请参阅附图2,约定二元多项式的方法包括:步骤b01)发送数据的节点随机生成多个一元多项式f(x);步骤b02)规定自变量x的占用长度,获得变量x的取值范围,计算一元多项式f(x)的值域,多个一元多项式f(x)的值域构成总值域;步骤b03)增减一元多项式f(x),直到总值域覆盖长度l的二进制数取值范围达到预设要求;步骤b04)此时的一元多项式f(x)的数量记为m,将m个一元多项式f(x)排序编号;步骤b05)将系数为0的单项式补齐,m个一元多项式的最高次数记为n,一元多项式将具有n+1个单项式系数;步骤b06)将编号视为变量y的取值,将y取值对应编号的一元多项式的每个单项式系数视为系数函数值,建立n+1个系数多项式拟合;步骤b07)将补齐系数为0的单项式后的任一个一元多项式的单项式系数,使用系数多项式拟合替代,展开后即获得二元多项式;步骤b08)将二元多项式通过常规加密方式发生给接收数据的节点,完成二元多项式的约定。由于多项式拟合样本数据具有
较高的效率和准确度,拟合后即可获得基本准确的二元多项式,加上使用偏移值

的修正,能够有效表达大部分的二进制数d。若总值域覆盖长度l的二进制数取值范围,则会导致二元多项式十分复杂,是难以100%覆盖的。因而需要借助偏移值

的修正。最佳二元多项式f(x,y),任意的预设长度的二进制数d都能够建立出等式时,能够维持偏移值

取值不超过设定上限,或者仅偶尔超过上限。
[0025]
请参阅附图3,发送数据的节点构建等式的方法包括:步骤c01)规定自变量x和y的占用长度,获得变量x和y的取值范围;步骤c02)计算在变量x和y的取值范围内,二元多项式f(x,y)的值域;步骤c03)建立速查表,速查表记录值域内的值对应的变量x和y的取值;步骤c04)发送数据的节点获得待发送的二进制数d后,检查二进制数d是否记录在速查表内;步骤c05)若二进制数d在速查表内,则按照速查表记录的x和y的取值,将偏移值设置为0,完成等式构建;步骤c06)若二进制数d不在速查表内,则从速查表内选取接近二进制数d的值;步骤c07)计算对应x和y的取值下,二进制数d与二元多项式取值的差值作为偏移值

,完成等式构建。通过进一步牺牲存储空间,能够进一步加快数据的传输。
[0026]
请参阅附图4,截取预设长度l的二进制数据的方法包括:步骤d01)发送数据的节点将待发送数据转换为二进制数据流;步骤d02)按顺序从二进制数据流截取长度l的二进制数据;步骤d03)剩余二进制数据不足长度l时,补位至长度l,记录补位长度a;步骤d04)传送完最后一个二进制数d后,将补位长度a以常规方式发送给接收数据的节点。如最后一个二进制数d仅占用7个字节长度。补位长度为8位。将8使用常规加密通信方式发送给接收数据的节点。接收数据的节点将最后一个复原出的二进制数d的末尾8位去除即可。
[0027]
发送数据的节点生成二元多项式f(x,y)后,规定自变量x和y的占用长度,获得变量x和y的取值范围;计算在变量x和y的取值范围内,二元多项式f(x,y)的值域;列举未落入值域的二进制数d的取值,记为遗漏集合;获得遗漏集合内的每个取值最接近的二元多项式f(x,y)的取值,获得相应的偏移值

;若存在偏移值

超过预设阈值,则重新生成二元多项式f(x,y)。
[0028]
本实施例的有益技术效果是:通过约定数据转换机制,使用占用字节少的二进制数据表示占用字节多的二进制数据,能够使在区块链网络上需要传输的数据量被压缩,从而提高区块链网络数据传输的效率;不同区块链节点之间约定的二元多项式不同,能够起到数据加密和防止伪装节点发送伪装数据的作用;建立通信时,只需进行一次约定。
[0029]
以上所述的实施例只是本发明的一种较佳的方案,并非对本发明作任何形式上的限制,在不超出权利要求所记载的技术方案的前提下还有其它的变体及改型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1