一种基于P2P金融的区块链机制与共识算法的制作方法

文档序号:12804615阅读:993来源:国知局
一种基于P2P金融的区块链机制与共识算法的制作方法与工艺

本发明涉及一种区块链技术,特别是一种基于p2p金融区块链机制的共识算法。



背景技术:

近年来p2p金融发展迅速,但是在发展过程中也出现了一些问题,公司公信力不够,客户并不十分信任公司所带来的项目,这也是p2p金融发展过程中的一个很大的阻碍。然而区块链技术的面世,给p2p金融领域带来了福音,区块链技术建立的是一种去中心化的共识机制,这种机制结合了数字加密与博弈论,使得参与者无须任何外部强制性约束的情况下即形成了相互牵制的可信环境,这种可信环境去除了中心化授权与外部管制的必要性,反而恰恰是建立在互相不信任的基础之上的。于是在这种去中心化、去信任化的区块链架构中,所解决的正是这个充满虚拟与匿名的网络世界的信用与治理问题,具有广阔的应用领域和重要的应用价值。

在区块链系统中,多个节点各自维护一个区块链,这种分布式环境下的系统,要保证数据在所有节点的一致性,需要引入分布式系统的一致性算法。在区块链系统中,多个节点各自维护一个区块链,要保证数据在所有节点的一致性,需要保证每个节点维护的区块链是一样的。随着电子商务网站等分布式应用的高速发展,系统可能会遭受到更多的攻击,从而导致节点中存在“叛徒节点”,要保证系统在这种情况下保持正常运作,且忠诚的正常节点的数据保持一致,在这样的情况下,引入了基于拜占庭算法的建块方式。关键的服务不仅需要能够容忍良性错误,还需要容忍拜占庭错误。就共识算法而言,早在1999年miguelcastro(卡斯特罗)和barbaraliskov(利斯科夫)就提出了一种高效的方法来解决这种分布式系统中存在的拜占庭问题,2009年中本聪提出了工作量证明(pow)的方法来解决分布式系统中一致性的问题。然而,p2p金融由于其本身业务特点的原因,这些方案仍然不具备很强的公信力。



技术实现要素:

本发明的目的在于提供一种基于p2p金融区块链机制的共识算法,共识算法包括如下步骤:(1)准备阶段:选取leader且当leader收到足够多的交易之后由leader开始计算区块;(2)计算区块,最后将计算好的区块广播;(3)区块的状态根以及区块头部部分的一致性验证;(4)区块和交易的存储;(5)完成上述步骤后,重复开启下一轮的计算。

优选的,所述步骤(1)具体操作步骤为:使用轮询算法选取leader,从redis中读取交易,当leader收到的交易数量大于1的时候,进入计算区块,当leader收到的交易数量小于1的时候,返回,继续从redis中读取交易。

优选的,所述步骤(2)具体操作步骤为:获取前一个区块的哈希值、状态树根,计算交易集合的默克尔树树根,并获取前一个区块状态根,此后计算区块头部哈希值,最后将计算好的区块广播。

优选的,所述步骤(3)具体操作步骤为:节点收到区块之后,首先验证前一个区块的状态根是否正确,如果错误则广播反对票,如果正确则继续验证区块头部部分,如果头部验证错误,同样广播反对票,如果头部验证通过,那么广播同意票给其他节点。

优选的,所述步骤(4)具体操作为:节点接收对区块的投票并统计,若收到超过1/3以上的反对票,则放弃此区块并重新开始计算,若收到超过2/3以上的赞成票,则执行交易并将区块和交易存储到数据库。

优选的,基于p2p金融区块链机制在区块链的每个节点均保留有区块链系统所有的信息,在建立区块链系统的时候同时建立交易链和用户链双链。

优选的,交易链负责区块链系统中产生的所有交易以及外部应用服务器发送过来的交易,用户链负责存储和维护用户信息。

优选的,仅在需要的地区部署用户链,其他地域将不会部署用户链,仅会部署交易链。

优选的,区块链在执行交易的过程中,会实时与所述用户链进行交互,获取用户信息并对所述用户信息进行相应更新。

