区块链中区块共识建立方法及系统与流程

文档序号:12493060阅读:424来源:国知局
区块链中区块共识建立方法及系统与流程
本发明涉及互联网
技术领域
,具体涉及一种区块链中区块共识建立方法及系统。
背景技术
:所有的传统支付系统都依赖于一个中心认证机构,依靠中心机构提供的结算服务来验证并处理所有的交易。区块链没有中心机构,几乎所有的完整节点都有一份公共总帐的备份,这份总帐可以被视为认证过的记录。区块链并不是由一个中心机构创造的,它是由区块链网络中的所有节点各自独立竞争完成的。区块链网络中的所有节点,依靠着节点间的不稳定的网络连接所传输的信息,最终得出同样的结果并维护了同一个公共总帐。换句话说,共识是数以千计的独立节点遵守了简单的规则通过异步交互自发形成的产物。现有的区块共识指:挖矿节点通过完成工作量证明算法的验算,将交易记录独立打包进新区块,挖矿节点和完整节点独立的对新区块进行校验并组装进区块链,在工作量证明机制下选择累计工作量最大的区块组装至区块链。其中,挖矿节点独立完成工作量证明算法的验算简称为算力证明,这种算力证明会消耗大量计算机资源,使得挖矿节点所承担的验证工作量非常大,严重增加了挖矿节点的负担,而且挖矿节点和完整节点独立的对新区块进行校验的过程也较为复杂,现有技术中缺少一种简化计算量,快速将区块组装至区块链的技术方案。技术实现要素:鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的区块链中区块共识建立方法和相应的区块链中区块共识建立系统。根据本发明的一个方面,提供了一种区块链中区块共识建立方法,方法包括:区块链网络中的挖矿节点依据预设区块格式对各自的交易池中的交易信息进行打包处理,得到多个区块;挖矿节点对多个区块的整体内容或部分内容进行签名处理,得到多个签名消息,并将多个区块和多个签名消息广播至区块链网络,其中,签名消息包括第一哈希值和签名信息,第一哈希值为区块的整体内容或部分内容的哈希值;区块链网络中的完整节点和挖矿节点监听在区块链网络中广播的多个区块和多个签名消息,对监听到的多个区块的整体内容或部分内容分别进行哈希处理,得到多个第二哈希值,将多个第二哈希值与多个第一哈希值进行比较,得到与每个第二哈希值相对应的签名信息;区块链网络中的完整节点和挖矿节点对多个签名信息进行数值化处理,得到签名信息对应的数值,依据预设选择机制从多个数值中选择一个数值,将该数值对应的签名信息对应的区块组装至区块链。根据本发明的另一方面,提供了一种区块链中区块共识建立系统,应用于区块链网络,系统包括:挖矿节点,用于依据预设区块格式对各自的交易池中的交易信息进行打包处理,得到多个区块;对多个区块的整体内容或部分内容分别进行签名处理,得到多个签名消息,并将多个区块和多个签名消息广播至区块链网络,其中,签名消息包括第一哈希值和签名信息,第一哈希值为区块的整体内容或部分内容的哈希值;完整节点和挖矿节点,用于监听在区块链网络中广播的多个区块和多个签名消息,对监听到的多个区块的整体内容或部分内容分别进行哈希处理,得到多个第二哈希值,将多个第二哈希值与多个第一哈希值进行比较,得到与每个第二哈希值相对应的签名信息;对多个签名信息进行数值化处理,得到签名信息对应的数值,依据预设选择机制从多个数值中选择一个数值,将该数值对应的签名信息对应的区块组装至区块链。根据本发明提供的方案,挖矿节点依据预设区块格式对各自的交易池中的交易信息进行打包,在得到多个区块后,对多个区块的整体内容或部分内容进行签名处理,得到签名消息,其中签名消息包括第一哈希值和签名信息,第一哈希值为区块的整体内容或部分内容的哈希值,并将多个区块和多个签名消息广播至区块链网络,完整节点和挖矿节点对监听到的多个区块的整体内容或部分内容分别进行哈希处理,得到多个第二哈希值,将多个第二哈希值与多个所述第一哈希值进行比较,得到与每个第二哈希值相对应的签名信息,对多个签名信息进行数值化处理,得到所述签名信息对应的数值,依据预设选择机制从多个数值中选择一个数值,将该数值对应的签名信息对应的区块组装至区块链,在打包过程中无需再进行工作量算法的计算,降低了挖矿节点的工作量,减轻了挖矿节点的负担,根据重新建立的区块共识,同时也降低了完整节点和挖矿节点将区块组装至区块链时校验的工作量,此外,还节省了区块被组装至区块链的时间,更重要的是,无需改变区块链网络的整体架构。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本发明一个实施例的区块链中区块共识建立方法的流程示意图;图2示出了根据本发明一个实施例的区块链中区块共识建立系统的结构示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图1示出了根据本发明一个实施例的区块链中区块共识建立方法的流程示意图。如图1所示,该方法包括以下步骤:步骤S100,区块链网络中的挖矿节点依据预设区块格式对各自的交易池中的交易信息进行打包处理,得到多个区块。在本发明实施例中,交易池用于暂存尚未被加入到区块的交易信息,而区块链网络中挖矿节点用于负责将暂存于交易池中的交易信息打包生成区块,其中,交易池中的交易信息是校验通过的交易信息,具体地,挖矿节点在接收到广播至区块链网络后的交易信息后进行校验,将通过校验的交易信息暂存至交易池。在现有技术中,挖矿节点是按照表1描述的区块结构和表2描述的区块头结构来对各自的交易池中的交易信息进行打包处理的。表1-区块结构:大小字段描述4字节区块大小用字节表示的该字段之后的区块大小80字节区块头组成区块头的几个字段1-9(可变整数)交易计数器交易的数量可变的交易记录在区块里的交易信息表2-区块头结构:挖矿节点按照上述区块结构和区块头结构对各自的交易池中的交易信息进行打包处理时,需要独立完成工作量证明算法的计算,然而这种计算工作量非常大,非常消耗计算机资源,严重增加了挖矿节点的负担,挖矿节点在完成工作量证明算法的计算,将交易信息打包,生成区块后,完整节点和挖矿节点将选择工作量最大的区块组装至区块链。为了能够解决挖矿节点计算工作量证明算法时,计算工作量过大的问题,本发明对区块链网络中的挖矿节点对各自的交易池中的交易信息进行打包处理时,所依据的区块格式进行了更改,这里挖矿节点将依据预设区块格式对各自的交易池中的交易信息进行打包处理,其中,区块结构如表1所示,但是对区块头结构进行了调整,删除了用于工作量证明算法的难度目标和用于工作量证明算法的计数器。本发明所依据的区块头如表3所示。表3-区块头结构:大小字段描述4字节版本版本号,用于跟踪软件/协议的更新32字节父区块哈希值引用区块链中父区块的哈希值32字节Merkle根该区块中交易的Merkle树根的哈希值4字节时间戳该区块产生的近似时间(精确到秒的Unix时间戳)挖矿节点依据表1描述的区块结构和表3描述的区块头结构来对各自的交易池中的交易信息进行打包处理时,无需进行工作量证明算法的计算,这样明显减轻了挖矿节点的负担。在本发明实施例中,区块链网络中会存在多个挖矿节点,多个挖矿节点在打包交易池中的交易信息时,可能会同时引用同一个父区块,也就是说,多个新区块指向了同一个父区块,此时就需要从多个新区块中选择一个区块组装至区块链,举例说明,区块链网络中存在挖矿节点1、2、3,这三个挖矿节点在对其各自的交易池中的交易信息进行打包处理时,都引用了父区块13,也就是说,挖矿节点1、2、3在对其各自的交易池中的交易信息打包处理后得到区块141、142、143,然而,区块141、142、143中,只有一个区块可以被组装至区块链,具体可以采用如下方法步骤进行选择:步骤S101,挖矿节点对多个区块的整体内容或部分内容进行签名处理,得到多个签名消息,并将多个区块和多个签名消息广播至区块链网络,其中,签名消息包括第一哈希值和签名信息,第一哈希值为区块的整体内容或部分内容的哈希值。具体地,挖矿节点在依据预设区块格式对各自的交易池中的交易信息进行打包处理得到多个区块后,需要对区块的整体内容或部分内容进行签名处理,其中区块的整体内容可以是整个区块,区块的部分内容可以是区块头,也就是说,挖矿节点可以对多个区块或多个区块的区块头进行签名处理,在本发明实施例中,仅对区块的区块头进行签名处理,可以减少工作量。在本发明的一种可选实施方式中,挖矿节点可以对多个区块进行签名处理,得到多个区块的签名消息,其中,签名处理过程包括:哈希处理和加密处理,更为具体地,挖矿节点可以先对多个区块进行哈希处理,得到区块的哈希值,即第一哈希值,然后再利用挖矿节点的私钥对第一哈希值进行加密处理,得到签名信息,也就是说,签名消息包括第一哈希值和签名信息,在得到多个签名消息后,挖矿节点将多个区块和多个签名消息广播至区块链网络。在本发明的另一种可选实施方式中,挖矿节点可以对多个区块的区块头进行签名处理,得到多个区块头的签名消息,其中,签名处理过程包括:哈希处理和加密处理,更为具体地,挖矿节点可以先对多个区块的区块头进行哈希处理,得到区块头的哈希值,即第一哈希值,然后再利用挖矿节点的私钥对第一哈希值进行加密处理,得到签名信息,也就是说,签名消息包括第一哈希值和签名信息,在得到多个签名消息后,挖矿节点将多个区块和多个签名消息广播至区块链网络。举例说明,在根据步骤S100得到区块141、142、143后,挖矿节点1、2、3可以分别对区块141、142、143进行签名处理,或者对区块141、142、143的区块头进行签名处理,得到对应的签名消息,例如,签名消息141、142、143,然后将区块141、142、143和相应的签名消息141、142、143广播至区块链网络。步骤S102,区块链网络中的完整节点和挖矿节点监听在区块链网络中广播的多个区块和多个签名消息,对监听到的多个区块的整体内容或部分内容分别进行哈希处理,得到多个第二哈希值,将多个第二哈希值与多个第一哈希值进行比较,得到与每个第二哈希值相对应的签名信息。在区块链网络中有多个完整节点和挖矿节点,区块链网络中的完整节点和挖矿节点监听在区块链网络中广播的多个区块和多个签名消息,在监听到多个区块和多个签名消息后,对监听到的多个区块或多个区块的区块头分别进行哈希处理,这里选择是对区块还是区块头进行哈希处理,取决于步骤S101中是对区块还是区块头进行签名处理,若在步骤S101中挖矿节点是对区块进行签名处理,则在本步骤中,完整节点和挖矿节点将对监听到的多个区块分别进行哈希处理,得到多个第二哈希值;若在步骤S101中挖矿节点是对区块头进行签名处理,则在本步骤中,完整节点和挖矿节点将对监听到的多个区块的区块头分别进行哈希处理,得到多个第二哈希值。在得到多个第二哈希值后,需要将多个第二哈希值与多个第一哈希值进行比较,具体地,这里的比较是为了找到与第二哈希值相等的第一哈希值,进而得到与每个第二哈希值相对应的签名信息,也就是将签名信息与区块进行关联。举例说明,完整节点和挖矿节点监听到广播至区块链网络中的区块141、142、143和相应的签名消息141、142、143,然后对区块141、142、143或区块141、142、143的区块头分别进行哈希处理,得到多个第二哈希值,然后将多个哈希值与签名消息141、142、143中的第一哈希值进行比较,得到与每个第二哈希值相对应的签名信息。对监听到的多个区块的整体内容或部分内容分别进行哈希处理所采用的算法这里不做具体限定,本领域技术人员可以根据实际需要选择合适的算法来计算多个区块的整体内容或部分内容的哈希值。步骤S103,区块链网络中的完整节点和挖矿节点对多个签名信息进行数值化处理,得到签名信息对应的数值,依据预设选择机制从多个数值中选择一个数值,将该数值对应的签名信息对应的区块组装至区块链。具体地,在得到与每个第二哈希值相对应的签名信息后,区块链网络中的完整节点和挖矿节点对多个签名信息进行数值化处理,主要是将签名信息转换为可度量的数值,方便从中选择一个数值,然后将该数值对应的签名信息对应的区块组装至区块链。具体的,这里的数值化处理可以是哈希处理,哈希处理随机性较强并且分布较均匀,并且哈希值定长易于比较,保证了区块选择的随机性,当然数字化处理也可以是其他类型,本发明实施例对此不加以限定。在本发明实施例中,将依据预设选择机制从多个数值中选择一个数值,例如,可以从多个数值中选择最小的数值,将该最小的数值对应的签名信息对应的区块组装至区块链;还可以从多个数值中选择最大的数值,将该最大的数值对应的签名信息对应的区块组装至区块链;还可以对多个数值进行均值处理,得到平均值,分别计算多个数值与平均值的差值,根据差值从多个数值中选择与平均值的差值最小的数值,将与平均值的差值最小的数值对应的签名信息对应的区块组装至区块链。举例说明,区块链网络中的完整节点和挖矿节点对签名消息141、142、143中的签名信息进行数值化处理,得到签名信息对应的数值,然后依据预设选择机制从三个数值中选择一个数值,具体提,可以从三个数值中选择最小的数值,将该数值对应的签名信息对应的区块,例如区块141组装至区块链。由此可见,本发明中挖矿节点依据预设区块格式对各自的交易池中的交易信息进行打包,在得到多个区块后,对多个区块的整体内容或部分内容进行签名处理,得到签名消息,其中签名消息包括第一哈希值和签名信息,第一哈希值为区块的整体内容或部分内容的哈希值,并将多个区块和多个签名消息广播至区块链网络,完整节点和挖矿节点对监听到的多个区块的整体内容或部分内容分别进行哈希处理,得到多个第二哈希值,将多个第二哈希值与多个所述第一哈希值进行比较,得到与每个第二哈希值相对应的签名信息,对多个签名信息进行数值化处理,得到所述签名信息对应的数值,依据预设选择机制从多个数值中选择一个数值,将该数值对应的签名信息对应的区块组装至区块链,在打包过程中无需再进行工作量算法的计算,降低了挖矿节点的工作量,减轻了挖矿节点的负担,根据重新建立的区块共识,同时也降低了完整节点和挖矿节点将区块组装至区块链时校验的工作量,此外,还节省了区块被组装至区块链的时间,更重要的是,无需改变区块链网络的整体架构。图2示出了根据本发明一个实施例的区块链中区块共识建立系统的结构示意图。该系统应用于区块链网络,如图2所示,该系统200包括:挖矿节点210和完整节点220。挖矿节点210,用于依据预设区块格式对各自的交易池中的交易信息进行打包处理,得到多个区块;对多个区块的整体内容或部分内容分别进行签名处理,得到多个签名消息,并将多个区块和多个签名消息广播至区块链网络,其中,签名消息包括第一哈希值和签名信息,第一哈希值为区块的整体内容或部分内容的哈希值;完整节点220和挖矿节点210,用于监听在区块链网络中广播的多个区块和多个签名消息,对监听到的多个区块的整体内容或部分内容分别进行哈希处理,得到多个第二哈希值,将多个第二哈希值与多个第一哈希值进行比较,得到与每个第二哈希值相对应的签名信息;对多个签名信息进行数值化处理,得到签名信息对应的数值,依据预设选择机制从多个数值中选择一个数值,将该数值对应的签名信息对应的区块组装至区块链。可选地,完整节点220和挖矿节点210进一步用于:从多个数值中选择最小的数值。可选地,完整节点220和挖矿节点210进一步用于:从多个数值中选择最大的数值。可选地,完整节点220和挖矿节点210进一步用于:对多个数值进行均值处理,得到平均值;分别计算多个数值与平均值的差值;根据差值从多个数值中选择与平均值的差值最小的数值。可选地,挖矿节点210进一步用于:对多个区块进行签名处理,得到多个区块的签名消息;完整节点220和挖矿节点210进一步用于:对监听到的多个区块分别进行哈希处理,得到多个第二哈希值。可选地,挖矿节点210进一步用于:对多个区块的区块头进行签名处理,得到多个区块头的签名消息;完整节点220和挖矿节点210进一步用于:对监听到的多个区块的区块头分别进行哈希处理,得到多个第二哈希值。由此可见,本发明中挖矿节点依据预设区块格式对各自的交易池中的交易信息进行打包,在得到多个区块后,对多个区块的整体内容或部分内容进行签名处理,得到签名消息,其中签名消息包括第一哈希值和签名信息,第一哈希值为区块的整体内容或部分内容的哈希值,并将多个区块和多个签名消息广播至区块链网络,完整节点和挖矿节点对监听到的多个区块的整体内容或部分内容分别进行哈希处理,得到多个第二哈希值,将多个第二哈希值与多个所述第一哈希值进行比较,得到与每个第二哈希值相对应的签名信息,对多个签名信息进行数值化处理,得到所述签名信息对应的数值,依据预设选择机制从多个数值中选择一个数值,将该数值对应的签名信息对应的区块组装至区块链,在打包过程中无需再进行工作量算法的计算,降低了挖矿节点的工作量,减轻了挖矿节点的负担,根据重新建立的区块共识,同时也降低了完整节点和挖矿节点将区块组装至区块链时校验的工作量,此外,还节省了区块被组装至区块链的时间,更重要的是,无需改变区块链网络的整体架构。至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应该被理解和认定为覆盖了所有这些其他变型或修改。本领域技术人员应当理解,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。此外,本发明也不针对任何特定编程语言,应当明白,可以利用各种编程语言实现本发明描述的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。此外,尽管在附图中以特定顺序描述了本发明实施操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。可以省略某些步骤,将多个步骤合并为一个步骤执行,或者将一个步骤分成多个步骤执行。综上所述,应用本发明所述的区块链中区块共识建立方法及系统,挖矿节点在打包过程中无需再进行工作量算法的计算,降低了挖矿节点的工作量,减轻了挖矿节点的负担,根据重新建立的区块共识,同时也降低了完整节点和挖矿节点在将区块组装至区块链时校验的工作量,此外,还节省了区块被组装至区块链的时间,更重要的是,无需改变区块链网络的整体架构。以上对本发明的方法和具体实施方法进行了详细的介绍,并给出了相应的实施例。当然,除上述实施例外,本发明还可以有其它实施方式,凡采用等同替换或等效变换形成的技术方案,均落在本发明所要保护的范围之内。本发明公开了:A1、一种区块链中区块共识建立方法,其特征在于,所述方法包括:区块链网络中的挖矿节点依据预设区块格式对各自的交易池中的交易信息进行打包处理,得到多个区块;所述挖矿节点对所述多个区块的整体内容或部分内容进行签名处理,得到多个签名消息,并将所述多个区块和多个签名消息广播至区块链网络,其中,所述签名消息包括第一哈希值和签名信息,所述第一哈希值为区块的整体内容或部分内容的哈希值;区块链网络中的完整节点和挖矿节点监听在所述区块链网络中广播的所述多个区块和多个签名消息,对监听到的多个区块的整体内容或部分内容分别进行哈希处理,得到多个第二哈希值,将多个第二哈希值与多个所述第一哈希值进行比较,得到与每个第二哈希值相对应的签名信息;区块链网络中的完整节点和挖矿节点对多个签名信息进行数值化处理,得到所述签名信息对应的数值,依据预设选择机制从多个数值中选择一个数值,将该数值对应的签名信息对应的区块组装至区块链。A2、根据A1所述的方法,其特征在于,所述依据预设选择机制从多个数值中选择一个数值进一步包括:从所述多个数值中选择最小的数值。A3、根据A1所述的方法,其特征在于,所述依据预设选择机制从多个数值中选择一个数值进一步包括:从所述多个数值中选择最大的数值。A4、根据A1所述的方法,其特征在于,所述依据预设选择机制从多个数值中选择一个数值进一步包括:对所述多个数值进行均值处理,得到平均值;分别计算多个数值与平均值的差值;根据差值从所述多个数值中选择与平均值的差值最小的数值。A5、根据A1-A4任一项所述的方法,其特征在于,所述对所述多个区块的整体内容或部分内容分别进行签名处理,得到多个签名消息进一步包括:对所述多个区块进行签名处理,得到多个区块的签名消息;所述对监听到的多个区块的整体内容或部分内容分别进行哈希处理,得到多个第二哈希值进一步包括:对监听到的多个区块分别进行哈希处理,得到多个第二哈希值。A6、根据A1-A4任一项所述的方法,其特征在于,所述对所述多个区块的整体内容或部分内容分别进行签名处理,得到多个签名消息进一步包括:对所述多个区块的区块头进行签名处理,得到多个区块头的签名消息;所述对监听到的多个区块的整体内容或部分内容分别进行哈希处理,得到多个第二哈希值进一步包括:对监听到的多个区块的区块头分别进行哈希处理,得到多个第二哈希值。B7、一种区块链中区块共识建立系统,应用于区块链网络,其特征在于,所述系统包括:挖矿节点,用于依据预设区块格式对各自的交易池中的交易信息进行打包处理,得到多个区块;对所述多个区块的整体内容或部分内容分别进行签名处理,得到多个签名消息,并将所述多个区块和多个签名消息广播至区块链网络,其中,所述签名消息包括第一哈希值和签名信息,所述第一哈希值为区块的整体内容或部分内容的哈希值;完整节点和挖矿节点,用于监听在所述区块链网络中广播的所述多个区块和多个签名消息,对监听到的多个区块的整体内容或部分内容分别进行哈希处理,得到多个第二哈希值,将多个第二哈希值与多个所述第一哈希值进行比较,得到与每个第二哈希值相对应的签名信息;对多个签名信息进行数值化处理,得到所述签名信息对应的数值,依据预设选择机制从多个数值中选择一个数值,将该数值对应的签名信息对应的区块组装至区块链。B8、根据B7所述的系统,其特征在于,所述完整节点和挖矿节点进一步用于:从所述多个数值中选择最小的数值。B9、根据B7所述的系统,其特征在于,所述完整节点和挖矿节点进一步用于:从所述多个数值中选择最大的数值。B10、根据B7所述的系统,其特征在于,所述完整节点和挖矿节点进一步用于:对所述多个数值进行均值处理,得到平均值;分别计算多个数值与平均值的差值;根据差值从所述多个数值中选择与平均值的差值最小的数值。B11、根据B7-B10任一项所述的系统,其特征在于,所述挖矿节点进一步用于:对所述多个区块进行签名处理,得到多个区块的签名消息;所述完整节点和挖矿节点进一步用于:对监听到的多个区块分别进行哈希处理,得到多个第二哈希值。B12、根据B7-B10任一项所述的系统,其特征在于,所述挖矿节点进一步用于:对所述多个区块的区块头进行签名处理,得到多个区块头的签名消息;所述完整节点和挖矿节点进一步用于:对监听到的多个区块的区块头分别进行哈希处理,得到多个第二哈希值。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1