CN109872152B - 基于股份授权证明机制的区块链共识方法及相关设备 - Google Patents
基于股份授权证明机制的区块链共识方法及相关设备 Download PDFInfo
- Publication number
- CN109872152B CN109872152B CN201910026430.3A CN201910026430A CN109872152B CN 109872152 B CN109872152 B CN 109872152B CN 201910026430 A CN201910026430 A CN 201910026430A CN 109872152 B CN109872152 B CN 109872152B
- Authority
- CN
- China
- Prior art keywords
- nodes
- node
- block
- block chain
- node information
- 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.)
- Active
Links
- 230000007246 mechanism Effects 0.000 title claims abstract description 61
- 238000013475 authorization Methods 0.000 title claims abstract description 34
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000012795 verification Methods 0.000 claims description 27
- 238000004364 calculation method Methods 0.000 claims description 16
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000012216 screening Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 238000005096 rolling process Methods 0.000 claims description 4
- 238000012546 transfer Methods 0.000 claims description 4
- 238000013461 design Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000007599 discharging Methods 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000009414 blockwork Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000001360 synchronised effect 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
-
- 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
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Development Economics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及区块链的共识机制技术领域,尤其涉及一种基于股份授权证明机制的区块链共识方法及相关设备。该方法包括:采集节点的节点信息,将节点信息广播给其他节点,节点信息中包含有节点标识;获得多个节点广播的节点信息后,以股份授权证明机制进行投票后,将节点信息继续广播给其他节点;对所有节点的投票从高到低进行排列,获得票数最高的前N个节点,将N个节点定义为代表节点,将代表节点对应的节点标识更新至轮流记账表,将轮流记账表广播至所有节点。本发明将节点信息和行DPOS共识机制相结合,投票选举出代表节点,保证了投票选举出的代表节点均处于效能最大化状态,保证了各节点的公平性。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种基于股份授权证明机制的区块链共识方法及相关设备。
背景技术
区块链网络是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,而共识算法是区块链的核心机制之一。随着区块链技术的发展和演变包含了:POW(工作量证明)、POS(权益证明)、DPOS(股份授权证明机制)等算法。其中,DPOS机制是每个股东按其持股比例拥有影响力,51%股东投票的结果将是不可逆且有约束力的。这种共识机制是通过及时而高效的方法达到51%批准。为达到这个目标,每个股东可以将其投票权授予一名代表。获票数最多的前101位代表按既定时间表轮流产生区块。每名代表分配到一个时间段来产生区块。所有的代表将收到等同于一个平均水平的区块所含交易费的10%作为报酬。但是由于DPOS机制没有考虑到共识节点实际在用效率及贡献,造成极大不公平和资源浪费。
发明内容
有鉴于此,有必要针对DPOS共识机制中,未考虑共识节点实际效率及贡献,造成不公平和资源浪费的问题,提供一种基于股份授权证明机制的区块链共识方法及相关设备。
一种基于股份授权证明机制的区块链共识方法,包括:
采集节点的节点信息,将所述节点信息广播给所述区块链网络中与自身节点联通的其他节点,所述节点信息中包含有节点标识;
获得所述区块链网络中多个节点广播的所述节点信息后,以股份授权证明机制进行投票后,将所述节点信息继续广播给所述区块链网络中与自身节点联通的其他节点;
对所有节点的投票从高到低进行排列,获得票数最高的前N个节点,将所述N个节点定义为代表节点,将所述代表节点对应的节点标识更新至轮流记账表,将所述轮流记账表广播至所述区块链网络中的所有节点。
一种可能的设计中,所述采集节点的节点信息,包括:
采集节点资源信息,所述节点资源信息包括网络连接速度、CPU空闲率和内存空闲率,将所述网络连接速度、所述CPU空闲率和所述内存空闲率相加,得到节点资源值;
采集节点的历史出块数量和所述区块链网络的出块总数,将所述历史出块数量除以所述出块总数,得到节点贡献度;
采集节点的历史出块速度,计算历史出块平均速度,所述历史出块平均速度为历史服务指标;
所述节点信息包括预设的节点标识、所述节点资源值、所述节点贡献度和所述历史服务指标。
一种可能的设计中,所述将所述节点信息广播给所述区块链网络中与自身节点联通的其他节点,包括:
通过传输控制协议TCP协议与所述区块链网络中的其他节点建立连接;
将所述节点信息以超文本传输协议HTTP请求报文的格式广播给其他节点。
一种可能的设计中,所述获得所述区块链网络中多个节点广播的所述节点信息后,以股份授权证明机制进行投票后,将所述节点信息继续广播给所述区块链网络中与自身节点联通的其他节点,包括:
获得所述区块链网络中多个节点广播的所述节点信息后,对每个所述节点信息进行加权计算,得到加权系数值,对多个所述节点的所述加权系数值从高到低排序,筛选出所述加权系数值最高的M个节点;
所述加权系数值Zi的加权计算公式如下:
Zi=Ai*a+Bi*b+Ci*c
其中,Ai为第i个节点的节点资源值,Bi为第i个节点的节点贡献度,Ci为第i个节点的历史服务指标,a、b和c为系数;
通过所述股份授权证明机制,自动投票给所述M个节点,投票完成后,将多个节点的节点信息继续广播给所述区块链网络中与自身节点联通的其他节点。
一种可能的设计中,获得所述区块链网络中多个节点广播的所述节点信息后,对每个所述节点信息进行加权计算,得到加权系数值,包括:
获得所述区块链网络中多个节点广播的所述节点信息后,在预设的出块记录表中查找多个所述节点是否存在历史出块失败记录,若任一所述节点存在历史出块失败记录,则将所述节点剔除;
将剔除历史出块失败记录后的多个节点的节点信息进行加权计算,得到加权系数值。
一种可能的设计中,所述对所有节点的投票从高到低进行排列,获得票数最高的前N个节点,将所述N个节点定义为代表节点,将所述代表节点对应的节点标识更新至轮流记账表,将所述轮流记账表广播至所述区块链网络中的所有节点后,还包括:
获取交易信息,对所述交易信息生成交易区块,将所述交易区块广播至所述区块链网络中的其他节点;
接收其他节点广播的交易区块,对所述交易区块进行一致性验证,当验证通过时,将所述交易区块签名后广播给所述区块链网络中的其他节点,将所述交易区块进行存储,并将所述交易区块对应的节点标识、出块速度和出块通过标识记录在所述出块记录表中,否则将所述交易区块对应的节点标识和出块失败标识记录在所述出块记录表中。
一种可能的设计中,所述接收其他节点广播的交易区块,对所述交易区块进行一致性验证,包括:
当接收到的所述交易区块已被N个节点签名,则自动定义为验证通过;
否则,获取所述交易区块中的区块头信息,所述区块头信息中包含有节点标识,将所述节点标识与轮流记账表的代表节点排列顺序进行比较,判断是否轮到当前节点标识对应的代表节点出块,如果是,则判断为验证通过,否则,判断为验证失败。
一种基于股份授权证明机制的区块链共识装置,包括:
采集节点信息模块,用于采集节点的节点信息,将所述节点信息广播给所述区块链网络中与自身节点联通的其他节点,所述节点信息中包含有节点标识;
投票模块,用于获得所述区块链网络中多个节点广播的所述节点信息后,以股份授权证明机制进行投票后,将所述节点信息继续广播给所述区块链网络中与自身节点联通的其他节点;
产生代表节点模块,用于对所有节点的投票从高到低进行排列,获得票数最高的前N个节点,将所述N个节点定义为代表节点,将所述代表节点对应的节点标识更新至轮流记账表,将所述轮流记账表广播至所述区块链网络中的所有节点。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述基于股份授权证明机制的区块链共识方法的步骤。
一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述基于股份授权证明机制的区块链共识方法的步骤。
上述基于股份授权证明机制的区块链共识方法、装置、计算机设备和存储介质,包括采集节点的节点信息,将所述节点信息广播给所述区块链网络中与自身节点联通的其他节点,所述节点信息中包含有节点标识;获得所述区块链网络中多个节点广播的所述节点信息后,以股份授权证明机制进行投票后,将所述节点信息继续广播给所述区块链网络中与自身节点联通的其他节点;对所有节点的投票从高到低进行排列,获得票数最高的前N个节点,将所述N个节点定义为代表节点,将所述代表节点对应的节点标识更新至轮流记账表,将所述轮流记账表广播至所述区块链网络中的所有节点。本发明在对节点进行DPOS共识机制选举时,采集节点实际的节点信息,实时同步至区块链网络中,作为投票数据,供其他节点参考后,进行投票,保证了投票出的代表节点均处于效能最大化状态,保证了公平性。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。
图1为本发明一个实施例中的基于股份授权证明机制的区块链共识方法的流程图;
图2为一个实施例中步骤S1采集节点信息的一种流程图;
图3为一个实施例中步骤S2的一种流程图;
图4为本发明一个实施例中基于股份授权证明机制的区块链共识装置的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
图1为本发明一个实施例中的基于股份授权证明机制的区块链共识方法的流程图,如图1所示,包括以下步骤:
步骤S1,采集节点信息:采集节点的节点信息,将节点信息广播给区块链网络中与自身节点联通的其他节点,节点信息中包含有节点标识。
区块链网络是一种基于区块链技术的系统,也被称为分布式账本技术,是一种互联网数据库技术。其特点是去中心化、公开透明,让每个用户均可参与维护数据库记录。区块链网络是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链网络主要包括数据层、智能合约层、共识层等,其中,数据层封装了低层数据区块以及相关的数据加密和时间戳等基础数据和基本算法,而低层数据区块以链式结构呈现,即区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。智能合约是基于这些可信的不可篡改的数据,可以自动化的执行一些预先定义好的规则、条款或算法。共识层封装有共识机制,共识机制的目标是使所有节点保存一致的、有效的区块链数据。区块链上采用不同的共识机制,在满足一致性和有效性的同时会对系统整体性能产生不同影响。本步骤采用基于股份授权证明机制(DPOS共识机制)的区块链网络。在区块链网络中的任一节点都需遵守股份授权证明机制的规则,在此区块链网络中,全体节点投票选举出一定数量的代表节点,由代表节点来代理全体节点生成区块及确认区块、维持系统有序运行。
在一个实施例中,步骤S1中,采集节点的节点信息,如图2所示,包括:
步骤S101,计算节点资源值:采集节点资源信息,节点资源信息包括网络连接速度、CPU空闲率和内存空闲率,将网络连接速度、CPU空闲率和内存空闲率相加,得到节点资源值。
在采集节点资源信息时,可以通过hook机制监听节点的网络连接速度、CPU空闲率和内存空闲率,得到节点资源信息。
步骤S102,计算节点贡献度:采集节点的历史出块数量和区块链网络的出块总数,将历史出块数量除以出块总数,得到节点贡献度。
本步骤的节点贡献度指该节点在以往的生成交易区块中出块所占的比例,由自己参与的出块越多,节点贡献度越大。
在区块链网络中的所有节点均预设有一份出块记录表,出块记录表中记录有每个生成的交易区块对应的节点标识、出块速度、出块通过标识或出块失败标识。从出块记录表中查找哪些属于此节点的节点标识生成的交易区块,去除出块失败标识的交易区块后,计算其他交易区块的数量,得到节点的历史出块数量。去除出块失败标识的交易区块后,计算出块记录表中交易区块的总数,得到出块总数。
步骤S103,计算历史服务指标:采集节点的历史出块速度,计算历史出块平均速度,历史出块平均速度为历史服务指标。
本步骤的历史服务指标是指该节点历史的区块中出块的平均速度。从出块记录表中查找哪些属于此节点的节点标识生成的交易区块,去除出块失败标识的交易区块后,获取剔除后的交易区块对应的出块速度,将所有出块速度求和后,除以节点的历史出块数量,得到的结果即为历史服务指标。
步骤S104,得到节点信息:节点信息包括预设的节点标识、节点资源值、节点贡献度和历史服务指标。
为了区分区块链网络中的节点身份,任一节点在区块链网络中进行注册后,均会被分配唯一的节点标识,用以身份证明。本步骤的节点信息不仅包括采集和处理后的多项指标,还包括此节点标识,用于后续在投票是区别各节点身份。
本实施例通过在采用股份授权证明机制对全体节点进行投票选举前,采集节点资源值、节点贡献度和历史服务指标,为后续投票选举提供参考数据,保证后续投票出的代表节点均能处于效能最大化状态。
在一个实施例中,步骤S1中,将节点信息广播给区块链网络中与自身节点联通的其他节点,包括:
步骤S111,建立连接:通过传输控制协议TCP协议与区块链网络中的其他节点建立连接。
TCP(Transmission Control Protocol传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。节点在广播时,采用TCP协议,进行三次握手,与其他节点建立连接后,将自身的节点信息发送给其他节点,建立连接过程如下:
节点首先发送标志位syn报文请求,其他节点收到请求后,发送syn和标志位ack确认连接请求;节点收到请求后,再次发送ack进行确认,完成节点与其他节点TCP连接。
步骤S112,广播:将节点信息以超文本传输协议HTTP请求报文的格式广播给其他节点。
HTTP(Hyper Text Transfer Protocol,超文本传输协议),是一种建立在TCP上的无状态连接。建立TCP连接后,其他节点接收节点发送的节点信息,此节点信息以HTTP请求报文的格式发送。HTTP请求报文包括4个部分,分别为请求行、请求头部、空白行和请求主体。其中请求行包括请求方法、请求URL、http协议版本,其中请求方法为GET、POST、HEAD或PUT等,请求头部包括节点信息、字符集等。
为了保证节点信息的安全稳定传输,在广播前,还可以通过节点预设的私钥对节点信息加密后,广播到其他节点。
本步骤通过建立TCP连接,以HTTP请求报文的格式将节点的节点信息广播给其他节点,此广播方式即安全稳定,又快速,适用于区块链网络的广播。
步骤S2,投票:获得区块链网络中多个节点广播的节点信息后,以股份授权证明机制进行投票后,将节点信息继续广播给区块链网络中与自身节点联通的其他节点。
区块链网络中的任一节点不仅将自身节点的节点信息广播至其他节点,还接收其他节点广播的节点信息,本步骤在对节点进行投票前,无需接收全部节点广播的节点信息,而是接收到一定数量节点的节点资源信息后,例如,当接收到区块链网络中90%的节点广播的节点资源信息后,根据节点信息,通过股份授权证明机制限定的投票规则进行投票。
在一个实施例中,步骤S2,如图3所示,包括:
步骤S201,筛选节点:获得区块链网络中多个节点广播的节点信息后,对每个节点信息进行加权计算,得到加权系数值,对多个节点的加权系数值从高到低排序,筛选出加权系数值最高的M个节点。
加权系数值Zi的加权计算公式如下:
Zi=Ai*a+Bi*b+Ci*c
其中,Ai为第i个节点的节点资源值,Bi为第i个节点的节点贡献度,Ci为第i个节点的历史服务指标,a、b和c为系数。
在加权系数值Zi的加权计算公式中,系数a、b和c是取值范围在0-1之间的常数,且a+b+c=1,可以分别取值为0.2、0.5和0.3。
在筛选出加权系数值最高的M个节点时,若存在多个节点具有相同加权系数值时,例如,筛选出的节点o、节点p和节点q分别为第M-1、M和M+1个节点,具有相同加权系数值时,则筛选出接收到多个节点中广播在前的节点。
步骤S202,自动投票:通过股份授权证明机制,自动投票给M个节点,投票完成后,将多个节点的节点信息继续广播给区块链网络中与自身节点联通的其他节点。
股份授权证明机制封装在区块链网络的共识层中,区块链网络中的任一节点都遵循共识层的共识机制,在本步骤中,任一节点都遵循股份授权证明机制,任一节点都采用同一个共识算法,在共识层自动对筛选出的M个节点进行投票。
本实施例通过对多个节点的节点信息计算加权系数值,对加权系数值从高到低排序,筛选出效能最大化状态的M个节点,作为投票节点,通过股份授权证明机制完成自动投票,在投票完成后,还将多个节点的节点信息继续进行广播,这种点对点,逐个向临近点广播的方式,节点和节点之间的传播速度快,传播数据的安全性更高,节点之间还可以共享部分软硬件资源和服务,无需经过中间实体,实现了去中心化的目的。
在一个实施例中,步骤S201中,获得区块链网络中多个节点广播的节点信息后,对每个节点信息进行加权计算,得到加权系数值,包括:
步骤S20101,剔除历史出块失败的节点:获得区块链网络中多个节点广播的节点信息后,在预设的出块记录表中查找多个节点是否存在历史出块失败记录,若任一节点存在历史出块失败记录,则将节点剔除。
若任一节点因规定时间内或者网络、一致性验证失败等问题,导致出块失败,会被直接剔除代表节点选举。
本步骤在预设的出块记录表中查找,查找获得的多个节点对应的节点标识,在出块记录表中是否存在出块失败标识,若存在,则认为出块失败标识对应的节点存在历史出块失败记录。
步骤S20102,计算加权系数值:将剔除历史出块失败记录后的多个节点的节点信息进行加权计算,得到加权系数值。
由于历史出块失败记录的节点没有必要计算加权系数值,因此在在计算加权系数值前,先将历史出块失败记录的节点剔除掉,减少计算算力。
本实施例对历史出块失败的节点,直接剔除代表节点的选举,保证了投票选举的公平性,提高了后续代表节点的出块质量。
步骤S3,产生代表节点:对所有节点的投票从高到低进行排列,获得票数最高的前N个节点,将N个节点定义为代表节点,将代表节点对应的节点标识更新至轮流记账表,将轮流记账表广播至区块链网络中的所有节点。
在区块链网络的共识层中预设有筛选代表节点的共识算法,此共识算法与现有技术中股份授权证明机制限定的筛选代表节点的规则相同,例如:
dlist_i=get N delegates sort by votes
上述代码即为自动获取区块链网络中所有节点的投票结果,将票数最高的前N个节点自动定义为代表节点。共识算法中的N的取值可预设,可按比例设置,如10%,例如,当区块链网络中含有1000个节点时,筛选出100个代表节点。也可以按系数设置,如N=101,通过本步骤筛选出101个代表节点。筛选出N个节点即为代表节点,代表节点具有按照轮流记账表获得轮流记账权利,记账过程即为生成交易区块的过程。
筛选出N个代表节点后,还将N个代表节点对应的节点标识写入预设的轮流记账表中。以便于后续通过轮流记账表进行一致性验证。为了保证一致性验证的安全可靠,在对N个代表节点均完成节点标识写入轮流记账表后,还对轮流记账表中的N个节点标识进行随机排序:
dlist_i=shuffle(dlist_i)
通过上述随机排序后,得到最终的轮流记账表,将轮流记账表广播至区块链网络中的所有节点,以便于节点用于后续对交易区块的一致性验证。
步骤S4,出块及验证:获取交易信息,对交易信息生成交易区块,将交易区块广播至区块链网络中的其他节点;接收其他节点广播的交易区块,对交易区块进行一致性验证,当验证通过时,将交易区块签名后广播给区块链网络中的其他节点,将交易区块进行存储,并将交易区块对应的节点标识、出块速度和出块通过标识记录在出块记录表中,否则将交易区块对应的节点标识和出块失败标识记录在出块记录表中。
当任一获得获得轮流记账权利的代表节点自动接收到交易信息后,将交易信息生成交易区块,还将交易区块进行广播。代表节点不仅完成交易区块工作,还进行一致性验证工作。其中,在对交易区块进行一致性验证时,包括:
当接收到的交易区块已被N个节点签名,则自动定义为验证通过;否则,获取交易区块中的区块头信息,区块头信息中包含有节点标识,将节点标识与轮流记账表的代表节点排列顺序进行比较,判断是否轮到当前节点标识对应的代表节点出块,如果是,则判断为验证通过,否则,判断为验证失败。
本步骤的一致性验证是节点检验每次出块的区块头信息与轮流记账表的排列顺序是否一致,从而保证一致性,当两者是一致时,通过自身节点预设的私钥对区块头进行签名,以证明对此交易区块验证通过。若区块验证不一致,则节点不对此交易区块进行签名,此交易区块无法满足M个节点验证通过时,自动由下一个代表节点获取此交易信息,重新生成区块。
本实施例基于股份授权证明机制的区块链共识方法,通过采集区块链网络中所有节点的节点信息,在对节点进行投票选举时,以节点信息作为投票重要数据,结合DPOS共识机制,选举出一定个数的代表节点作为后续出块和验证节点。以节点信息作为投票重要数据,选举出的代表节点均能处于效能最大化状态,保证了各节点的公平性。结合DPOS共识机制,保证了节点安全性,防止区块链网络被恶意攻击。
在一个实施例中,提出了一种基于股份授权证明机制的区块链共识装置,如图4所示,包括如下模块:
采集节点信息模块,用于采集节点的节点信息,将节点信息广播给区块链网络中与自身节点联通的其他节点,节点信息中包含有节点标识;
投票模块,用于获得区块链网络中多个节点广播的节点信息后,以股份授权证明机制进行投票后,将节点信息继续广播给区块链网络中与自身节点联通的其他节点;
产生代表节点模块,用于对所有节点的投票从高到低进行排列,获得票数最高的前N个节点,将N个节点定义为代表节点,将代表节点对应的节点标识更新至轮流记账表,将轮流记账表广播至区块链网络中的所有节点。
在一个实施例中,提出了一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行计算机可读指令时实现上述各实施例的基于股份授权证明机制的区块链共识方法中的步骤。
在一个实施例中,提出了一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各实施例的基于股份授权证明机制的区块链共识方法中的步骤。其中,存储介质可以为非易失性存储介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明一些示例性实施例,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种基于股份授权证明机制的区块链共识方法,其特征在于,包括:
采集节点的节点信息,将所述节点信息广播给区块链网络中与自身节点联通的其他节点,所述节点信息中包含有节点标识;
获得所述区块链网络中多个节点广播的所述节点信息后,以股份授权证明机制进行投票后,将所述节点信息继续广播给所述区块链网络中与自身节点联通的其他节点;
对所有节点的投票从高到低进行排列,获得票数最高的前N个节点,将所述N个节点定义为代表节点,将所述代表节点对应的节点标识更新至轮流记账表,将所述轮流记账表广播至所述区块链网络中的所有节点;
所述采集节点的节点信息,包括:
采集节点资源信息,所述节点资源信息包括网络连接速度、CPU空闲率和内存空闲率,将所述网络连接速度、所述CPU空闲率和所述内存空闲率相加,得到节点资源值;
采集节点的历史出块数量和所述区块链网络的出块总数,将所述历史出块数量除以所述出块总数,得到节点贡献度;
采集节点的历史出块速度,计算历史出块平均速度,所述历史出块平均速度为历史服务指标;
所述节点信息包括预设的节点标识、所述节点资源值、所述节点贡献度和所述历史服务指标;
所述获得所述区块链网络中多个节点广播的所述节点信息后,以股份授权证明机制进行投票后,将所述节点信息继续广播给所述区块链网络中与自身节点联通的其他节点,包括:
获得所述区块链网络中多个节点广播的所述节点信息后,对每个所述节点信息进行加权计算,得到加权系数值,对多个所述节点的所述加权系数值从高到低排序,筛选出所述加权系数值最高的M个节点;
所述加权系数值Zi的加权计算公式如下:
其中,Ai为第i个节点的节点资源值,Bi为第i个节点的节点贡献度,Ci为第i个节点的历史服务指标,a、b和c为系数;
通过所述股份授权证明机制,自动投票给所述M个节点,投票完成后,将多个节点的节点信息继续广播给所述区块链网络中与自身节点联通的其他节点。
2.根据权利要求1所述的基于股份授权证明机制的区块链共识方法,其特征在于,所述将所述节点信息广播给所述区块链网络中与自身节点联通的其他节点,包括:
通过传输控制协议TCP协议与所述区块链网络中的其他节点建立连接;
将所述节点信息以超文本传输协议HTTP请求报文的格式广播给其他节点。
3.根据权利要求1所述的基于股份授权证明机制的区块链共识方法,其特征在于,获得所述区块链网络中多个节点广播的所述节点信息后,对每个所述节点信息进行加权计算,得到加权系数值,包括:
获得所述区块链网络中多个节点广播的所述节点信息后,在预设的出块记录表中查找多个所述节点是否存在历史出块失败记录,若任一所述节点存在历史出块失败记录,则将所述节点剔除;
将剔除历史出块失败记录后的多个节点的节点信息进行加权计算,得到加权系数值。
4.根据权利要求3所述的基于股份授权证明机制的区块链共识方法,其特征在于,所述对所有节点的投票从高到低进行排列,获得票数最高的前N个节点,将所述N个节点定义为代表节点,将所述代表节点对应的节点标识更新至轮流记账表,将所述轮流记账表广播至所述区块链网络中的所有节点后,还包括:
获取交易信息,对所述交易信息生成交易区块,将所述交易区块广播至所述区块链网络中的其他节点;
接收其他节点广播的交易区块,对所述交易区块进行一致性验证,当验证通过时,将所述交易区块签名后广播给所述区块链网络中的其他节点,将所述交易区块进行存储,并将所述交易区块对应的节点标识、出块速度和出块通过标识记录在所述出块记录表中,否则将所述交易区块对应的节点标识和出块失败标识记录在所述出块记录表中。
5.根据权利要求4所述的基于股份授权证明机制的区块链共识方法,其特征在于,所述接收其他节点广播的交易区块,对所述交易区块进行一致性验证,包括:
当接收到的所述交易区块已被N个节点签名,则自动定义为验证通过;
否则,获取所述交易区块中的区块头信息,所述区块头信息中包含有节点标识,将所述节点标识与轮流记账表的代表节点排列顺序进行比较,判断是否轮到当前节点标识对应的代表节点出块,如果是,则判断为验证通过,否则,判断为验证失败。
6.一种基于股份授权证明机制的区块链共识装置,其特征在于,包括:
采集节点信息模块,用于采集节点的节点信息,将所述节点信息广播给区块链网络中与自身节点联通的其他节点,所述节点信息中包含有节点标识;
投票模块,用于获得所述区块链网络中多个节点广播的所述节点信息后,以股份授权证明机制进行投票后,将所述节点信息继续广播给所述区块链网络中与自身节点联通的其他节点;
产生代表节点模块,用于对所有节点的投票从高到低进行排列,获得票数最高的前N个节点,将所述N个节点定义为代表节点,将所述代表节点对应的节点标识更新至轮流记账表,将所述轮流记账表广播至所述区块链网络中的所有节点;
所述采集节点信息模块,还用于:采集节点资源信息,所述节点资源信息包括网络连接速度、CPU空闲率和内存空闲率,将所述网络连接速度、所述CPU空闲率和所述内存空闲率相加,得到节点资源值;采集节点的历史出块数量和所述区块链网络的出块总数,将所述历史出块数量除以所述出块总数,得到节点贡献度;采集节点的历史出块速度,计算历史出块平均速度,所述历史出块平均速度为历史服务指标;所述节点信息包括预设的节点标识、所述节点资源值、所述节点贡献度和所述历史服务指标;
所述投票模块,还用于:获得所述区块链网络中多个节点广播的所述节点信息后,对每个所述节点信息进行加权计算,得到加权系数值,对多个所述节点的所述加权系数值从高到低排序,筛选出所述加权系数值最高的M个节点;所述加权系数值Zi的加权计算公式如下:
其中,Ai为第i个节点的节点资源值,Bi为第i个节点的节点贡献度,Ci为第i个节点的历史服务指标,a、b和c为系数;
通过所述股份授权证明机制,自动投票给所述M个节点,投票完成后,将多个节点的节点信息继续广播给所述区块链网络中与自身节点联通的其他节点。
7.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至5中任一项权利要求所述基于股份授权证明机制的区块链共识方法的步骤。
8.一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至5中任一项权利要求所述基于股份授权证明机制的区块链共识方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910026430.3A CN109872152B (zh) | 2019-01-11 | 2019-01-11 | 基于股份授权证明机制的区块链共识方法及相关设备 |
PCT/CN2019/092588 WO2020143183A1 (zh) | 2019-01-11 | 2019-06-24 | 基于股份授权证明机制的区块链共识方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910026430.3A CN109872152B (zh) | 2019-01-11 | 2019-01-11 | 基于股份授权证明机制的区块链共识方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109872152A CN109872152A (zh) | 2019-06-11 |
CN109872152B true CN109872152B (zh) | 2022-07-15 |
Family
ID=66917607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910026430.3A Active CN109872152B (zh) | 2019-01-11 | 2019-01-11 | 基于股份授权证明机制的区块链共识方法及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109872152B (zh) |
WO (1) | WO2020143183A1 (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109872152B (zh) * | 2019-01-11 | 2022-07-15 | 平安科技(深圳)有限公司 | 基于股份授权证明机制的区块链共识方法及相关设备 |
WO2020258252A1 (zh) * | 2019-06-28 | 2020-12-30 | 深圳市网心科技有限公司 | 一种区块链数据的共识方法及相关设备 |
CN112491935A (zh) * | 2019-08-20 | 2021-03-12 | 厦门本能管家科技有限公司 | 一种用于区块链的水波式广播方法及系统 |
CN111131184B (zh) * | 2019-12-06 | 2022-07-29 | 长沙理工大学 | 一种区块链共识机制的自主调节方法 |
CN111131209B (zh) * | 2019-12-16 | 2022-06-28 | 国网重庆市电力公司客户服务中心 | 一种改进的高效共识方法、系统、计算机设备及存储介质 |
CN111291628B (zh) * | 2020-01-17 | 2024-02-06 | 黄芸芸 | 基于区块链技术的人脸数据分布式识别及存储架构 |
CN111371557B (zh) * | 2020-02-26 | 2024-01-23 | 百度在线网络技术(北京)有限公司 | 区块链数据处理方法、装置、电子设备及介质 |
CN111930845A (zh) * | 2020-08-12 | 2020-11-13 | 湖南宸瀚信息科技有限责任公司 | 一种区块链的共识方法、系统、终端、及存储介质 |
CN112100271B (zh) * | 2020-09-08 | 2022-07-15 | 四川大学 | 一种基于工作量排名差异的eos共识机制效用可视化方法 |
CN112187476A (zh) * | 2020-09-28 | 2021-01-05 | 北京八分量信息科技有限公司 | 基于可信计算同步区块链状态的方法、装置及相关产品 |
CN112187475A (zh) * | 2020-09-28 | 2021-01-05 | 北京八分量信息科技有限公司 | 基于可信计算进行多中心记账的方法、装置及相关产品 |
CN112184439B (zh) * | 2020-09-28 | 2024-06-18 | 北京八分量信息科技有限公司 | 基于节点排序的去中心化交易方法、装置及相关产品 |
CN112202875B (zh) * | 2020-09-28 | 2024-07-02 | 北京八分量信息科技有限公司 | 基于区块链节点权重进行安全检测的方法、装置及相关产品 |
CN114650289B (zh) * | 2020-12-02 | 2023-04-14 | 王志诚 | 用于区块链共识的方法及装置 |
CN112487091B (zh) * | 2020-12-02 | 2024-08-06 | 深圳前海微众银行股份有限公司 | 一种确定区块链共识节点的方法及装置 |
CN113162971B (zh) * | 2020-12-03 | 2022-07-22 | 腾讯科技(深圳)有限公司 | 区块链节点管理方法、装置、计算机以及可读存储介质 |
CN114666327B (zh) * | 2020-12-23 | 2023-12-19 | 富泰华工业(深圳)有限公司 | 基于区块链交易的区块打包方法、装置及电子设备 |
CN112702174B (zh) * | 2020-12-25 | 2022-11-04 | 深圳市星际大陆科技有限公司 | 基于区块链的交易出块方法、系统、设备及存储介质 |
CN112822239A (zh) * | 2020-12-30 | 2021-05-18 | 深圳市宝能投资集团有限公司 | 一种区块链共识方法、装置、电子设备及存储介质 |
CN112801791B (zh) * | 2021-01-29 | 2023-06-16 | 武汉大学 | 一种基于授权的区块链共识方法及系统 |
CN113076315B (zh) * | 2021-04-01 | 2024-07-23 | 上海沃橙信息技术有限公司 | 一种在区块链上的物联网的智能家居数据上链方法及系统 |
CN112991068B (zh) * | 2021-05-20 | 2021-08-20 | 卓尔智联(武汉)研究院有限公司 | 股份授权证明DPoS共识方法、装置、电子设备和存储介质 |
CN115514608B (zh) * | 2021-06-22 | 2023-06-06 | 腾讯科技(深圳)有限公司 | 一种区块共识方法、装置、设备及存储介质 |
CN113590282A (zh) * | 2021-07-19 | 2021-11-02 | 海宁奕斯伟集成电路设计有限公司 | 算力调度方法、系统、电子设备及计算机可读存储介质 |
CN113746923B (zh) * | 2021-09-03 | 2024-03-22 | 杭州复杂美科技有限公司 | 代理打包方法、计算机设备和存储介质 |
CN114189522B (zh) * | 2021-10-15 | 2024-04-16 | 敏博科技(武汉)有限公司 | 一种车联网中基于优先级的区块链共识方法及系统 |
CN114154994A (zh) * | 2021-10-29 | 2022-03-08 | 海南火链科技有限公司 | 一种基于区块链的超级节点确定方法及装置、存储介质 |
CN114254508A (zh) * | 2021-12-21 | 2022-03-29 | 福建师范大学 | 一种基于区块链股权授权证明共识机制的全关联投票方法 |
CN114900535B (zh) * | 2022-05-09 | 2023-07-04 | 深圳嘉业产业发展有限公司 | 一种基于区块链的数据传输方法及系统 |
CN115086320A (zh) * | 2022-06-13 | 2022-09-20 | 杭州复杂美科技有限公司 | 一种分层区块链网络及其共识方法、设备及存储介质 |
CN116361385B (zh) * | 2022-09-01 | 2024-07-23 | 矩阵时光数字科技有限公司 | 一种区块链的共识方法及系统 |
CN115941209B (zh) * | 2023-02-07 | 2023-05-05 | 湖南湘江树图信息科技创新中心有限公司 | 区块链去中心化可信数据采集方法及系统 |
CN117035802B (zh) * | 2023-04-19 | 2024-07-09 | 吉林农业科技学院 | 一种基于容量证明双重检验预测动物健康的共识方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109088954A (zh) * | 2018-07-13 | 2018-12-25 | 中国电子科技集团公司第十五研究所 | 一种分布式物体标识信息注册与解析的方法 |
CN109936486A (zh) * | 2019-01-02 | 2019-06-25 | 平安科技(深圳)有限公司 | 基于区块链的自动拨测方法、装置、设备和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017109140A1 (en) * | 2015-12-22 | 2017-06-29 | Bigchaindb Gmbh | Decentralized, tamper-resistant, asset-oriented database system and method of recording a transaction |
CN106603698A (zh) * | 2016-12-28 | 2017-04-26 | 北京果仁宝科技有限公司 | 基于dpos的区块链共识方法和节点 |
WO2018129118A1 (en) * | 2017-01-06 | 2018-07-12 | FirstBlood Technologies, Inc. | Decentralized competitive arbitration using digital ledgering |
CN109165092B (zh) * | 2018-07-10 | 2021-07-20 | 矩阵元技术(深圳)有限公司 | 一种基于有效算力贡献的共识方法、装置及系统 |
CN109872152B (zh) * | 2019-01-11 | 2022-07-15 | 平安科技(深圳)有限公司 | 基于股份授权证明机制的区块链共识方法及相关设备 |
-
2019
- 2019-01-11 CN CN201910026430.3A patent/CN109872152B/zh active Active
- 2019-06-24 WO PCT/CN2019/092588 patent/WO2020143183A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109088954A (zh) * | 2018-07-13 | 2018-12-25 | 中国电子科技集团公司第十五研究所 | 一种分布式物体标识信息注册与解析的方法 |
CN109936486A (zh) * | 2019-01-02 | 2019-06-25 | 平安科技(深圳)有限公司 | 基于区块链的自动拨测方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020143183A1 (zh) | 2020-07-16 |
CN109872152A (zh) | 2019-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109872152B (zh) | 基于股份授权证明机制的区块链共识方法及相关设备 | |
CN111914027B (zh) | 一种区块链交易关键字可搜索加密方法及系统 | |
CN111427957B (zh) | 区块链投票信息校验方法、装置、设备以及存储介质 | |
CN108924130B (zh) | 一种区块数据的验证方法、装置、设备和存储介质 | |
CN110602217B (zh) | 基于区块链的联盟管理方法、装置、设备及存储介质 | |
CN112540926A (zh) | 一种基于区块链的资源分配公平的联邦学习方法 | |
CN112651830B (zh) | 应用于电力资源共享网络的区块链共识方法 | |
Asfia et al. | Energy trading of electric vehicles using blockchain and smart contracts | |
CN113395363A (zh) | 基于区块链的数据处理方法、装置、设备及存储介质 | |
CN113256297B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN112597240B (zh) | 一种基于联盟链的联邦学习的数据处理方法与系统 | |
Li et al. | ISCP: An Improved Blockchain Consensus Protocol. | |
Asfia et al. | A blockchain construct for energy trading against sybil attacks | |
Wu et al. | Scaling proof-of-authority protocol to improve performance and security | |
CN112995167A (zh) | 基于Kafka机制的用电信息采集方法、区块链网络及用户端 | |
CN114861233B (zh) | 一种无需可信第三方的分片异步拜占庭容错共识方法和装置 | |
CN116132058A (zh) | 区块链共识方法、装置、设备及计算机可读存储介质 | |
CN113468574B (zh) | 一种区块链数据上链方法和装置 | |
CN115455460A (zh) | 一种基于区块链的数据存储方法、装置、设备及介质 | |
CN109558744B (zh) | 一种数据处理方法和系统 | |
Chen et al. | A Vehicular Trust Blockchain Framework with Scalable Byzantine Consensus | |
CN114465866B (zh) | 基于信任度和PBFT的DPoS方法 | |
CN111612445B (zh) | 基于区块链的数据处理方法、系统、设备和存储介质 | |
CN117370417B (zh) | 基于人工智能的业务大数据分析系统 | |
CN116957110B (zh) | 一种基于联盟链的可信联邦学习方法及系统 |
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 |