首页> 中国专利> 股份授权证明DPoS共识方法、装置、电子设备和存储介质

股份授权证明DPoS共识方法、装置、电子设备和存储介质

摘要

本发明实施例公开了一种股份授权证明(DPoS)共识方法、装置、电子设备和存储介质,应用于区块链网络中,所述区块链网络包括呈现正常状态、良好状态、异常状态或恶意状态的节点,所述方法包括:获得所述区块链网络中的第一节点以及所述区块链网络中发生新的交易产生的新区块;在所述新区块满足预设条件的情况下,将所述第一节点的第一状态转换为第二状态,获得所述第一节点在所述第二状态的初始信用值;所述初始信用值表征所述第一节点在所述第二状态的信任程度;获得所述新区块的投票结果,根据所述投票结果和所述初始信用值对其他节点进行信用奖惩,确定所述其他节点的信用值;确定所述信用值小于预设阈值的第二节点,删除所述第二节点。

著录项

  • 公开/公告号CN112991068A

    专利类型发明专利

  • 公开/公告日2021-06-18

    原文格式PDF

  • 申请/专利权人 卓尔智联(武汉)研究院有限公司;

    申请/专利号CN202110550794.9

  • 发明设计人 石奕;

    申请日2021-05-20

  • 分类号G06Q40/04(20120101);G06Q20/38(20120101);

  • 代理机构11270 北京派特恩知识产权代理有限公司;

  • 代理人李路遥;张颖玲

  • 地址 432200 湖北省武汉市黄陂区盘龙城经济开发区汉口北大道88号汉口北国际交易中心D1区7层

  • 入库时间 2023-06-19 11:29:13

说明书

技术领域

本发明涉及区块链技术领域,尤其涉及一种股份授权证明(DPoS)共识方法、装置、电子设备和存储介质。

背景技术

目前区块链的共识方法主要包括:工作量证明 (Proof of Work,PoW)、权益证明(Proof of Stake,PoS)、股份授权证明 (Delegate Proof of Stake,DPos)。其中,PoW共识方法较为成熟,通过分布式节点的算力竞争来保证数据的一整性和数据的安全性,但其强大的算力造成了资源浪费,主要是电力资源,并且10分钟的交易确认时间不适合小额交易的商业应用。PoS共识方法由系统中具有最高权益而非最高算力的节点获得记账权,其权益体现为节点对特定货币的所有权。PoS一定程度解决了PoW算力浪费的问题,并能缩短达成共识的时间,但其信用基础不够牢靠,并且存在垄断的风险。DPoS是一种“民主集中式”的记账方式,由系统中节点投票选出代表,代表进行记账。DPoS能解决PoW浪费能源问题,也能弥补PoS中拥有记账权益的参与者未必希望参与记账的缺点,但不能及时有效精确的诊断出恶意节点,并剔除代理节点集中的恶意节点,给网络造成安全隐患。而针对上述问题,目前尚无有效解决方案。

发明内容

有鉴于此,本发明实施例期望提供一种股份授权证明(DPoS)共识方法、装置、电子设备和存储介质。

本发明实施例的技术实施例是这样实现的:

本发明实施例提供一种股份授权证明(DPoS)共识方法,应用于区块链网络中,所述区块链网络包括呈现正常状态、良好状态、异常状态或恶意状态的节点,所述方法包括:

获得所述区块链网络中的第一节点以及所述区块链网络中发生新的交易产生的新区块;所述第一节点为所述节点中的任一节点;

在所述新区块满足预设条件的情况下,将所述第一节点的第一状态转换为第二状态,获得所述第一节点在所述第二状态的初始信用值;所述第一状态为所述正常状态、所述良好状态、所述异常状态中的任意状态;所述第二状态为所述正常状态、所述良好状态、所述异常状态或所述恶意状态中除所述第一状态以外的任一状态;所述初始信用值表征所述第一节点在所述第二状态的信任程度;

获得所述新区块的投票结果,根据所述投票结果和所述初始信用值对其他节点进行信用奖惩,确定所述其他节点的信用值;所述其他节点为所述节点中除所述第一节点以外的节点;

确定所述信用值小于预设阈值的第二节点,删除所述第二节点;所述第二节点为所述其他节点的节点。

在上述方案中,所述在所述新区块满足预设条件的情况下,将所述第一节点的第一状态转换为第二状态,获得所述第一节点在所述第二状态的初始信用值,包括:

在所述新区块满足所述新区块为有效区块,且所述有效区块的个数大于第一预设阈值的情况下,将所述第一节点由所述正常状态转换为所述良好状态,获得所述第一节点在所述良好状态的初始信用值;所述有效区块表征所述新的交易没有产生冲突。

在上述方案中,所述在所述新区块满足预设条件的情况下,将所述第一节点的第一状态转换为第二状态,获得所述第一节点在所述第二状态的初始信用值,包括:

