一种基于信任成员的动态权益的共识方法技术

技术编号:19009883 阅读:22 留言:0更新日期:2018-09-22 09:39
本申请提供了一种基于信任成员的动态权益的共识方法(DSC),是一种彻底消除区块链分叉可能性的共识机制,并在性能、规模和安全之间取得均衡。DSC通过动态选举若干记账者,然后按照指定规则轮流选择部分记账者参与记账,在这些记账者间采用BFT方式进行交易共识,每次共识尽量不让过多记账者参与,但记账者都有参与记账的机会,这样可以有效提高共识性能。

A consensus method for dynamic rights and interests based on trust members

This application provides a dynamic rights and interests consensus approach (DSC) based on trusted members. It is a consensus mechanism that completely eliminates the possibility of block chain bifurcation and balances performance, size, and security. DSC elects several bookkeepers dynamically, and then selects some bookkeepers to participate in the bookkeeping according to the specified rules in turn. BFT is used in the transaction consensus among these bookkeepers. Each consensus tries not to allow too many bookkeepers to participate, but the bookkeepers have the opportunity to participate in the bookkeeping, which can effectively improve the consensus performance.

【技术实现步骤摘要】
一种基于信任成员的动态权益的共识方法
本申请涉及区块链
,特别涉及一种基于信任成员的动态权益的共识方法。
技术介绍
区块链作为一种分布式账本技术,采用最多的是工作量证明记账方式,即所有记账节点通过运算来争夺记账权,这种方法缺点如下:1)浪费算力;2)区块的确认时间难以缩短;3)容易产生分叉,需要等待确认;4)可匿名记账,难以审查。另一些区块链采用的是权益证明记账方式,即所有记账节点按随机或固定顺序的方式来决定每一轮次的记账权。这种方法缺点如下:1)没有专业化,拥有权益的参与者未必希望参与记账;2)容易产生分叉,需要等待多个确认。
技术实现思路
针对上述不足,本申请实施例提供一种基于信任成员的动态权益的共识方法,用于解决现有技术中决定记账权的方式浪费算力、容易分叉、等待确认时间过长的问题。为了解决上述技术问题,本申请所采用的技术方案如下:一种基于信任成员的动态权益的共识方法,包括如下步骤:代表节点列表中的所有代表节点运行随机数算法进行分组,每组内采用BFT算法选举出本组的议长节点,议长节点生成备选区块;当所有组备选区块就绪后,所有代表节点均运行随机数算法,从所有组的备选区块中选出一个作为新区块并广播,本轮共识结束;更新代表节点列表,开始下一轮共识。随机数算法并非完全的随机产生结果,而是使用一个不可预测的种子,通过这个种子产生一个确定结果的算法。本申请采用上述技术方案所能达到的有益效果是:本申请把随机算法与区块链结合,保证区块链技术在实现已有的分布式账本技术,实现去中心化、公开透明的基础上,让参与者能以更高效合理的方式参与共识。DSC通过动态选举若干记账者,然后按照指定规则轮流选择部分记账者参与记账,在这些记账者间采用BFT方式进行交易共识,每次共识尽量不让过多记账者参与,但记账者都有参与记账的机会,这样可以有效提高共识性能。DSC共识与目前其他主流共识方法相比,只需要很少的计算量,只有极小的分叉风险,链上生成一个块的延迟近似于在网络中完成区块广播的延迟,DSC共识并没有追求POS和DPOS超高效率,而是在重点关注效率的同时,在安全性、规模、一致性、可用性方面寻找了一个综合平衡点。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是从基于于信任成员的动态权益的共识的整体流程图;图2是从代表节点角度描述的基于信任成员的动态权益的共识流程图;图3是从普通节点角度描述的基于信任成员的动态权益的共识流程图。具体实施方式为了使本申请的技术特点及效果更加明显,下面结合附图对本申请的技术方案做进一步说明,本申请也可有其他不同的具体实例来加以说明或实施,任何本领域技术人员在权利要求范围内做的等同变换均属于本申请的保护范围。如图1所示,为基于信任成员的动态权益的共识的整体流程图。参与者通过自身权重发起记账申请,等待其他参与者进行记账申请或投票,开始记账,共识生成区块,重复发起记账申请:在系统的发起阶段,预置参与者需要先就通证分配达成共识并写入各节点的创始块中。各参与者启动各节点程序,系统开始运转;开始接收外部交易,需要提交上链交易的客户端(可以是手机APP、微信、网页等)连接到任意参与者发起交易;参与者验证交易发起者签名无误后,向全网广播交易;所有参与者接收到交易后,会根据交易时间戳将交易缓存到本地交易池,如果多笔交易时间戳一致,则以本参与者接收到的先后顺序为准,生成区块时是以记账者记录的顺序为准;参与者根据需要向全网广播选举请求,可以在节点程序中设置为该功能一直有效,即该参与者会自动参与每轮记账选举,一般主要发起者都会一直发起记账请求,该节点需要在账户中保留一定的通证,对于故意破坏系统运行的行为平台将进行一定的惩罚;确认登记成功选取权的参与者对所有有效的记账候选者进行投票,投票结果向全网广播,如果参与者在准备阶段未能正常登记选举权成功或者投票给一个无效的记账候选者,则该投票会被忽略;图2是从代表节点角度描述的基于信任成员的动态权益的共识流程图,在区块链正式运行后,以当前区块高度h为区块高度h+1生成区块,具体如下:拥有通证的用户节点通过投票成为代表节点或在智能合约中存入保证金成为代表节点,首轮的代表节点都由系统预设,同时选举与投票都在不断进行,但如果选举结果有变化导致代表列表有了变化,将会在下一轮共识时生效;所述分组的数量和每组内的节点数量由系统预设。具体的,系统依据统计票数选举出n个代表,前w位代表称议员,第w+1至n位代表称为观察员,n和w由程序预设,所有选出的代表必须处于在线状态,如果在线代表总数小于2组,本轮共识失败,等待下轮共识。使用随机函数从议员和观察员中采用加密抽签的方式选出m组记账人,每一组记账总人数为n/m=p,都是使用随机函数分别从议员和观察员中各选出;同组中广播选举消息选举议长,期初组内并没有议长,所有议员均身份均等,当组内有议员获取(签名数包括议长自己)票数的时升级为议长,并在组内发起确认交易广播,若达到选举超时时间还没有任何议员获取选举票数则本组的状态变为等待,如果m组记账人中m-1组状态都变为等待,则所有组进入广播选举消息选举议长轮;议长生成交易编号列表提案并在组内广播,组内议员进行校验并签署同意的签名,议长在收集到以上同意的签名消息后,为区块h+1高度生成备选区块,如果在广播交易编号列表超时时间内未收集到以上同意的签名消息则进入第二顺位议员自动升级为议长并重复生成交易编号列表提案并在组内广播过程;议长生成备选区块后在组内广播,如果在生成备选区块超时时间内议长未广播区块则第二顺位议员自动升级为议长并利用已收集以上同意的签名消息的交易编号列表生成备选区块并在组内广播,组内所有成员校验备选区块无误后该组状态变为就绪状态;当所有组备选区块就绪后,所有代表运行确认区块的随机函数从备选区块中选择一个作为h+1的正式区块并广播区块,本轮共识结束。更新代表节点列表,开始下一轮共识。对普通节点来说,只需要参与投票、记录代表列表,然后在收到新区块的时候根据代表列表进行校验即可,如图3所示;每一轮的共识只会在选举出来的代表之间进行,但最后广播正式区块的时候所有节点都会对新区块的有效性进行校验。以上所述仅用于说明本申请的技术方案,任何本领域普通技术人员均可在不违背本申请的精神及范畴下,对上述实施进行修饰与改变。因此,本申请的权利保护范围应视权利要求范围为准。本文档来自技高网...
一种基于信任成员的动态权益的共识方法

