创世区块的生成方法及装置制造方法及图纸

技术编号:34899701 阅读:23 留言:0更新日期:2022-09-10 14:02
本申请公开一种创世区块的生成方法及装置,涉及网络技术领域。本申请的方法包括:基于第一预设算法设置第一区块链,所述第一区块链中的每个第一区块为待认证区块,所述待认证区块为包含输出数据且未知输入数据的区块,所述输出数据是基于所述第一预设算法得到的;通过多个网络节点对所述第一区块链中的每个所述第一区块进行计算,得到第二区块,并将所述多个网络节点中生成所述第二区块的网络节点确定为目标节点,其中,所述第二区块为所述目标节点通过第二预设算法确定出所述第一区块的输入数据后得到的区块;根据所述目标节点创建所述创世区块,所述创世区块用于构建第二区块链。链。链。

【技术实现步骤摘要】
创世区块的生成方法及装置


[0001]本申请涉及网络
,尤其涉及一种创世区块的生成方法及装置。

技术介绍

[0002]区块链是一种去中心化的数据存储形式,它是由网络中的多个节点同时保存的一个由多个区块组成链状“列表”,有着持续增长并且排序整齐的存储方式。同时,区块链最为显著的特征就是在进行区块生成或修改时,往往是通过具有该区块链的所有节点之间的“投票”实现的,也就是说当超过一定数量的节点同意某个节点对区块链中的区块进行添加或修改时,这个区块链就会基于该节点的修改或添加行为对整个区块链进行更新。因此,在任意一个区块链创建之初,加入到区块链中区块的数量较少,同时该区块链中网络的节点数量也比较少,这时攻击者很容易利用节点数量较少的特点,通过一定数量的黑客节点发起攻击,从而重置区块链。尤其是区块链中的首个区块,即创世区块,当对该创世区块进行篡改后,基于创世区块的特点,会重新生成一条符合攻击者意图的新的区块链,根据区块链网络的特性,这条新的区块链便成为主链。因此,如何避免区块链网络创建之初创世区块被攻击者篡改而导致区块链网络被恶意控制变成了亟待解决的问题。
[0003]现有技术中,一般是将创世区块以硬编码形式保存至区块链软件中。但在实际应用中,由于创世区块硬编码被置于区块链软件中,攻击者可以直接控制一半以上的节点运行并篡改创世区块的区块链软件或者通过攻击发布区块链软件的服务器,上传篡改后的区块链软件来达到修改创世区块的目的,从而导致创世区块的安全性过低的问题。

技术实现思路

