一种缓解PoS机制下记账权中心化的共识机制实现方法技术

技术编号:21838783 阅读:18 留言:0更新日期:2019-08-10 20:26
本发明专利技术公开了一种缓解PoS机制下记账权中心化的共识机制实现方法,包括以下步骤:设置币龄阈值,对PoS和计数器进行初始化;当第i个节点ni产生交易时,向全网广播,每个节点对收到的交易信息打包,纳入一个候选区块中;在币龄集合中,选出m个币龄大于阈值的节点,选出的节点集合,计数器值集合;用目标函数选出具有记账权的节点,将其对应的计数器值加1,与交易信息加到新区块;将新区块对全网广播,区块链网络的其他节点对新区块进行验证;若该新区块通过,记录到区块链,流程结束或重复以上步骤;若该新区块未通过,丢弃该区块,重复以上步骤。本发明专利技术利用计数器功能,通过目标函数,缓解了PoS使用权益结余选择记账节点而导致的记账权中心化问题。

A consensus mechanism to alleviate the centralization of accounting rights under PoS mechanism

【技术实现步骤摘要】
一种缓解PoS机制下记账权中心化的共识机制实现方法
本专利技术涉及区块链
,更具体的,涉及一种缓解PoS机制下记账权中心化的共识机制实现方法。
技术介绍
目前,采用共识算法用来解决区块链网络中分布式账本节点上的账本数据的一致性和正确性。常用的工作量证明(ProofofWork,PoW)和权益证明(ProofofStake,PoS)机制虽然在一定程度上有效地解决记账行为的一致性共识问题,但现有的比特币PoW机制纯粹依靠算力,随着人们将CPU挖矿逐渐升级到GPU、FPGA,直至ASIC矿机挖矿,节点数和算力值也渐渐失配,某些具有巨大算力的矿池俨然成为另一个中心,并且PoW机制造成了巨大的资源浪费。PoS机制考虑到了PoW的不足,依据权益结余来选择具有记账权的节点。权益证明要求用户证明对币的权益,即拥有一定数量的货币。点点币中,币龄被定义为币的数量与币拥有的天数的乘积,使得币龄能够反映交易时刻用户所拥有的货币的数量。因此现有技术存在以下几点不足:1.财富越多的节点越可能会拥有长久的优势,有可能支配记账权,导致中心化。2.同时由于现有的技术不考虑币龄的大小,依然对不能提供可靠服务的节点进行计算,增加了计算的工作量。
技术实现思路
本专利技术针对现在的区块链权益证明共识机制的缺陷,提供一种缓解PoS机制下记账权中心化的共识机制实现方法;本专利技术通过引入计数器,并设计了目标函数,可缓解PoS中依据权益结余选择的节点而导致单个或少数富有节点权力过大,支配记账权,产生中心化问题,达到在能提供可靠服务的节点间记账权均衡分布的效果。为实现上述本专利技术目的,采用的技术方案如下:一种缓解PoS机制下记账权中心化的共识机制实现方法,所述共识机制包括以下步骤:S1:设置币龄阈值T的值,对PoS和计数器进行初始化;S2:当第i个节点ni产生交易时,向全网广播,每个节点对收到的交易信息打包,并纳入一个候选区块中;S3:在币龄集合CA中,筛选出币龄大于阈值T的节点,节点数量为m,筛选出的节点集合为N={n1,n2,K,nm},对应的计数器值集合为C={c1,c2,K,cm};S4:设计目标函数选出具有记账权的节点;S5:具有记账权的节点将其对应的计数器值加1,并与步骤S2中产生的交易信息一同加入到新区块中;S6:将新区块对全网广播,区块链网络中的其他节点对该新区块进行验证;S7:如果该新区块通过验证,记录到区块链,一个流程结束或跳转到步骤S2继续执行;如果该新区块未通过验证,丢弃该区块,跳转到S2继续执行。优选地,步骤S1,所述对计数器进行初始化,具体地,将所有节点对应的计数器值设置为0。优选地,步骤S1,具体地,所述每个节点采用哈希函数对收到的交易信息进行打包。优选地,所述步骤S3,需要计算币龄,具体地:设币龄集合CA={ca1,ca2,L,cam},币的数量集合CN={cn1,cn2,L,cnm},币所拥有的天数集合CD={cd1,cd2,L,cdm},币龄为币的数量与币所拥有天数的乘积,第i个节点的币龄计算方法是cai=cni×cdi。优选地,步骤S4,所述目标函数,具体如下:s.t.cx∈Nx=1,2,L,m式中:x*表示最终选择出的最优节点的编号,该节点即为具有记账权的节点,cx表示节点nx对应的计数器的值。本专利技术的有益效果如下:1.本专利技术剔除币龄小于阈值T,即不再考虑不能提供可靠服务的节点,一定程度上减少了计算的工作量,选择币龄大于阈值T的节点参与记账权的竞选。2.本专利技术引入计数器功能,通过设计的目标函数,缓解了PoS使用权益结余选择记账节点而导致的记账权中心化问题。3.本专利技术在现有的PoS基础上,增加用于记录每个节点记账次数的计数器,并将计数器的值保存在区块链上,以免被篡改,确保安全。附图说明图1是本实施例所述共识机制的步骤流程图。具体实施方式下面结合附图和具体实施方式对本专利技术做详细描述。实施例1如图1所示,一种缓解PoS机制下记账权中心化的共识机制实现方法,包括以下步骤:Step1、网络运行参数初始化设置币龄阈值T的值,对PoS和计数器初始化工作,将所有节点对应的计数器值都设置为0;Step2、产生交易,全网广播当第i个节点ni产生交易时,节点ni将交易信息向全网广播,每个节点使用哈希函数对收到的交易信息打包,并纳入一个候选区块中;Step3、选出币龄大于阈值的节点计算币龄,在币龄集合CA={ca1,ca2,L,cam}中,币的数量集合CN={cn1,cn2,L,cnm},币所拥有的天数集合CD={cd1,cd2,L,cdm},币龄为币的数量与币所拥有天数的乘积,第i个节点的币龄计算方法是cai=cni×cdi;筛选出币龄大于阈值T的节点,假设筛选出的节点数量为m,则筛选出的节点集合为N={n1,n2,K,nm},对应的计数器值集合为C={c1,c2,K,cm};Step4、通过设计目标函数选出具有记账权节点,所述目标函数具体如下:s.t.cx∈Nx=1,2,L,m式中,x*为最终选择出的最优节点的编号,该节点即为具有记账权的节点,cx为节点nx对应的计数器的值;Step5、具有记账权的节点将其对应的计数器值加1,并与Step2中产生的交易信息一同加入到新区块中;Step6、将新区块对全网广播,区块链网络中的其他节点对该新区块进行验证;Step7、如果该新区块通过验证,记录到区块链,一个流程结束或跳转到Step2继续执行下一个流程;如果该新区块未通过验证,丢弃该区块,跳转到Step2继续执行下一个流程。显然,本专利技术的上述实施例仅仅是为清楚地说明本专利技术所作的举例,而并非是对本专利技术的实施方式的限定。凡在本专利技术的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本专利技术权利要求的保护范围之内。本文档来自技高网...