在所述新区块满足所述新区块为无效区块,且所述无效区块的个数小于等于第二预设阈值的情况下,将所述第一节点由所述正常状态转换为所述异常状态且将所述第一节点由所述良好状态转换为所述异常状态,获得所述第一节点在所述异常状态的初始信用值;所述无效区块表征所述新的交易产生冲突。

在上述方案中,所述在所述新区块满足预设条件的情况下,将所述第一节点的第一状态转换为第二状态,获得所述第一节点在所述第二状态的初始信用值,包括:

在所述新区块满足所述新区块为无效区块,且所述无效区块的个数大于第二预设阈值的情况下,将所述第一节点由所述异常状态转换为所述恶意状态,获得所述第一节点在所述恶意状态的初始信用值;所述无效区块表征所述新的交易产生冲突。

在上述方案中,根据所述投票结果和所述初始信用值对其他节点进行信用奖惩,确定所述其他节点的信用值,包括:

根据所述投票结果和所述初始信用值对其他节点进行信用惩罚,获得所述其他节点的信用惩罚值;

获得所述其他节点的信用奖励值;

根据所述信用惩罚值和所述信用奖励值,确定所述其他节点的信用值。

本发明实施例提供一种股份授权证明(DPoS)共识装置,应用于区块链网络中,所述区块链网络包括呈现正常状态、良好状态、异常状态或恶意状态的节点,所述装置包括:获得单元、转换单元和确定单元,其中:

所述获得单元,用于获得所述区块链网络中的第一节点以及所述区块链网络中发生新的交易产生的新区块;所述第一节点为所述节点中的任一节点;

所述转换单元,用于在所述获得单元获得的所述新区块满足预设条件的情况下,将所述第一节点的第一状态转换为第二状态,获得所述第一节点在所述第二状态的初始信用值;所述第一状态为所述正常状态、所述良好状态、所述异常状态中的任意状态;所述第二状态为所述正常状态、所述良好状态、所述异常状态或所述恶意状态中除所述第一状态以外的任一状态;所述初始信用值表征所述第一节点在所述第二状态的信任程度;

所述确定单元,用于获得所述新区块的投票结果,根据所述投票结果和所述转换单元获得的所述初始信用值对其他节点进行信用奖惩,确定所述其他节点的信用值;所述其他节点为所述节点中除所述第一节点以外的节点;确定所述信用值小于预设阈值的第二节点,删除所述第二节点;所述第二节点为所述其他节点的节点。

在上述方案中,所述转换单元,还用于在所述新区块满足所述新区块为有效区块,且所述有效区块的个数大于第一预设阈值的情况下,将所述第一节点由所述正常状态转换为所述良好状态,获得所述第一节点在所述良好状态的初始信用值;所述有效区块表征所述新的交易没有产生冲突。

在上述方案中,所述转换单元,还用于在所述新区块满足所述新区块为无效区块,且所述无效区块的个数小于等于第二预设阈值的情况下,将所述第一节点由所述正常状态转换为所述异常状态且将所述第一节点由所述良好状态转换为所述异常状态,获得所述第一节点在所述异常状态的初始信用值;所述无效区块表征所述新的交易产生冲突。

在上述方案中,所述转换单元,还用于在所述新区块满足所述新区块为无效区块,且所述无效区块的个数大于第二预设阈值的情况下,将所述第一节点由所述异常状态转换为所述恶意状态,获得所述第一节点在所述恶意状态的初始信用值;所述无效区块表征所述新的交易产生冲突。

在上述方案中,所述确定单元,还用于根据所述投票结果和所述初始信用值对其他节点进行信用惩罚,获得所述其他节点的信用惩罚值;获得所述其他节点的信用奖励值;根据所述信用惩罚值和所述信用奖励值,确定所述其他节点的信用值。

本发明实施例提供一种电子设备,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器用于运行所述计算机程序时,执行上述所述方法的任一步骤。

本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述所述方法的任一步骤。

本发明实施例提供的股份授权证明(DPoS)共识方法、装置、电子设备和存储介质,其中,通过获得所述区块链网络中的第一节点以及所述区块链网络中发生新的交易产生的新区块;所述第一节点为所述节点中的任一节点;在所述新区块满足预设条件的情况下,将所述第一节点的第一状态转换为第二状态,获得所述第一节点在所述第二状态的初始信用值;所述第一状态为所述正常状态、所述良好状态、所述异常状态中的任意状态;所述第二状态为所述正常状态、所述良好状态、所述异常状态或所述恶意状态中除所述第一状态以外的任一状态;所述初始信用值表征所述第一节点在所述第二状态的信任程度;获得所述新区块的投票结果,根据所述投票结果和所述初始信用值对其他节点进行信用奖惩,确定所述其他节点的信用值;所述其他节点为所述节点中除所述第一节点以外的节点;确定所述信用值小于预设阈值的第二节点,删除所述第二节点;所述第二节点为所述其他节点的节点,能及时有效精确的诊断出恶意节点,并剔除代理节点集中的恶意节点,避免给网络造成安全隐患。

