区块链共识方法技术

技术编号:19186701 阅读:24 留言:0更新日期:2018-10-17 02:20
本发明专利技术公开了一种区块链共识方法,该方法包括:第一验证节点获取至少两个哈希值;基于至少两个哈希值,第一验证节点确定其所存储的当前主数据文件中与至少两个哈希值相对应的数据块;第一验证节点对数据块进行哈希运算,从而确定与当前主数据文件相对应的当前根哈希值;第一验证节点与其余验证节点分别确定当前根哈希值的正确性。该区块链共识方法无需消耗大量CPU计算,同时还能奖惩的方式激励网络的参与者,为区块链数据提供了安全保证。

Block chain consensus method

The invention discloses a block chain consensus method, which comprises: the first verification node obtains at least two hash values; based on at least two hash values, the first verification node determines the data block corresponding to at least two hash values in the current master data file it stores; and the first verification node hashes the data block Operates to determine the current root hash value corresponding to the current master data file; the first verification node and the remaining verification nodes determine the correctness of the current root hash value respectively. The block chain consensus method does not need to consume a lot of CPU computation, and it can also motivate the participants of the network by rewarding and punishing, which provides a security guarantee for the block chain data.

【技术实现步骤摘要】
区块链共识方法
本专利技术涉及区块链技术,尤其涉及区块链共识方法。
技术介绍
区块链是一种结合了分布式数据存储、点对点传输、加密算法、以及共识机制等计算机技术的一种新型分布式系统,它由多个参与节点共同维护一套分布式账本,实现了数据信息的防篡改、可追溯等特性,创造了一套安全的分布式信任体系。区块链中维护一个公开账本需要功能强大、效率高并且安全的共识算法。一个安全稳定的共识算法是区块链中数据保持一致的根本保障。在比特币网络中使用了POW,也称为工作量证明算法,由于这种算法需要消耗大量计算资源,对于电力造成极大的浪费,因此,人们不断的提出各种新的共识算法试图改进它。到目前为止,除POW之外,主流的区块链共识算法还有权益证明(POS)、委托权益证明(DPOS)、实用拜占庭容错(PBFT)等。POS全称是ProofOfStake,它指的是一种对货币所有权的证明,一笔交易所消耗的币龄可被视为POS的一种形式。POS的挖矿由SunnyKing在2012年8月发布的PPC(点点币)首先实现。由于POS实际上不需要消耗大量的计算机算力资源,同时又可以取代POW的大部分功能,因此它逐渐成为一种新的共识算法选择。然而在实际应用中,POW对资源造成大量浪费,而POS虽然不消耗大量资源,但是容易造成寡头的存在,增加了系统被攻击的风险。区块链所涉及的领域非常众多,在不同的领域中根据领域的特点可能需要采用不同的共识算法来达到最大的效益。
技术实现思路
本专利技术提供了一种区块链共识方法,所述方法包括:第一验证节点获取至少两个哈希值;基于所述至少两个哈希值,所述第一验证节点确定其所存储的当前主数据文件中与所述至少两个哈希值相对应的数据块;所述第一验证节点对所述数据块进行哈希运算,从而确定与所述当前主数据文件相对应的当前根哈希值;所述第一验证节点与其余验证节点分别确定所述当前根哈希值的正确性。在一种实施方式中,所述第一验证节点与其余验证节点分别确定所述当前根哈希值的正确性包括:所述第一验证节点向区块链网络广播所述当前根哈希值;并且所述第一验证节点与其余验证节点分别确定所述当前根哈希值是否与历史根哈希值相同。在一种实施方式中,如果超过指定阈值的验证节点确定所述当前根哈希值与所述历史根哈希值是相同的,则所述第一验证节点生成存在性证明,其中,所述存在性证明用于指示与所述历史根哈希值相对应的历史主数据文件存在于所述第一验证节点中并且所述当前主数据文件与所述历史主数据文件是相同的数据文件。在一种实施方式中,所述第一验证节点为当前出块轮次的出块节点,并且所有验证节点均可以通过各自的存储出租合约出租相应的存储空间。在一种实施方式中,所述方法还包括将所述存在性证明保存在区块链账本中。在一种实施方式中,所述第一验证节点对所述数据块进行哈希运算,从而确定与所述当前主数据文件相对应的当前根哈希值包括:所述第一验证节点对所述数据块进行哈希运算得到与所述数据块相对应的当前哈希值;根据所述当前哈希值计算出与所述当前主数据文件相对应的当前根哈希值。在一种实施方式中,所述指定阈值为三分之二。在一种实施方式中,所述历史主数据文件通过梅克尔有向无环数据结构分割成多个数据块存储在相应的验证节点中。本专利技术还提供了一种区块链存储方法,所述区块链中包括多个存储节点,所述方法包括:所述多个存储节点接收需要存储数据文件的请求以及存储请求合约;基于存储出租合约与所述存储请求合约来在所述多个存储节点中确定待存储节点,其中,所述多个存储节点基于所述存储出租合约出租相应的存储空间;将需要存储的数据文件存储在所述待存储节点中。在一种实施方式中,所述方法还包括:所述待存储节点采用梅克尔有向无环数据结构将所述需要存储的数据文件分割成多个数据块进行存储。本专利技术还提供了一种计算机可读存储介质,其上存储有处理器可执行指令,所述处理器执行所述可执行指令时,执行上述方法中的任一项所述的方法。技术效果:本专利技术充分利用了普通计算机的硬盘空间和网络带宽,极大的提高网络运行效率和数据的传输;既实现了拜占庭容错又极大的减少了不必要的无效CPU计算和电力消耗;质押存储空间和动态调整投票权的方式可以抵御节点伪造假数据欺骗网络而获得不当得利的行为,保证了整个网络安全运行;节点可以快速的进行随机文件哈希验证,加快了网络验证效率,使得出块速度很快。附图说明图1是根据本专利技术的实施例的区块链共识方法的流程图;图2是根据本专利技术的实施例的节点存储文件的流程图;图3是根据本专利技术的实施例的示例性下载文件的流程图。具体实施方式在以下优选的实施例的具体描述中,将参考构成本专利技术一部分的所附的附图。所附的附图通过示例的方式示出了能够实现本专利技术的特定的实施例。示例的实施例并不旨在穷尽根据本专利技术的所有实施例。可以理解,在不偏离本专利技术的范围的前提下,可以利用其它实施例,也可以进行结构性或者逻辑性的修改。因此,以下的具体描述并非限制性的,且本专利技术的范围由所附的权利要求所限定。首先,对本专利技术中涉及的一些术语做些说明,区块链上可以包括多种节点,但是本专利技术针对的是验证节点,本文所涉及节点、存储节点和出块节点均指验证节点,并且都能够通过存储出租合约来出租相应的存储空间以存储相应的数据文件,其中,存储出租合约是指验证节点出租相应的存储空间的约定条款(例如,服务商A想要出租自己的空间,于是给出存储出租合约,规定如下:出租空间:100G;出租单价:1.8元/M;有效时间:20个月等),并且可以根据节点的特定情况而做出调整。此外,当前主数据文件和历史主数据文件为不同时刻存在于节点中的数据文件,并且本文中历史主数据文件被分割成多个数据块存储在相应的节点后,每个数据块对应于一个哈希值,每个历史数据文件对应于一个历史根哈希值,若通过哈希运算得出的与当前主数据文件相对应的当前根哈希值和与历史数据文件相相对应的历史根哈希值相同,则认为当前主数据文件与历史数据文件为相同的数据文件。本专利技术的区块链中采用轮次出块的方式,在每一轮次中,依据投票权比重的大小,选出投票权比重最大的节点进行出块并且若获得出块权的节点确实存储了相应的数据文件,则需要对数据文件的存在性进行证明,其中,节点已经出租的并且已经被客户使用的存储空间大小会影响投票权比重的大小。应理解,投票权比重的大小至少基于节点已经出租的并且实际可被用户使用的存储空间大小来确定(例如,存储时间长短也可以影响投票权比重的大小),可以调整存储空间的大小来改变投票权比重的大小。还应理解,第一个出块轮次,可以随机设定每个节点的投票权比重,例如,所有节点具有相同的投票权比重。然后在后续的出块轮次中,选举出投票权比重最大的节点作为出块节点进行出块并且出块节点存储了相应数据文件时提供存在性证明(POE),以保证网络稳定运行。以下结合附图对本专利技术进行详细描述。如图1所示,本专利技术提供了一种区块链共识方法,该方法包括:在步骤S101中,第一验证节点获取至少两个哈希值。应理解的是,这里所说的第一验证节点是区块链网络中当前轮次的出块节点并且存储了需要进行验证的数据文件,并且该出块节点获取了两个或多个哈希值。在步骤S102中,基于至少两个哈希值,第一验证节点确定其所存储的当前主数据文件中与至少两个哈希值相对应的数据块。具体地,根据两个或多个哈希值,查找到与该本文档来自技高网...