本发明的共识算法根据确定有限状态自动机的特点,在具有相同的初始状态、相同的交易集合前提下,保证了交易执行结果的一致性,使用这种方式进行计算,可以使得交易的执行和区块的存储与区块计算并行执行,系统不需要等待所有的交易执行完毕才可以进行下一个区块的计算,在完成一致性之后就可以进行下一轮计算,一定程度上减少了区块链共识所需要消耗的时间,从而提高了交易的吞吐,有效的缓解了目前区块链交易速度不足的问题,同时提高了系统的公信力。

根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。

附图说明

后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。本发明的目标及特征考虑到如下结合附图的描述将更加明显,附图中:

图1是根据本发明实施例的基于p2p金融的区块链机制示意图;

图2是根据本发明实施例的基于p2p金融的共识算法示意图。

具体实施方式

在进行具体实施方式的说明之前,为了更为清楚的表达所论述的内容,首先说明本发明所涉及的有限状态自动机的特性这一概念。p2p金融行业的所有的交易都可以称作是确定的有限状态自动机(dfsm),定义交易状态机m为五元组m=(q,σ,δ,q0,f),q={(q0,q1,q2,…,qm)},q是交易状态机所有状态的集合;σ是输入事件的集合;δ是转换函数的集合δ:q×σ→q;q0是初始状态值q0∈q,f是终止状态的集合对同一个确定有限状态自动机而言,在q0相同、σ输入事件的集合相同的情况下,所得到的终止状态fi也是相同的,其中fi∈f。

企业区块链系统节点需要分散布置,各个组织机构都会有区块链的若干个节点,这就在一定程度上保证了区块链系统具有去中心化的特性。各个节点均保留有区块链系统所有的信息,包括计算代码、账本信息等,企业区块链系统处于对其客户隐私的保护的角度出发,在建立区块链系统的时候,会建立交易链和用户链双链,其中交易链主要负责区块链系统中产生的所有交易以及外部应用服务器发送过来的交易,用户链主要负责存储和维护用户信息。由于其对隐私功能的需求,除企业内部以及部分地区会部署用户链以外,其他地域将不会部署用户链,仅会部署交易链。区块链在执行交易的过程中,会实时与用户链进行交互,获取用户信息并对其进行相应更新。

如此形成了一个新型的p2p金融区块链机制,为了保证公司客户信息的隐私,同时也是对自身业务数据的保护,新型机制采用用户链和交易链双链运行的交易模式、监管机构参与整个业务流转。双链机制是用户链和交易链,服务端在接收到交易之后会对交易进行判断,判断属于那种交易类型,如果是一些关于用户信息的变更,那么此交易就会分发给用户链进行处理和存储。其他交易则会发送到交易链中进行处理和存储,其中一些对用户账户信息的操作,在交易链中处理完成之后需要将最终结果交给用户链进行处理,在用户链中更新用户账户信息,以保证账本的完整。在新型机制下的区块链系统,节点分散的分布在各个地方,在保证数据安全的前提下,让监管机构加入到区块链系统中来,通过建立完善的权限机制,在保证监管机构可以随时随地进行监管的同时,也让监管机构加入到公司业务的流转中来,这种方式不仅仅保证了数据随时在被监管,同时也减少了审计过程中的一些麻烦。

参见附图2,一种基于p2p金融区块链机制的共识算法,共识算法包括如下步骤:(1)准备阶段:使用轮询算法选取leader,从redis中读取交易,当leader收到的交易数量大于1的时候,进入计算区块,当leader收到的交易数量小于1的时候,返回,继续从redis中读取交易;(2)计算区块:获取前一个区块的哈希值、状态树根,计算交易集合的默克尔树树根,并获取前一个区块状态根,此后计算区块头部哈希值,最后将计算好的区块广播;(3)一致性验证:节点收到区块之后,首先验证前一个区块的状态根是否正确,如果错误则广播反对票,如果正确则继续验证区块头部部分,如果头部验证错误,同样广播反对票,如果头部验证通过,那么广播同意票给其他节点;(4)区块和交易的存储:节点接收对区块的投票并统计,若收到超过1/3以上的反对票,则放弃此区块并重新开始计算,若收到超过2/3以上的赞成票,则执行交易并将区块和交易存储到数据库;(5)完成上述步骤后,重复开启下一轮的计算。

虽然本发明已经参考特定的说明性实施例进行了描述,但是不会受到这些实施例的限定而仅仅受到附加权利要求的限定。本领域技术人员应当理解可以在不偏离本发明的保护范围和精神的情况下对本发明的实施例能够进行改动和修改。

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