附图说明

图1为本发明实施例DPoS共识方法实现流程示意图;

图2为本发明实施例DPoS共识方法中节点状态转换示意图;

图3为本发明实施例DPoS共识装置的组成结构示意图;

图4为本发明实施例中电子设备的一种硬件实体结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解, “一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。

对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。

1)签名,即数字签名,只有信息的发送者才能产生的、别人无法伪造的一段数字串,同时也是对信息的发送者发送信息真实性的有效证明;数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证,是非对称密钥加密技术与数字摘要技术的应用。

2)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。

3)交易(Transaction),等同于计算机术语“事务”,交易包括了需要提交到区块链网络执行的操作,并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。

例如,部署(Deploy)交易用于向区块链网络中的节点安装指定的智能合约并准备好被调用;调用(Invoke)交易用于通过调用智能合约在区块链中追加交易的记录,并对区块链的状态数据库进行操作,包括更新操作(包括增加、删除和修改状态数据库中的键值对)和查询操作(即查询状态数据库中的键值对)。

4)区块链(Blockchain),是由区块(Block)形成的加密的、链式的交易的存储结构。

5)区块链网络(Blockchain Network),通过共识的方式将新区块纳入区块链的一系列的节点的集合。

6)账本(Ledger),是区块链(也称为账本数据)和与区块链同步的状态数据库的统称。其中,区块链是以文件系统中的文件的形式来记录交易;状态数据库是以不同类型的键(Key)值(Value)对的形式来记录区块链中的交易,用于支持对区块链中交易的快速查询。

7)智能合约(Smart Contracts),也称为链码(Chaincode)或应用代码,部署在区块链网络的节点中的程序,节点执行接收的交易中所调用的智能合约,来对状态数据库的键值对数据进行更新或查询的操作。

8)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对区块中的交易达成一致,达成一致的区块将被追加到区块链的尾部,实现共识的机制包括工作量证明(PoW,Proof of Work)、权益证明(PoS,Proof of Stake)、股份授权证明(DPoS,Delegated Proof-of-Stake)、消逝时间量证明(PoET,Proof of Elapsed Time)等。

基于上述对本发明实施例中涉及的名词和术语的解释,下面说明本实施例提出一种股份授权证明(DPoS)共识方法,应用于区块链网络中,所述区块链网络包括呈现正常状态、良好状态、异常状态或恶意状态的节点,图1为本发明实施例DPoS共识方法实现流程示意图,如图1所示,该方法包括:

步骤S101:获得所述区块链网络中的第一节点以及所述区块链网络中发生新的交易产生的新区块;所述第一节点为所述节点中的任一节点。

需要说明的是,所述区块链网络中节点的个数为多个,每个节点的状态都存在正常状态、良好状态、异常状态或恶意状态;所述正常状态可以表征节点的初始状态,该节点没有产生无效交易,也可以理解为该节点没有产生无效区块,信用值一般为170-190;所述正常状态可以表征节点的初始状态,该节点没有产生无效交易,也可以理解为该节点没有产生无效区块,信用值一般为170-190;所述良好状态可以表征节点产生有效交易,也可以理解为该节点有产生有效区块,信用值一般为150-170;所述异常状态可以表征节点有产生无效交易,也可以理解为该节点有产生无效区块,且无效区块的个数小于等于预设阈值,信用值一般为150-170;所述恶意状态可以表征节点有产生无效交易,也可以理解为该节点有产生无效区块,且无效区块的个数大于预设阈值,信用值一般为小于150;在实际应用中,所述正常状态可以记为NS,所述良好状态可以记为GS,所述异常状态可以记为AS,所述恶意状态可以记为ES。所述第一节点为多个节点中的任意一个。获得所述区块链网络中的第一节点可以为获得所述区块链网络中的任一节点。

获得所述区块链网络中发生新的交易产生的新区块可以理解为所述区块链网络中发生新的交易,全网节点竞争记账,竞争成功的节点将交易的全部信息记录在区块链网络中发生新的交易产生的新区块中。

步骤S102:在所述新区块满足预设条件的情况下,将所述第一节点的第一状态转换为第二状态,获得所述第一节点在所述第二状态的初始信用值;所述第一状态为所述正常状态、所述良好状态、所述异常状态中的任意状态;所述第二状态为所述正常状态、所述良好状态、所述异常状态或所述恶意状态中除所述第一状态以外的任一状态;所述初始信用值表征所述第一节点在所述第二状态的信任程度。

