一种区块链公有链资源竞争行为模拟系统构建方法和系统与流程
本技术属于区块链,尤其是涉及一种区块链公有链资源竞争行为模拟系统构建方法和系统。
背景技术:
1、区块链公有链系统是基于区块链技术开发的去中心化系统,它利用一个分布式的网络进行管理和验证,无需依赖中心化的机构。在区块链公有链系统中,众多参与者运行特定的区块链公有链内核程序,成为网络上的节点,这些节点通过共识算法来维护一个公共的记录,而记录则全部被存储在区块链上。区块链公有链的核心性质是去中心化和不可篡改,这也就意味着网络上不存在能够控制网络的中心角色,并且所有的记录都对节点公开且不可篡改。
2、虽然区块链公有链系统的去中心化等特性为其带来了许多优势,通过节点之间的相互配合构造了一个看似非常安全的系统,但是区块链公有链系统中还是存在一定的安全威胁。正是由于区块链公有链系统是一个去中心化的网络,并没有中心化的机构去管理、保护整个网络的数据,在某种程度上这实际上也是一种不安全的行为,再加上区块链公有链系统上的网络是公开透明的,所有记录都公开可见,也使得攻击者更容易找到目标并发动攻击。此外,许多大型节点掌握着相当大的算力,这很可能存在潜在的风险使整个网络趋于中心化。
3、随着区块链技术在分布式数据存储与验证领域的广泛应用,节点间的协作与竞争行为对系统性能和安全性的影响日益显著。然而,部分节点可能出于自身利益,采取自私行为(如拒绝共享资源或篡改数据),从而破坏系统的公平性和可靠性。因此,构建一种区块链公有链资源竞争行为模拟系统,具有重要的理论价值和实际意义。
技术实现思路
1、本技术提供一种区块链公有链资源竞争行为模拟系统构建方法和系统,用于解决上述技术问题。
2、第一方面,公开了一种区块链公有链资源竞争行为模拟系统构建方法,所述方法包括:
3、步骤s1:获取区块链公有链的开源代码;构建自私节点及非自私节点,自私节点是获取到新资源后不向区块链公有链进行广播或在达到预设条件下才向区块链公有链及全部处于非隐藏状态的自私区块链广播获取到新资源的节点,非自私节点是获取到新资源后向区块链公有链广播获取到新资源的节点;对开源代码进行初步二次开发,使得自私节点能够判断其自身获取的资源是否是新资源,为自私节点配置其专属的用于存储其获取的新资源的自私区块链,自私节点维护自私区块链的目标是替代区块链公有链,自私区块链中的每个区块均为自私节点通过自私行为获取的新资源对应的新资源区块或通过区块链公有链获取的共识块;
4、步骤s2:在初步二次开发的开源代码的基础上,对自私节点均置第一处理逻辑模块,得到再次开发的开源代码;再次开发的开源代码使得自私节点在接收到其他节点向区块链公有链广播的获取到新资源的消息时,自私节点的第一处理逻辑模块验证该消息,验证通过后基于自私区块链的链长度确定广播该自私区块链上相应的新资源区块或继续隐藏该自私区块链;
5、步骤s3:修改再次开发的开源代码中的创建创世区块的函数,降低区块链公有链及自私区块链中各区块的出块难度,得到待编译开源代码;
6、步骤s4:编码该待编译开源代码,在本地局域网部署多个自私节点;编译区块链公有链的开源代码,在本地局域网部署多个非自私节点;
7、步骤s5:在本地构建区块链公有链,分别对本地局域网部署的各个自私节点和非自私节点进行资源压缩处理,从而模拟区块链公有链资源竞争。
8、优选地,所述步骤s1,对开源代码进行初步二次开发,使得自私节点能够判断其自身获取的资源是否是新资源,为自私节点配置其专属的用于存储其获取的新资源的自私区块链,包括:
9、步骤s11:对开源代码进行初步二次开发,使得自私节点能够判断其自身获取的资源是否是新资源;获取的资源是新资源时,确定新资源对应的数据、工作量、时间戳,建立与新资源对应的区块,为该区块建立索引;
10、步骤s12:建立向量类型的数组s_road,数组s_road用于存储自私节点通过自私行为获取的全部新资源的子集,该子集是自私节点通过区块链公有链获取到共识块后,再通过自私行为获取的新资源组成的集合;每个数组元素存储一个新资源,即数组s_road中的每个元素对应一个新资源区块;
11、步骤s13:建立向量类型的数组s_index,数组s_index用于存储新资源在区块链公有链上的索引;
12、步骤s14:建立向量类型的数组h_road,数组h_road用于存储区块链公有链上的部分资源,该部分资源是自私节点通过区块链公有链获取到共识块后,区块链公有链新增的区块对应的资源;
13、步骤s15:设置全局变量s_len存储自私区块链的长度,全局变量h_len存储区块链公有链的链长度;
14、步骤s16:在全局变量s_len的值为2,且全局变量h_len的值为1时,按区块生成顺序遍历s_road数组中存储的新资源,并将新资源对应的区块广播给区块链公有链及全部处于非隐藏状态的自私区块链;清空数组s_road、s_index、h_road,并将s_len和h_len置为0;
15、步骤s17:隐藏新资源对应的区块。
16、优选地,所述步骤s2:自私节点的第一处理逻辑模块验证该消息,验证通过后基于自私区块链的链长度确定广播该自私区块链上相应的新资源区块或继续隐藏该自私区块链,包括:
17、步骤s21:自私节点收到除该自私节点外的其他节点的获取到新资源的消息后,验证该消息是否完整,如果不完整则发出相应的请求直到获取到完整的所述获取到新资源的消息;在数据交易合法性检查通过后,进入步骤s22;
18、步骤s22:自私节点获取自私区块链的链长度s_len,择一执行以下操作:
19、操作1:变量s_len=0时,表示自私节点当前还未成功在自私区块链上存储新资源,则验证所述其他节点获取到新资源的消息对应的新资源的合法性并广播该新资源的资源信息,更新该新资源为共识资源;
20、操作2:h_len=0时,表示所述其他节点获取到新资源的消息对应的新资源是除该自私节点外的其他节点基于共识算法产生的第一个资源,对该第一个资源验证资源合法性后将该第一个资源添加至h_road的末尾,同时将h_len的值加1;
21、当s_len-h_len=1时,自私节点遍历s_road数组中每个数组元素,广播s_road数组中每个数组元素对应的新资源区块对应的资源信息并清空数组s_road、s_index以及h_road存储的内容,将s_len和h_len置为0;
22、当s_len=1且h_len=1或者s_len-h_len>1时,自私节点和非自私节点继续竞争获取下一个新资源,不进行任何操作;
23、操作3:h_len>0时,表示自私节点对应的自私区块链和区块链公有链均有该新资源的资源信息,且自私节点与非自私节点的竞争未结束,验证该新资源资源合法性后将该新资源添加至h_road的末尾,同时将h_len的值加1;如果此时s_len和h_len的关系不满足s_len-h_len=1,则择一执行以下操作:
24、当s_len=1且h_len=2时,则表示区块链公有链的链长度大于自私区块链的链长度,自私节点的资源竞争失败,清空数组s_road、s_index以及h_road,并将s_len和h_len置为0;
25、当s_len-h_len>1时,则自私节点和正常节点继续竞争获取下一个新资源,不进行任何操作。
26、优选地,步骤s3:修改再次开发的开源代码中的创建创世区块的函数,降低区块链公有链及自私区块链中各区块的出块难度,得到待编译开源代码,包括:
27、修改再次开发的开源代码中的创建创世区块的函数及相关参数的值,从而降低区块链公有链及自私区块链中各区块的出块难度,增大pow limit的值,使得工作量证明难度降低。
28、优选地,所述步骤s4:编码该待编译开源代码,在本地局域网部署多个自私节点;编码区块链公有链的开源代码,在本地局域网部署多个非自私节点,包括:
29、在本地编译该待编译开源代码及区块链公有链的开源代码,安装依赖和开源软件bfgminer,基于编译后的所述待编译开源代码制作自私节点的镜像,基于编译后的区块链公有链的开源代码制作非自私节点的镜像,在本地局域网部署多个自私节点和多个非自私节点。
30、第二方面,公开了一种区块链公有链资源竞争行为模拟系统构建系统,所述系统包括:
31、初始化模块:配置为获取区块链公有链的开源代码;构建自私节点及非自私节点,自私节点是获取到新资源后不向区块链公有链进行广播或在达到预设条件下才向区块链公有链及全部处于非隐藏状态的自私区块链广播获取到新资源的节点,非自私节点是获取到新资源后向区块链公有链广播获取到新资源的节点;对开源代码进行初步二次开发,使得自私节点能够判断其自身获取的资源是否是新资源,为自私节点配置其专属的用于存储其获取的新资源的自私区块链,自私节点维护自私区块链的目标是替代区块链公有链,自私区块链中的每个区块均为自私节点通过自私行为获取的新资源对应的新资源区块或通过区块链公有链获取的共识块;
32、广播模块:配置为在初步二次开发的开源代码的基础上,对自私节点均置第一处理逻辑模块,得到再次开发的开源代码;再次开发的开源代码使得自私节点在接收到其他节点向区块链公有链广播的获取到新资源的消息时,自私节点的第一处理逻辑模块验证该消息,验证通过后基于自私区块链的链长度确定广播该自私区块链上相应的新资源区块或继续隐藏该自私区块链;
33、编译模块:配置为修改再次开发的开源代码中的创建创世区块的函数,降低区块链公有链及自私区块链中各区块的出块难度,得到待编译开源代码;
34、部署模块:配置为编码该待编译开源代码,在本地局域网部署多个自私节点;编译区块链公有链的开源代码,在本地局域网部署多个非自私节点;
35、模拟模块:配置为在本地构建区块链公有链,分别对本地局域网部署的各个自私节点和非自私节点进行资源压缩处理,从而模拟区块链公有链资源竞争。
36、第三方面,公开了一种电子设备,所述电子设备包括:
37、至少一个处理器;以及
38、与所述至少一个处理器通信连接的存储器;其中,
39、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如前所述的方法。
40、第四方面,公开了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如前所述的方法。
41、本技术提出了一种区块链公有链资源竞争行为模拟系统构建方法和系统,使用主流区块链公有链客户端,通过对源码进行二次开发加入自私节点 行为逻辑,实现了在局域网中的区块链公有链资源竞争行为模拟系统。
42、本技术具有以下技术效果:
43、(1)资源竞争行为模拟系统基于主流区块链公有链客户端进行二次开发实现,具有广泛代表性,能够模拟真实区块链公有链网络中的攻击行为;
44、(2)修改了获取新资源的难度,在降低资源消耗的同时提高了系统运行效率;
45、(3)真实区块链公有链网络不论是主网还是测试网,均需要庞大算力发动攻击,本技术提供了简单易使用的模拟系统,使得模拟攻击行为成为可能。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com