一种基于无线自组网拓扑结构的区块链共识方法
- 国知局
- 2024-11-25 15:06:46
本发明涉及无线自组网技术和区块链,尤其涉及一种基于无线自组网拓扑结构的区块链共识方法。
背景技术:
1、无线自组织网络是由以组兼具终端及路由功能的设备通过无线链路形成的无中心、多跳、临时性自治系统,其目的是通过动态路由技术进行满足一定服务质量需求的信息流传输。相比于传统的网络形式,无线自组织网络不需要现有的通信基站支持,也不具有传统网络中“网关”节点,而是所有节点都能承担为其余节点进行路由(即消息中继与转发)的功能,因此具有网络健壮性强以及部署成本低的优点。
2、另一方面,无线自组织网络具有一定的瓶颈。首先,相较于有线通信,无线通信的物理形式通常为全向无约束的射频广播,这导致单次无线通信会占用更多的信道资源,且更容易产生信道争用问题。其次,无线自组织网络的网络拓扑较复杂,且各个节点均有中继能力,不能使用传统星型组网中的静态路由协议,对各节点的网络拓扑认知一致性有较高需求。
3、除此之外,无线自组织网络中还存在对数据一致性的需求。例如,使用无线自组网的无人机蜂群需要对执行的策略进行同步,以共同完成目标;为了满足应用层与网络层的一致性需求,可以通过在无线自组网中部署区块链来实现。
4、区块链是一种具有一定抗干扰能力的分布式一致性系统,它旨在没有第三方权威机构公证的情况下,仅通过链上节点相互通信协商,执行特定的“共识算法”,便可在所有节点上得到顺序、内容一致的输出,即实现所谓“共识”。在此过程中,区块链系统还可应对一定的节点作恶或掉线情况,而不影响结果的一致性。区块链可分为两大类:公有链和私有链,其中私有链中节点的加入需要认证,链上各节点初始即具有一定互信度,呈合作关系,与无线自组网的情况相近。进一步,按照共识算法是否可抵御节点作恶,私有链可分为拜占庭容错(byzantinal fault tolerance,bft)类和非拜占庭容错(crash fault tolerance,cft)类。在bft类共识算法中,按照是否所有节点均可提出共识请求,可分为中心化bft与无中心bft共识算法两类。其中后者与无线自组网的实际情况相近。
5、在无中心bft共识算法中,每隔固定时间,每个链上节点将提出一个提议,然后各节点对这些提议进行共识,选取部分提议成为共识结果。该过程可分为两个步骤:第一是可靠广播(reliable broadcast,rbc),第二是异步二元共识(asynchronous binaryagreement,aba)。在可靠广播阶段,一个提议经过init、echo、ready三个阶段的广播后被输出,此时可以确保各节点得到的输出提议是相同的。在异步二元共识阶段,每个节点对每个可靠广播输出的提议发表同意/反对的二元意见,进行全体投票。经过若干轮的投票后,各提议的群体二元意见将趋于一致,并在某时刻最终确定并输出,从而完成整体的共识。
6、然而,传统的区块链研究通常使用高速、稳定的有线网络,对网络层的架构和通信问题不予考虑。但在无线自组网中部署区块链时,网络层架构与区块链的适配性也十分重要:首先,如果使用传统星型组网,则网关节点故障时全网即瘫痪,这产生了单点故障问题,使得区块链丧失了“去中心化”特性。其次,如果将无线信道封装为点对点信道,且使用动态路由算法进行点对点通信,则因为区块链中的通信几乎全为全网广播,进行一次共识的全网通信量将大大增加,严重影响区块链的共识速度。第三,无线自组网的节点具有一定流动性,网络拓扑和网络总节点数均可能随时间改变,而传统无中心bft类共识算法要求参与总节点数固定。因此,有必要设计一种适配无线自组网的区块链共识算法,使其在网络层能够继承延续区块链的去中心化特性,且充分利用无线自组网的通信物理特性,降低全网广播的总通信量,另外具有一定的动态性,使得区块链网络能动态适配无线自组网的变化。
技术实现思路
1、本发明的目的在于针对现有技术的不足,提供了一种基于无线自组网拓扑结构的区块链共识方法。
2、为实现上述目的,本发明提供了一种基于无线自组网拓扑结构的区块链共识方法,包括以下步骤:
3、(1)构建中继广播链路,所述广播链路是以消息源节点为根节点、包含其余部分节点的树状链路;
4、(2)构建可靠广播网络,对于任意节点,其可靠广播参与节点是以其为源节点的中继广播链路中的所有节点;
5、(3)构建异步二元共识网络,所述异步二元共识网络为所有节点的可靠广播网络中参与节点数最少者;
6、(4)构建共识组,对于全网异步二元共识网络中的每一节点,分别构建一个以其为核心的节点集合,称为共识组;该共识组的成员节点为该节点和该节点所有不在全网异步二元共识网络中的邻节点;
7、(5)收集与打包待共识数据,形成区块;各节点收到上层应用的共识请求后,将其储存在本地缓存中;节点网络层检测到邻节点改变后,将此消息储存在本地缓存中;各节点从本地缓存中取出数据打包为区块,并将该区块输入可靠广播协议;
8、(6)对所述步骤(5)得到的区块执行可靠广播协议;
9、(7)将可靠广播协议输出的区块打包为宏区块,并将宏区块输入异步二元共识协议;
10、(8)对所述步骤(7)得到的宏区块执行异步二元共识协议;
11、(9)对所述步骤(8)得到的共识结果执行智能合约或上报应用层;若该区块为网络层产生的网络拓扑结构改变信息,则执行智能合约,调整本地网络拓扑图,对于之后的共识将使用新的拓扑图;否则,若该区块为应用层产生的一般共识消息,则向本地应用层上报。
12、进一步地,所述步骤(1)包括以下子步骤:
13、(1.1)生成链路根节点为源节点ps,其父节点
14、(1.2)对当前链路的每一末端节点pi,计算待覆盖节点集ci:
15、ci=n(n(pi))-n(pi)-pf-n(pf)
16、其中,n()表示取邻节点;
17、(1.3)从n(pi)-pf范围内选取一个节点pj,使集合n(pi)∪ci元素最多,若有多个节点相同,选取id值最小的节点;将选中节点加入中继广播链路,成为链路中pi的子节点;
18、(1.4)令ci=ci-n(pj),重复步骤(1.3)-步骤(1.4),直至
19、(1.5)对上述新加入中继广播链路的节点,以其为末端节点,依次迭代执行步骤(1.2)-步骤(1.5),直至没有新节点被加入中继广播链路,最终得到的树状链路为源节点ps的中继广播链路。
20、进一步地,所述步骤(6)包括以下子步骤:
21、(6.1)源节点广播initial消息;
22、(6.2)在源节点的可靠广播网络中,当该网络中某节点接收到满足第一条件的消息时,该节点广播echo消息;
23、(6.3)当该网络中某节点接收到满足第二条件的消息时,该节点广播ready消息:
24、(6.4)当该网络中某节点接收到具有相同v、src、m的至少条ready消息时,该节点接受m,将{v,src,m}输出;其中,v指共识序列号,src指区块生成源节点id,m指数据内容,n指该可靠广播网络中的节点总数;
25、(6.5)其余节点至少有一个邻节点位于该网络中;通过侦听该邻节点的消息,当收到具有相同v、src、m的至少条ready消息时,该节点接受m,将{v,src,m}输出。
26、进一步地,所述步骤(6.2)中,第一条件包括:
27、条件1.1:一条initial消息;
28、条件1.2:具有相同v、src、m的至少条echo消息;
29、条件1.3:具有相同v、src、m的至少条ready消息。
30、进一步地,所述步骤(6.3)中,第二条件包括:
31、条件2.1:具有相同v、src、m的至少条消息;
32、条件2.2:具有相同v、src、m的至少条ready消息。
33、进一步地,所述步骤(8)包括以下子步骤:
34、(8.1)对于每一个共识序列号v,初始化共识参与节点为异步二元共识网络中各节点,总节点数为n;区块编号block_id=0;
35、(8.2)对于输入的宏区块,根据其共识序列号v,查询当前的区块编号block_id,若令二元值b=1,否则,令二元值b=0;
36、(8.3)广播异步二元共识消息;
37、(8.4)当某异步二元共识节点收到异步二元共识消息时,解析其来源共识节点id、共识序列号v、宏区块核心节点编号core、共识轮数i、二元值b;根据v、core、i查询历史记录,得到同意节点数agree、反对节点数disagree、备选二元值列表l;若b=1,将agree自增1,否则将disagree自增1;
38、(8.5)当满足第三条件时,更新备选二元值列表l;
39、(8.6)当满足第四条件时,产生一条异步二元共识消息并广播;
40、(8.7)当满足第五条件时,结束异步二元共识并将结果输出:
41、(8.8)当收到条消息后,若没有产生输出,则启动下一轮共识,令共识轮数i自增1;从当前备选二元值列表l中随机选取一个作为初始二元值,广播新一轮的异步二元共识消息。
42、进一步地,所述步骤(8.5)中,第三条件包括:
43、条件3.1:来源共识节点为自身,将二元值b加入备选二元值列表l;
44、条件3.2:若将二元值1加入备选二元值列表l;
45、条件3.3:若将二元值0加入备选二元值列表l。
46、进一步地,所述步骤(8.6)中,第四条件包括:
47、条件4.1:若本节点还未产生输出,且且二元值1原本不在备选二元值列表l中,则广播二元值为1、其余值与收到消息相同的异步二元共识消息;
48、条件4.2:若本节点还未产生输出,且二元值0原本不在备选二元值列表l中,则广播二元值为0、其余值与收到消息相同的异步二元共识消息;
49、条件4.3:若本节点已经产生输出b,且本轮本节点未广播过消息,则广播二元值为b、其余值与收到消息相同的异步二元共识消息。
50、进一步地,所述步骤(8.7)中,第五条件包括:
51、条件5.1:若接受该消息,输出1,将该区块写入已共识历史记录;
52、条件5.2:拒绝该消息,输出0。
53、本发明与现有技术相比,其显著优点为:本发明利用无线自组网中所有节点均可作为路由节点的特性,在网络层继承了区块链的去中心化特性,避免单点故障问题。其次,本发明利用无线通信的广播本质,使用了一种基于网络拓扑的高效广播机制,大大降低了区块链共识过程中的通信开销。最后,本发明使用了一种基于网络拓扑的区块链构建机制,利用当前网络拓扑确定链上节点,当网络拓扑变化时能自动切换,让区块链与无线自组网环境相适配。
54、下面结合附图对本发明作进一步详细描述。
本文地址:https://www.jishuxx.com/zhuanli/20241125/336192.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。