一种区块链技术中分布式记账权生成方法与流程

文档序号:18901400发布日期:2019-10-18 21:59阅读:476来源:国知局
一种区块链技术中分布式记账权生成方法与流程

本发明属于区块链技术中记账权生成领域,具体是一种区块链技术中分布式记账权生成方法。



背景技术:

目前,分布式记账以及与之相关的区块链技术在解决数据防篡改即数据安全性和匿名性具有诸多优势。现有的记账权生成方式大概分为工作量证明机制(pow)、权益证明机制(pos)以及授权权益证明机制(dpos)三类。

工作量证明机制(pow)也就是多劳多得,付出的工作量越多,得到区块奖励的概率就越大,运行原理是这样的:全网想要达成共识,首先通过解答“哈希函数”的方式来证明自己完成了一定的工作量,哪个节点最快、准、狠的完成工作,解答正确哈希值,谁就会获得记录交易(记账)的权力,进而获得区块奖励。pow的优点是,完全去中心化,公平公正,不需要中心化的管理机构,节点之间公平竞争,谁先解出题目,谁就获得相应收益。其主要缺点是浪费能源。

权益证明机制(pos),是为了弥补比特币工作量证明机制(pow)的不足而产生了一种新共识机制,即拥有越多股权,就可以获得更多奖励。这里的股权是指你持有数字货币的数量和时间,根据它来分配权益,类似股票的分红制度。持有者的币越多,持有的时间越长,即币龄(币龄=持币数×持币时间)越大,就能拿到越多的分红,也就有更大的记账权利。pos一定的优势在于能够在某些程度上提升交易处理效率,不再消耗大量的能源去竞争记账;但相应的,大量的代币集中在少部分人手中,致使持币越多,越容易获得挖矿的权利,最终会形成一个强者恒强,弱者恒弱的局面,挖矿集中在少部分人手中,去中心化会渐渐演变成多中心化。

授权权益证明机制(dpos),即在权益证明(pos)基础上优化而来,通过投票选举的方式选出生产者,代表持币者履行权利和义务,而不是用算力来决定,也就是将“记账权力”委托给一小群“超级节点”。在委托权益证明的设定里,需要选取21个超级节点来稳定轮流产生区块。在委托权益证明机制(dpos)中,不需要算力解答哈希函数,而是由持币者投票选出生产者。因此,相对于pow,dpos机制处理交易速度有了巨大提升,预计最高可达到每秒数百万币的确认速度。但是,dpos减弱了去中心化的程度,由选出的代表进行记账,而且代表是可以直接记账直到被选下去为止,这个周期较长,同样存在节点不作为,强者恒强的情况,有一定的中心化控制风险。

本发明所描述的方法区别于以上几种方法,使之既比pow方式节约了能源消耗,又鼓励更多的节点参与,并且较pos以及dpos更相对公平。

发明专利(cn108600161a)公开了一种公平高效的区块链共识方法,包括如下步骤:(1-1)获得当前记账权的节点搜索当前时间段内的全网未确认交易,并增加一个用于发行新虚拟币奖励的交易,形成当前区块体的交易集合;(1-2)当前记账节点判断是否满足记账条件,如果不满足,则回到步骤(1-1);否则,进入下一步;(1-3)计算当前区块,将创建好的区块广播全网验证;采用当前区块的区块头参数计算出至少一个参数,根据所述至少一个参数确定获得下一个区块记账权的节点;(1-4)其他节点对当前区块记账节点的合法性、当前区块的正确性、获得下一个区块记账权节点的合法性进行验证;如果记账节点的合法性、区块的正确性、获得下一个区块记账权节点的合法性不能全部通过验证,则回到步骤(1-3),所述获得当前记账权的节点对所述区块进行修正区块并重新广播全网验证;如果通过验证,则进入下一步;(1-5)把所述区块附加到区块链上;获得下一个区块记账权的节点开启下一个区块的计算。该发明强调根据区块头计算下个记账节点,活跃节点有相同概率得到下一个区块记账权,对于活跃节点的错误率并未进行统计,则会降低记账的准确度。该方法一个比较难克服的缺点是当前节点根据当前区块头部信息计算下个记账节点,这样当计算完成后,下个节点掉线或者网络错误时,新区块就无法顺利产生;此外,如1-4所说,如果当前区块没有通过复验和审核,而调回1-3步,但记账节点由于错误甚至恶意一直出错,该方法会出现死循环和卡块的问题。

