CN111311414A - 一种基于一致性哈希算法的区块链多方共识方法 - Google Patents
一种基于一致性哈希算法的区块链多方共识方法 Download PDFInfo
- Publication number
- CN111311414A CN111311414A CN202010122123.8A CN202010122123A CN111311414A CN 111311414 A CN111311414 A CN 111311414A CN 202010122123 A CN202010122123 A CN 202010122123A CN 111311414 A CN111311414 A CN 111311414A
- Authority
- CN
- China
- Prior art keywords
- node
- block
- verification
- consensus
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000012795 verification Methods 0.000 claims abstract description 83
- 230000008569 process Effects 0.000 claims abstract description 30
- 238000013475 authorization Methods 0.000 claims abstract description 26
- 230000001360 synchronised effect Effects 0.000 claims abstract description 10
- 230000007246 mechanism Effects 0.000 claims description 11
- 238000011084 recovery Methods 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 6
- 238000002360 preparation method Methods 0.000 claims description 6
- 238000012790 confirmation Methods 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 3
- 238000013508 migration Methods 0.000 claims description 3
- 230000005012 migration Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/42—Confirmation, e.g. check or permission by the legal debtor of payment
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Technology Law (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于一致性哈希算法的区块链多方共识方法,包括:(1)制定多方共识协议,求出节点的哈希值;(2)根据所述多方共识协议,产生区块和广播区块,并对产生的区块进行验证和投票;(3)根据哈希值找到节点对应的虚拟节点在哈希环上的虚拟节点的位置;(4)进行选择主链,将选择的主链上的区块进行同步和广播,将节点的数据存储到找到的虚拟节点;(5)将同步、广播来的区块写入区块链。本发明公开了一种区块链多方共识方法,基于区块链的不可回滚的原理,采用一致性哈希算法实现共识验证过程中的负载均衡,改进Paxos和股权授权证明算法,保证区块链共识过程中的一致性以及不可篡改性,减少了恶意篡改将会引起的网络故障问题。
Description
技术领域
本发明属于区块链技术和共识算法领域,具体涉及一种基于一致性哈希算法的区块链多方共识方法。
背景技术
区块链技术是一种新型应用模式的集合,包括分布式数据存储、点对点传输、共识机制、加密算法、智能合约、跨链等技术,具有去中心化、去信任、安全等优点。区块链通过无数区块组成的链条,以安全透明的链接方式组成性能远超过个体简单相加的整体,节约了大量的时间和成本。随着时代的发展,区块链技术也越来越重要,在使用区块链应用到社会各行各业的过程中,甚至在同一行业不同单位内的使用过程中,保存在区块链中的数据库一般都是针对某种业务需求定制的,这使得区块链各节点(也可以指组织)的系统环境和数据平台存在巨大差异,需要对区块链的有效性形成一致的共识。分布式系统的核心技术是共识技术。在区块链的分布式系统的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,比较每台服务器的存储和服务器的存储基准值,将P个虚拟节点按照权重列表{E1,E2,……,En},平均分配给对应节点M={m1,m2,……,mn}的存储服务器{N1,N2,……,Nn};
4.5当节点变化时,根据服务器的权重值E,来获取或释放虚拟节点。
优选的是,所述步骤(4)根据区块高度选择主链,基于所述多方共识协议,完成主链的选择和确认;应对数据迁移状况时,虚拟节点动态调整状态,重新调整各节点位置,更新节点位置列表,并根据一致性哈希算法和重新计算结果迁移相应数据。
优选的是,选LIB区块之后最长的链作为主链。适合网络分区后,若干轮次后网络故障才恢复。
进一步地,在网络故障立刻恢复的情况下,如果两个临时区块同高度,选择先产生区块的链为主链即选拥有轮次更早区块的链为主链。
优选的是,将同步、广播来的区块进行写入,其特征在于:所述步骤(5)的具体实现过程如下:
5.1授权节点产生区块后,各共识验证节点获取到完整区块;
5.2验证获取到的区块的类型,授权节点准备将产生的区块写入区块链,即验证获取到的区块是否是不可回滚的区块之后的区块,如果是不可回滚的区块之后的区块,准备写入区块;
5.3判断待写入区块是否与当前主链在同一链上,不在同一条链上则重新进行主链选择;
5.4完成以上验证后,完成主链选择后,将区块写入区块链;如果选择的主链不是当前所要选择的主链,则执行主链切换。
进一步地,所述步骤5.1对完整的区块链的验证中如果区块高度不高于LIB区块高度的区块要被丢弃,LIB下一个高度的区块的父区块必须是LIB的区块。
进一步地,所述步骤5.3中进行主链选择,如果选择的链与不是当前的主链,需要加入和LIB相关的判断,写入的区块必须是LIB之后的,然后根据长度和时间进行选择。所述中修改reorg函数需要增加限制,即使LIB之前的区块不可回滚。
进一步地,所述各步骤中的区块写入规则:能通过验证的区块,说明是还处于可回滚状态,都可以写入。在编程中,如果需要切换主链,需要执行reorg函数,使不得回滚LIB及之前的区块。
进一步地,已经写入的区块,无需再次写入,可以跳过此区块的写入。
进一步地,只写入LIB之后的区块。LIB及之前的区块都已不可回滚,无需写入之前的区块。
基于上述技术方案,本发明提供了新的共识方法,本发明的有益效果至少包括:利用LIB实现了快速终局性,使交易确认时间缩短了,通过授权的选举缩小进行共识出块的节点范围,减少共识耗能,并通过进一步验证确认区块,让所有区块链节点在某个区块高度上,生成并选择出唯一的、一致的区块,避免区块分叉,减少恶意节点对区块链网络的破坏,保证了区块链网络正常安全的运行,本发明还通过使用一致性哈希算法实现共识验证过程的负载均衡,提高共识验证的效率。
附图说明
图1为本发明一致性算法的多方共识方法的整体流程图;
图2为DPOS算法进行选举的原理图;
图3为Paxos算法进行验证和投票的原理图;
图4为LIB(不可回滚的区块)方案的原理图。
具体实施方式
为了清晰地阐述本发明,使本发明实施例的目的、技术方案和优点更加清楚,下面结合了本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,以令本领域技术人员参照说明书文字能够据以实施。下面将附图结合具体实施方式对本发明的技术加以详细说明。
1.图1为本发明多方共识机制的流程图,设置节点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所示为股权授权证明算法进行选举的原理图,所述步骤(2)中,股权授权证明算法,其中用于投票的合约包括质押机制,即账号参与投票前需缴纳一定数额的质押金,用以保证整个投票安全公正,的具体实现过程如下:
2.1通过制定投票的智能合约,拥有资产的账号的共识验证节点都可调用投票合约,进行投票,由区块链网络中根据选票选取3f+1个授权,f为能够容忍的最大恶意节点数量;
2.2通过授权节点产生区块,所有授权节点按照轮次依次在各自所属期间段内产生区块,并记录产生区块的轮次;
2.3广播产生的区块,整个区块链系统进入下一轮次的交易数据出块阶段。
3.图3为Paxos算法进行验证和投票的原理图,所述步骤(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,比较每台服务器的存储和服务器的存储基准值,将P个虚拟节点按照权重列表{E1,E2,……,En},平均分配给对应节点M={m1,m2,……,mn}的存储服务器{N1,N2,……,Nn};
4.5当节点变化时,根据服务器的权重值E,来获取或释放虚拟节点。
所述步骤(4)根据区块高度选择主链,基于所述多方共识协议,完成主链的选择和确认;应对数据迁移状况时,虚拟节点动态调整状态,重新调整各节点位置,更新节点位置列表,并根据一致性哈希算法和重新计算结果迁移相应数据。
4.如图4所示为LIB(不可回滚的区块)方案的原理图,为了说明方便,本发明假设ABC为三个授权节点,授权节点A可以产生区块a,授权节点B可以产生区块b,授权节点C可以产生区块c,一般规定选LIB区块之后最长的链作为主链,另外,如果两个临时区块同高度,选拥有轮次更早的区块。。将同步、广播来的区块进行写入,所述步骤(5)的具体实现过程如下:
第1步:获取到完整区块;
第2步:验证获取到的区块是否是不可回滚的区块之后的区块,如果是不可回滚的区块之后的区块,准备写入区块;
第3步:判断待写入区块是否与当前主链在同一链上,不在同一条链上则重新进行主链选择;
第4步:完成以上验证后,将区块写入区块链。如果选择的主链不是当前所要选择的主链,则执行主链切换;
第5步:完成将主链区块写入区块链。
在网络故障等一些复杂因素的情况下,授权节点A和授权节点BCD的通信变差了,在网络正常时的第3步中,收到2f+1投票消息的节点太少,不足f个,比如只有授权节点A,它们在第4步只有授权节点A广播区块a的哈希值消息,但收到该消息的授权节点很少授权节点BCD没有区块a,或者授权节点D收到了区块a的哈希值消息,但需要时间下载区块a。
经过以上的流程,授权ABCD最后都拥有了区块a,并且区块z是LIB。
其中,如图4情况1为网络故障立刻恢复时的主链选择原理图所示,当区块b所在的链是主链。主链在持续的产生区块,比区块a所在的临时分叉链更长,当网络故障恢复,拥有区块a所在的分叉链的落后节点A,比持续产生区块的授权节点落后,会收到新区块的广播,落后的节点A会切换到真正的主链。
其中,如图4情况2和情况3为网络故障未立刻恢复时主链选择原理图所示,假设区块a先写入成为了主链。完成区块c的BFT过程后,写入区块c,发现区块c的高度比区块a高,所有拥有区块c的节点(至少2f+1个,否则完成不了区块c的验证;网络故障恢复时,必然多于2f+1个节点有区块c),当网络故障,若干轮次后才网络故障才恢复,都会将区块c写入区块链,设置区块c所在的链成为主链。
将同步、广播来的区块进行写入,其特征在于:所述步骤(5)的具体实现过程如下:
5.1授权节点产生区块后,各共识验证节点获取到完整区块;
5.2验证获取到的区块的类型,授权节点准备将产生的区块写入区块链;
5.3判断待写入的区块是否与当前主链在同一链上;
5.4完成以上验证后,完成主链选择后,将区块写入区块链,或则执行主链切换。
这里说明的模块数量和处理规模是用来简化本发明的说明的。对本发明的一致性哈希算法的多方区块链共识方法的应用、修改和变化对本领域的技术人员来说是显而易见的。
上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。
Claims (7)
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算法进行验证确认时,授权节点只对自己所在链的区块进行投票:所述步骤(2)的具体实现过程如下:
3.1准备阶段:交易发生节点触发某事件,触发所述多方共识协议,准备向所有共识验证节点发送验证请求消息,对刚产生的新区块进行验证;
3.2验证阶段:共识验证节点进行验证,通过验证后,将验证结果广播到全网,并通知所有节点准备接收此结果;
3.3回复阶段:所有节点完成接收后,回复交易发生节点,授权节点将区块写入区块链,并设置新区块的前一区块为不可回滚模式;
3.4根据验证要求,达到要求则完成验证和投票。
5.根据权利要求1所述基于一致性哈希算法的区块链多方共识方法,其特征在于,所述步骤(3)中,采用一致性哈希算法实现共识验证的负载均衡的过程,根据哈希值找到虚拟节点,设置参与共识验证的实际服务器N数量为n,设置共识验证节点对应的哈希环上的虚拟节点的数量为P,根据服务器或节点收到请求情况,对应调整虚拟节点,具体实现过程如下:
4.1将哈希环均分为P个区间;
4.2每个区间以每个虚拟节点为结束地址,每个虚拟节点负责对应区间的关键值映射;
4.3当关键值取模后,对区间数量进行一次取模运算,找到对应的虚拟节点;
4.4根据存储容量和性能设定存储服务器的节点的权重E,设置存储基准值N0,设为E0,比较每台服务器的存储和服务器的存储基准值,将P个虚拟节点按照权重列表{E1,E2,……,En},平均分配给对应节点M={m1,m2,……,mn}的存储服务器{N1,N2,……,Nn};
4.5当存储服务器或节点变化时,根据服务器的权重值E或节点所需资源e,来获取或释放虚拟节点。
6.根据权利要求1所述基于一致性哈希算法的区块链多方共识方法,其特征在于,所述步骤(4)根据区块高度选择主链,基于所述多方共识协议,完成主链的选择和确认;应对数据迁移状况时,虚拟节点动态调整状态,重新调整各节点位置,更新节点位置列表,并根据一致性哈希算法和重新计算结果迁移相应数据。
7.根据权利要求1所述基于一致性哈希算法的区块链多方共识方法,其特征在于,将同步、广播来的区块进行写入,所述步骤(5)的具体实现过程如下:
5.1授权节点产生区块后,各共识验证节点获取到完整区块;
5.2验证获取到的区块的类型,授权节点准备将产生的区块写入区块链;
5.3判断待写入的区块是否与当前主链在同一链上;
5.4完成以上验证后,完成主链选择后,将区块写入区块链,或则执行主链切换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010122123.8A CN111311414B (zh) | 2020-02-27 | 2020-02-27 | 一种基于一致性哈希算法的区块链多方共识方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010122123.8A CN111311414B (zh) | 2020-02-27 | 2020-02-27 | 一种基于一致性哈希算法的区块链多方共识方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111311414A true CN111311414A (zh) | 2020-06-19 |
CN111311414B CN111311414B (zh) | 2023-12-08 |
Family
ID=71145259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010122123.8A Active CN111311414B (zh) | 2020-02-27 | 2020-02-27 | 一种基于一致性哈希算法的区块链多方共识方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111311414B (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111770149A (zh) * | 2020-06-23 | 2020-10-13 | 江苏荣泽信息科技股份有限公司 | 基于分布式存储的新型联盟链 |
CN112040015A (zh) * | 2020-11-06 | 2020-12-04 | 腾讯科技(深圳)有限公司 | 一种共识节点列表生成方法及相关装置 |
CN112069169A (zh) * | 2020-07-30 | 2020-12-11 | 北京奇艺世纪科技有限公司 | 区块数据存储方法、装置、电子设备及可读存储介质 |
CN112116347A (zh) * | 2020-08-12 | 2020-12-22 | 北京智融云河科技有限公司 | 一种基于随机共识机制的图式账本数据发布方法和装置 |
CN112188247A (zh) * | 2020-09-29 | 2021-01-05 | 腾讯科技(北京)有限公司 | 一种数据传输方法、装置、设备及计算机可读存储介质 |
CN112258092A (zh) * | 2020-11-23 | 2021-01-22 | 国网能源研究院有限公司 | 一种基于区块链的数据资产可信度评估方法、装置 |
CN112418861A (zh) * | 2020-12-07 | 2021-02-26 | 江南大学 | 一种应用于工业物联网的节点快速共识方法 |
CN112700333A (zh) * | 2021-01-11 | 2021-04-23 | 东北大学 | 一种基于区块链的电子档案共识方法 |
CN112948394A (zh) * | 2021-03-26 | 2021-06-11 | 重庆倍来电新能源有限公司 | 一种基于区块链的智能终端数据协同方法 |
CN112966048A (zh) * | 2021-03-09 | 2021-06-15 | 安徽超清科技股份有限公司 | 一种区块链共识方法 |
CN112988896A (zh) * | 2021-03-29 | 2021-06-18 | 湖北央中巨石信息技术有限公司 | 一种基于区块链的同步共识方法及系统及装置及介质 |
CN113076375A (zh) * | 2021-03-29 | 2021-07-06 | 湖北央中巨石信息技术有限公司 | 基于区块链的多方同步抽样共识方法及系统及装置及介质 |
CN113098694A (zh) * | 2021-04-09 | 2021-07-09 | 杭州链网科技有限公司 | 一种混合跨链共识方法 |
CN113141414A (zh) * | 2021-05-07 | 2021-07-20 | 大连理工大学 | 一种cnfs协议中区块链节点的分组多链异步共识方法 |
CN113535849A (zh) * | 2021-07-08 | 2021-10-22 | 电子科技大学 | 一种区块链的可扩展共识方法 |
CN113722545A (zh) * | 2021-06-30 | 2021-11-30 | 电子科技大学 | 一种许可链环境下的数据编校方法 |
CN113793148A (zh) * | 2021-08-24 | 2021-12-14 | 上海点融信息科技有限责任公司 | 联盟链的区块同步方法、装置、节点和存储介质 |
CN113905096A (zh) * | 2021-06-25 | 2022-01-07 | 安徽炬汇科技发展有限公司 | 一种区块链网络、链重构方法、共识方法及数据同步方法 |
CN114579582A (zh) * | 2022-04-29 | 2022-06-03 | 武汉北大高科软件股份有限公司 | 一种基于区块链的资源处理方法和装置 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789095A (zh) * | 2017-03-30 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 分布式系统及消息处理方法 |
CN106878071A (zh) * | 2017-01-25 | 2017-06-20 | 上海钜真金融信息服务有限公司 | 一种基于Raft算法的区块链共识机制 |
CN107341660A (zh) * | 2017-05-27 | 2017-11-10 | 唐盛(北京)物联技术有限公司 | 一种区块链底层共识机制以及基于该共识机制的区块链系统 |
CN108737375A (zh) * | 2018-04-13 | 2018-11-02 | 中山大学 | 一种区块链共识方法及系统 |
CN108900585A (zh) * | 2018-06-15 | 2018-11-27 | 浙江华信区块链科技服务有限公司 | 跨链事务一致性实现方法 |
US20190097790A1 (en) * | 2017-09-22 | 2019-03-28 | NEC Laboratories Europe GmbH | Scalable byzantine fault-tolerant protocol with partial tee support |
CN109727132A (zh) * | 2018-12-28 | 2019-05-07 | 合肥达朴汇联科技有限公司 | 区块链共识节点的获取方法、装置、电子设备及存储介质 |
CN109842606A (zh) * | 2018-02-24 | 2019-06-04 | 中国科学院计算技术研究所 | 基于一致性哈希算法的区块链共识算法和系统 |
CN109949157A (zh) * | 2019-03-08 | 2019-06-28 | 矩阵元技术(深圳)有限公司 | 一种区块链共识的处理方法、装置及系统 |
CN109951474A (zh) * | 2019-03-15 | 2019-06-28 | 杭州云象网络技术有限公司 | 一种实现区块链共识出块的方法 |
US20190289068A1 (en) * | 2017-06-07 | 2019-09-19 | Zhongan Information Technology Service Co., Ltd. | Method, apparatus and system for realizing communication between blockchains |
CN110298754A (zh) * | 2019-06-21 | 2019-10-01 | 杭州云象网络技术有限公司 | 一种应用于区块链的共识方法 |
US20190370793A1 (en) * | 2018-06-04 | 2019-12-05 | Decentralized Finance Labs, Inc. | Hybrid consensus for blockchain using proof of work and proof of stake |
WO2019232789A1 (zh) * | 2018-06-08 | 2019-12-12 | 北京大学深圳研究生院 | 一种基于投票的共识方法 |
-
2020
- 2020-02-27 CN CN202010122123.8A patent/CN111311414B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878071A (zh) * | 2017-01-25 | 2017-06-20 | 上海钜真金融信息服务有限公司 | 一种基于Raft算法的区块链共识机制 |
CN106789095A (zh) * | 2017-03-30 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 分布式系统及消息处理方法 |
CN107341660A (zh) * | 2017-05-27 | 2017-11-10 | 唐盛(北京)物联技术有限公司 | 一种区块链底层共识机制以及基于该共识机制的区块链系统 |
US20190289068A1 (en) * | 2017-06-07 | 2019-09-19 | Zhongan Information Technology Service Co., Ltd. | Method, apparatus and system for realizing communication between blockchains |
US20190097790A1 (en) * | 2017-09-22 | 2019-03-28 | NEC Laboratories Europe GmbH | Scalable byzantine fault-tolerant protocol with partial tee support |
CN109842606A (zh) * | 2018-02-24 | 2019-06-04 | 中国科学院计算技术研究所 | 基于一致性哈希算法的区块链共识算法和系统 |
CN108737375A (zh) * | 2018-04-13 | 2018-11-02 | 中山大学 | 一种区块链共识方法及系统 |
US20190370793A1 (en) * | 2018-06-04 | 2019-12-05 | Decentralized Finance Labs, Inc. | Hybrid consensus for blockchain using proof of work and proof of stake |
WO2019232789A1 (zh) * | 2018-06-08 | 2019-12-12 | 北京大学深圳研究生院 | 一种基于投票的共识方法 |
CN108900585A (zh) * | 2018-06-15 | 2018-11-27 | 浙江华信区块链科技服务有限公司 | 跨链事务一致性实现方法 |
CN109727132A (zh) * | 2018-12-28 | 2019-05-07 | 合肥达朴汇联科技有限公司 | 区块链共识节点的获取方法、装置、电子设备及存储介质 |
CN109949157A (zh) * | 2019-03-08 | 2019-06-28 | 矩阵元技术(深圳)有限公司 | 一种区块链共识的处理方法、装置及系统 |
CN109951474A (zh) * | 2019-03-15 | 2019-06-28 | 杭州云象网络技术有限公司 | 一种实现区块链共识出块的方法 |
CN110298754A (zh) * | 2019-06-21 | 2019-10-01 | 杭州云象网络技术有限公司 | 一种应用于区块链的共识方法 |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111770149A (zh) * | 2020-06-23 | 2020-10-13 | 江苏荣泽信息科技股份有限公司 | 基于分布式存储的新型联盟链 |
CN111770149B (zh) * | 2020-06-23 | 2023-02-14 | 江苏荣泽信息科技股份有限公司 | 基于分布式存储的新型联盟链系统 |
CN112069169A (zh) * | 2020-07-30 | 2020-12-11 | 北京奇艺世纪科技有限公司 | 区块数据存储方法、装置、电子设备及可读存储介质 |
CN112069169B (zh) * | 2020-07-30 | 2023-08-15 | 北京奇艺世纪科技有限公司 | 区块数据存储方法、装置、电子设备及可读存储介质 |
CN112116347B (zh) * | 2020-08-12 | 2023-09-29 | 北京智融云河科技有限公司 | 一种基于随机共识机制的图式账本数据发布方法和装置 |
CN112116347A (zh) * | 2020-08-12 | 2020-12-22 | 北京智融云河科技有限公司 | 一种基于随机共识机制的图式账本数据发布方法和装置 |
CN112188247A (zh) * | 2020-09-29 | 2021-01-05 | 腾讯科技(北京)有限公司 | 一种数据传输方法、装置、设备及计算机可读存储介质 |
CN112040015A (zh) * | 2020-11-06 | 2020-12-04 | 腾讯科技(深圳)有限公司 | 一种共识节点列表生成方法及相关装置 |
CN112258092A (zh) * | 2020-11-23 | 2021-01-22 | 国网能源研究院有限公司 | 一种基于区块链的数据资产可信度评估方法、装置 |
CN112418861B (zh) * | 2020-12-07 | 2024-06-25 | 江南大学 | 一种应用于工业物联网的节点快速共识方法 |
CN112418861A (zh) * | 2020-12-07 | 2021-02-26 | 江南大学 | 一种应用于工业物联网的节点快速共识方法 |
CN112700333A (zh) * | 2021-01-11 | 2021-04-23 | 东北大学 | 一种基于区块链的电子档案共识方法 |
CN112700333B (zh) * | 2021-01-11 | 2023-10-03 | 东北大学 | 一种基于区块链的电子档案共识方法 |
CN112966048A (zh) * | 2021-03-09 | 2021-06-15 | 安徽超清科技股份有限公司 | 一种区块链共识方法 |
CN112948394A (zh) * | 2021-03-26 | 2021-06-11 | 重庆倍来电新能源有限公司 | 一种基于区块链的智能终端数据协同方法 |
CN112948394B (zh) * | 2021-03-26 | 2023-09-26 | 重庆倍来电新能源有限公司 | 一种基于区块链的智能终端数据协同方法 |
CN113076375B (zh) * | 2021-03-29 | 2023-07-25 | 湖北央中巨石信息技术有限公司 | 基于区块链的多方同步抽样共识方法及系统及装置及介质 |
CN112988896B (zh) * | 2021-03-29 | 2023-02-28 | 湖北央中巨石信息技术有限公司 | 一种基于区块链的同步共识方法及系统及装置及介质 |
CN112988896A (zh) * | 2021-03-29 | 2021-06-18 | 湖北央中巨石信息技术有限公司 | 一种基于区块链的同步共识方法及系统及装置及介质 |
CN113076375A (zh) * | 2021-03-29 | 2021-07-06 | 湖北央中巨石信息技术有限公司 | 基于区块链的多方同步抽样共识方法及系统及装置及介质 |
CN113098694B (zh) * | 2021-04-09 | 2023-12-08 | 杭州链网科技有限公司 | 一种混合跨链共识方法 |
CN113098694A (zh) * | 2021-04-09 | 2021-07-09 | 杭州链网科技有限公司 | 一种混合跨链共识方法 |
CN113141414A (zh) * | 2021-05-07 | 2021-07-20 | 大连理工大学 | 一种cnfs协议中区块链节点的分组多链异步共识方法 |
CN113141414B (zh) * | 2021-05-07 | 2022-04-12 | 大连理工大学 | 一种cnfs协议中区块链节点的分组多链异步共识方法 |
CN113905096A (zh) * | 2021-06-25 | 2022-01-07 | 安徽炬汇科技发展有限公司 | 一种区块链网络、链重构方法、共识方法及数据同步方法 |
CN113905096B (zh) * | 2021-06-25 | 2024-02-23 | 安徽炬汇科技发展有限公司 | 一种区块链网络、链重构方法、共识方法及数据同步方法 |
CN113722545B (zh) * | 2021-06-30 | 2023-04-28 | 电子科技大学 | 一种许可链环境下的数据编校方法 |
CN113722545A (zh) * | 2021-06-30 | 2021-11-30 | 电子科技大学 | 一种许可链环境下的数据编校方法 |
CN113535849B (zh) * | 2021-07-08 | 2023-03-07 | 电子科技大学 | 一种区块链的可扩展共识方法 |
CN113535849A (zh) * | 2021-07-08 | 2021-10-22 | 电子科技大学 | 一种区块链的可扩展共识方法 |
CN113793148A (zh) * | 2021-08-24 | 2021-12-14 | 上海点融信息科技有限责任公司 | 联盟链的区块同步方法、装置、节点和存储介质 |
CN113793148B (zh) * | 2021-08-24 | 2024-03-22 | 上海点融信息科技有限责任公司 | 联盟链的区块同步方法、装置、节点和存储介质 |
CN114579582A (zh) * | 2022-04-29 | 2022-06-03 | 武汉北大高科软件股份有限公司 | 一种基于区块链的资源处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111311414B (zh) | 2023-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111311414A (zh) | 一种基于一致性哈希算法的区块链多方共识方法 | |
CN110990408B (zh) | 基于区块链的业务信息协同方法、业务系统及联盟链 | |
CN110875893B (zh) | 共识验证方法、校验节点及区块链系统 | |
CN109447795B (zh) | 一种支持快速达成最终确认性的拜占庭共识方法 | |
CN111131209B (zh) | 一种改进的高效共识方法、系统、计算机设备及存储介质 | |
CN110298754B (zh) | 一种应用于区块链的共识方法 | |
Bessani et al. | From byzantine replication to blockchain: Consensus is only the beginning | |
CN110399424B (zh) | 区块生成方法、装置、区块链节点及存储介质 | |
CN112907252B (zh) | 一种基于多人链下通道的区块链交易方法及系统 | |
CN111682942B (zh) | 一种应用于许可链的二元加权拜占庭容错共识方法 | |
CN114050904B (zh) | 一种基于两层级领导节点分片结构的共识系统及方法 | |
CN110324331B (zh) | 基于区块链的电力系统安全稳定控制终端身份认证方法 | |
CN111798234B (zh) | 一种轻量级区块链系统及构造方法 | |
CN115633035B (zh) | 一种基于改进的pbft物联网区块链共识算法 | |
Xi et al. | [Retracted] A Comprehensive Survey on Sharding in Blockchains | |
CN110780848B (zh) | 基于区块链分布式随机过程的双随机生成方法和监管系统 | |
CN112395113A (zh) | 实用拜占庭容错共识方法及装置、可读存储介质 | |
CN114449476A (zh) | 一种用于车联网中安全通信的区块链节点共识方法 | |
CN111970370B (zh) | 基于面向通信设备体系的多层区块链协议拓展系统及方法 | |
CN113283892A (zh) | 一种基于投票机制的PoSearch与PBFT融合共识算法 | |
Al-Mamun et al. | Dean: A lightweight and resource-efficient blockchain protocol for reliable edge computing | |
Li et al. | EBFT: A hierarchical and group-based byzantine fault tolerant consensus algorithm | |
Wu et al. | Blockchain consensus mechanism for distributed energy transactions | |
CN114499874B (zh) | 一种应用于工业互联网的拜占庭容错共识优化方法 | |
Al-Mamun et al. | Trustworthy edge computing through blockchains |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |