一种用于区块链共识达成的计算机可读介质制造技术

技术编号:19123037 阅读:53 留言:0更新日期:2018-10-10 05:39
一种用于区块链共识达成的计算机可读介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如下方法:接收具有第一账户余额和/或第二账户余额的区块链节点发出的选举数据,选举数据包括发出选举数据的区块链节点所选择的区块链节点的信息;基于本轮次内接收到的选举数据,从各选举数据所选择的区块链节点中确定共识区块链节点,使得共识区块链节点在新一轮次中执行区块打包操作。每个区块链节点的第一账户和第二账户中的数值分别表征该区块链节点所具有的数字货币的数量和所具有的选票的数量。该发明专利技术的优点在于:在不浪费区块链节点的算力资源的前提下能够很大程度上维持区块链网络的去中心化特点。

【技术实现步骤摘要】
一种用于区块链共识达成的计算机可读介质
本专利技术涉及互联网
,更具体地,涉及一种用于区块链共识达成的计算机可读介质。
技术介绍
区块链技术是一种分布式记账技术,以其具有去中心化,不可篡改,无需第三方信任担保的优点而得到广泛重视。由于区块链技术分布式存储且去中心化的特点,共识机制在区块链技术中显得尤为重要。其中被广泛熟知的有工作量证明(ProofofWork)共识机制、权益证明(ProofofStake)共识机制和委托权益证明(DelegatedProofofStake)共识机制。在实现本专利技术构思的过程中,专利技术人发现现有技术中至少存在如下问题:工作量证明共识机制需要耗费大量的算力资源,而权益证明共识机制和委托权益证明共识机制都存在一定程度的中心化的问题,由于在区块链网络中生产区块数据结构的区块链节点会获得代币奖励,基于上述两种共识机制中,初始持有代币多的区块链节点会得到更多的生产区块数据结构的机会,从而获得更多的代币,这就造成区块链网络越来越趋于中心化。
技术实现思路
有鉴于此,本专利技术提供了一种用于区块链共识达成的计算机可读介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如下方法:接收具有第一账户余额和/或第二账户余额的区块链节点发出的选举数据,每条选举数据包括:发出该选举数据的区块链节点所选择的区块链节点的信息;基于本轮次内接收到的选举数据,从各选举数据所选择的区块链节点中确定共识区块链节点,使得所确定的共识区块链节点在新一轮次中执行区块打包操作。其中,每个区块链节点的第一账户中的数值用于表征该区块链节点所具有的数字货币的数量,每个区块链节点的第二账户中的数值用于表征该区块链节点所具有的选票的数量。可选的,所述方法还包括:接收区块链节点发出的交易信息,判断该交易信息是否符合预设条件,是则确定第一数值,第一数值用于表征向作为上述交易信息对应的交易物提供方的区块链节点的第二账户中增加的数值;将所确定的第一数值发送至其他区块链节点,以使各区块链节点将该第一数值存入各自对应的区块链数据库中。可选的,上述判断交易信息是否符合预设条件包括:判断交易信息对应的交易物是否属于消耗性资源;是则,监听该交易信息对应的交易物是否被作为该交易信息对应的交易物购买方的区块链节点使用完毕,是则确定该交易信息符合预设条件。可选的,消耗性资源包括如下至少一项:网络流量数据资源,处理器的算力资源。并且/或者,上述监听交易信息对应的交易物是否被作为该交易信息对应的交易物购买方的区块链节点使用完毕包括:接收作为交易物购买方的区块链节点发送的交易反馈信息,根据交易反馈信息判断交易物是否被该区块链节点使用完毕;或者,获取交易物的使用日志,根据该使用日志判断交易物是否被作为交易物购买方的区块链节点使用完毕。可选的,交易信息至少包括交易物的信息、交易物提供方的信息、交易物购买方的信息三者之一。可选的,每条选举数据还包括:第二数值和/或第三数值。对于每个区块链节点发出的选举数据,选举数据中的第二数值的总和不大于该区块链节点的第一账户余额,选举数据中的第三数值的总和不大于该区块链节点的第二账户余额。所述方法还包括获取第二数值的权重和第三数值的权重;则上述基于本轮次内接收到的选举数据,从各选举数据所选择的区块链节点中确定共识区块链节点包括:统计本轮次内接收到的选举数据中每个被选择的区块链节点对应的第二数值的总和,以及本轮次内接收到的选举数据中每个被选择的区块链节点对应的第三数值的总和;对于每个被选择的区块链节点,根据该区块链节点对应的第二数值的总和和第二数值的权重、以及该区块链节点对应的第三数值的总和和第三数值的权重,得到该区块链节点的选举分值;依据选举分值从高至低对本轮次内接收到的选举数据中被选择的区块链节点进行排序,确定前预设数量的区块链节点为共识区块链节点,使得所确定的共识区块链节点在新一轮次中按照预设规则依次执行区块打包操作。可选的,获取第二数值的权重和第三数值的权重包括:统计本轮次内接收到的选举数据中第二数值的总和以及第三数值的总和;确定第二数值的权重和第三数值的权重,使满足:第二数值的总和与第二数值的权重的乘积等于第三数值的总和与第三数值的权重的乘积。可选的,所述方法还包括:对于发出选举数据的每个区块链节点,确定第四数值,所述第四数值等于该区块链节点在本轮次内发出的选举数据中第三数值的总和,所述第四数值用于表征从该区块链节点的第二账户中减少的数值;将所述第四数值发送至其他区块链节点,以使各区块链节点将所述第四数值存入各自对应的区块链数据库中。可选的,所述方法还包括:在确定预定数量的共识区块链节点之后,对于每个共识区块链节点,生成不重复的随机数,使得各共识区块链节点在新一轮次中按照相应的随机数的顺序依次执行预设次数的区块打包操作。本专利技术的有益效果:(1)本专利技术可以至少部分地解决/减轻/抑制/甚至避免现有技术在达成区块链共识的过程中需要无意义地消耗区块链节点的大量算力资源的问题,以及可以至少部分地解决/减轻/抑制/甚至避免现有技术在达成区块链共识的过程中所产生的数字货币在少数区块链节点中聚集的中心化发展趋势,在不浪费区块链节点的算力资源的前提下能够很大程度上维持区块链网络的去中心化特点。(2)本专利技术利用了消耗性资源无法重复使用的特性,使得消耗性资源的交易信息在区块链数据库的一条分叉链上被记录后则无法再在另一条分叉链上被记录,进而使得作为交易物提供方的区块链节点为了确保自己的交易信息被各区块链节点确认并保存于区块链数据库中,将仅选择通过未来会成为最长链的分叉链保存相应的交易信息,由于作为交易物提供方的区块链节点的这种选择,导致了区块链数据库中除最长链以外其余链的使用率大大减少。另外,若区块链数据库产生多条分叉链,每个区块链节点基于不同分叉链拥有相同数量的数字货币,又由于消耗性资源不可复重复使用的特性,导致提供消耗性资源的区块链节点将会处于劣势,因此作为交易物提供方的区块链节点出于保护自己利益的目的,会对生产区块数据结构的共识区块链节点严格监视,在作为交易物提供方的区块链节点选择共识区块链节点时,不会选择那些对多条分叉链同时维护的共识区块链节点。出于以上两个方面的原因,本专利技术可以改善改善账本分叉问题。附图说明图1示意性示出了根据本专利技术实施例的可以应用区块链共识达成方法和装置的示例性系统架构;图2示意性示出了根据本专利技术实施例的区块链共识达成方法的流程图;图3示意性示出了根据本专利技术实施例的区块链共识达成装置的框图;图4示意性示出了根据本专利技术另一实施例的区块链共识达成装置的框图;图5示意性示出了根据本专利技术实施例的用于区块链共识达成的计算机系统的方框图。具体实施方式以下,将参照附图来描述本专利技术的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本专利技术的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本专利技术实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本专利技术的概念。在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本专利技术。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在本文档来自技高网...
一种用于区块链共识达成的计算机可读介质