【技术保护点】
1.一种缓解PoS机制下记账权中心化的共识机制实现方法,其特征在于:所述共识机制包括以下步骤:S1:设置币龄阈值T的值,对PoS和计数器进行初始化;S2:当第i个节点ni产生交易时,向全网广播,每个节点对收到的交易信息打包,并纳入一个候选区块中;S3:在币龄集合CA中,筛选出币龄大于阈值T的节点,节点数量为m,筛选出的节点集合为N={n1,n2,K,nm},对应的计数器值集合为C={c1,c2,K,cm};S4:设计目标函数选出具有记账权的节点;S5:具有记账权的节点将其对应的计数器值加1,并与步骤S2中产生的交易信息一同加入到新区块中;S6:将新区块对全网广播,区块链网络中的其他节点对该新区块进行验证;S7:如果该新区块通过验证,记录到区块链,一个流程结束或跳转到步骤S2继续执行;如果该新区块未通过验证,丢弃该区块,跳转到S2继续执行。

【技术特征摘要】
1.一种缓解PoS机制下记账权中心化的共识机制实现方法,其特征在于:所述共识机制包括以下步骤:S1:设置币龄阈值T的值,对PoS和计数器进行初始化;S2:当第i个节点ni产生交易时,向全网广播,每个节点对收到的交易信息打包,并纳入一个候选区块中;S3:在币龄集合CA中,筛选出币龄大于阈值T的节点,节点数量为m,筛选出的节点集合为N={n1,n2,K,nm},对应的计数器值集合为C={c1,c2,K,cm};S4:设计目标函数选出具有记账权的节点;S5:具有记账权的节点将其对应的计数器值加1,并与步骤S2中产生的交易信息一同加入到新区块中;S6:将新区块对全网广播,区块链网络中的其他节点对该新区块进行验证;S7:如果该新区块通过验证,记录到区块链,一个流程结束或跳转到步骤S2继续执行;如果该新区块未通过验证,丢弃该区块,跳转到S2继续执行。2.根据权利要求1的缓解PoS机制下记账权中心化的共识机制实现方法,其特征在于:...

【专利技术属性】
技术研发人员:刘同来武继刚陈龙张欣鹏
申请(专利权)人:广东工业大学
类型:发明
国别省市:广东,44

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

1