自治域模式下基于信息共享贡献值的区块链共识方法与流程

文档序号:17016125发布日期:2019-03-02 02:28阅读:157来源:国知局
自治域模式下基于信息共享贡献值的区块链共识方法与流程

本发明属于区块链技术领域,更具体地,涉及一种自治域模式下基于信息共享贡献值的区块链动态激励方法。



背景技术:

目前主流的区块链共识机制包括工作量证明(proofofwork,简称pow)和授权股权证明(delegatedproofofstake,简称dpos),其中pow是通过一定的工作量,来获得相对应的出块奖励,也就是所谓的“多劳多得”;而dpos的原理是通过持股人进行投票选出一定数量的代表,由代表轮流共识出块。

然而,上述共识机制均存在一些不可忽视的问题:首先,pow机制通过节点共同求解某一数学难题竞争出块奖励来保障安全性,这需要耗费大量能源;而在dpos共识机制中,出块权掌握在持有大量股权的节点的手中,其他节点很难通过竞争获取出块权,使得系统运行到最后只存在几个超级节点维护账本,从而呈现出一种“中心化”形式,这不利于系统的鲁棒性。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种基于信息共享贡献值的在自治域模式下的区块链共识方法,其目的在于,解决现有区块链共识机制中存在的能源消耗大、易中心化的技术问题。

为实现上述目的,按照本发明的一个方面,提供了一种自治域模式下基于信息共享贡献值的区块链共识方法,包括以下步骤:

(1)区块链委员会中各个自治域的记账节点按照其所属自治域在委员会名单中的顺序开始执行出块操作,以获得对应的出块奖励,根据出块操作中所涉及的信息共享行为的报酬分发信息共享奖励,并将出块奖励在所在自治域内进行分发;

(2)记账节点判断是否有(m-q)/n≥p,如果是则进入步骤(3),否则转入下个自治域的记账节点,并返回步骤(1);

其中q表示当前出块周期内委员会中所有自治域已经出块的数量,p表示预设的阈值。

(3)当前委员会根据截止当前,其所有自治域中的信息共享贡献值、押注金额、信用积分进行综合排名,将综合排名结果中排名前k个自治域作为下一届委员会记入区块链网络中,其中k的上限值是20;

(4)每个自治域获取下一届委员会名单,并且判断其自身是否在当前委员会或下一届委员会名单中,如果是则进入步骤(6),否则转入步骤(5);

(5)该自治域的预记账节点判断是否选择解散自治域并退出区块链网络,如果是则过程结束,否则进入步骤(6);

(6)当前委员会判断是否其所有自治域都已经在当前出块周期内完成出块,如果是则将下一届委员会名单对应的下一届委员会作为当前委员会,并返回步骤(1),否则直接返回步骤(1)。

优选地,步骤(1)包括以下子步骤:

(1-1)区块链委员会中各个自治域的记账节点按照其所属自治域在委员会名单中的顺序开始执行出块操作,以获得对应的出块奖励;

(1-2)记账节点通过调用智能合约接口读取出块操作的区块内信息共享行为的报酬,并按照每笔报酬m和对应的奖励系数给信息共享行为的信息贡献方发放信息共享奖励ri:

其中表示当前时间周期内的奖励系数,且有:

其中t表示时间周期,v表示时间周期t内的额定发放信息共享奖励数量,表示当前奖励系数,v′表示时间周期t内的实际发放信息共享奖励数量,ti表示发完v′个信息共享奖励所用时间,表示下一个时间周期t内的奖励系数;

(1-3)记账节点出完一个区块后,根据其自身在注册自治域时提交的分配策略,将出块奖励分发给自治域内对应的普通节点,并且判断当前自治域的记账节点的出块总量是否尚未达到预设阈值m/n,如果是则返回步骤(1-2),否则进入步骤(2);其中m表示每个出块周期内委员会中所有自治域所要出块的总数量,n表示委员会中自治域的数量;

优选地,在出块期间,如果有新的节点希望加入区块链网络中的一个自治域,则该节点将其自身的公钥、hash地址、待加入自治域的相关信息、以及节点描述信息发送到区块链网络的委员会,区块链网络的委员会将该节点加入到对应自治域的成员列表中,并在该成员列表中建立该节点与其自身的公钥、hash地址、待加入自治域的相关信息、以及节点描述信息之间的映射关系。

优选地,在出块期间,如果有新的节点需要创建一个新的自治域,则该节点根据其自身的公钥、hash地址、押注信息、该节点的描述信息、组织自治域所需要的分配策略、以及组织自治域所需的相关信息创建新的自治域,该节点成为该自治域的预记账节点。

优选地,步骤(3)包括以下步骤:

(3-1)委员会根据其所有自治域中的信息共享贡献值、押注金额、信用积分对所有自治域的竞选权重w按照从大到小的顺序进行排序,以得到排名前k个自治域;