发明专利(cn108470276a)公开了一种采用代理记账的区块链共识方法,区块链的节点类型包括记账服务节点和普通节点,记账服务节点提供区块链记账服务,普通节点委托记账服务节点代理其全部记账权;共识过程包括以下步骤:(1-1)当前记账服务节点搜索当前时间段内的全网未确认交易,并增加一个用于发行新的虚拟币奖励的交易和代理记账的服务费交易,形成当前区块体的交易集合;(1-2)当前记账服务节点判断是否满足记账条件,如果不满足,则回到步骤(1-1);否则,进入下一步;(1-3)计算当前区块,将创建好的区块广播全网验证,采用当前区块的区块头参数计算出至少一个参数,根据所述至少一个参数确定获得下一个区块记账权的节点;(1-4)其他节点对当前区块的记账服务节点的合法性、当前区块的正确性、所述获得下一个区块记账权节点的合法性进行验证;如果记账服务节点的合法性、区块的正确性、获得下一个区块记账权节点的合法性不能全部通过验证,则,回到步骤(1-3),所述获得当前记账权的节点对所述区块进行修正并重新广播全网验证;在记账服务节点的合法性、区块的正确性、获得下一个区块记账权节点的合法性全部通过验证后,把所述区块附加到区块链上,进入下一步;(1-5)所述获得记账权的节点在限定的时间内在网络中广播其已获得下一个区块记账权的签名文件和委托一个记账服务节点代理其记账权的签名文件;获得代理记账权的记账服务节点在网络中广播其已获得下一个区块的代理记账权的签名文件;并开启下一个区块的计算。该发明强调获取记账权的节点委托记账服务节点记账,其他节点共同验证其合法性、正确性和下一个区块记账权。该方法依然有之前提到的问题,即当前节点根据当前区块头部信息计算下个记账节点,这样当计算完成后,下个节点掉线或者网络错误时,新区块就无法顺利产生;此外,如1-4所说,如果当前区块没有通过复验和审核,而调回1-3步,但记账节点由于错误甚至恶意一直出错,该方法会出现死循环和卡块的问题,还有全网所有节点来验证区块有效性又增加了网络负担,成为了一种类pow网络,增加了耗能,降低了tps(系统每秒钟能够处理的业务数量)。



技术实现要素:

为了克服现有记账方法的记账效率低及公平性差的缺陷,本发明提供了一种在防止账本被篡改同时提高了记账效率、减少了对算力的浪费和更加公平的获取记账权的区块链技术中分布式记账权生成方法。

本发明为了实现上述目的所采用的技术方案是:

一种区块链技术中分布式记账权生成的方法,该方法包括:通过加密标识号匿名接入系统中用来同步数据的普通节点;获得当前区块打包记账权的当前记账节点;对当前区块进行监督、复验、广播的当前发布节点;由当前节点选出的进入待记账队列的待记账节点和待发布节点;长度为7组的每组包括一个待记账节点和待发布节点的待记账队列;收益分配器和随机加权记账权生成器;每个节点都具有收益分配、随机加权记账生成,打包区块,发布区块,同步区块等一系列算法和功能,但根据其具体权限和时间点而被选择性使用与之相关的算法和功能;整个记账过程为,1-1当前记账节点对需要打包的数据进行整理和打包;1-2当前发布节点进行复验和发布;1-3如果1-2成功则在当前记账节点和当前发布节点出队前,由当前记账节点计算收益并进行分配,然后使用随机加权记账权生成器,在普通节点中遴选出新的待记账节点和待发布节点,由当前发布节点核验发布后,把待记账组从队尾补充到待记账队列中,如果队列不满足7组,重复遴选过程,保证整个队列满足7组,直至当前记账组出队列,如果1-2失败,该记账组出队列,由后面的记账组重复1-1工作;1-4,普通记账节点同步1-3成功发布出的区块。

