区块链系统中的数据分配方法及装置与流程

文档序号:12278240阅读:321来源:国知局
区块链系统中的数据分配方法及装置与流程

本发明涉及数据分配技术领域,特别涉及一种区块链系统中的数据分配方法及装置。



背景技术:

互联网金融高速发展,区块链(block chain,其实际上是一群分散的用户端节点,并由所有交易者组成的分布式数据库,是对所有比特币交易历史的记录)作为加密数字货币的基础和核心,得到了高度重视。节点和交易者的数量随着时间推移变得越来越大,基础设施必须能够在不导致性能降级的前提下处理这样的扩展。从数字货币的鼻祖比特币开始,为了保证去中心化网络的健壮性,有足够多的节点参与,特别设计出了“挖矿”行为和对应的奖励机制,所谓“挖矿”实质上是用计算机解决一项复杂的数学问题,来保证比特币网络分布式记账系统的一致性,所谓“奖励机制”就是比特币网络新生成一定值的比特币作为赏金,奖励获得答案的人。奖励机制首先要做到透明,其次是能促进自身发展需要。但是,各种数字货币的奖励机制,发展到一定程度都使得投机者掌握大量权重,真正的推广者无法获得有效激励,从而导致数字货币必然衰弱和分歧。比如比特币的早期大矿主们把持了超过80%的算力,使得比特币的后续先进迭代无法实现(权重大的矿主们否决对他们不利的改进)。



技术实现要素:

本发明实施例提供了一种区块链系统中的数据分配方法,可以有效地分配新增的资产值,使真正的推广者获得有效激励。该方法包括:

确定区块链系统中的待分配数据和关系链;所述关系链中包括多个节点;

确定关系链中每个节点对已持有数据的控制参数;

根据待分配数据、每个节点对已持有数据的控制参数,确定分配给每个节点的数据值。

在一个实施例中,所述待分配数据为新增总资产值;

所述每个节点对已持有数据的控制参数包括:每个节点对已持有资产值的持有效力值和推广力度值。

在一个实施例中,按照如下方式确定每个节点对已持有资产值的持有效力值:

每个节点对已持有资产值的持有效力值为每个节点的已持有资产值和持有时长的乘积。

在一个实施例中,按如下方式确定每个节点对已持有资产值的推广力度值:

当多个节点中的一个父节点没有相连的子节点时,该父节点的推广力度值为0;

当多个节点中的一个父节点有相连的子节点时,该父节点的推广力度值为所有相连的子节点的累计资产处理值相加之和;所述累计资产处理值为对与该父节点相连的子节点的累计资产值进行处理后确定;

按如下方式确定节点的累积资产值:

当多个节点中的一个父节点没有相连的子节点时,该父节点的累积资产值为该父节点的已持有资产值;

当多个节点中的一个父节点有相连的子节点时,该父节点的累积资产值为该父节点的已持有资产值与所有相连的子节点的累积资产值之和。

在一个实施例中,对与该父节点相连的子节点的累计资产值进行处理,包括:

确定该父节点的所有相连的子节点的累计资产值中的最大值;

对累计资产值最大值对应的子节点的累计资产值进行指数运算;

将剩余子节点的累计资产值与预设阈值进行比较,当小于预设阀值时,对相应的子节点的累计资产值进行乘积运算;当大于预设阀值时,对相应的子节点的累计资产值进行线性运算;

按如下公式对累计资产值最大值对应的子节点的累计资产值进行指数运算:

按如下公式对相应的子节点的累计资产值进行乘积运算:T*第二预设数值;

按如下公式对相应的子节点的累计资产值进行线性运算:T+第三预设数值;

其中,T为相应的子节点的累计资产值。

在一个实施例中,根据待分配数据、每个节点对已持有数据的控制参数,按照如下公式确定分配给每个节点的数据值:

其中,B新i为关系链中第i个节点的数据值;

Si为关系链中第i个节点的持有效力值,Si=Bi*Ai,Bi为关系链中第i个节点的已持有资产值,Ai为关系链中第i个节点的持有时长;

Pi为关系链中第i个节点的推广力度值;

B为新增总资产值;

n为关系链中节点的个数,n为整数。

本发明实施例还提供了一种区块链系统中的数据分配装置,该装置包括:

待分配数据和关系链确定模块,用于确定区块链系统中的待分配数据和关系链;所述关系链中包括多个节点;

控制参数确定模块,用于确定关系链中每个节点对已持有数据的控制参数;

分配模块,用于根据待分配数据、每个节点对已持有数据的控制参数,确定分配给每个节点的数据值。

在一个实施例中,所述待分配数据为新增总资产值;