需要说明的是,所述预设条件表征新区块是否为有效区块,以及产生新区块的次数。在实际应用中,产生一次新区块就有一个新区块,产生多次新区块就有多个新区块,即产生新区块的次数与新区块的个数对应。作为一种示例,所述预设条件可以包括第一预设条件、第二预设条件、第三预设条件;

所述第一预设条件可以为所述新区块为有效区块,且所述有效区块的个数大于第一预设阈值;其中,所述第一预设阈值可以根据实际情况进行确定,在此不做限定。作为一种示例,所述第一预设阈值可以为10次;对应的,在所述新区块满足预设条件的情况下,将所述第一节点的第一状态转换为第二状态,获得所述第一节点在所述第二状态的初始信用值可以为在所述新区块满足第一预设条件的情况下,将所述第一节点的第一状态转换为第二状态,获得所述第一节点在所述第二状态的初始信用值。具体的可以为在所述新区块满足所述新区块为有效区块,且所述有效区块的个数大于第一预设阈值的情况下,将所述第一节点由所述正常状态转换为所述良好状态,获得所述第一节点在所述良好状态的初始信用值;也就是说,在所述新区块满足第一预设条件的情况下,可以将区块链网络中正常状态的节点转换为良好状态的节点。获得所述第一节点在所述良好状态的初始信用值可以根据实际情况进行确定,在此不做限定。作为一种示例,所述第一节点在所述良好状态的初始信用值可以为190。

第二预设条件可以为所述新区块为无效区块,且所述无效区块的个数小于等于第二预设阈值,其中,所述第二预设阈值可以根据实际情况进行确定,在此不做限定。作为一种示例,所述第二预设阈值可以为3次;对应的,在所述新区块满足预设条件的情况下,将所述第一节点的第一状态转换为第二状态,获得所述第一节点在所述第二状态的初始信用值可以为在所述新区块满足第二预设条件的情况下,将所述第一节点的第一状态转换为第二状态,获得所述第一节点在所述第二状态的初始信用值。具体的可以为在所述新区块满足所述新区块为无效区块,且所述无效区块的个数小于等于第二预设阈值的情况下,将所述第一节点由所述正常状态转换为所述异常状态以及将所述第一节点由所述良好状态转换为所述异常状态,获得所述第一节点在所述异常状态的初始信用值;也就是说,在所述新区块满足第二预设条件的情况下,可以将区块链网络中正常状态的节点转换为异常状态的节点以及将良好状态的节点转换为异常状态的节点。获得所述第一节点在所述异常状态的初始信用值可以根据实际情况进行确定,在此不做限定。作为一种示例,所述第一节点在所述异常状态的初始信用值可以为150。

第三预设条件可以为所述新区块为无效区块,且所述无效区块的个数大于第二预设阈值,其中,所述第二预设阈值可以根据实际情况进行确定,在此不做限定。作为一种示例,所述第二预设阈值可以为3次;对应的,在所述新区块满足预设条件的情况下,将所述第一节点的第一状态转换为第二状态,获得所述第一节点在所述第二状态的初始信用值可以为在所述新区块满足第三预设条件的情况下,将所述第一节点的第一状态转换为第二状态,获得所述第一节点在所述第二状态的初始信用值。具体的可以为在所述新区块满足所述新区块为无效区块,且所述无效区块的个数大于第二预设阈值的情况下,将所述第一节点由所述异常状态转换为所述恶意状态,获得所述第一节点在所述恶意状态的初始信用值;也就是说,在所述新区块满足第三预设条件的情况下,可以将区块链网络中异常状态的节点转换为恶意状态的节点。获得所述第一节点在所述恶意状态的初始信用值可以根据实际情况进行确定,在此不做限定。作为一种示例,所述第一节点在所述恶意状态的初始信用值可以为145。

步骤S103:获得所述新区块的投票结果,根据所述投票结果和所述初始信用值对其他节点进行信用奖惩,确定所述其他节点的信用值;所述其他节点为所述节点中除所述第一节点以外的节点。

这里,获得所述新区块的投票结果可以为获得对所述新区块对应的正常状态的节点、良好状态的节点、异常状态的节点的投票结果;其中,所述投票结果包括赞成票和反对票。

根据所述投票结果和所述初始信用值对其他节点进行信用奖惩,确定所述其他节点的信用值可以为根据所述投票结果和所述初始信用值对其他节点进行信用惩罚和信用奖励,确定所述其他节点的信用值。

作为一种示例,根据所述投票结果和所述初始信用值对其他节点进行信用惩罚和信用奖励,确定所述其他节点的信用值可以为根据所述投票结果和所述初始信用值对其他节点进行信用惩罚,获得所述其他节点的信用惩罚值;获得所述其他节点的信用奖励值;根据所述信用惩罚值和所述信用奖励值,确定所述其他节点的信用值。