【技术保护点】
1.一种区块链共识方法,所述区块链中包括多个验证节点,所述方法包括:第一验证节点获取至少两个哈希值;基于所述至少两个哈希值,所述第一验证节点确定其所存储的当前主数据文件中与所述至少两个哈希值相对应的数据块;所述第一验证节点对所述数据块进行哈希运算,从而确定与所述当前主数据文件相对应的当前根哈希值;所述第一验证节点与其余验证节点分别确定所述当前根哈希值的正确性。

【技术特征摘要】
1.一种区块链共识方法,所述区块链中包括多个验证节点,所述方法包括:第一验证节点获取至少两个哈希值;基于所述至少两个哈希值,所述第一验证节点确定其所存储的当前主数据文件中与所述至少两个哈希值相对应的数据块;所述第一验证节点对所述数据块进行哈希运算,从而确定与所述当前主数据文件相对应的当前根哈希值;所述第一验证节点与其余验证节点分别确定所述当前根哈希值的正确性。2.根据权利要求1所述的方法,所述第一验证节点与其余验证节点分别确定所述当前根哈希值的正确性包括:所述第一验证节点向区块链网络广播所述当前根哈希值;并且所述第一验证节点与其余验证节点分别确定所述当前根哈希值是否与历史根哈希值相同。3.根据权利要求2所述的方法,还包括:如果超过指定阈值的验证节点确定所述当前根哈希值与所述历史根哈希值是相同的,则所述第一验证节点生成存在性证明,其中,所述存在性证明用于指示与所述历史根哈希值相对应的历史主数据文件存在于所述第一验证节点中并且所述当前主数据文件与所述历史主数据文件是相同的数据文件。4.根据权利要求3所述的方法,其中,所述第一验证节点为当前出块轮次的出块节点,并且所有验证节点均可以通过各自的存储出租合约出租相应的存储空间。5.根据权利要求3或4所述的方法...

【专利技术属性】
技术研发人员:史春辉
申请(专利权)人:众安信息技术服务有限公司
类型:发明
国别省市:广东,44

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

1