所述每个节点对已持有数据的控制参数包括:每个节点对已持有资产值的持有效力值和推广力度值。

在一个实施例中,所述控制参数确定模块具体用于:

按照如下方式确定每个节点对已持有资产值的持有效力值:

每个节点对已持有资产值的持有效力值为每个节点的已持有资产值和持有时长的乘积。

在一个实施例中,所述控制参数确定模块具体用于:

按如下方式确定每个节点对已持有资产值的推广力度值:

当多个节点中的一个父节点没有相连的子节点时,该父节点的推广力度值为0;

当多个节点中的一个父节点有相连的子节点时,该父节点的推广力度值为所有相连的子节点的累计资产处理值相加之和;所述累计资产处理值为对与该父节点相连的子节点的累计资产值进行处理后确定;

按如下方式确定节点的累积资产值:

当多个节点中的一个父节点没有相连的子节点时,该父节点的累积资产值为该父节点的已持有资产值;

当多个节点中的一个父节点有相连的子节点时,该父节点的累积资产值为该父节点的已持有资产值与所有相连的子节点的累积资产值之和。

在一个实施例中,所述控制参数确定模块具体用于:

对与该父节点相连的子节点的累计资产值进行处理,包括:

确定该父节点的所有相连的子节点的累计资产值中的最大值;

对累计资产值最大值对应的子节点的累计资产值进行指数运算;

将剩余子节点的累计资产值与预设阈值进行比较,当小于预设阀值时,对相应的子节点的累计资产值进行乘积运算;当大于预设阀值时,对相应的子节点的累计资产值进行线性运算;

按如下公式对累计资产值最大值对应的子节点的累计资产值进行指数运算:

按如下公式对相应的子节点的累计资产值进行乘积运算:T*第二预设数值;

按如下公式对相应的子节点的累计资产值进行线性运算:T+第三预设数值;

其中,T为相应的子节点的累计资产值。

在一个实施例中,所述分配模块具体用于:

按照如下公式确定分配给每个节点的数据值:

其中,B新i为关系链中第i个节点的数据值;

Si为关系链中第i个节点的持有效力值,Si=Bi*Ai,Bi为关系链中第i个节点的已持有资产值,Ai为关系链中第i个节点的持有时长;

Pi为关系链中第i个节点的推广力度值;

B为新增总资产值;

n为关系链中节点的个数,n为整数。

在本发明实施例中,首先需要确定区块链系统中的待分配数据(新增总资产值)和关系链;所述关系链中包括多个节点;然后确定关系链中每个节点对已持有数据的控制参数;最后根据待分配数据、每个节点对已持有数据的控制参数,确定分配给每个节点的数据值,这样按照上述方式确定分配给每个节点的数据值,可以将新增总资产值进行合理有效地分配,使真正的推广者获得有效激励。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种区块链系统中的数据分配方法流程图;

图2是本发明实施例提供的一种推广力度值得计算方法实例图;

图3是本发明实施例提供的一种区块链系统中的数据分配装置示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明实施例中,提供了一种区块链系统中的数据分配方法,如图1所示,该方法包括:

步骤101:确定区块链系统中的待分配数据和关系链;所述关系链中包括多个节点;

步骤102:确定关系链中每个节点对已持有数据的控制参数;

步骤103:根据待分配数据、每个节点对已持有数据的控制参数,确定分配给每个节点的数据值。

具体实施时,本方法借鉴了PoW(Proof Of Work,工作量证明机制)和PoS(Proof of Stake,权益证明机制)共识机制的优点,本发明方法实现两个目的:作为区块链底层的共识机制,保证高效率和安全性;作为激励制度保证推广节点的正当收益,促进网络繁荣和链条的健壮性。由于区块链系统内置的数字资产,会按照约定周期定期进行增长,增长呈现逐步衰减趋势,以防止通货膨胀。本发明方法要做的就是分配好增长的资产到推广作用大的节点上。为了达到激励效果,本发明方法主要从持有效力(stack)和推广力度两个方面考量。其中,持有效力(stack)定义为的大小(Balance)*持有时长(AssertAge),以此Stack值作为权重参与分配。推广力度(Promotion)定义为经过该节点推荐后形成的关系链,以及该关系链上的活跃度。已持有资产值可以说是固有资产值/量。

具体的,步骤101中所说的“待分配数据”就是指的“新增总资产值”,新增总资产值是由区块链系统产生的,新增总资产值不是一个确定的数值。

具体实施时,关系链可以是显性的推荐方式形成,也可以是通过后端服务器数据挖掘建立的隐形关系。比如,当A账户第一个给B账户转账,其就成为了B账户的父节点,B账户就是A账户的子节点,B账户给C账户转账,B账户是C账户的父节点,C账户就是B账户的子节点,以此类推,A、B、C就成了关系链。