(3-2)选取排名前k个自治域生成委员会名单,并将其作为下一届委员会名单写入区块中。

优选地,竞选权重的计算公式如下:

w=v*α+c*β+p*τ

其中,v表示自治域中记账节点的押注金额,c表示该自治域中所有节点作为信息贡献者对自治域的信息共享贡献值,p代表自治域中所有节点的信用积分;α、β和τ分别表示可调参数。

按照本发明的另一方面,提供了一种自治域模式下基于信息共享贡献值的区块链共识系统,包括:

第一模块,用于区块链委员会中各个自治域的记账节点按照其所属自治域在委员会名单中的顺序开始执行出块操作,以获得对应的出块奖励,根据出块操作中所涉及的信息共享行为的报酬分发信息共享奖励,并将出块奖励在所在自治域内进行分发;

第二模块,用于记账节点判断是否有(m-q)/n≥p,如果是则进入第三模块,否则转入下个自治域的记账节点,即返回第一模块;

其中q表示当前出块周期内委员会中所有自治域已经出块的数量,p表示预设的阈值。

第三模块,用于当前委员会根据截止当前,其所有自治域中的信息共享贡献值、押注金额、信用积分进行综合排名,将综合排名结果中排名前k个自治域作为下一届委员会记入区块链网络中,其中k的上限值是20;

第四模块,用于每个自治域获取下一届委员会名单,并且判断其自身是否在当前委员会或下一届委员会名单中,如果是则进入第六模块,否则转入第五模块;

第五模块,用于该自治域的预记账节点判断是否选择解散自治域并退出区块链网络,如果是则过程结束,否则进入第六模块;

第六模块,用于当前委员会判断是否其所有自治域都已经在当前出块周期内完成出块,如果是则将下一届委员会名单对应的下一届委员会作为当前委员会,并返回第一模块,否则直接返回第一模块。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

(1)本发明能够解决现有共识机制消耗大量能源的问题:由于本发明采用了步骤(1),区块链网络通过调用智能合约接口,根据信息共享合约中交易金额在所在区块的占比发放信息共享奖励,不存在算力挖矿的行为,避免了因此造成的能源损耗。

(2)本发明能够解决现有共识机制易中心化的问题:由于本发明专利采用了步骤(3),区块链网络根据每个自治域所有成员的信息共享贡献值、信用积分、记账节点的押注金额进行排名,排名前m名的自治域获取出块权,轮流出块,之后出块奖励在整个自治域内根据记账节点登记的分配策略来进行分发,即整个自治域成员的贡献值和信用分越高,越有可能获取出块权来共同分配出块奖励。本发明通过这种方式鼓励节点加入区块链网络来监督、维护其运行状态,避免了dpos共识机制中存在的中心化问题。

附图说明

图1是本发明自治域模式下基于信息共享贡献值的区块链共识方法的流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

以下首先就本发明的技术术语进行解释和说明:

信息共享行为:由智能合约所定义,是用于满足现实业务场景的共享信息需求的一组逻辑操作,并对信息共享者发放报酬。

信息贡献者:在信息共享行为中协助信息共享的节点或用户,并以此获取相应报酬。

信息共享贡献值:根据信息共享奖励换算而来的,用于衡量信息共享行为所创造价值的计量单位。

信用积分:用于衡量用户在信息共享行为中守信状况的计量单位,在信息共享行为之后由各个参与方相互评价通过加权平均计算产生。

自治域:自治域是本发明中出块的最小逻辑单元,由一个记账节点和多个普通节点组成。

委员会:由所有自治域通过共同竞选(计算信息贡献值等因素),rank排名之后所产生的前k(k<=20)名的自治域的集合,这些自治域作为委员会成员需要负责某一出块周期内的出块任务,由各个自治域的记账节点负责具体实行。

记账节点:组织、创建自治域的节点,在所在自治域加入委员会之前被称作预记账节点,在加入委员会之后负责接收交易请求,在区块链中对用户请求对应的结果达成共识,以产生新的区块,获取出块奖励并在域内对出块奖励进行分发操作。

普通节点:参与自治域维护的节点,在所在自治域加入委员会之后负责维护记账节点所产生的数据,监督其智能合约执行结果。

本发明的整体思路在于,结合区块链和信息共享智能合约,根据记账节点的押注金额和自治域所有成员的信息贡献值、信用积分来计算全局自治域排名,以此产生委员会名单,由委员会中自治域的记账节点轮流出块,出块的节点根据当前时间段内的奖励系数和信息共享行为所涉及的金额的乘积来发放信息共享奖励,奖励系数根据系统发币速度动态调整。为了防止节点作恶,在大部分节点验证失败后会从记账的节点扣除部分押金。

如图1所示,本发明自治域模式下基于信息共享贡献值的区块链共识方法包括以下步骤:

(1)区块链委员会中各个自治域的记账节点按照其所属自治域在委员会名单中的顺序开始执行出块操作,以获得对应的出块奖励,根据出块操作中所涉及的信息共享行为的报酬分发信息共享奖励,并将出块奖励在所在自治域内进行分发;

具体而言,本步骤包括以下步骤:

(1-1)区块链委员会中各个自治域的记账节点按照其所属自治域在委员会名单中的顺序开始执行出块操作,以获得对应的出块奖励;

(1-2)记账节点通过调用智能合约接口读取出块操作的区块内信息共享行为的报酬,并按照每笔报酬m和对应的奖励系数给信息共享行为的信息贡献方发放信息共享奖励ri:

其中表示当前时间周期内的奖励系数,且有:

其中t表示时间周期,v表示时间周期t内的额定发放信息共享奖励数量,表示当前奖励系数,v′表示时间周期t内的实际发放信息共享奖励数量,ti表示发完v′个信息共享奖励所用时间,表示下一个时间周期t内的奖励系数;

(1-3)记账节点出完一个区块后,根据其自身在注册自治域时提交的分配策略,将出块奖励分发给自治域内对应的普通节点,并且判断当前自治域的记账节点的出块总量是否尚未达到预设阈值m/n,如果是则返回步骤(1-2),否则进入步骤(2);其中m表示每个出块周期内委员会中所有自治域所要出块的总数量,n表示委员会中自治域的数量;

在出块期间,如果有新的节点希望加入区块链网络中的一个自治域,则该节点将其自身的公钥、hash地址、待加入自治域的相关信息、以及节点描述信息(例如,该节点描述信息可以是诸如公司的网址、公司的名称等)发送到区块链网络的委员会,区块链网络的委员会将该节点加入到对应自治域的成员列表中,并在该成员列表中建立该节点与其自身的公钥、hash地址、待加入自治域的相关信息、以及节点描述信息之间的映射关系。

在出块期间,如果有新的节点需要创建一个新的自治域,则该节点根据其自身的公钥、hash地址、押注信息、该节点的描述信息、组织自治域所需要的分配策略(例如,如何将出块的奖励在自治域内进行分配)、以及组织自治域所需的相关信息(包括自治域的名称等)创建新的自治域,该节点成为该自治域的预记账节点。

(2)记账节点判断是否有(m-q)/n≥p,如果是则进入步骤(3),否则转入下个自治域的记账节点,并返回步骤(1);

其中q表示当前出块周期内委员会中所有自治域已经出块的数量,p表示预设的阈值,其取值为0.2到0.4之间。

(3)当前委员会根据截止当前,其所有自治域中的信息共享贡献值、押注金额、信用积分进行综合排名,将综合排名结果中排名前k个自治域作为下一届委员会记入区块链网络中,其中k的上限值是20;

具体而言,本步骤包括以下步骤:

(3-1)委员会根据其所有自治域中的信息共享贡献值、押注金额、信用积分对所有自治域的竞选权重w按照从大到小的顺序进行排序,以得到排名前k个自治域,竞选权重的计算公式如下:

w=v*α+c*β+p*τ

其中,v表示自治域中记账节点的押注金额,c表示该自治域中所有节点作为信息贡献者完成信息共享所获取的奖励总额,也就是该自治域中所有节点作为信息贡献者对自治域的信息共享贡献值,p代表自治域中所有节点的信用积分;α、β和τ分别表示可调参数,其取值越大,则分别表示押注金额、信息共享贡献值、信用积分的重要程度越高,反之,则表示重要程度越低。

(3-2)选取排名前k个自治域生成委员会名单,并将其作为下一届委员会名单写入区块中;

(4)每个自治域获取下一届委员会名单,并且判断其自身是否在当前委员会或下一届委员会名单中,如果是则进入步骤(6),否则转入步骤(5);

(5)该自治域的预记账节点判断是否选择解散自治域并退出区块链网络,如果是则过程结束,否则进入步骤(6);

(6)当前委员会判断是否其所有自治域都已经在当前出块周期内完成出块,如果是则将下一届委员会名单对应的下一届委员会作为当前委员会,并返回步骤(1),否则直接返回步骤(1)。

总而言之,本发明的区块链网络通过调用智能合约接口,根据信息共享合约中交易金额在所在区块的占比发放信息共享奖励,不存在算力挖矿的行为,避免了因此造成的能源损耗;此外,本发明区块链网络根据每个自治域所有成员的信息共享贡献值、信用积分、记账节点的押注金额进行排名,排名前m名的自治域获取出块权,轮流出块,之后出块奖励在整个自治域内根据记账节点登记的分配策略来进行分发,即整个自治域成员的贡献值和信用分越高,越有可能获取出块权来共同分配出块奖励。本发明通过这种方式鼓励节点加入区块链网络来监督、维护其运行状态,避免了dpos共识机制中存在的中心化问题。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1