一种基于一致性哈希算法的区块链多方共识方法技术

技术编号:24579851 阅读:31 留言:0更新日期:2020-06-21 00:55
本发明专利技术公开了一种基于一致性哈希算法的区块链多方共识方法,包括:(1)制定多方共识协议,求出节点的哈希值;(2)根据所述多方共识协议,产生区块和广播区块,并对产生的区块进行验证和投票;(3)根据哈希值找到节点对应的虚拟节点在哈希环上的虚拟节点的位置;(4)进行选择主链,将选择的主链上的区块进行同步和广播,将节点的数据存储到找到的虚拟节点;(5)将同步、广播来的区块写入区块链。本发明专利技术公开了一种区块链多方共识方法,基于区块链的不可回滚的原理,采用一致性哈希算法实现共识验证过程中的负载均衡,改进Paxos和股权授权证明算法,保证区块链共识过程中的一致性以及不可篡改性,减少了恶意篡改将会引起的网络故障问题。

A multi-party consensus method of blockchain based on consistent hash algorithm

【技术实现步骤摘要】
一种基于一致性哈希算法的区块链多方共识方法
本专利技术属于区块链技术和共识算法领域,具体涉及一种基于一致性哈希算法的区块链多方共识方法。
技术介绍
区块链技术是一种新型应用模式的集合,包括分布式数据存储、点对点传输、共识机制、加密算法、智能合约、跨链等技术,具有去中心化、去信任、安全等优点。区块链通过无数区块组成的链条,以安全透明的链接方式组成性能远超过个体简单相加的整体,节约了大量的时间和成本。随着时代的发展,区块链技术也越来越重要,在使用区块链应用到社会各行各业的过程中,甚至在同一行业不同单位内的使用过程中,保存在区块链中的数据库一般都是针对某种业务需求定制的,这使得区块链各节点(也可以指组织)的系统环境和数据平台存在巨大差异,需要对区块链的有效性形成一致的共识。分布式系统的核心技术是共识技术。在区块链的分布式系统的P2P网络中,互不信任的节点通过遵循预设机制最终达成数据一致性的过程称为共识过程,使得区块链全网所有节点的数据通过分布式一致协议实现共享。目前,在众多常用的区块链共识方法中,例如POW、POS、BFT、Paxos、Raft等,这些常用的共识算法有各自的优点,也存在各自的问题,例如工作量证明(PoW)算法消耗大量计算资源及性能低下、延时高。授权证明(PoS),建立在账户股份多少的基础上的机制,是不公平的,再就是由于它的代价很小,受到的网络攻击也多。股权授权证明(DPoS),是在最小化网络成本和安全费用的同时,赋予每个持股人一定的投票权,由他们产生代表,是一种更加高效和安全的共识算法,比PoS快,奖励归属授权。拜占庭容错算法(BFT),解决分布式系统中一致性问题的经典算法,通过加密和多轮消息通信,可以使整个系统对外保持一致性。此外还有Paxos和Raft算法及其他变种,Paxos算法是1990年提出的一种基于消息传递且具有高度容错特性的一致性算法,Raft算法是Paxos算法的简化版。传统的Paxos算法、Raft算法及其变种大部分没有考虑拜占庭容错问题。而常用的有四种基本的共识机制,即POW(工作量证明)、POS(授权证明)、DPOS(股权授权证明)、BFT(拜占庭容错算法),也包括不同共识机制间的相互组合,形成的新的共识机制,或对各类共识算法进行改进形成的新的共识算法,例如POW+POS、BFT+POS等或DBFT、PBFT等,还有基于一致性算法的各类共识方法,如Paxos、Raft等,一致性哈希算法基于哈希函数对存储任务进行分配,实现系统在处理任务时服务器的负载均衡。由上述对各自共识方法的介绍可知,单一的共识算法均存在各种问题,这就引发了对各种各样新的共识方法的探究和尝试,目前,区块链的实现有LIB(上一个不可回滚的区块)方案,实现区块快速终局的特点,即不可篡改性,复合型共识算法逐渐得到越来越多的关注。
技术实现思路
本专利技术基于上述背景和现有技术所存在的问题,拟设计一种基于一致性哈希算法的区块链多方共识方法,结合并改进了股权授权证明(DPoS)和Paxos算法两种共识算法的区块链共识方法,基于区块链LIB(上一个不可回滚区块)方案,加快了交易速度,保证区块链的一致性以及不可篡改性,实现交易吞吐量高、快速终局性,减少恶意节点对区块链网络的破坏,保证了区块链网络正常安全的运行。本专利技术还有一个目的是通过一致性哈希算法,提高共识的效率,以便保持多方系统在运行过程中的负载均衡。本专利技术采用如下技术方案,一种基于一致性哈希算法的区块链多方共识方法,设置节点M={m1,m2,……,mn},其中mi泛指第i个节点,实现步骤如下:(1)制定多方共识协议,根据一致性哈希算法的哈希函数求出节点Mi的哈希值;(2)根据所述多方共识协议,利用股权授权证明算法产生区块和广播区块,利用Paxos算法对产生的区块进行验证和投票;(3)根据哈希值找到节点Mi对应的虚拟节点在哈希环上的虚拟节点的位置;(4)根据在产生区块的过程中会遇到的临时分叉情况,对主链进行选择,将选择的主链上的区块进行同步和广播,从节点Mi的虚拟节点的位置出发,顺时针找到首个临近的节点,将Mi的数据存储到该虚拟节点;(5)将同步、广播来的区块写入区块链。进一步地,所述步骤(1)中,多方共识协议包括:1.1准备阶段:交易发生节点生成交易数据,并将交易数据传输给共识验证节点准备进行验证;1.2验证阶段:共识验证节点对提案进行验证和投票,采用一致性哈希算法,均匀分配节点处理交易数据,通过验证的交易数据,由选举出出块授权节点进行区块链出块,并通知所有节点准备接收此交易数据;1.3接收阶段:交易发生节点收到共识验证节点的验证通过的消息后,向备份节点发出准备备份交易数据的通知;1.4备份阶段:交易发生节点针对验证通过的提案,将验证通过的交易数据发送给到备份节点,由备份节点进行备份;1.5回复阶段:每个备份节点完成备份后,回复交易发生节点。进一步地,所述步骤(2)中,股权授权证明算法,其中用于投票的智能合约包括质押机制,即账号参与投票前需缴纳一定数额的质押金,用以保证整个投票安全公正,具体实现过程还包括:2.1通过制定投票的智能合约,拥有资产的账号的共识验证节点可调用进行投票的智能合约,进行投票,由区块链网络中根据选票,从参与投票和被投票的共识验证节点中,选取3f+1个授权节点,f为能够容忍的最大恶意节点数量;2.2通过授权节点产生区块,所有授权节点按照轮次依次在各自所属期间段内产生区块,并记录产生区块的轮次;2.3广播产生的区块,整个区块链系统进入下一轮次的交易数据出块阶段。进一步地,所述步骤(2)利用Paxos算法对产生的区块进行验证和投票,通过Paxos算法进行验证确认时,授权节点只对自己所在链的区块进行投票,所述步骤(2)的具体实现过程如下:3.1准备阶段:交易发生节点进行交易,触发所述多方共识协议,准备向所有共识验证节点发送验证请求消息,对刚产生的新区块进行验证;3.2验证阶段:共识验证节点进行验证,通过验证后,将验证结果广播到全网,并通知所有节点准备接收此结果;3.3回复阶段:所有节点完成接收后,回复交易发生节点,授权节点将区块写入区块链,并设置新区块的前一区块为不可回滚的区块;3.4根据验证要求,判断是否达到验证要求,达到要求则完成验证和投票。进一步地,所述步骤(3)中,采用一致性哈希算法实现共识验证的负载均衡的过程,设置参与共识验证的实际服务器N数量为n,设置共识验证节点对应的哈希环上的虚拟节点的数量为P,服务器较少时,需对应增加虚拟节点,用于根据哈希值找到虚拟节点,具体实现过程如下:4.1将哈希环平均分为P个区间;4.2每个区间以每个虚拟节点为结束地址,每个虚拟节点负责对应区间的关键值映射;4.3当关键值取模后,对区间数量进行一次取模运算,找到对应的虚拟节点;4.4根据存储容量和性能设定共识验证节点的存储服务器的权重E,设置存储基准值N0,设为E0,本文档来自技高网
...

