本发明涉及区块链技术,更具体地说,涉及一种处理区块链混合共识的方法和装置。
背景技术:
区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。
在分布式计算系统中,不同的计算机通过信息交换尝试达成共识,但有时候,系统中的协调计算机或者成员计算机可能因系统错误,而交换错误信息,以致影响最终的系统一致性。比特币采用的工作量证明机制(pow)共识机制就是牺牲了强一致性,获得高可用性和分区容错性,从而达到最终一致性,通过挖矿激励体系,使得矿工通过经济制度去维护整个区块链的最终一致性。而这样的缺陷一是在于交易速度慢,浪费大量能源,二是容易产生分叉,造成比特币持有者利益受损。
技术实现要素:
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种处理区块链混合共识的方法和装置,能够在维护交易安全性的同时提高交易效率,减少系统损耗,减少作恶。
本发明解决其技术问题所采用的技术方案是:构造一种处理区块链混合共识的方法,包括:
s1、客户端收集、验证并向dag网络提交交易或者交易集合;
s2、采用pow结合pos共识算法进行确定性共识;
s3、由共识发起者向dag网络发送共识完成消息。
在本发明所述的处理区块链混合共识的方法中,所述步骤s2进一步包括:
s21、将一定数量的token抵押到矿池中然后开启pow矿池挖矿;
s22、pos矿工采用token换取ticket以获得投票权利;
s23、pos矿工对pow矿工挖矿的dag区块进行投票,基于投票结果划分所述dag区块的奖励和协调dag网络结构。
在本发明所述的处理区块链混合共识的方法中,所述步骤s21进一步包括:
s211、将一定数量的token抵押到矿池中作为保证金;
s212、pow矿工使用sha256算法找到最小的hash,矿池通过最小的hash生成dag区块并在dag网络中广播;
s213、dag网络中的其他矿池验证所述dag区块是否合法,如果合法执行步骤s22,否则扣除所述矿池的保证金并返回步骤s212。
在本发明所述的处理区块链混合共识的方法中,所述步骤s23进一步包括:
s231、pos矿工基于所述pow矿工是否作恶对pow矿工挖矿的dag区块进行投票;
s232、基于投票结果将所述dag区块的奖励分成三部分,第一部分给pow矿工,第二部分给pos矿工,第三部分给基金会;
s233、基于投票结果引导dga网络发展和决定提案。
在本发明所述的处理区块链混合共识的方法中,在所述步骤s232中,所述第一部分为60%,所述第二部分为30%,所述第三部分为10%。
在本发明所述的处理区块链混合共识的方法中,所述第一部分的奖励包括dag区块的增发部分和每个交易的手续费,其中dga区块中hash最小的父块获得所述增发部分,其余父块获得手续费。
在本发明所述的处理区块链混合共识的方法中,在所述步骤s232中,投票的pos矿工获得所述第二部分奖励,未投票的pos矿工不能获得奖励,未获得pos矿工投票的pow矿工会失去所述第一部分奖励中未投票的pos矿工所占比例的奖励。
本发明解决其技术问题采用的另一技术方案是,构造一种处理区块链混合共识的装置,所述装置包括:存储器;处理器,其用于存储指令,当所述指令被执行时使得所述处理器执行所述的处理区块链混合共识的方法。
本发明解决其技术问题采用的另一技术方案是,构造一种计算机可读存储介质,所述存储介质包括指令,所述指令被执行时,使得所述计算机的处理器执行所述的处理区块链混合共识的方法。
实施本发明的处理区块链混合共识的方法、装置和计算机可读存储介质,通过在dag网络中采用pow结合pos共识算法进行确定性共识,引入了dag的高tps特性,能够在维护交易安全性的同时提高交易效率,减少系统损耗,减少作恶。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明的处理区块链混合共识的方法的第一实施例的流程图;
图2是本发明的处理区块链混合共识的方法的第二实施例的采用pow结合pos共识算法进行确定性共识的步骤流程图;
图3示出了图2中的dag网络结构示意图;
图4是图2中的dag矿池结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明涉及一种处理区块链混合共识的方法,包括:s1、客户端收集、验证并向dag网络提交交易或者交易集合;s2、采用pow结合pos共识算法进行确定性共识;s3、由共识发起者向dag网络发送共识完成消息。实施本发明的处理区块链混合共识的方法、装置和算机可读存储介质,通过在dag网络中采用pow结合pos共识算法进行确定性共识,引入了dag的高tps特性,能够在维护交易安全性的同时提高交易效率,减少系统损耗,减少作恶。
图1是本发明的处理区块链混合共识的方法的第一实施例的流程图。如图1所示,在步骤s1中,客户端收集、验证并向dag网络提交交易或者交易集合。例如,在本发明的一个优选实施例中,dag网络初始化,客户端在一段时间内接受到单笔交易或者交易集合,然后进行交易有效性验证。比如多个客户端均提交交易,发现其中部分客户端余额不足,那将会拒绝该交易。只有有效的交易或交易集合才能通过有效性验证并提交到dag网络。本领域技术人员知悉,客户端可以采用本领域中已知的任何方法进行交易的收集验证提交,基于本发明的教导,本领域技术人员可以采用任何现有技术完成该步骤,在此就不再累述了。
在步骤s2中,采用pow结合pos共识算法进行确定性共识。比特币采用的工作量证明机制(pow)共识机制就是牺牲了强一致性,获得高可用性和分区容错性,从而达到最终一致性,通过挖矿激励体系,使得矿工通过经济制度去维护整个区块链的最终一致性。因此比特币被人一直诟病的缺陷有如下几个方面。1.交易速度慢,浪费大量能源。pow在比特币十年的发展中经过时间的校验,安全可靠,但造成不必要的资源浪费,挖矿设备的军备竞赛是极恶劣的。在比特币区块链中,每10分钟才能出一个块,每小时只能够出六个块,这对于大量用户的即时交易来说是无法实现的。2.比特币采用的pow机制,本质就是算力投票,谁贡献更多的算力,谁就有更多的表决权来决定最长链,就能代表大部分人的意见。因此,实质上pow机制下矿工在比特币社区中掌握最终决策权。这时,就算你持有绝大多数的比特币,也无法决定比特币的发展方向。近来,比特币的硬分叉导致比特币再次大跌,而比特币的持有者却无法拒绝分叉。因此,在本发明中,我们采用pow结合pos共识算法进行确定性共识,在dag网络中一方面结合pow的安全特性,另一方面结合pos的环保理念,pow矿工来创建区块搭建区块链,pos矿工来确保这些区块符合用户的利益,解决了比特币社区中比特币持有者没有一席之地的尴尬境地。并且创新性地引入dag的高tps特性,从而能够在维护交易安全性的同时提高交易效率,减少系统损耗,减少作恶。
在步骤s3中,由共识发起者向dag网络发送共识完成消息。本领域技术人员知悉,客户端可以采用本领域中已知的任何方法进行共识完成消息的发送,基于本发明的教导,本领域技术人员可以采用任何现有技术完成该步骤,在此就不再累述了。
图2是本发明的处理区块链混合共识的方法的第二实施例的采用pow结合pos共识算法进行确定性共识的步骤流程图。图2中示出了本发明的优选的采用pow结合pos共识算法进行确定性共识的步骤流程。图3示出了图2中的dag网络结构示意图。图4是图2中的dag矿池结构示意图。
本领域技术人员知悉,在区块链中,只要是token的持有者,就可以享有发言权。为了在维护交易安全性的同时提高交易效率,减少系统损耗,减少作恶;关键就在于不能让算力集中化的pow矿工掌握过多的权力。为此,我们引入pos+pow的混合机制。如图2所示,在步骤s21中,首先将一定数量的token抵押到矿池中然后开启pow矿池挖矿。即,以代币抵押开启pow矿池挖矿,即矿池的建立需要一定数目的token抵押在dag网络中。图3示出了图2中的dag网络结构示意图。如图3所示,m为主块(mainblock),w为见证块(witnessblock),t为交易(transaction)。在dag网络中,区块=交易=地址。将一组交易以dag结构组合来代替比特币的区块数据结构,可以引用多个父块。
在本发明的优选实施例中,首先将一定数量的token抵押到矿池中作为保证金。这样如果其中一个矿池作恶,其余矿池可扣除相应的保证,从而避免矿池作恶。然后pow矿工使用sha256算法找到最小的hash,矿池通过最小的hash生成dag区块并在dag网络中广播。优选地,矿工使用sha256算法找到最小的hash,矿池每64s通过最小的hash生成主块,主网络通过主块连接成为主链,矿工在本申请中扮演类似于比特币矿工的角色,但如后续步骤所述他们只获得部分出块奖励。接着,dag网络中的其他矿池验证所述dag区块是否合法,如果合法执行步骤s22,否则扣除所述矿池的保证金。
在步骤s22中,pos矿工采用token换取ticket以获得投票权利。pos是本申请的处理区块链混合共识的方法的治理核芯。pos矿工可以选择锁定token换取ticket,ticket主要有两部分作用:1.可以批准pow,矿池在出块的同时必须在块中引用足够多的ticket签名;2.投票还可以充当协调器的角色,引导dag网络结构的发展,已经可以对任何涉及公开的规则变更提案进行投票,选择同意或不同意。例如可以决定出块奖励的规则等等(在后续步骤中s23中详细介绍)。
在步骤s23中,pos矿工对pow矿工挖矿的dag区块进行投票,基于投票结果划分所述dag区块的奖励和协调dag网络结构。优选地,在本发明的优选实施例中,pos矿工基于所述pow矿工是否作恶对pow矿工挖矿的dag区块进行投票;基于投票结果将所述dag区块的奖励分成三部分,第一部分给pow矿工,第二部分给pos矿工,第三部分给基金会;基于投票结果引导dga网络发展和决定提案。在本发明中,所述第一部分为60%,所述第二部分为30%,所述第三部分为10%。优选地,所述第一部分的奖励包括dag区块的增发部分和每个交易的手续费,其中dga区块中hash最小的父块获得所述增发部分,其余父块获得手续费。优选地投票的pos矿工获得所述第二部分奖励,未投票的pos矿工不能获得奖励,未获得pos矿工投票的pow矿工会失去所述第一部分奖励中未投票的pos矿工所占比例的奖励。
下面对步骤s23的原理和过程进一步说明如下。在本发明中,拥有token的客户端可以选择对矿工挖出去的dag区块投票,被称作pos矿工。在全新的机制下,每个pow矿工挖出来的dag区块,包含了pos矿工的n张表决区块是否有效的投票。如果pow矿工作恶,那么他们的区块奖励会被pos矿工投票剥夺。这样一来,就可以有效减少矿工挖空块的作恶行为。在这种投票机制下,pow矿工也希望pos矿工对他们打包的区块进行投票,因为越多投票意味着他们的区块奖励也就越高。每个区块最多有n个pos投票,少一票pow矿工奖励就减少1/n。而对于pos矿工来说,投票可获得30%的收益,如果不投票,则获取不到,dag区块仍然可以保持结构,只是没有pos的确认,dag结构需要延迟判断,最终的确定性,有了pos的投票,可以加快这个确认过程,无pos投票,相当于总量减少30%,这样可以促进pos进行投票。所以当每个新的dag区块生成后,该区块的奖励分成三份:60%给pow矿工;30%给pos矿工;10%给基金会。在本发明的优选实施例中,例如由于dag结构可以引用多个父块,hash最小的父块,得到块头增发的部分,其他父块可以得到手续费。在本发明的优选实施例中,基金会可以将获得的奖励用以维护项目本身以及开发新的技术应用,基金会的比例可在pos投票治理里进行修改。
因此,本发明可以通过硬件、软件或者软、硬件结合来实现。本发明可以在至少一个计算机系统中以集中方式实现,或者由分布在几个互连的计算机系统中的不同部分以分散方式实现。任何可以实现本发明方法的计算机系统或其它设备都是可适用的。常用软硬件的结合可以是安装有计算机程序的通用计算机系统,通过安装和执行程序控制计算机系统,使其按本发明方法运行。
本发明还可以通过计算机程序产品进行实施,程序包含能够实现本发明方法的全部特征,当其安装到计算机系统中时,可以实现本发明的方法。本文件中的计算机程序所指的是:可以采用任何程序语言、代码或符号编写的一组指令的任何表达式,该指令组使系统具有信息处理能力,以直接实现特定功能,或在进行下述一个或两个步骤之后实现特定功能:a)转换成其它语言、编码或符号;b)以不同的格式再现。
因此,本发明还涉及一种处理区块链混合共识的装置,所述装置包括:存储器;处理器,其用于存储指令,当所述指令被执行时使得所述处理器执行上述任一实施例所述的处理区块链混合共识的方法。
本发明还涉及一种计算机可读存储介质,所述存储介质包括指令,所述指令被执行时,使得所述计算机的处理器执行上述任一实施例所述的处理区块链混合共识的方法。
实施本发明的处理区块链混合共识的方法、装置和计算机可读存储介质,通过在dag网络中采用pow结合pos共识算法进行确定性共识,引入了dag的高tps特性,能够在维护交易安全性的同时提高交易效率,减少系统损耗,减少作恶。
虽然本发明是通过具体实施例进行说明的,本领域技术人员应当明白,在不脱离本发明范围的情况下,还可以对本发明进行各种变换及等同替代。另外,针对特定情形或材料,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。