为了方便理解,这里示例说明,所述第一节点为第i个节点,所述其他节点为第i+1个节点,所述投票结果记为

在式(2)中,t为上次投票开始到下次投票的时间间隔; U表示信用值降低的速度,是一个常量,可以根据实际情况进行确定,在此不做限定。作为一种示例,U可以为2;T表示一个时间常量,当t<T时,即两次投票时间间隔小于T时,节点的信用值不发生变化,相反,信用值将会降低,节点投票成功后会重置时间t,即令t=0,以鼓励节点参与投票;

所述其他节点的信用奖励可以记为

式(3)中,

根据所述信用惩罚值和所述信用奖励值,确定所述其他节点的信用值可以为将所述信用惩罚值和所述信用奖励值进行预设运算,确定所述其他节点的信用值。其中,所述预设运算可以根据实际情况进行确定,在此不做限定。作为一种示例,所述预设运算可以为加法运算。为了方便理解,这里示例说明,假设所述其他节点的信用值记为

步骤S104:确定所述信用值小于预设阈值的第二节点,删除所述第二节点;所述第二节点为所述其他节点的节点。

这里,所述预设阈值根据实际情况进行确定,在此不做限定。所述预设阈值可以为恶意状态的节点对应的信用值。为了方便理解,这里示例说明,假设恶意状态的节点对应的信用值为低于150,即恶意状态的节点对应的信用值小于150,则所述预设阈值可以为150。

确定所述信用值小于预设阈值的第二节点,删除所述第二节点可以理解为根据所述其他节点的信用值选出所述信用值小于预设阈值对应的节点,作为第二节点,删除所述第二节点;其中,所述第二节点可以理解为恶意状态的节点。

本发明实施例提供的DPoS共识方法,通过获得所述区块链网络中的第一节点以及所述区块链网络中发生新的交易产生的新区块;所述第一节点为所述节点中的任一节点;在所述新区块满足预设条件的情况下,将所述第一节点的第一状态转换为第二状态,获得所述第一节点在所述第二状态的初始信用值;所述第一状态为所述正常状态、所述良好状态、所述异常状态中的任意状态;所述第二状态为所述正常状态、所述良好状态、所述异常状态或所述恶意状态中除所述第一状态以外的任一状态;所述初始信用值表征所述第一节点在所述第二状态的信任程度;获得所述新区块的投票结果,根据所述投票结果和所述初始信用值对其他节点进行信用奖惩,确定所述其他节点的信用值;所述其他节点为所述节点中除所述第一节点以外的节点;确定所述信用值小于预设阈值的第二节点,删除所述第二节点;所述第二节点为所述其他节点的节点,能及时有效精确的诊断出恶意节点,并剔除代理节点集中的恶意节点,避免给网络造成安全隐患。

在本发明的一种可选实施例中,所述在所述新区块满足预设条件的情况下,将所述第一节点的第一状态转换为第二状态,获得所述第一节点在所述第二状态的初始信用值,包括:在所述新区块满足所述新区块为有效区块,且所述有效区块的个数大于第一预设阈值的情况下,将所述第一节点由所述正常状态转换为所述良好状态,获得所述第一节点在所述良好状态的初始信用值;所述有效区块表征所述新的交易没有产生冲突。

需要说明的是,所述有效区块可以理解为交易没有冲突,即交易成功,记录数据。

所述第一预设阈值可以根据实际情况进行确定,在此不做限定。作为一种示例,所述第一预设阈值可以为10次;

在所述新区块满足所述新区块为有效区块,且所述有效区块的个数大于第一预设阈值的情况下,将所述第一节点由所述正常状态转换为所述良好状态,获得所述第一节点在所述良好状态的初始信用值可以理解为在所述新区块满足所述新区块为有效区块,且所述有效区块的个数大于第一预设阈值的情况下,将所述区块链网络中正常状态的节点均转换为良好状态的节点,获得所述区块链网络中良好状态的节点的初始信用值。所述良好状态的节点的初始信用值可以根据实际情况进行确定,在此不做限定。作为一种示例,所述良好状态的节点的初始信用值可以为190。

在实际应用中,产生一次新区块就有一个新区块,产生多次新区块就有多个新区块,即产生新区块的次数与新区块的个数对应。

在本发明的一种可选实施例中,所述在所述新区块满足预设条件的情况下,将所述第一节点的第一状态转换为第二状态,获得所述第一节点在所述第二状态的初始信用值,包括:在所述新区块满足所述新区块为无效区块,且所述无效区块的个数小于等于第二预设阈值的情况下,将所述第一节点由所述正常状态转换为所述异常状态且将所述第一节点由所述良好状态转换为所述异常状态,获得所述第一节点在所述异常状态的初始信用值;所述无效区块表征所述新的交易产生冲突。

