一种面向农业物联网的多因素能力证明区块链共识方法

文档序号:31775351发布日期:2022-10-12 08:16阅读:137来源:国知局
一种面向农业物联网的多因素能力证明区块链共识方法

1.本发明属于区块链技术领域,具体为一种面向农业物联网的多因素能力证明区块链共识方法。


背景技术:

2.物联网技术可以为农业生产在节约资源、成本的情况下,科学地管理农业生产过程以提高农业生产效率、确保农业生产安全,并且为环境保护做出了很多贡献。然而,农业物联网现在面临着一些发展瓶颈。首先是数据安全问题,在部分室外应用场景中农业物联网设备很容易遭到窃取破坏,导致数据面临被篡改的风险。其次,随着低功耗广域网的不断发展,未来农业物联网的设备数量将会以几何级的规模增长,导致中心化管理的成本变得难以承受。此外,由于物联网系统的异构性,不同部门、不同数据中心、不同物联网系统之间的数据交换效率低下,共享能力差。
3.随着区块链技术的发展,近些年有越来越多的研究聚焦于如何通过区块链技术解决上述农业物联网中存在的问题。区块链是一种去中心化的分布式账本技术,网络内的所有节点都维护同一条区块链,每个节点都在本地保存了区块链的完整副本。区块链基于密码学技术,作为一种仅支持添加的账本,具有防篡改、可追溯等特点。将区块链技术部署在物联网中,物联网数据将受到p2p网络中所有节点的共同维护,可以有效实现物联网数据跟踪、溯源,并且可以防止数据被篡改,促进不受信环境中的价值流动。
4.共识机制是区块链的核心技术之一,它使得去中心化的点对点网络内的所有节点都能针对某一项事务达成共识。而农业物联网中的硬件设备通常是一些传感器、控制设备、农机设备等。这类设备的计算资源、能量资源都高度受限制,难以运行复杂的区块链共识机制。如pow(工作量证明)共识机制需要节点进行大量的计算,在部分室外的农业生产场景中,物联网节点的能量无法得到及时补充,大量的计算会导致节点的能量过早枯竭。同时,部分区块链共识机制的共识过程消耗时间过长,无法满足农业物联网对数据的低延迟需求。另外,如pbft、pos等共识机制需要部分节点作为特权节点管理系统内的共识过程,但这些特权节点所持有的股权会随着时间累积增多,不利于新加入的节点竞争记账权。


技术实现要素:

5.针对上述基于区块链技术的农业物联网中节点计算负担大、事务确认延迟高、扩展性低等问题,本发明提供一种面向农业物联网的多因素能力证明区块链共识方法pomc(proof of multifactor capacity)。
6.为实现上述发明目的,本发明采用以下技术方案:一种面向农业物联网的多因素能力证明区块链共识方法,包括如下步骤:
7.1)构建并初始化基于区块链的农业物联网,所述物联网是一个开放的分布式的点对点对等网络,网络中全部节点数量记为n,包括nm个矿工节点、1个记账节点和ns个参议员节点;所有节点都保存一条本地区块链副本;在网络的初始化阶段,ns=0;系统生成一个除
hash值以外不包含任何信息的区块作为创世区块,并随机从矿工节点中抽取一个节点作为记账节点;
8.2)所有节点抽签选择参议员节点;
9.3)参议员节点通过节点的历史行为生成信用评价以更新系统内全部节点的信誉度;
10.4)参议员节点依据多因素能力证明重新选择记账节点;
11.5)系统内所有节点根据工作场景,生成不同的事务并发送给系统内当前的记账节点,所述事务的类型包含数据采集消息、区块链系统交易和指令执行反馈;
12.6)记账节点将收到的事务存入事务池,并判断事务池是否已满,如果事务池已满,转步骤7),否则转步骤6);
13.7)记账节点将事务池内的事务打包成区块,并将区块广播到网络中;所述区块头包含如下信息:public_key,timestamp,前序区块hash值,pomc共识信息;
14.8)其它节点收到区块后验证该区块的hash值与前序区块的hash值是否相等,如果相等,转步骤9);否则丢弃区块,转步骤10);
15.9)将区块添加到本地区块链的末端;
16.10)面向农业物联网的多因素能力证明区块链共识方法结束。
17.进一步的,上述步骤2)中节点ni抽签选择参议员节点,包括如下步骤:
18.2.1)节点ni判断系统内是否存在参议员节点,如果ns》0,转步骤2.2);否则,转步骤2.3);
19.2.2)节点ni判断系统内当前所有的参议员节点任期是否即将到期,如果t
cur
》ts+t
s-t
red
,转步骤2.3);否则转步骤2.2);其中,t
cur
为系统当前时间,ts为系统内当前参议员节点出任时的时刻,t
red
为冗余时间,ts为参议员节点的任期长度;
20.2.3)节点ni执行运算h(param||nonce),若满足h(param||nonce)《ri·
target,转步骤2.4);否则nonce+1,转步骤2.3);其中,h(param||nonce)表示对包含了param和nonce的参数进行双sha256哈希运算,param为节点ni的自身信息参数,nonce为节点ni随机生成的一个随机数,target为系统发布的难度值;
21.2.4)节点ni广播参议员抽签信息,所述抽签信息包括param、nonce值、时间戳timestamp;
22.2.5)节点接收抽签信息,若ns《ths,ns+1,转步骤2.5);否则,转步骤2.6);其中ths表示参议员节点数量的阈值;
23.2.6)ns个抽签信息的源地址所代表的节点即成为新一轮的参议员节点。
24.进一步的,上述步骤3)中参议员节点s更新节点ni的信誉度,包括如下步骤:
25.3.1)参议员节点s计算节点ni信用评价r
si
,计算公式如下:
[0026][0027]
其中,c
pos
为节点ni的信誉度影响行为中积极行为的数量,c
neg
为节点ni的信誉度影响行为中消极行为的数量;
[0028]
3.2)参议员节点s生成信用评价事务,记为trans{public_key,timestamp,”r
si”};其中public_key表示参议员节点s的地址,timestamp表示时间戳;
[0029]
3.3)参议员节点s将事务trans发送给系统内当前的记账节点;
[0030]
3.4)记账节点将事务trans存入本地的事务池,如果事务池满,转步骤3.5);否则转步骤3.4)
[0031]
3.5)记账节点将事务池内的事务打包成区块在网络内进行广播;
[0032]
3.6)收到该区块的节点验证该区块的hash值与前序区块的hash值是否相等,如果相等则将区块添加到本地区块链的末端;否则丢弃区块。
[0033]
进一步的,上述步骤4)包括如下步骤:
[0034]
4.1)非参议员节点ni计算干扰系数η,计算公式如下:
[0035][0036]
其中p
noise
表示系统内的噪声强度,n
itf
表示干扰节点的数量,表示节点k到参议员节点s1间的距离,a表示信道衰落指数;
[0037]
4.2)非参议员节点ni计算能够与距离其最近的参议员节点进行成功传输的概率pr(sinri≥β1),计算公式如下:
[0038][0039]
其中sinri表示节点ni与其距离最近的参议员节点进行通信时的信噪比,β1表示节点ni能够与其距离最近的参议员节点成功通信时的信噪比阈值;
[0040]
4.3)非参议员节点ni计算信誉度值ri大于系统信誉度最低需求β2的概率pr(ri≥β2),计算公式如下:
[0041][0042]
其中e(ri)和d(ri)分别表示节点ni的历史信誉度的期望与方差;
[0043]
4.4)节点ni计算自己的多因素能力值mci,mci计算公式如下:
[0044]
mci=pr(sinri≥β1)
·
pr(ri≥β2)
[0045]
4.5)节点ni构建竞争消息,并将该消息发送给距离最近的参议员节点;所述竞争消息记为consmsg{public_key,timestamp,mci};
[0046]
4.6)参议员节点从收到的的竞争消息中选择mc值最大的一个节点作为候选节点,并将该候选节点的信息在参议员节点内部进行广播;
[0047]
4.7)参议员节点收到来自其它参议员节点的候选节点广播信息,将候选节点加入候选节点列表;
[0048]
4.8)参议员节点基于到达时间定位算法计算与节点ni之间的测距估计
[0049]
4.9)参议员节点验证节点ni的信噪比能力值pr(sinri≥β1),若满足),若满足参议员节点对节点ni投肯定票,转步骤4.10);否则参议员节点对节点ni投否定票,转步骤4.12);其中d
ij
表示节点ni和节点nj之间的真实距离,σ
ij
和n
ij
为引入的乘性系数和加性系数;
[0050]
4.10)参议员节点在本地区块链上查找当前周期内节点ni的信誉度影响行为,计算得到节点ni的信誉度估计值
[0051]
4.11)参议员节点验证节点ni的信誉度能力值pr(ri≥β2),若满足
参议员节点对节点ni投肯定票,否则参议员节点对节点ni投否定票;
[0052]
4.12)节点ni得到一个投票集合vi={s1y,s2n,

sky},k∈[1,ns],其中s1y表示参议员节点s1对候选节点ni的投票是肯定,s2n对候选节点ni的投票是否定,若节点ni得到的肯定票数大于阈值tv,转步骤4.13),否则节点ni在记账权竞争中落选,转步骤4.14);
[0053]
4.13)如果节点ni的mc值在剩余的候选节点中是最高的,则节点ni在本轮记账权竞争中胜出,参议员节点广播节点ni的信息,宣布节点ni成为记账节点;否则节点ni在记账权竞争中落选;
[0054]
4.14)参议员节点将节点ni在候选节点列表中移除,基于pomc的记账节点选择过程结束。
[0055]
本发明有如下有益效果:
[0056]
该方法有效降低了基于区块链技术的农业物联网中的事务确认延迟,减轻了节点在共识机制中所承担的计算负担。同时,采用的基于信誉度的参议员抽签算法平均了网络的能量负载,延长了节点的寿命。此外,该方法在提高农业物联网的可扩展性的同时具有较好的安全性。
附图说明
[0057]
图1为面向农业物联网的多因素能力证明区块链共识方法流程图。
[0058]
图2为参议员节点抽签算法流程图。
[0059]
图3为信誉度机制示意图。
[0060]
图4为pomc共识机制流程图。
具体实施方式
[0061]
下面结合附图以及具体实施例对本发明作进一步的说明,需要指出的是,下面仅以一种最优化的技术方案对本发明的技术方案以及设计原理进行详细阐述,但本发明的保护范围并不限于此。
[0062]
如图1所示,面向农业物联网的多因素能力证明区块链共识方法,包含如下步骤:
[0063]
1)构建并初始化基于区块链的农业物联网,所述物联网是一个开放的分布式的点对点对等网络,网络中全部节点数量记为n,包括nm个矿工节点、1个记账节点和ns个参议员节点;所有节点都保存一条本地区块链副本;在网络的初始化阶段,ns=0;系统生成一个除hash值以外不包含任何信息的区块作为创世区块,并随机从矿工节点中抽取一个节点作为记账节点;
[0064]
2)所有节点抽签选择参议员节点;
[0065]
3)参议员节点通过节点的历史行为生成信用评价以更新系统内全部节点的信誉度,节点的历史行为包含对系统有积极意义的维护行为和消极意义的破坏行为,这些行为统称为信誉度影响行为,如表1所示;
[0066]
表1 对节点信誉度产生影响的行为
[0067][0068]
4)重新选择记账节点,参议员节点依据多因素能力证明proof of multifactor capacity(以下简称pomc)决定记账权的归属;
[0069]
5)系统内所有节点根据工作场景,生成不同的事务,事务的类型包含数据采集消息、区块链系统交易和指令执行反馈,生成的事务发送给系统内当前的记账节点;
[0070]
6)记账节点将收到的事务存入事务池,并判断事务池是否已满,如果是,转步骤7),否则转步骤6);
[0071]
7)记账节点将事务池内的事务打包成区块,并将区块广播到网络中;其中,区块头中的信息包含如下信息:public_key,timestamp,前序区块hash值,pomc共识信息;
[0072]
8)其它节点收到区块后验证该区块的hash值与前序区块的hash值是否相等,如果相等,转步骤9);否则丢弃区块,转步骤10);
[0073]
9)将区块添加到本地区块链的末端;
[0074]
10)面向农业物联网的多因素能力证明区块链共识方法结束。
[0075]
作为本发明的优选实施例,如图2所示,节点ni参与抽签选择参议员节点,包括如下步骤:
[0076]
2.1)节点ni判断系统内是否存在参议员节点,如果ns》0,转步骤2.2);否则,转步骤2.3);
[0077]
2.2)节点ni判断系统内当前所有的参议员节点任期是否即将到期,如果t
cur
》ts+t
s-t
red
,转步骤2.3);否则转步骤2.2);其中,t
cur
为系统当前时间,ts为系统内当前参议员节点出任时的时刻,t
red
为冗余时间,ts为参议员节点的任期长度;在本发明具体实施例中,t
red
=20秒