[0004]本申请实施例提供一种创世区块的生成方法及装置,主要目的在于解决当前创世区块的安全性过低的问题。
[0005]为解决上述技术问题,本申请实施例提供如下技术方案:
[0006]第一方面,本申请提供了一种创世区块生成方法,所述方法,包括:
[0007]基于第一预设算法设置第一区块链,所述第一区块链中的每个第一区块为待认证区块,所述待认证区块为包含输出数据且未知输入数据的区块;
[0008]通过多个网络节点对所述第一区块链中的每个所述第一区块进行计算,得到第二区块,并将所述多个网络节点中生成所述第二区块的网络节点确定为目标节点,其中,所述第二区块为所述目标节点通过第二预设算法确定出所述第一区块的输入数据后得到的区块;
[0009]根据所述目标节点创建所述创世区块,所述创世区块用于构建第二区块链。
[0010]可选的,所述第一预设算法为散列函数算法;
[0011]所述基于第一预设算法设置第一区块链,包括:
[0012]在预设区块链运行装置中设置所述第一区块链及验证数据包,并将所述预设区块链运行装置分发至每个所述网络节点;
[0013]其中,所述预设区块链运行装置用于多个所述网络节点进行区块链构建操作,所述验证数据包包含所述备选第一区块链的数据内容以及对应所述备选第一区块链的长度信息,所述长度信息用于表征所述备选第一区块链中所述第一区块的数量;
[0014]所述通过多个网络节点对所述第一区块链中的每个所述第一区块进行计算,得到第二区块,并将所述多个网络节点中生成所述第二区块的网络节点确定为目标节点,包括:
[0015]从每个所述网络节点获取所述长度信息,并基于所述长度信息将所述第一区块数量最多的所述备选第一区块链确定为所述第一区块链;
[0016]利用共识机制在多个所述网络节点中运行所述预设区块链运行装置,以便利用竞争机制计算所述第一区块链中的每个所述第一区块的输入数据,得到所述第二区块,所述竞争机制为多个所述网络节点在计算所述输出数据时,仅有一次正确得到所述输出数据的操作次数;
[0017]将多个所述网络节点中生成所述输入数据的网络节点确定为所述目标节点。
[0018]可选的,所述第二预设算法为穷举算法,所述利用共识机制在多个所述网络节点中运行所述预设区块链运行装置,以便利用竞争机制计算所述第一区块链中的每个所述第一区块的输入数据,得到所述第二区块,所述竞争机制为多个所述网络节点在计算所述输出数据时,仅有一次正确得到所述输出数据的操作次数,包括:
[0019]通过所述预设区块链运行装置及穷举算法对所述第一区块的输出数据进行计算,得到备选输入数据;
[0020]将所述备选输入数据分发至其余网络节点,并确定所述备选输入数据是否通过验证,其中,所述其余网络节点为多个所述网络节点中除生成所述备选输入数据之外的其余节点;
[0021]若通过,则将所述备选输入数据确定为所述输入数据,并根据所述输入数据更新所述第一区块,得到所述第二区块。
[0022]可选的,所述将所述备选输入数据分发至其余网络节点,并确定所述备选输入数据是否通过验证包括:
[0023]从每个所述其余节点获取验证结果;
[0024]其中,所述验证结果包括第一验证结果及第二验证结果;所述第一验证结果用于表征所述其余节点在基于备选输入数据与所述散列函数算法计算出的计算结果后,确定所述计算结果与所述第一区块的输出数据一致;所述第二验证结果用于表征所述其余节点在基于备选输入数据与所述散列函数算法计算出的计算结果后,确定所述计算结果与所述第一区块的输出数据不一致;
[0025]判断所述多个验证结果中所述第一验证结果的数量是否超过第一预设阈值,所述第一预设阈值是基于多个所述网络节点的比例确定的;
[0026]所述若确定所述备选输入数据通过验证,则将所述备选输入数据确定为所述输入数据,并根据所述输入数据更新所述第一区块,得到所述第二区块包括:
[0027]若确定所述第一验证结果的数量超过第一预设阈值,则将所述备选输入数据确定为所述输入数据,并根据所述输入数据更新所述第一区块,得到所述第二区块。
[0028]可选的,所述根据所述输入数据更新所述第一区块,得到所述第二区块,包括:
[0029]通过当前网络节点基于所述输入数据更新所述第一区块,得到所述第二区块,并
对所述第二区块添加所述当前网络节点的网络节点标记,将所述第二区块及所述网络节点标记分发至所述其余节点,以便所述其余节点基于所述第二区块替换所述第一区块;
[0030]或者,
[0031]每个所述网络节点根据所述输入数据同步更新所述第一区块,得到所述第二区块,并对所述第二区块添加得到所述输入数据的网络节点的网络节点标记。
[0032]可选的,所述根据所述目标节点创建所述创世区块,包括:
[0033]通过候选算法在多个所述目标节点中确定创世节点,并基于所述创世节点构建所述创世区块。
[0034]可选的,在所述通过候选算法在多个所述目标节点中确定创世节点,并基于所述创世节点构建所述创世区块之后,所述方法还包括:
[0035]为所述创世区块添加所述创世节点的创世节点标记,并通过所述创世节点将所述创世区块及所述创世节点标记分发至多个所述网络节点中;
[0036]通过所述目标节点的反馈信息确定所述创世区块是否通过验本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种创世区块的生成方法,其特征在于,所述方法包括:基于第一预设算法设置第一区块链,所述第一区块链中的每个第一区块为待认证区块,所述待认证区块为包含输出数据且未知输入数据的区块,所述输出数据是基于所述第一预设算法得到的;通过多个网络节点对所述第一区块链中的每个所述第一区块进行计算,得到第二区块,并将所述多个网络节点中生成所述第二区块的网络节点确定为目标节点,其中,所述第二区块为所述目标节点通过第二预设算法确定出所述第一区块的输入数据后得到的区块;根据所述目标节点创建所述创世区块,所述创世区块用于构建第二区块链。2.根据权利要求1所述的方法,其特征在于,所述第一预设算法为散列函数算法;所述基于第一预设算法设置第一区块链,包括:在预设区块链运行装置中设置所述第一区块链及验证数据包,并将所述预设区块链运行装置分发至每个所述网络节点;其中,所述预设区块链运行装置用于多个所述网络节点进行区块链构建操作,所述验证数据包包含所述备选第一区块链的数据内容以及对应所述备选第一区块链的长度信息,所述长度信息用于表征所述备选第一区块链中所述第一区块的数量;所述通过多个网络节点对所述第一区块链中的每个所述第一区块进行计算,得到第二区块,并将所述多个网络节点中生成所述第二区块的网络节点确定为目标节点,包括:从每个所述网络节点获取所述长度信息,并基于所述长度信息将所述第一区块数量最多的所述备选第一区块链确定为所述第一区块链;利用共识机制在多个所述网络节点中运行所述预设区块链运行装置,以便利用竞争机制计算所述第一区块链中的每个所述第一区块的输入数据,得到所述第二区块,所述竞争机制为多个所述网络节点在计算所述输出数据时,仅有一次正确得到所述输出数据的操作次数;将多个所述网络节点中生成所述输入数据的网络节点确定为所述目标节点。3.根据权利要求2所述的方法,其特征在于,所述第二预设算法为穷举算法;所述利用共识机制在多个所述网络节点中运行所述预设区块链运行装置,以便利用竞争机制计算所述第一区块链中的每个所述第一区块的输入数据,得到所述第二区块,包括:通过所述预设区块链运行装置及穷举算法对所述第一区块的输出数据进行计算,得到备选输入数据;将所述备选输入数据分发至其余网络节点,并确定所述备选输入数据是否通过验证,其中,所述其余网络节点为多个所述网络节点中除生成所述备选输入数据之外的其余节点;若通过,则将所述备选输入数据确定为所述输入数据,并根据所述输入数据更新所述第一区块,得到所述第二区块。4.根据权利要求3所述的方法,其特征在于,所述将所述备选输入数据分发至其余网络节点,并确定所述备选输入数据是否通过验证包括:从每个所述其余节点获取验证结果;其中,所述验证结果包括第一验证结果及第二验证结果;所述第一验证结果用于表征所述其余节点在基于备选输入数据与所述散列函数算法计算出的计算结果后,确定所述计
算结果与所述第一区块的输出数据一致;所述第二验证结果用于表征所述其余节点在基于备选输入数据与所述散列函数算法计算出的计算结果后,确定所述计算结果与所述第一区块的输出数据不一致;判断所述多个验证结果中所述第一验证结果的数量是否超过第一预设阈值,所述第一预设阈值是基于多个所述网络节点的比例确定的;所述若确定所述备选输入数据通过验证,则将所述备选输入数据确定为所述输入数据,并根据所述输入数据更新所述第一区块,得到所述第二区块包括:若确定所述第一验证结果的数量超过第一预设阈值,则将所述备选输入数据确定为所述输入数据,并根据所述输入数据更新所述第一区块,得到所述第二区块。5.根据权利要求3所述的方法,其特征在于,所述根据所述输入数据更新所述第一区块,得到所述第二区块,包括:通过当前网络节点基于所述输入数据更新所述第一区块,得到所述第二区块,并对所述第二区块添加所述当前网络节点的网络节点标记,将所述第二区块及所述网络节点标记分发至所述其余节点,以便所述其余节点基于所述第二区块替换所述第一区块;或者,每个所述网络节点根据所述输入数据同步更新所述第一区块,得到所述第二区块,并对所述第二区块添加得到所述输入数据的网络节点的网络节点标记。6.根据权利要求1