【技术保护点】
1.一种基于信任成员的动态权益的共识方法,其特征在于,包括如下步骤:代表节点列表中的所有代表节点运行随机数算法进行分组,分为议员节点组和观察员节点组,每组内采用BFT算法选举出本组的议长节.点,议长节点生成备选区块;当所有组备选区块就绪后,所有代表节点均运行随机数算法,从所有组的备选区块中选出一个作为新区块并广播,本轮共识结束;更新代表节点列表,开始下一轮共识。

【技术特征摘要】
1.一种基于信任成员的动态权益的共识方法,其特征在于,包括如下步骤:代表节点列表中的所有代表节点运行随机数算法进行分组,分为议员节点组和观察员节点组,每组内采用BFT算法选举出本组的议长节.点,议长节点生成备选区块;当所有组备选区块就绪后,所有代表节点均运行随机数算法,从所有组的备选区块中选出一个作为新区块并广播,本轮共识结束;更新代表节点列表,开始下一轮共识。2.根据权利要求1所述的一种基于信任成员的动态权益的共识方法,其特征在于,拥有通证的用户节点通过投票成为代表节点或在智能合约中存入保证金成为代表节点。3.根据权利要求1所述的一种基于信任成员的动态权益的共识方法,其特征在于,首轮的代表节点都由系统预设,同时选举与投票都在不断进行,但如果选举结果有变化导致代表列表有了变化,将会在下一轮共识时生效。4.根据权利要求1所述的一种基于信任成员的动态权益的共识方法,其特征在于,所述分组的数量和每组内的节点数量由系统预设。5.根据权利要求4所述的一种基于信任成员的动态权益的共识方法,其特征在于,当分组的数量小于2时,本轮共识失败,等待下轮共识。6.根据权利要求1所述的一种基于信任成员的动态权益的共识方法,其特征在于,议...

【专利技术属性】
技术研发人员:高西林黄浩
申请(专利权)人:上海金丘信息科技股份有限公司
类型:发明
国别省市:上海,31

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

1