进一步地,所述当前记账节点在通过步骤1-1与1-2后,产生一个新区块,则当前记账节点在出队列前会根据随机加权记账权把选出的节点标记成为待记账或待发布节点,即任何普通节点都可以在当前记账节点、当前发布节点、待记账节点和待发布节点这几种身份和权限间转换。

优选的,所述加密标识号是使用sha算法生成一个40位长度的唯一的加密标识号作为该节点的在该网络中的名称。默认的,单个区块记账节点是不被信任的,可能随时离线。

进一步地,所述待记账节点队列中的7个待记账组均由当前记账节点在记录新增区块后通过随机加权记账权生成器生成和补充,有与之对应的当前发布节点进行审核和发布,然后数据同步至区块链上其他所有的节点中,一个待记账组的两个节点共同完成一个新增节点的记录、发布以及待记账组队列维护。所述待记账组队列维护的任务是当前记账组完成工作后由队列首位离开待记账节点队列,重新进入待选节点池中;当队列中某个节点离线或者处于未响应以及出错状态时,当前记账节点会将该节点(待记账或待发布)以及与之对应的节点(待发布或待记账)一并剔除出队列并通过随机加权记账权生成方法新选一个待记账组补充至队列末尾,整个队列维护完成时保证其有7个待记账节点组。

更进一步地,所述待记账组由两个节点(待记账节点和待发布节点)组成;待记账节点用来对未来的区块内容进行打包,待发布节点对待记账节点的打包内容进行审核和监督,防止出现错误和恶意篡改的内容,并将审核通过的区块发布出去然后由普通节点同步到整个区块链上。

进一步地,所述随机加权记账权生成器在需要重新补充待记账节点队列时,会把已经完成任务的队列头部记账节点、发布节点及已经离线还在待记账队列的记账节点去除,然后在节点池中通过随机加权记账算法找出新的代表节点的加密标识号,通过该标识号找到新的待记账节点,并将其补充至待记账队列中;补充完成后,所述随机加权记账权生成方法会检查待记账队列的数量和在线状况,判断其满足7组并都是激活状态便停止补充待记账组。

更进一步地,所述随机加权记账权生成方法是按顺序给当前记账节点相邻两侧的待选记账节点标号以及权重,然后通过伪随机算法随机加权选出两个编号,找出对应编号的记账节点加密标识号,最后通过该标识号找到该记账节点,并将其补充至待记账队列中。

优选的,所述权重是通过记账节点在线时间及节点错误率来进行调节,记账节点在线时间不超过一周不计算加权,超过一周不超过一月增加1个加权值,超过一个月增加2个加权值,超过3个月增加3个加权值;记账节点出错率低于5%增加1个加权值,低于0.1-1%增加2个加权值,低于0.1%增加3个加权值。所述当前记账节点根据随机加权记账权为每一个节点计算其自身的待选序列区间,然后再生成一个用来中签和比对的随机数,当生成的记账伪随机数包含在某一个节点的加权后的待选序列区间时,则该节点被选为待记账节点,同理再选出待发布节点,两个节点组成待记账组进入待记账节点队列;其他落选的节点还是作为普通节点进行数据同步工作。

进一步地,所述收益分配器是在每隔15秒钟产生一个新的区块,当新的区块产生时,与之同时会有3个token作为奖励产生,其记录和发布该区块的节点各得一个token,剩下的token均分至其他所有节点;每个区块记账节被成功记录时,则可以通过收益分配器对所有同步节点、发布节点及记录节点根据状态、在线时长及错误率进行奖励。

本发明的记账权生成方法避免了通过工作量证明的方式对能源的巨大浪费以及部分恶意节点进行算力攻击,通过随机与在线时间以及错误率加权的方式选出的记账节点也使记账权的获取变得相对公平和透明,避免了股权证明中的相对集中的问题。记账与结果发布分开进行的策略也防止出现恶意节点恶意打包非法数据的行为。3个收益token中,除去2个分别分给记账节点和发布节点外,在线的其他节点均分最后一个token的做法也避免了一直没有被选中的节点丧失继续遴选的动力。

