本发明涉及区块链多重跨链相互保护的安全技术领域,尤其涉及一种区块链多重跨链相互保护方法、装置及存储介质。
背景技术:
区块链的51%大算力攻击问题引起了人们的高度关注,若某人(或某矿池)拥有超过某区块链网络超过51%的大算力,他就有能力对区块链发起攻击,改变已经达成的共识,使已经使用过的数字货币被错误的第二次使用(即“双花”,一笔钱可以花两次),还可能引起相关市场的不正常波动从而获得套利收益,因区块链网络被攻击造成损失的案例也屡有报道。相比于一些长期安全稳定运行的区块链网络,如以太坊比特币网络,新构建的区块链网络更容易遭到攻击,导致新构建的区块链网络因失去信任而被废除。另一方面,随着量子计算技术的理论和实践的不断完善,量子计算在未来可能实现超大计算力,量子计算对区块链的安全已构成潜在的隐患。
因此,需要针对当区块链的51%大算力攻击时如何进行保护,实现区块链特别是新构建的区块链的安全稳定运行。
技术实现要素:
本发明提供一种区块链多重跨链相互保护方法、装置及存储介质,旨在解决区块链大算力攻击时的保护问题,实现区块链的安全稳定运行。
本发明提供一种区块链多重跨链相互保护方法,所述方法包括:
步骤s10:设定多条区块链的相邻的关联关系,每一区块链和设定的相邻两条区块链关联;
步骤s20:任一区块链的新出块区块向网络广播其区块信息的同时,即搜集其相邻的两条区块链广播出的新出块区块的区块信息;
步骤s30:将搜集到的所述区块信息中的哈希作为所述区块链下一个新区块的区块头的组成部分;
步骤s40:随着时间的推进,生成的所述多条区块链构建成多重跨链相互保护的区块链网络。
进一步地,每一区块链区块的区块头中均包括与其相邻的两条区块链的新出块区块的区块哈希。
进一步地,每一区块链区块的区块头中均包括梅克尔根、时间戳、上一区块哈希及两个相邻区块链新出块区块的区块哈希。
进一步地,所述步骤s20包括:
步骤s210:任一区块链有新出块区块;
步骤s220:所述新出块区块向网络广播其区块信息;
步骤s230:所述新出块区块在广播其区块信息的同时,搜集所述区块链相邻的两条区块链广播的最新出块区块的区块信息。
进一步地,任一区块链的新出块区块搜集相邻两条区块链的新出块区块信息,当搜集任一相邻区块链搜集不到该相邻区块链的新出块区块的区块信息时,将空值加入到所述区块链新出块区块的区块头中。
优选地,任一区块链的新出块区块搜集相邻两条区块链的新出块区块信息,当搜集任一相邻区块链搜集不到该相邻区块链的新出块区块的区块信息时,将搜集不到的该相邻区块链的上一个新出块区块的区块哈希加入到所述区块链新出块区块的区块头中。
为实现上述目的,本发明还提供了一种区块链多重跨链相互保护装置,所述区块链多重跨链相互保护装置包括存储器模组和处理器模组,所述存储器模组上存储有可在所述处理器模组上运行的区块链多重跨链相互保护程序,所述区块链多重跨链相互保护程序被所述处理器模组执行时实现上述区块链多重跨链相互保护方法的步骤。
此外,为实现上述目的,本发明还提供了一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有区块链多重跨链相互保护程序,所述区块链多重跨链相互保护程序可被一个或者多个处理器模组执行,以实现上述区块链多重跨链相互保护方法的步骤。
本发明提供一种区块链多重跨链相互保护方法、装置及存储介质,通过新出块区块的区块头中记录相邻区块链新出区块的区块哈希,构建成多重跨链相互保护的区块链网络,从而有效避免区块链网络遭受大算力攻击,实现区块链的安全稳定运行。
附图说明
图1为本发明一实施例提供的区块链多重跨链相互保护方法流程示意图;
图2为本发明一实施例提供的设定多条区块链的相邻关联关系的关系示意图一;
图3为本发明一实施例提供的设定多条区块链的相邻关联关系的关系示意图二;
图4为图1中步骤s20的流程示意图;
图5(a)为本发明一实施例提供的多重跨链相互保护的区块链网络示意图一;
图5(b)为本发明一实施例提供的多重跨链相互保护的区块链网络示意图二;
图6为本发明一实施例提供的区块链区块1b的结构示意图;
图7为本发明一实施例提供的区块链区块2b的结构示意图;
图8为本发明一实施例提供的区块链区块的哈希指向关系示意图;
图9为本发明一实施例提供的区块链多重跨链相互保护装置内部结构示意图;
图10为本发明一实施例提供的区块链多重跨链相互保护装置中的区块链多重跨链相互保护程序模块示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明一实施例提供的区块链多重跨链相互保护方法流程示意图,该方法包括:
步骤s10:设定多条区块链的相邻的关联关系,每一区块链和设定的相邻两条区块链关联;
步骤s20:任一区块链的新出块区块向网络广播其区块信息的同时,即搜集其相邻的两条区块链广播出的新出块区块的区块信息;
步骤s30:将搜集到的所述区块信息中的哈希作为所述区块链下一个新区块的区块头的组成部分;具体形成每一区块链区块的区块头中均包括与其相邻的两条区块链的新出块区块的区块哈希;
步骤s40:随着时间的推进,生成的所述多条区块链构建成多重跨链相互保护的区块链网络。
请结合参阅图2和图3,具体地在一实施例中,设定有n条区块链分别为c1、c2、……、ci、……、cn,其中c表示区块链,i、n为自然数且大于等于3,随着时间t的推进,所述n条区块链分别生成。设定所述n条区块链中的每一条区块链和相邻的两条区块链关联,例如,区块链c2,分别与区块链c1和c3关联,区块链ci,分别与区块链ci-1和ci+1关联,区块链cn,分别与区块链cn-1和c1关联。从图3中更为清楚地看到每条区块链与其他区块链的关联关系。
请参阅图4,所述步骤s20包括:
步骤s210:任一区块链有新出块区块;
步骤s220:所述新出块区块向网络广播其区块信息;
步骤s230:所述新出块区块在广播其区块信息的同时,搜集所述区块链相邻的两条区块链广播的最新出块区块的区块信息。
请一并参阅图5、图6和图7,任一区块链的新出块区块向网络广播其区块信息的同时,即搜集其相邻的两条区块链广播出的新出块区块的区块信息;将搜集到的所述区块信息中的哈希作为所述区块链下一个新区块的区块头的组成部分;每一区块链区块的区块头中均包括与其相邻的两条区块链的新出块区块的区块哈希。具体地,每一区块链区块的区块头中均包括根哈希(梅克尔根)、时间戳、上一区块哈希及两个相邻区块链新出块区块的区块哈希,然后通过区块链算法计算出随机数和本区块哈希,将新区块出块通过网络广播,新出块的区块头中,除了上一区块哈希与上一区块头部的区块哈希形成指向关系外,还包括了相邻两条区块链的新出区块的区块哈希,因此,通过相邻两条区块链的新出区块的区块哈希形成指向关系,但由于每一区块链的新区块生成速度不同,因此所述区块链间的指向关系并一定是一对一的指向关系。
如图5所示,任一区块链的新出块区块搜集相邻两条区块链的新出块区块信息,当搜集任一相邻区块链搜集不到该相邻区块链的新出块区块的区块信息时,将空值加入到所述区块链新出块区块的区块头中,或者将搜集不到的该相邻区块链的上一个新出块区块的区块哈希加入到所述区块链新出块区块的区块头中。
具体在本发明提供的实施例一中,对于区块链ci,其相邻的区块链为ci-1和ci+1,通常三条区块链的区块生成时间并不完全相同,因此,当区块链ci的区块0b出块后,即开始搜集相邻的区块链ci-1和ci+1的新出块区块,当发现区块链ci-1最新出块区块0a和ci+1最新出块区块0c,立即搜集区块0a和区块0b的区块哈希,准备加进区块链ci的下一个区块1b中;在完成区块1b后,出块的区块1b结构如图6所示,在区块1b的区块头中,除了原有的区块1b哈希、区块0b哈希、随机数、根哈希和时间戳外,新增加区块0a哈希和区块0c哈希。
当区块链ci的区块1b生成后,开始搜集,发现区块链ci-1最新出块区块还是0a,而新的区块1a还没有出块,这时对于相邻的区块链ci-1,有两种可选的策略,第一种是发现区块0a的区块哈希已经被利用一次,而区块1a区块哈希还没有生成,于是用空值(blank)加入到将生成的区块2b中,如图5(a)所示,这种策略可以减小区块内容的大小,但是网格比较疏松;第二种是仍然用区块0a的区块哈希,加进区块2b中,如图5(b)所示,这种策略区块的内容稍多,但是网格比较致密,对大算力的抵御更加有效;搜集还发现区块链ci+1已经不止一个区块出块,于是为了节省区块大小,找到最新出块区块2c,将区块2c的区块哈希加进区块2b中。在完成区块2b后,最后生成的区块2b结构如图7所示,相邻的区块链ci-1的区块哈希为区块0a哈希或空值。
这样,通过三条区块链的相互绑定保护结成区块链网,以区块链ci为主,观察区块哈希指向关系如图8所示,其中,图中的“xxxxxx”表示省略值。
假如大算力想要从区块链ci的区块1b开始攻击区块链ci,那么区块1b及其后面的几个区块的区块哈希将会改变;由于区块链ci的区块1b及其后面的几个区块的区块哈希会被区块链ci-1和ci+1引用,如果大算力篡改了区块链ci的区块哈希值,区块链ci-1和ci+1必然有区块的区块哈希被改动,这就要求大算力必须还要对这两条区块链进行篡改;然后会引起整个n条区块链组成的区块链网的区块都要重新计算,才能使大算力的攻击成功,这极大地提高了大算力的要求,从实际计算上来说,大算力几乎不可能实现成功攻击,从而有效避免特定区块链网络遭受大算力攻击。
与现有技术相比,本发明提供一种区块链多重跨链相互保护方法、装置及存储介质,通过新出块区块的区块头中记录相邻区块链新出区块的区块哈希,构建成多重跨链相互保护的区块链网络,从而有效避免区块链网络遭受大算力攻击,实现区块链的安全稳定运行。
此外,本发明还提供一种区块链多重跨链相互保护装置。
请参阅图9,是本发明实施例提供的一种区块链多重跨链相互保护装置的内部结构示意图,所述区块链多重跨链相互保护装置至少包括存储器模组11、处理器模组12、通信总线13,以及网络接口14。优选地,所述区块链多重跨链相互保护装置包括在计算机网络上存在的执行区块链多重跨链相互保护方法的程序的一组或多台分布式计算设备或计算机设备。
其中,存储器模组11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器模组(例如,sd或dx存储器模组等)、磁性存储器模组、磁盘、光盘等。存储器模组11在一些实施例中可以是区块链多重跨链相互保护装置的内部存储单元,例如该区块链多重跨链相互保护装置的硬盘。存储器模组11在另一些实施例中也可以是区块链多重跨链相互保护装置的外部存储设备,例如区块链多重跨链相互保护装置上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器模组11还可以既包括区块链多重跨链相互保护装置的内部存储单元也包括外部存储设备,优选地,存储器模组11还可以是在计算机网络中存在的网络存储装置或云存储装置。存储器模组11不仅可以用于存储安装于区块链多重跨链相互保护装置的应用软件及各类数据,例如区块链多重跨链相互保护程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器模组12在一些实施例中可以是中央处理器模组(centralprocessingunit,cpu)、控制器、微控制器、微处理器模组或其他数据处理芯片,或者其他用于运行存储器模组11中存储的程序代码或处理数据的任何计算装置,优选地,处理器模组11还可以是在计算机网络中存在的一个计算机处理群组或者云计算装置,所述运行的程序代码可以是执行区块链多重跨链相互保护程序等。
通信总线13是用于实现这些组件之间的连接通信的任何通信装置。
网络接口14可选的可以包括标准的有线接口、无线接口(如wi-fi接口),通常用于在该区块链多重跨链相互保护装置与其他电子设备之间建立通信连接。
可选地,该区块链多重跨链相互保护装置还可以包括用户接口,用户接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在区块链多重跨链相互保护装置中处理的信息以及用于显示可视化的用户界面。
图9仅示出了具有组件11-14以及区块链多重跨链相互保护程序的区块链多重跨链相互保护装置,本领域技术人员可以理解的是,图9示出的结构并不构成对区块链多重跨链相互保护装置的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置,或者是计算机网络中的一组或多台计算机设备或云计算设备。
在图9所示的区块链多重跨链相互保护装置实施例中,存储器模组11中存储有区块链多重跨链相互保护程序;处理器模组12执行存储器模组11中存储的区块链多重跨链相互保护程序时实现如下步骤:
步骤s10:设定多条区块链的相邻的关联关系,每一区块链和设定的相邻两条区块链关联;
步骤s20:任一区块链的新出块区块向网络广播其区块信息的同时,即搜集其相邻的两条区块链广播出的新出块区块的区块信息;
步骤s30:将搜集到的所述区块信息中的哈希作为所述区块链下一个新区块的区块头的组成部分;
步骤s40:随着时间的推进,生成的所述多条区块链构建成多重跨链相互保护的区块链网络。
参照图10所示,为本发明区块链多重跨链相互保护装置一实施例中的区块链多重跨链相互保护程序的程序模块示意图,该实施例中,区块链多重跨链相互保护程序可以被分割为设定模块10、广播模块20、搜集模块30和生成模块40,示例性地:
设定模块10,用于执行设定多条区块链的相邻的关联关系的任务;
广播模块20,用于执行新出块区块向网络广播其区块信息的任务;
搜集模块30,用于执行搜集其相邻的两条区块链广播出的新出块区块的区块信息的任务;
生成模块40,用于执行对新出区块的生成任务。
上述设定模块10、广播模块20、搜集模块30和生成模块40等程序模块被执行时所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。
此外,本发明实施例还提出一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有区块链多重跨链相互保护程序,所述区块链多重跨链相互保护程序可被一个或多个处理器模组执行,以实现如下操作:
步骤s10:设定多条区块链的相邻的关联关系,每一区块链和设定的相邻两条区块链关联;
步骤s20:任一区块链的新出块区块向网络广播其区块信息的同时,即搜集其相邻的两条区块链广播出的新出块区块的区块信息;
步骤s30:将搜集到的所述区块信息中的哈希作为所述区块链下一个新区块的区块头的组成部分;
步骤s40:随着时间的推进,生成的所述多条区块链构建成多重跨链相互保护的区块链网络。
本发明的存储介质具体实施方式与上述区块链多重跨链相互保护方法和装置各实施例基本相同,在此不作累述。
与现有技术相比,本发明提供的区块链多重跨链相互保护方法、装置及存储介质,通过主链派生次链的主次链并行结构以及智能合约进行主链和次链的取代控制,实现对主链的安全备份与保护,同时确保区块链的信息真实健康,增加区块链的稳定性和可靠性。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用计算机网络硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得计算机网络的终端设备(可以是无人机、手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。