具体实施时,一旦通过步骤101确定了关系链后,就可以对关系链中的每个节点进行遍历,寻找该节点所有相邻节点,确定每个节点对已持有数据的控制参数,其中每个节点对已持有数据的控制参数可以包括:每个节点对已持有资产值的持有效力值和推广力度值。

具体的,按照如下方式确定每个节点对已持有资产值的持有效力值:

每个节点对已持有资产值的持有效力值为每个节点的已持有资产值和持有时长的乘积。

具体的,按如下方式确定每个节点对已持有资产值的推广力度值:

当多个节点中的一个父节点没有相连的子节点时,该父节点的推广力度值为0;

当多个节点中的一个父节点有相连的子节点时,该父节点的推广力度值为所有相连的子节点的累计资产处理值相加之和;所述累计资产处理值为对与该父节点相连的子节点的累计资产值进行处理后确定;

按如下方式确定节点的累积资产值:

当多个节点中的一个父节点没有相连的子节点时,该父节点的累积资产值为该父节点的已持有资产值;

当多个节点中的一个父节点有相连的子节点时,该父节点的累积资产值为该父节点的已持有资产值与所有相连的子节点的累积资产值之和。

具体的,对与该父节点相连的子节点的累计资产值进行处理,包括:

确定该父节点的所有相连的子节点的累计资产值中的最大值;

对累计资产值最大值对应的子节点的累计资产值进行指数运算;

将剩余子节点的累计资产值与预设阈值进行比较,当小于预设阀值时,对相应的子节点的累计资产值进行乘积运算;当大于预设阀值时,对相应的子节点的累计资产值进行线性运算;

按如下公式对累计资产值最大值对应的子节点的累计资产值进行指数运算:

按如下公式对相应的子节点的累计资产值进行乘积运算:T*第二预设数值;

按如下公式对相应的子节点的累计资产值进行线性运算:T+第三预设数值;

其中,T为相应的子节点的累计资产值。

其中,第一预设数值可以是3,第二预设数值可以是10,第三预设数值可以是9000。具体的,第一预设数值、第二预设数值、第三预设数值的确定原则主要是在持有资产少的新用户和持有较多资产的老用户之间进行平衡,通过数值模拟获得的较优值。

下面通过举例说明持有效力和推广力度的计算过程。

比如,如图2所示,关系链中包括一个根节点、与根节点连接的子节点A、B、C,与子节点C连接的孙节点C1、C2。其中,关系链不会重合,每个关系链中的根节点都是一个。

1)节点的持有效力值为节点的持有资产大小*持有时间。

2)节点的推广力度值计算如下:

由于孙节点C1、C2和子节点A、B均没有子节点,所以孙节点C1的累积资产值T(c1)为本身的已持有资产值B(c1),孙节点C2的累积资产值T(c2)为本身的已持有资产值B(c2),子节点A的累积资产值T(a)为本身的已持有资产值B(a),子节点B的累积资产值T(b)为本身的已持有资产值B(b),孙节点C1、C2和子节点A、B的推广力度值V(c1)=V(c2)=V(a)=V(b)=0。

子节点C连接的孙节点C1、C2,则子节点C的累积资产值T(c)为孙节点C1的累积资产值T(c1)、孙节点C2的累积资产值T(c2)和子节点C本身的已持有资产值B(c)的加和,即T(c)=T(c1)+T(c2)+B(c)。然后确定孙节点C1的累积资产值T(c1)、孙节点C2的累积资产值T(c2)的大小,此处确定孙节点C1的累积资产值T(c1)大于孙节点C2的累积资产值T(c2),则对孙节点C1的累积资产值T(c1)进行指数运算(比如,T(c1)1/3),将孙节点C2的累积资产值T(c2)与预设阈值(人为规定10000)进行比较,此处确定孙节点C2的累积资产值T(c2)小于预设阈值,则对孙节点C2的累积资产值T(c2)进行乘法运算(比如,T(c2)*10),计算完之后,确定子节点C的推广力度值V(c)=T(c1)指数运算+T(c2)乘法运算。

根节点包括三个子节点A、B、C,根节点的累积资产值T(root)=T(a)+T(b)+T(c)+B(root),B(root)为根节点本身的已持有资产值。然后确定T(a)、T(b)和T(c)的大小,此处确定孙T(b)最大,则对T(b)进行指数运算,将T(a)和T(c)与预设阈值进行比较,此处确定T(a)小于预设阈值,T(c)大于预设阈值,则对T(a)进行乘法运算,对T(c)进行线性运算(比如,T(c)+9000),计算完之后,确定根节点的推广力度值V(root)=T(b)指数运算+T(a)乘法运算+T(c)线性运算。