附图说明

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

图1为本发明中的分布式记账权生成方法流程图;

图2为图1所示的随机加权记账权生成的示意图。

具体实施方式

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

如图1所示,本实施例的区块链技术中分布式记账权生成的方法,该方法包括:通过加密标识号匿名接入系统中用来同步数据的普通节点;获得当前区块打包记账权的当前记账节点;对当前区块进行监督、复验、广播的当前发布节点;由当前节点选出的进入待记账队列的待记账节点和待发布节点;长度为7组的每组包括一个待记账节点和待发布节点的待记账队列;收益分配器和随机加权记账权生成器;每个节点都具有收益分配、随机加权记账生成,打包区块,发布区块,同步区块等一系列算法和功能,但根据其具体权限和时间点而被选择性使用与之相关的算法和功能;整个记账过程为,1-1当前记账节点对需要打包的数据进行整理和打包;1-2当前发布节点进行复验和发布;1-3如果1-2成功则在当前记账节点和当前发布节点出队前,由当前记账节点计算收益并进行分配,然后使用随机加权记账权生成器,在普通节点中遴选出新的待记账节点和待发布节点,由当前发布节点核验发布后,把待记账组从队尾补充到待记账队列中,如果队列不满足7组,重复遴选过程,保证整个队列满足7组,直至当前记账组出队列,如果1-2失败,该记账组出队列,由后面的记账组重复1-1工作;1-4,普通记账节点同步1-3成功发布出的区块。

进一步地,所述当前记账节点在通过步骤1-1与1-2后,产生一个新区块,则当前记账节点在出队列前会根据随机加权记账权把选出的节点标记成为待记账或待发布节点,即任何普通节点都可以在当前记账节点、当前发布节点、待记账节点和待发布节点这几种身份和权限间转换。

优选的,所述加密标识号是使用sha算法生成一个40位长度的唯一的加密标识号作为该节点的在该网络中的名称。默认的,单个区块记账节点是不被信任的,可能随时离线。当节点接入链时会根据sha算法生成一个40位长度的节点加密标识号进入待选节点池,此时该节点除去同步区块的功能其他功能都没有权限使用;当节点进入待记账节点队列时,依然只有同步区块的功能可以使用;当节点a被选为记账节点,节点b被选为同组的发布节点并且到它们记录新区块时,节点a的记账、随机加权记账权生成算法、收益分配算法会被授权使用,同组的节点b的发布以及与之对应的审核节点a的相应权限会被授权使用。

进一步地,所述待记账节点队列中的7个待记账组均由当前记账节点在记录新增区块后通过随机加权记账权生成器生成和补充,有与之对应的当前发布节点进行审核和发布,然后数据同步至区块链上其他所有的节点中,一个待记账组的两个节点共同完成一个新增节点的记录、发布以及待记账组队列维护。所述待记账组队列维护的任务是当前记账组完成工作后由队列首位离开待记账节点队列,重新进入待选节点池中;当队列中某个节点离线或者处于未响应以及出错状态时,当前记账节点会将该节点(待记账或待发布)以及与之对应的节点(待发布或待记账)一并剔除出队列并通过随机加权记账权生成方法新选一个待记账组补充至队列末尾,整个队列维护完成时保证其有7个待记账节点组。

更进一步地,所述待记账组由两个节点(待记账节点和待发布节点)组成;待记账节点用来对未来的区块内容进行打包,待发布节点对待记账节点的打包内容进行审核和监督,防止出现错误和恶意篡改的内容,并将审核通过的区块发布出去然后由普通节点同步到整个区块链上。

如图2所示,所述随机加权记账权生成器在需要重新补充待记账节点队列时,会把已经完成任务的队列头部记账节点、发布节点及已经离线还在待记账队列的记账节点去除,然后在节点池中通过随机加权记账算法找出新的代表节点的加密标识号,通过该标识号找到新的待记账节点,并将其补充至待记账队列中;补充完成后,所述随机加权记账权生成方法会检查待记账队列的数量和在线状况,判断其满足7组并都是激活状态便停止补充待记账组。