ts=100秒;
[0078]
2.3)节点ni执行运算h(param||nonce),若满足h(param||nonce)《ri·
target,转步骤2.4);否则nonce+1,转步骤2.3);其中,h(param||nonce)表示对包含了param和nonce的参数进行双sha256哈希运算,param为节点ni的自身信息参数,nonce为节点ni随机生成的一个随机数,target为系统发布的难度值;
[0079]
2.4)节点ni广播参议员抽签信息,包含自身的信息param、nonce值、时间戳timestamp;
[0080]
2.5)节点接收抽签信息,若ns《ths,ns+1,转步骤2.5);否则,转步骤2.6);其中ths表示参议员节点数量的阈值,在本发明的具体实施例中,ths=10;
[0081]
2.6)ns个抽签信息的源地址所代表的节点即成为新一轮的参议员节点。
[0082]
作为本发明的优选实施例,如图3所示,以节点ni为例,参议员节点s更新节点ni信誉度的具体步骤如下:
[0083]
3.1)参议员节点s计算节点ni信用评价r
si
,计算公式如下:
[0084][0085]
其中,c
pos
为节点ni的信誉度影响行为中积极行为的数量,c
neg
为节点ni的信誉度影响行为中消极行为的数量;
[0086]
3.2)参议员节点s生成信用评价事务,事务形式为trans{public_key,timestamp,”r
si”};其中public_key表示参议员节点s的地址,timestamp表示时间戳;
[0087]
3.3)参议员节点s将事务trans发送给系统内当前的记账节点;
[0088]
3.4)记账节点将事务trans存入本地的事务池,如果事务池满,转步骤3.5);否则转步骤3.4)
[0089]
3.5)记账节点将事务池内的事务打包成区块在网络内进行广播;
[0090]
3.6)收到该区块的节点验证该区块的hash值与前序区块的hash值是否相等,如果相等,则将区块添加到本地区块链的末端;否则,丢弃区块。
[0091]
作为本发明的优选实施例,如图4所示,以非参议员节点ni为例,具体步骤如下:
[0092]
4.1)节点ni计算干扰系数η,η表示节点ni在与距离其位置最近的参议员节点进行通信时的干扰系数,η计算公式如下:
[0093][0094]
其中p
noise
表示系统内的噪声强度,n
itf
表示干扰节点的数量,表示节点k到参议员节点s1间的距离,a表示信道衰落指数;
[0095]
4.2)节点ni计算pr(sinri≥β1),其中sinri表示节点ni与其距离最近的参议员节点进行通信时的信噪比,β1表示节点ni能够与其距离最近的参议员节点成功通信时的信噪比阈值,而pr(sinri≥β1)表示节点ni能够与距离其最近的参议员节点进行成功传输的概率,pr(sinri≥β1)计算公式如下:
[0096][0097]
4.3)节点ni计算pr(ri≥β2),pr(ri≥β2)表示节点ni的信誉度值ri大于系统信誉度最低需求β2的概率,pr(ri≥β2)计算公式如下:
[0098][0099]
其中e(ri)和d(ri)分别表示节点ni的历史信誉度的期望与方差;
[0100]
4.4)节点ni计算自己的多因素能力值mci,计算公式如下:
[0101]
mci=pr(sinri≥β1)
·
pr(ri≥β2)
[0102]
4.5)节点ni构建竞争消息,并将该消息发送给距离最近的参议员节点;竞争消息的形式为consmsg{public_key,timestamp,mci};
[0103]
4.6)参议员节点选择mc值最大的一个节点作为候选节点,并将该候选节点的信息在参议员节点内部进行广播;
[0104]
4.7)参议员节点收到来自其它参议员节点的候选节点广播信息,将候选节点加入
候选节点列表;
[0105]
4.8)参议员节点基于到达时间定位算法计算得到与节点ni之间的测距估计
[0106]
4.9)参议员节点验证节点ni的信噪比能力值pr(sinri≥β1),若满足),若满足参议员节点对节点ni投肯定票,转步骤4.10);否则参议员节点对节点ni投否定票,转步骤4.12);其中d
ij
表示节点ni和节点nj之间的真实距离,σ
ij
和n
ij
为引入的乘性系数和加性系数;
[0107]
4.10)参议员节点在本地区块链上查找当前周期内节点ni的信誉度影响行为,计算得到节点ni的信誉度估计值
[0108]
4.11)参议员节点验证节点ni的信誉度能力值pr(ri≥β2),若满足),若满足参议员节点对节点ni投肯定票,否则参议员节点对节点ni投否定票;
[0109]
4.12)节点ni得到一个投票集合vi={s1y,s2n,

sky},k∈[1,ns]。其中s1y表示参议员节点s1对候选节点ni的投票是肯定,s2n对候选节点ni的投票是否定,依次类推,若节点ni得到的肯定票数大于阈值tv,转步骤4.13),否则节点ni在记账权竞争中落选,转步骤4.14);在本发明的具体实施例中,
[0110]
4.13)如果节点ni的mc值在剩余的候选节点中是最高的,则节点ni在本轮记账权竞争中胜出,参议员节点广播节点ni的信息,宣布节点ni成为记账节点;否则节点ni在记账权竞争中落选;
[0111]
4.14)参议员节点将节点ni在候选节点列表中移除,基于pomc的记账节点选择过程结束。
[0112]
所述实施例为本发明的优选的实施方式,但本发明并不限于上述实施方式,在不背离本发明的实质内容的情况下,本领域技术人员能够做出的任何显而易见的改进、替换或变型均属于本发明的保护范围。
[0113]
本发明采用omnet++作为实验平台,主要针对农业物联网,设计完成了一种面向农业物联网的多因素能力证明区块链的实现方法,具有低延迟、低能耗、高事务吞吐量以及高扩展性等优点。以上内容仅用于说明本发明的设计思想和特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,本发明的保护范围不限于上述内容。所以,凡依据本发明所揭示的原理、设计思路所作的等同变化或修饰,均在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1