需要说明的是,所述无效区块可以理解为交易冲突了。所述第二预设阈值可以根据实际情况进行确定,在此不做限定。作为一种示例,所述第二预设阈值可以为3次。

在所述新区块满足所述新区块为无效区块,且所述无效区块的个数小于等于第二预设阈值的情况下,将所述第一节点由所述正常状态转换为所述异常状态且将所述第一节点由所述良好状态转换为所述异常状态,获得所述第一节点在所述异常状态的初始信用值可以理解为在所述新区块满足所述新区块为无效区块,且所述无效区块的个数小于等于第二预设阈值的情况下,将所述区块链网络中正常状态的节点均转换为异常状态的节点且将所述区块链网络中良好状态的节点均转换为异常状态的节点,获得所述区块链网络中异常状态的节点的初始信用值。所述异常状态的节点的初始信用值可以根据实际情况进行确定,在此不做限定。作为一种示例,所述异常状态的节点的初始信用值可以为150。

在实际应用中,产生一次新区块就有一个新区块,产生多次新区块就有多个新区块,即产生新区块的次数与新区块的个数对应。

在本发明的一种可选实施例中,所述在所述新区块满足预设条件的情况下,将所述第一节点的第一状态转换为第二状态,获得所述第一节点在所述第二状态的初始信用值,包括:在所述新区块满足所述新区块为无效区块,且所述无效区块的个数大于第二预设阈值的情况下,将所述第一节点由所述异常状态转换为所述恶意状态,获得所述第一节点在所述恶意状态的初始信用值;所述无效区块表征所述新的交易产生冲突。

需要说明的是,所述无效区块表征所述新的交易产生冲突,即所述无效区块可以理解为新的交易冲突了。所述第二预设阈值可以根据实际情况进行确定,在此不做限定。作为一种示例,所述第二预设阈值可以为3次。

在所述新区块满足所述新区块为无效区块,且所述无效区块的个数大于第二预设阈值的情况下,将所述第一节点由所述异常状态转换为所述恶意状态,获得所述第一节点在所述恶意状态的初始信用值可以理解为在所述新区块满足所述新区块为无效区块,且所述无效区块的个数大于第二预设阈值的情况下,将所述区块链网络中异常状态的节点均转换为恶意状态的节点,获得所述区块链网络中恶意状态的节点的初始信用值。所述恶意状态的节点的初始信用值可以根据实际情况进行确定,在此不做限定。作为一种示例,所述恶意状态的节点的初始信用值可以为145。

在实际应用中,产生一次新区块就有一个新区块,产生多次新区块就有多个新区块,即产生新区块的次数与新区块的个数对应。

在本发明的一种可选实施例中,根据所述投票结果和所述初始信用值对其他节点进行信用奖惩,确定所述其他节点的信用值,包括:根据所述投票结果和所述初始信用值对其他节点进行信用惩罚,获得所述其他节点的信用惩罚值;获得所述其他节点的信用奖励值;根据所述信用惩罚值和所述信用奖励值,确定所述其他节点的信用值。

本发明实施例中,根据所述投票结果和所述初始信用值对其他节点进行信用惩罚,获得所述其他节点的信用惩罚值可以为根据所述投票结果和所述初始信用值通过第一预设公式对其他节点进行信用惩罚,获得所述其他节点的信用惩罚值;其中,所述第一预设公式可以根据实际情况进行确定,在此不做限定。所述第一预设公式表征是否对正常状态的节点或良好状态的节点投反对票的情况进行信用惩罚,作为一种示例,所述预设公式可以参照上述公式(1)和公式(2)。

获得所述其他节点的信用奖励值可以为基于第二预设公式获得所述其他节点的信用奖励值;其中,所述第二预设公式可以根据实际情况进行确定,在此不做限定。所述第二预设公式表征是否对异常状态的节点投反对票的情况进行信用奖励,作为一种示例,第二预设公式可以参照上述公式(3)。

根据所述信用惩罚值和所述信用奖励值,确定所述其他节点的信用值可以为将所述信用惩罚值和所述信用奖励值按第三预设公式,确定所述其他节点的信用值;其中,所述第三预设公式可以根据实际情况进行确定,在此不做限定。所述第三预设公式表征此刻所述其他节点的信用值,作为一种示例,第三预设公式可以参照上述公式(4)。

本发明实施例提供的DPoS共识方法,通过根据所述投票结果和所述初始信用值对其他节点进行信用惩罚,获得所述其他节点的信用惩罚值;获得所述其他节点的信用奖励值;根据所述信用惩罚值和所述信用奖励值,确定所述其他节点的信用值,以解决区块链DPoS共识方法中恶意节点占领账权产生的安全隐患,以及散户节点投票积极性不高的问题。