进一步地,所述随机加权记账权生成方法是按顺序给当前记账节点相邻两侧的待选记账节点标号以及权重,然后通过伪随机算法随机加权选出两个编号,找出对应编号的记账节点加密标识号,最后通过该标识号找到该记账节点,并将其补充至待记账队列中。

优选的,所述权重是通过记账节点在线时间及节点错误率来进行调节,记账节点在线时间不超过一周不计算加权,超过一周不超过一月增加1个加权值,超过一个月增加2个加权值,超过3个月增加3个加权值;记账节点出错率低于5%增加1个加权值,低于0.1-1%增加2个加权值,低于0.1%增加3个加权值。所述当前记账节点根据随机加权记账权为每一个节点计算其自身的待选序列区间,然后再生成一个用来比对的随机数,当生成的记账伪随机数包含在某一个节点的加权后的待选序列区间时,则该节点被选为待记账节点,同理再选出待发布节点,两个节点组成待记账组进入待记账节点队列;其他落选的节点还是作为普通节点进行数据同步工作。

进一步地,所述收益分配器是在每隔15秒钟产生一个新的区块,当新的区块产生时,与之同时会有3个token作为奖励产生,其记录和发布该区块的节点各得一个token,剩下了token均分至其他的所有节点;每个区块记账节被成功记录时,则可以通过收益分配器对所有同步节点、发布节点及记录节点根据状态、在线时长及错误率进行奖励。这样一年会新增365×24×60/15×3=105120个token,这些token作为收益用来奖励给节点支付网络带宽、服务器等各项费用。

从以上的整个规则中可以看出,整个方法的实施需要有14个以上的节点参与,节点越少节点被选中的概率越大,当节点少于14个时,随机加权记账权算法在检查队列长度时没法保证有7个代记账组,整个链将不会有新的区块产生。该方法的区块内容以及块与块的链接方式与现有的区块链相同,都是上一个区块的内容整体的hash值会作为下一个区块的头部的一部分,保证整个链的连续性以及数据的不可篡改性。由于每个节点都同步一份数据,再加上记账与发布权限的分离以及发布节点的审核监督作用,使得即使有少部分恶意节点也没法对整个链的稳定和数据安全造成影响。

实施例1

某个采用该记账权算法的区块链系统总共包含了50个节点,当前记账节点m和当前发布节点n完成了打包、生成新块和发布广播的任务,然后进行新待记账节点与待发布节点的筛选,其中:

节点a接入链上时使用sha算法计算一个加密标识号,0x05b951b465a74873b2bdf9163b50d2b22fc17e3f,该节点加入待选节点池中根据池中已有节点计算的排序号为73,该节点在线6天,没有时间加权,错误率为2%有1个错误率加权值,那么73-74均为该节点选中范围。随机加权记账权生成的记账伪随机数为73,发布为随机数为36,节点a被选为待记账节点,进入待记账节点队列。

节点b接入链上时使用sha算法计算一个加密标识号,0xbcc83ec74a87bf798214f06188140e0f1bbf4160,该节点加入待选节点池中根据池中已有节点计算的排序号为33,该节点在线33天,有2个时间加权值,错误率为0.8%有2个错误率加权值,那么33-37均为该节点选中范围。随机加权记账权生成的记账伪随机数为73,发布为随机数为36,节点b被选为待发布节点,进入待记账节点队列。

节点c接入链上时使用sha算法计算一个加密标识号,0x291f758d6b86c32ae950eca4beca55d1e7121571,该节点加入待选节点池中根据池中已有节点计算的排序号为10,该节点在线96天,有3个时间加权值,错误率为6%没有错误率加权,那么10-13均为该节点选中范围。随机加权记账权生成的记账伪随机数为73,发布为随机数为33,节点c没有被选中,继续作为同步节点不同链上的各项数据并取得较小的收益。

完成一组筛选工作后,当前记账节点核验当前待记账组已经满足7个待记账组且都在线的需求,然后当前记账节点m与发布节点n各得到1个token奖励,其余48个节点每个得到1/48个token的奖励,m、n节点出队列,由后续的代记账组循环产出新的区块。