5中任一项所述的方法,其特征在于,所述根据所述目标节点创建所述创世区块,包括:通过候选算法在多个所述目标节点中确定创世节点,并基于所述创世节点构建所述创世区块。7.根据权利要求6所述的方法,其特征在于,在所述通过候选算法在多个所述目标节点中确定创世节点,并基于所述创世节点构建所述创世区块之后,所述方法还包括:为所述创世区块添加所述创世节点的创世节点标记,并通过所述创世节点将所述创世区块及所述创世节点标记分发至多个所述网络节点中;通过所述目标节点的反馈信息确定所述创世区块是否通过验证;若基于所述反馈信息确定所述创世区块通过所述目标节点的验证,则在多个所述网络节点中添加所述创世区块,以便基于所述创世区块构建所述第二区块链。8.根据权利要求7所述的方法,其特征在于,所述通过所述目标节点的反馈信息确定所述创世区块是否通过验证,包括:从每个所述目标节点获取反馈信息,其中,所述反馈信息包括第一反馈信息及第二反馈信息;所述第一反馈信息用于表征在通过所述目标节点从所述第一区块链中确定对应所述创世节点的所述网络节点标记后,确定所述网络节点标记与所述创世节点标记一致;所述第二反馈信息用于表征在通过所述目标节点从所述第一区块链中确定对应所述创世节点的所述网络节点标记后,确定所述网络节点标记与所述创世节点标记不一致;判断所述反馈信息中所述第一反馈信息的数量是否超过第二预设阈值;所述若基于所述反馈信息确定所述创世区块通过所述目标节点的验证,则在多个所述网络节点中添加所述创世区块,以便基于所述创世区块构建所述第二区块链,包括:若确定所述第一反馈信息的数量超过第二预设阈值在多个所述网络节点中添加所述
创世区块,以便基于所述创世区块构建所述第二区块链。9.根据权利要求8所述的方法,其特征在于,所述网络节点标记为生成所述输入数据的所述网络节点对应的第一数据在经所述散列函数算法计算得到的;其中,所述第一数据为所述网络节点的公钥,或者,所述公钥及所述第一区块链的内容数据;所述创世节点标记为所述创世节点的第二数据在经所述散列函数算法计算得到的;其中,所述第二数据为所述创世节点的公钥,或者,所述公钥及所述第一区块链的内容数据。10.一种创世区...

【专利技术属性】
技术研发人员:丁军红
申请(专利权)人:北京航天奥祥通风科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1