【技术保护点】
1.一种用于区块链共识达成的计算机可读介质,其特征在于,其上存储有可执行指令,该指令被处理器执行时使处理器执行如下方法:接收具有第一账户余额和/或第二账户余额的区块链节点发出的选举数据,所述选举数据包括:发出所述选举数据的区块链节点所选择的区块链节点的信息;基于本轮次内接收到的选举数据,从各选举数据所选择的区块链节点中确定共识区块链节点,使得所述共识区块链节点在新一轮次中执行区块打包操作;其中,每个区块链节点的第一账户中的数值用于表征该区块链节点所具有的数字货币的数量,每个区块链节点的第二账户中的数值用于表征该区块链节点所具有的选票的数量。

【技术特征摘要】
1.一种用于区块链共识达成的计算机可读介质,其特征在于,其上存储有可执行指令,该指令被处理器执行时使处理器执行如下方法:接收具有第一账户余额和/或第二账户余额的区块链节点发出的选举数据,所述选举数据包括:发出所述选举数据的区块链节点所选择的区块链节点的信息;基于本轮次内接收到的选举数据,从各选举数据所选择的区块链节点中确定共识区块链节点,使得所述共识区块链节点在新一轮次中执行区块打包操作;其中,每个区块链节点的第一账户中的数值用于表征该区块链节点所具有的数字货币的数量,每个区块链节点的第二账户中的数值用于表征该区块链节点所具有的选票的数量。2.根据权利要求1所述的一种用于区块链共识达成的计算机可读介质,其特征在于,所述方法还包括:接收区块链节点发出的交易信息;判断所述交易信息是否符合预设条件,是则确定第一数值,所述第一数值用于表征向作为所述交易信息对应的交易物提供方的区块链节点的第二账户中增加的数值;将所述第一数值发送至其他区块链节点,以使各区块链节点将所述第一数值存入各自对应的区块链数据库中。3.根据权利要求2所述的一种用于区块链共识达成的计算机可读介质,其特征在于,其中,所述判断所述交易信息是否符合预设条件包括:判断所述交易信息对应的交易物是否属于消耗性资源;是则,监听所述交易信息对应的交易物是否被作为所述交易信息对应的交易物购买方的区块链节点使用完毕;是则,确定所述交易信息符合预设条件。4.根据权利要求3所述的一种用于区块链共识达成的计算机可读介质,其特征在于,其中:所述消耗性资源包括如下至少一项:网络流量数据资源,处理器的算力资源;并且/或者所述监听所述交易信息对应的交易物是否被作为所述交易信息对应的交易物购买方的区块链节点使用完毕包括:接收作为所述交易物购买方的区块链节点发送的交易反馈信息,根据所述交易反馈信息判断所述交易物是否被该区块链节点使用完毕;或者,获取所述交易物的使用日志,根据所述使用日志判断所述交易物是否被作为所述交易物购买方的区块链节点使用完毕。5.根据权利要求2所述的一种用于区块链共识达成的计算机可读介质,其特征在于,所述交易信息至少包括交易物的信息、交易物提供方的信息、交易物购买方的信息三者...

【专利技术属性】
技术研发人员:张焱施逸田宝同邓晓军
申请(专利权)人:合肥达朴汇联科技有限公司
类型:发明
国别省市:安徽,34

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

1