具体的,对节点的累积资产值进行指数运算,可以抑制stack值大的节点,有利于stack值小的节点;对节点的累积资产值进行乘法运算,可以拉开距离,有利于stack值大的节点。对节点的累积资产值进行什么样的运算是根据不同业务需要决定的。

具体实施时,按照上面的方法计算出节点的持有效力值和推广力度值后,按照如下公式确定分配给每个节点的数据值:

其中,B新i为关系链中第i个节点的数据值;

Si为关系链中第i个节点的持有效力值,Si=Bi*Ai,Bi为关系链中第i个节点的已持有资产值,Ai为关系链中第i个节点的持有时长;

Pi为关系链中第i个节点的推广力度值;

B为新增总资产值;

n为关系链中节点的个数,n为整数。

基于同一发明构思,本发明实施例中还提供了一种区块链系统中的数据分配装置,如下面的实施例所述。由于区块链系统中的数据分配装置解决问题的原理与区块链系统中的数据分配方法相似,因此区块链系统中的数据分配装置的实施可以参见区块链系统中的数据分配方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图3是本发明实施例的区块链系统中的数据分配装置的一种结构框图,如图3所示,包括:

待分配数据和关系链确定模块301,用于确定区块链系统中的待分配数据和关系链;所述关系链中包括多个节点;

控制参数确定模块302,用于确定关系链中每个节点对已持有数据的控制参数;

分配模块303,用于根据待分配数据、每个节点对已持有数据的控制参数,确定分配给每个节点的数据值。

下面对该结构进行说明。

具体实施时,所说的待分配数据为新增总资产值;所说的每个节点对已持有数据的控制参数包括:每个节点对已持有资产值的持有效力值和推广力度值。

具体实施时,控制参数确定模块302具体用于:

按照如下方式确定每个节点对已持有资产值的持有效力值:

每个节点对已持有资产值的持有效力值为每个节点的已持有资产值和持有时长的乘积。

具体实施时,控制参数确定模块302具体用于:

按如下方式确定每个节点对已持有资产值的推广力度值:

当多个节点中的一个父节点没有相连的子节点时,该父节点的推广力度值为0;

当多个节点中的一个父节点有相连的子节点时,该父节点的推广力度值为所有相连的子节点的累计资产处理值相加之和;所述累计资产处理值为对与该父节点相连的子节点的累计资产值进行处理后确定;

按如下方式确定节点的累积资产值:

当多个节点中的一个父节点没有相连的子节点时,该父节点的累积资产值为该父节点的已持有资产值;

当多个节点中的一个父节点有相连的子节点时,该父节点的累积资产值为该父节点的已持有资产值与所有相连的子节点的累积资产值之和。

具体实施时,控制参数确定模块302具体用于:

对与该父节点相连的子节点的累计资产值进行处理,包括:

确定该父节点的所有相连的子节点的累计资产值中的最大值;

对累计资产值最大值对应的子节点的累计资产值进行指数运算;

将剩余子节点的累计资产值与预设阈值进行比较,当小于预设阀值时,对相应的子节点的累计资产值进行乘积运算;当大于预设阀值时,对相应的子节点的累计资产值进行线性运算;

按如下公式对累计资产值最大值对应的子节点的累计资产值进行指数运算:

按如下公式对相应的子节点的累计资产值进行乘积运算:T*第二预设数值;

按如下公式对相应的子节点的累计资产值进行线性运算:T+第三预设数值;

其中,T为相应的子节点的累计资产值。

具体实施时,分配模块303具体用于:

按照如下公式确定分配给每个节点的数据值:

其中,B新i为关系链中第i个节点的数据值;

Si为关系链中第i个节点的持有效力值,Si=Bi*Ai,Bi为关系链中第i个节点的已持有资产值,Ai为关系链中第i个节点的持有时长;

Pi为关系链中第i个节点的推广力度值;

B为新增总资产值;

n为关系链中节点的个数,n为整数。

综上所述,本发明方法是根据节点的持有效力和推广力度两方面共同决定,同时保证了参与度(持有效率)和推广度(推广力度)的贡献值。通过该方法能将新增总资产值进行合理有效地分配,使真正的推广者获得有效激励。通过该方法可以增加用户参与度和粘性,同时增强用户节点关系,形成巨大的网络,完成数字资产的能值传输,保证价值流动,促进网络节点数保持在安全水平之上(部分节点的失效,不会引起系统不可用),保障互联网金融去中心化网络的健壮和稳定。该方法同时保证了达成共识一致性的效率,提高了区块链系统的交易吞吐值(即TPS),为区块链向金融领域发展提供了底层技术架构。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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