为了方便理解,这里示例出一种实际应用场景,在实际应用中,一种DPoS共识方法可以为一种基于信用奖惩的DPoS共识算法,为了精确的诊断并剔除代理节点集中的恶意节点,细化节点状态,在正常状态和异常状态之外,引入良好状态和恶意状态。同时,为了加强恶意节点剔除的及时性,节点投票过程中除了支持票以外,还可以基于投票节点自身判断投反对票,利用投票行为影响节点状态变更,以准确及时的剔除恶意代理节点。

第一步,定义节点的四种状态。

每个节点均具备四种状态,该四种状态分别如下:正常状态,可以记为NS ,可以理解为所有节点的初始状态,同时,也可以理解为表示代理节点没有生产无效区块,且信用值的范围为170-190;良好状态,可以记为GS,可以理解为代理节点持续产生有效区块且超过累计次数阈值,且信用值的范围为190-200;异常状态,可以记为AS,可以理解为代理节点产生无效区块但未超过累计值,且信用值的范围为150-170;恶意状态,可以记为ES,可以理解为代理节点多次生产无效区块,且信用值的范围为低于150。

第二步,节点状态转换,细化节点状态之后,将每个节点根据给定的预设条件判断节点行为并进行状态转换。所述预设条件至少包括第一预设条件、第二预设条件、第三预设条件。

节点状态转换根据状态转换条件进行:

第一预设条件:连续产生多次有效区块,且有效区块的个数超过累计值N1。

第二预设条件:产生无效区块,且所述无效区块的个数小于等于累计值N2。

第三预设条件:多次产生无效区块,且所述无效区块的个数大于累计值N2。

N1和 N2根据实际情况进行确定,在此不做限定。因此,正常状态节点在第一预设条件成立时,转换为良好状态节点;正常状态节点和良好状态节点在条件第二预设条件成立时,转换为异常状态节点;异常状态节点在第三预设条件成立时,转换为恶意状态节点;异常状态节点将在一段时间内不允许参与投票和代理节点选举。

为了方便理解,这里示例出本发明实施例DPoS共识方法中节点状态转换示意图,图2为本发明实施例DPoS共识方法中节点状态转换示意图,如图2所示,所述正常状态可以记为NS,所述良好状态可以记为GS,所述异常状态可以记为AS,所述恶意状态可以记为ES。所述正常状态的节点在第一预设条件成立的情况下,由正常状态的节点转换为良好状态的节点;所述正常状态的节点在第二预设条件成立的情况下,由正常状态的节点转换为异常状态的节点,以及所述良好状态的节点在第二预设条件成立的情况下,由良好状态的节点转换为异常状态的节点;所述异常状态的节点在第三预设条件成立的情况下,由良好状态的节点转换为异常状态的节点。

第三步,信用奖惩模型:基于信用奖惩的投票过程涉及3个基本因素:反对票、信用惩罚和信用奖励。

信用值初始化:获得每个节点的信用初始值。

信用惩罚:每个节点的信用值会根据其投票而进行相应的计算。

根据第i个节点的信用值进行惩罚计算出第i+1个节点的信用惩罚值,该过程可以参照上述公式(1)和公式(2)。

信用奖励:为了提高信用奖励的准确度,在每一轮投票结果后判断被投反对票的AS节点是否成为代理节点,如果未成为,则给该AS投反对票的节点获得信用奖励,反之,则信用值不变,尽快地将AS节点从代理节点集中剔除。

根据第i个节点的投票计算出第i+1节点的信用奖励值,该过程可以参照上述公式(3)。

对每个节点的信用惩罚和信用奖励进行相加,综合为此刻第i+1节点的信用值,该过程可以参照上述公式(4)。

然后,对代理节点的信用值进行判断,将信用值低于150恶意状态的节点剔除掉。

第四步,代理节点选举产生。

对具有被选举权的节点进行投票,并算出各个节点的信用值,最终信用值最多的前N个节点被选出来,成为代理节点,代理节点集的更换需定期的进行投票选举以及节点信用值的更新。

第五步,代理节点生产区块。

生成区块中所有交易数据的Merkle树,将其放入区块主体中,同时在区块头中保存Merkle树的根值,采用SHA256算法计算上一区块区块头数据的哈希值,即为新区块的父哈希值,把当前时间保存在时间戳字段中,将区块广播给全网的代理节点集。

第六步,验证。

代理节点集收到广播的新区块后,对区块中的数据和区块信息进行验证,重点验证区块头中的属性:包括序号、时间戳、Merkle根值、上一个区块哈希值和新区块哈希值。主要验证收到的区块中的具体内容是否有效,具体判断依据为区块中的数据得到全网三分之二的代理节点认可。全部验证通过后,区块被判定为有效。