【技术保护点】
1.一种基于一致性哈希算法的区块链多方共识方法,其特征在于,设置节点M={m

【技术特征摘要】
1.一种基于一致性哈希算法的区块链多方共识方法,其特征在于,设置节点M={m1,m2,……,mn},其中mi泛指第i个节点,包括步骤如下:
(1)制定多方共识协议,根据一致性哈希算法的哈希函数求出节点Mi的哈希值;
(2)根据所述多方共识协议,利用股权授权证明算法产生区块和广播区块,利用Paxos算法对产生的区块进行验证和投票;
(3)根据哈希值找到节点Mi对应的虚拟节点在哈希环上的虚拟节点的位置;
(4)在产生区块的过程中,对主链进行选择,将选择的主链上的区块进行同步和广播,从节点Mi的虚拟节点的位置出发,顺时针找到首个临近的节点,将Mi的数据存储到该虚拟节点;
(5)将同步、广播来的区块写入区块链。


2.根据权利要求1所述基于一致性哈希算法的区块链多方共识方法,其特征在于:所述步骤(1)中,多方共识协议,具体实现过程包括:
1.1准备阶段:交易发生节点生成交易数据,并将交易数据传输给共识验证节点准备进行验证;
1.2验证阶段:共识验证节点对提案进行验证和投票,采用一致性哈希算法,均匀分配节点处理交易数据,通过验证的交易数据,由选举出出块授权节点进行区块链出块,并通知所有节点准备接收此交易数据;
1.3接收阶段:交易发生节点收到共识验证节点的验证通过的消息后,向备份节点发出准备备份交易数据的通知;
1.4备份阶段:交易发生节点针对验证通过的提案,将验证通过的交易数据发送给到备份节点,由备份节点进行备份;
1.5回复阶段:每个备份节点完成备份后,回复交易发生节点。


3.根据权利要求1所述基于一致性哈希算法的区块链多方共识方法,其特征在于:所述步骤(2)中,股权授权证明算法,其中用于投票的智能合约中包括质押机制,并且在多方共识协议中的验证阶段,由选举出的进行出块的授权节点进行区块链出块,具体实现过程还包括:
2.1通过制定投票的智能合约,拥有资产账号的共识验证节点可调用进行投票的智能合约,进行投票,由区块链网络中根据选票,在共识验证节点中选取授权节点;
2.2通过授权节点产生区块,所有授权节点按照轮次依次在各自所属期间段内产生区块,并记录产生区块的轮次;
2.3广播产生的区块,整个区块链系统进入下一轮次的交易数据出块阶段。


4.根据权利要求1或2所述基于一致性哈希算法的区块链多方共识方法,其特征在于,所述步骤(2)利用Paxos算法对产生的区块进行验证和投票,通过Paxos算法进行验证确认时...

【专利技术属性】
技术研发人员:黄步添罗春凤石太彬张宏鑫陈建海刘振广
申请(专利权)人:杭州云象网络技术有限公司
类型:发明
国别省市:浙江;33

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

1