实施例2

某个采用该记账权算法的区块链系统总共包含了50个节点,当前记账节点m和当前发布节点n完成了打包、生成新块和发布广播的任务,然后进行新待记账节点与待发布节点的筛选,其中:

节点a接入链上时使用sha算法计算一个加密标识号,0xfeb3ce4de3856a20807b4b202d277e9115a1ea34,该节点加入待选节点池中根据池中已有节点计算的排序号为20,该节点在线7天,有1个时间加权值,错误率为0.09%有3个错误率加权值,那么20-24均为该节点选中范围。随机加权记账权生成的记账伪随机数为58,发布为随机数为18,节点a被选为待记账节点,进入待记账节点队列。

节点b接入链上时使用sha算法计算一个加密标识号,0x4583779ba9ec58a5f6a82594b58762c2e92b2d4a,该节点加入待选节点池中根据池中已有节点计算的排序号为56,该节点在线91天,有3个时间加权值,错误率为0.1%有2个错误率加权值,那么56-61均为该节点选中范围。随机加权记账权生成的记账伪随机数为58,发布为随机数为25,节点b没有被选中,继续作为同步节点不同链上的各项数据并取得较小的收益。

节点c接入链上时使用sha算法计算一个加密标识号,0x7412261370cedcc79807f481ce69c7936626d2be,该节点加入待选节点池中根据池中已有节点计算的排序号为86,该节点在线30天,有2个时间加权值,错误率为5%有1个错误率加权值,那么86-89均为该节点选中范围。随机加权记账权生成的记账伪随机数为58,节点c被选为待发布节点,进入待记账节点队列。

完成一组筛选工作后,当前记账节点核验当前待记账组,发现又有代记账组中的节点离线发生错误,则当前记账与发布节点重复上面的筛选过程,使其代记账队列最终满足7个待记账组且都在线的需求,然后当前记账节点m与发布节点n各得到1个token奖励,最后系统只留下30个在线节点每个得到1/30个token的奖励,m、n节点出队列,由后续的代记账组循环产出新的区块。

实施例3

某个采用该记账权算法的区块链系统总共包含了50个节点,当前记账节点m和当前发布节点n完成了打包、生成新块和发布广播的任务,然后进行新待记账节点与待发布节点的筛选,其中:

节点a接入链上时使用sha算法计算一个加密标识号,0x1382244e1784be148fb78b24983c206ebc95928f,该节点加入待选节点池中根据池中已有节点计算的排序号为92,该节点在线29天,有1个时间加权值,错误率为4.9%有1个错误率加权值,那么92-94均为该节点选中范围。随机加权记账权生成的记账伪随机数为26,发布为随机数为5,节点a被选为待记账节点,进入待记账节点队列。

节点b接入链上时使用sha算法计算一个加密标识号,0xee86feb4ce419260b83f61f5758a8a87d991a7f3,该节点加入待选节点池中根据池中已有节点计算的排序号为6,该节点在线90天,有2个时间加权值,错误率为5%没有错误加权,那么6-8均为该节点选中范围。随机加权记账权生成的记账伪随机数为26,发布为随机数为5,节点b被选为待发布节点,进入待记账节点队列。

节点c接入链上时使用sha算法计算一个加密标识号,0xb9eb0bace51a5cf9f5e1494567d0487589d11c51,该节点加入待选节点池中根据池中已有节点计算的排序号为49,该节点在线5天,没有时间加权值,错误率为3%有1个错误率加权值,那么49-50均为该节点选中范围。随机加权记账权生成的记账伪随机数为26,发布为随机数为10,节点c没有被选中,继续作为同步节点不同链上的各项数据并取得较小的收益。

完成一组筛选工作后,当前记账节点核验当前待记账组已经满足7个待记账组,同时发现有新加入的在线节点50个,然后当前记账节点m与发布节点n各得到1个token奖励,其余48个节点每个得到1/98个token的奖励,m、n节点出队列,由后续的代记账组循环产出新的区块。

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

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