第七步,上链。

代理节点将通过验证的区块添加到区块链上,形成一条到最新区块的电子证书信息数据链条。当主链存在多个分叉链时,根据共识算法的判别标准,挑选合适的一条作为主链。

本发明实施例提供的股份授权证明DPoS共识方法,以解决区块链DPoS共识方法中恶意节点占领账权产生的安全隐患,以及散户节点投票积极性不高的问题。

本实施例提出一种股份授权证明DPoS共识装置,应用于区块链网络中,所述区块链网络包括呈现正常状态、良好状态、异常状态或恶意状态的节点,图3为本发明实施例DPoS共识装置的组成结构示意图,如图3所示,所述装置200包括:获得单元201、转换单元202和确定单元203,其中:

所述获得单元201,用于获得所述区块链网络中的第一节点以及所述区块链网络中发生新的交易产生的新区块;所述第一节点为所述节点中的任一节点;

所述转换单元202,用于在所述获得单元获得的所述新区块满足预设条件的情况下,将所述第一节点的第一状态转换为第二状态,获得所述第一节点在所述第二状态的初始信用值;所述第一状态为所述正常状态、所述良好状态、所述异常状态中的任意状态;所述第二状态为所述正常状态、所述良好状态、所述异常状态或所述恶意状态中除所述第一状态以外的任一状态;所述初始信用值表征所述第一节点在所述第二状态的信任程度;

所述确定单元203,用于获得所述新区块的投票结果,根据所述投票结果和所述转换单元获得的所述初始信用值对其他节点进行信用奖惩,确定所述其他节点的信用值;所述其他节点为所述节点中除所述第一节点以外的节点;确定所述信用值小于预设阈值的第二节点,删除所述第二节点;所述第二节点为所述其他节点的节点。

在其他的实施例中,所述转换单元202,还用于在所述新区块满足所述新区块为有效区块,且所述有效区块的个数大于第一预设阈值的情况下,将所述第一节点由所述正常状态转换为所述良好状态,获得所述第一节点在所述良好状态的初始信用值;所述有效区块表征所述新的交易没有产生冲突。

在其他的实施例中,所述转换单元202,还用于在所述新区块满足所述新区块为无效区块,且所述无效区块的个数小于等于第二预设阈值的情况下,将所述第一节点由所述正常状态转换为所述异常状态且将所述第一节点由所述良好状态转换为所述异常状态,获得所述第一节点在所述异常状态的初始信用值;所述无效区块表征所述新的交易产生冲突。

在其他的实施例中,所述转换单元202,还用于在所述新区块满足所述新区块为无效区块,且所述无效区块的个数大于第二预设阈值的情况下,将所述第一节点由所述异常状态转换为所述恶意状态,获得所述第一节点在所述恶意状态的初始信用值;所述无效区块表征所述新的交易产生冲突。

在其他的实施例中,所述确定单元203,还用于根据所述投票结果和所述初始信用值对其他节点进行信用惩罚,获得所述其他节点的信用惩罚值;获得所述其他节点的信用奖励值;根据所述信用惩罚值和所述信用奖励值,确定所述其他节点的信用值。

以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明装置实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。

需要说明的是,本发明实施例中,如果以软件功能模块的形式实现上述的股份授权证明DPoS共识方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术实施例本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台控制服务器(可以是个人计算机、服务器、或者网络服务器等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。

对应地,本发明实施例提供一种电子设备,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器用于运行所述计算机程序时,执行上述实施例提供的股份授权证明DPoS共识方法中的步骤。

对应地,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例提供的股份授权证明DPoS共识方法中的步骤。

这里需要指出的是:以上存储介质和服务器实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明存储介质和服务器实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。

需要说明的是,图4为本发明实施例中电子设备的一种硬件实体结构示意图,如图4所示,该电子设备300的硬件实体包括:处理器301和存储器303,可选地,所述电子设备300还可以包括通信接口302。

可以理解,存储器303可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器303旨在包括但不限于这些和任意其它适合类型的存储器。

上述本发明实施例揭示的方法可以应用于处理器301中,或者由处理器301实现。处理器301可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器301中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器301可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器301可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器303,处理器301读取存储器303中的信息,结合其硬件完成前述方法的步骤。

在示例性实施例中,电子设备可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或其他电子元件实现,用于执行前述方法。

在本发明所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其他的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个观测量,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其他形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例的目的。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明实施例上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术实施例本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。

本发明是实例中记载的股份授权证明DPoS共识方法、电子设备、电子设备和存储介质只以本发明所述实施例为例,但不仅限于此,只要涉及到该股份授权证明DPoS共识方法、电子设备、电子设备和存储介质均在本发明的保护范围。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

本发明所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。

本发明所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。

本发明所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。

以上所述,仅为本发明的实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号