CN111177262A - 一种区块链共识方法、相关装置及系统 - Google Patents
一种区块链共识方法、相关装置及系统 Download PDFInfo
- Publication number
- CN111177262A CN111177262A CN201911373714.6A CN201911373714A CN111177262A CN 111177262 A CN111177262 A CN 111177262A CN 201911373714 A CN201911373714 A CN 201911373714A CN 111177262 A CN111177262 A CN 111177262A
- Authority
- CN
- China
- Prior art keywords
- information
- block
- guarantee
- node
- current block
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本文是关于一种区块链共识方法、相关装置及系统,该方法包括:生成当前区块,获取当前区块的哈希值摘要信息,并发送至第二节点;接收第二节点反馈的担保信息,担保信息包括当前区块的哈希值摘要信息和对当前区块的担保额;担保信息有效,生成目标区块,获取目标区块的区块信息,目标区块的区块信息至少包括:当前区块的哈希值摘要信息、担保集合和交易集合;对目标区块的区块信息进行哈希计算得到目标区块的哈希值摘要信息,判断目标区块的哈希值摘要信息是否符合预设条件,如果是,则将目标区块发送给集群内的其他节点。本发明通过由群内其他节点提供担保额的机制抑制建块速度,提高建块可靠性,避免在区块链共识中的资源浪费和效率较低的问题。
Description
技术领域
本文涉及区块链技术领域,特别是涉及一种区块链共识方法、相关装置及系统。
背景技术
最近几年,区块链技术的应用越来越广泛。狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改的不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
共识算法是该领域的专家、学者以及技术人员一直在探索研究的。目前常见的公司算法有:工作量证明(POW)、权益证明(POS)、代理权益证明(DPOS)以及使用拜占庭(PBFT)等。其中,POW工作量证明,通过枚举式的哈希值运算,计算出一个满足规则的随机数,即获得本次记账本,发出本轮需要记录的数据,全网50%以上的其它节点验证后一起存储,其缺点是需要竞争打包权,造成大量资源浪费,区块的确认时间难以缩短,效率很难适应商业化应用,需要等待多个确认且永远没有最终性;POS权益证明,是POW的一种升级共识机制,即根据每个节点所占代币的比例和时间,等比例的降低挖矿难度,从而加快找随机数的速度,其缺点是没有专业化、拥有权益的参与者未必希望参与记账,容易产生分叉,需要等待多个确认,永远没有最终性,需要检查点机制来弥补最终性,效率低;DPOS股份授权证明机制,类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账。DPOS在POS的基础上,将记账人的角色专业化,先通过权益来选出记账人,然后记账人之间再轮流记账,其缺点在于:代币持有人的主动投票意愿不强烈或投票集中化,导致一定程度的中心化造成资源浪费;同样,PBFT也存在着容错率低、灵活性差、效率低等缺点。可见,现有的区块链共识机制普遍存在着在资源上容易造成浪费、效率低等问题。
发明内容
为克服相关技术中存在的问题,本文提供一种区块链共识方法、相关装置及系统。
根据本文的一方面,提供一种区块链共识方法,应用于第一节点,所述方法包括:
生成当前区块,获取所述当前区块的哈希值摘要信息;
将所述当前区块的哈希值摘要信息发送至第二节点,所述第二节点为集群中所述第一节点的多个相邻节点;
接收所述第二节点反馈的担保信息,所述担保信息包括所述当前区块的哈希值摘要信息和对所述当前区块的担保额;
对所述担保信息的有效性进行验证;
如果所述担保信息有效,生成目标区块,获取所述目标区块的区块信息,所述目标区块的区块信息至少包括:所述当前区块的哈希值摘要信息、担保集合和交易集合;其中,所述目标区块为区块链上所述当前区块的下一个区块,所述担保集合包括多个所述第二节点反馈的担保信息,所述交易集合包括所述目标区块记录的一笔或多笔交易的交易信息;
对所述目标区块的区块信息进行哈希计算得到所述目标区块的哈希值摘要信息,判断所述目标区块的哈希值摘要信息是否符合预设条件,如果是,则将所述目标区块发送给所述集群内的其他节点。
可选的,所述方法还包括:
如果所述目标区块的哈希值摘要信息不符合预设条件,则按照预设的策略调整所述担保集合的担保信息重新获得所述担保集合,并转至执行所述对所述目标区块的区块信息进行哈希计算得到所述目标区块的哈希值摘要信息的步骤。
可选的,所述方法还包括:
提取每个第二节点反馈的担保信息中的担保额;
统计所述担保集合中的全部担保信息中的担保额得到总担保额;
按照每个第二节点反馈的担保额与所述总担保额的占比向所述第二节点发放奖励,或者,按照每个第二节点反馈的担保额与所述总担保额和总交易额之和的占比向所述第二节点发放奖励,其中,所述总交易额为统计所述交易集合中的全部交易信息中的交易额得到。
根据本文的另一方面,提供一种区块链共识方法,应用于第二节点,所述方法包括:
接收第一节点发送的当前区块的哈希值摘要信息,其中,所述第一节点为集群中所述第二节点的相邻节点;
获取所述当前区块的区块信息,对所述当前区块的区块信息的有效性进行验证,并判断是否满足提供担保的预设条件;
如果所述当前区块的区块信息有效,且满足提供担保的预设条件,则向所述第一节点反馈担保信息,所述担保信息包括所述当前区块的哈希值摘要信息和对所述当前区块的担保额。
可选的,在所述获取所述当前区块的区块信息之前,所述方法还包括:
根据所述当前区块的序号查询本地是否已存所述当前区块,如果没有,则向所述第一节点获取所述当前区块。
可选的,所述方法还包括:
接收所述第一节点发放的奖励,所述奖励按照所述第二节点反馈的担保额与所述第一节点收到的总担保额的占比发放,或者,按照所述第二节点反馈的担保额与所述总担保额和所述第一节点的总交易额之和的占比发放。
根据本文的另一方面,提供一种第一节点,包括:
生成模块,用于生成当前区块,获取所述当前区块的哈希值摘要信息;
发送模块,用于将所述当前区块的哈希值摘要信息发送至第二节点,所述第二节点为集群中所述第一节点的多个相邻节点;
接收模块,用于接收所述第二节点反馈的担保信息,所述担保信息包括所述当前区块的哈希值摘要信息和对所述当前区块的担保额;
验证模块,用于对所述担保信息的有效性进行验证;
所述生成模块,还用于如果所述担保信息有效,生成目标区块,获取所述目标区块的区块信息,所述目标区块的区块信息至少包括:所述当前区块的哈希值摘要信息、担保集合和交易集合;其中,所述目标区块为区块链上所述当前区块的下一个区块,所述担保集合包括多个所述第二节点反馈的担保信息,所述交易集合包括所述目标区块记录的一笔或多笔交易的交易信息;
所述验证模块,还用于对所述目标区块的区块信息进行哈希计算得到所述目标区块的哈希值摘要信息,判断所述目标区块的哈希值摘要信息是否符合预设条件;
所述发送模块,还用于如果所述验证模块的判断结果为是,则将所述目标区块发送给所述集群内的其他节点。
可选的,所述第一节点还包括:
重整模块,用于如果所述目标区块的哈希值摘要信息不符合预设条件,则按照预设的策略调整所述担保集合的担保信息重新获得所述担保集合,并触发所述验证模块工作。
根据本文的另一方面,提供一种第二节点,包括:
接收模块,用于接收第一节点发送的当前区块的哈希值摘要信息,其中,所述第一节点为集群中所述第二节点的相邻节点;
获取模块,用于获取所述当前区块的区块信息;
验证模块,用于对所述当前区块的区块信息的有效性进行验证,并判断是否满足提供担保的预设条件;
担保模块,用于如果所述验证模块验证所述当前区块的区块信息有效,且满足提供担保的预设条件,则向所述第一节点反馈担保信息,所述担保信息包括所述当前区块的哈希值摘要信息和对所述当前区块的担保额。
根据本文的另一方面,提供一种区块链共识系统,包括:如上所述的第一节点和如上所述的第二节点。
本发明第一节点仅将前置区块哈希值发送给第二节点,达到压缩信息的目的,可以节约网络传输带宽消耗,提高网络传输效率。第二节点接收到前置区块的哈希值摘要信息后,对区块进行验证,验证通过后向第一节点反馈担保额,第一节点收到第二节点反馈的担保额后,建立目标区块,目标区块的区块信息至少包括担保额,当对目标区块的区块信息计算得到的哈希值摘要信息符合预设条件时,建块成功。本发明通过由群内其他节点提供担保额的机制抑制建块速度,提高建块可靠性,并使得系统通信比例降低,降低系统发布的速度,增加系统稳定性,也避免了在区块链共识中的资源浪费和效率较低的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本文。
附图说明
构成本文的一部分的附图用来提供对本文的进一步理解,本文的示意性实施例及其说明用于解释本文,并不构成对本文的不当限定。在附图中:
图1是本发明实施例提供的一种区块链共识方法的流程图。
图2是本发明实施例提供的一种区块链结构示意图。
图3是本发明实施例提供的另一种区块链共识方法的流程图。
图4是本发明实施例提供的一种第一节点的结构示意图;
图5是本发明实施例提供的一种第二节点的结构示意图。
具体实施方式
为使本文实施例的目的、技术方案和优点更加清楚,下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。需要说明的是,在不冲突的情况下,本文中的实施例及实施例中的特征可以相互任意组合。
本实施例提供了一种区块链共识方法。图1是一种区块链共识方法的流程图。如图1所示,该方法应用于第一节点(下文也称建块节点),该方法包括以下步骤:
S101、生成当前区块,获取当前区块的哈希值摘要信息;
在一个通信集群中包括多个节点,每个节点上对应记录一个区块链,该区块链是利用块链式数据结构来验证与存储数据的,并且利用分布式节点的共识方法来生成和更新数据。
在本发明实施例中的通信集群中包括多个节点,当某一节点建立新的区块,需要通信集群中的其他节点对其提供担保时,将这类建块节点对应为第一节点。该当前区块用来表征新建的区块,当前区块的区块信息中记录了该区块的交易信息等相关信息。通过对当前区块的区块信息进行哈希计算得到当前区块的哈希值摘要信息。
S102、将当前区块的哈希值摘要信息发送至第二节点,第二节点为集群中第一节点的多个相邻节点;
区别于现有技术中将整个当前区块的区块信息发送至第二节点,本实施例中,第一节点仅将当前区块的哈希值摘要信息发送至第二节点,以达到压缩信息的目的,由此可以节约网络传输带宽消耗,提高网络传输效率。
S103、接收第二节点反馈的担保信息,担保信息包括当前区块的哈希值摘要信息和对当前区块的担保额;
下文中也将反馈担保信息的第二节点称为担保节点。
S104、对担保信息的有效性进行验证;
本实施例中,对担保信息的有效性进行验证是指验证第二节点是否有担保能力。例如通过查询第二节点的历史信息,获取第二节点的账户信息,验证第二节点的账户余额是否大于担保信息的担保额。又例如,也可以通过安全双方验证来验证担保信息是否有效。
S105、如果担保信息有效,生成目标区块,获取目标区块的区块信息,目标区块的区块信息至少包括:当前区块的哈希值摘要信息、担保集合和交易集合;
其中,目标区块为区块链上当前区块的下一个区块,也就是说当前区块是目标区块的前一区块;担保集合包括多个第二节点反馈的担保信息,交易集合包括目标区块记录的一笔或多笔交易的交易信息,交易信息可以包括交易时间、交易账户、交易额等信息。
本实施例中,集群中有多个节点,与第一节点相邻的第二节点包括多个,多个第二节点在接收到当前区块的哈希值摘要信息后,可进行有效性验证,验证通过的第二节点可以向第一节点反馈担保额。担保集合中第二节点反馈的担保信息的个数越多,表明相邻节点对该当前区块的担保个数越多担保额越高,当前建块节点性能越稳定。
本实施例中某个节点所记录的区块链数据结构参见图2,该区块链结构包括:多个区块。其中,Blockn表示目标区块,Blockn-1表示目标区块的前一区块(即当前区块),目标区块Blockn的区块信息包括:(Hash(Blockn-1),{Tn},{Gn}),其中,Hash(Blockn-1)表示对前一区块的哈希值摘要信息,{Tn}表示目标区块记录的一笔或多笔交易的交易信息的集合;{Gn}表示对前一区块的担保集合,{Gn}中包括多个相邻节点反馈的担保信息。
S106、对目标区块的区块信息进行哈希计算得到目标区块的哈希值摘要信息,判断目标区块的哈希值摘要信息是否符合预设条件,如果是,则将目标区块发送给集群内的其他节点。
本实施例中,可以通过以下方式之一判断目标区块的哈希值摘要信息是否符合预设条件:
方式一、判断目标区块的哈希值摘要信息是否符合区块格式;
在一个具体示例中,对于方式一,区块格式要求哈希值的前三位必须是000,则:Hash(X)=abced不符合要求,Hash(Y)=000ac符合要求。
方式二、判断目标区块的哈希值摘要信息是否符合担保额规则;
担保额规则,指的是担保集合的哈希值与区块信息哈希值之间的关系。如担保额的哈希值需要小于区块信息的哈希值,或大于,或相差不超过某个数值,或二者联合再经过哈希计算后得到到的哈希值应小于、大于某个值。
方式三、判断是否满足其中,HashMax表示最大哈希字符串,Hash(Bn)表示目标区块的哈希值摘要信息,diff表示的是系统基础难度要求。如diff=300,HashMAX=FFFF,Hash(Bn)=0123,则FFFF/0123=225<300,则不符合要求;Hash(Bn)=0012=3640>300,则符合要求。
作为本实施例中一种可选的实施方式,本方法还包括:如果目标区块的哈希值摘要信息不符合预设条件,则按照预设的策略调整担保集合的担保信息重新获得新的担保集合,并转至执行步骤S106。在该可选实施方式中,按照预设的策略调整担保集合的担保信息重新获得担保集合包括:调整担保集合中担保信息的顺序和/或去掉某些担保信息。在一个应用示例中,第一节点总共收到5个第二节点反馈的担保信息g1、g2、g3、g4、g5,第一节点依次生成担保集合{G}={g1、g2、g3、g4、g5}。若目标区块的哈希值摘要信息不符合预设条件,第一节点可以通过调整担保信息的顺序,重新生成担保集合{G}={g4、g1、g3、g2、g5},或者,去掉某些担保信息,重新生成担保集合{G}={g1、g3、g2、g5}。由此改变目标区块的区块信息,进而改变目标区块的哈希值摘要信息,以使得目标区块的哈希值摘要信息符合预设条件。
此外,作为一种可选的方式,本方法还包括:如果所述目标区块的哈希值摘要信息不符合预设条件,则跳转至步骤S102,重新发起建块流程,获取第二节点反馈的担保信息,获取新的担保集合。
通过上述步骤,第一节点完成建块操作。接下来,第一节点可以按照各个第二节点反馈的担保金额比例分配挖矿奖励,剩余金额归属第一节点。作为本实施例中一种可选的实施方式,本方法还包括:提取每个第二节点反馈的担保信息中的担保额;统计担保集合中的全部担保信息中的担保额得到总担保额;按照每个第二节点反馈的担保额与总担保额的占比向第二节点发放奖励,或者,按照每个第二节点反馈的担保额与总担保额和总交易额之和的占比向第二节点发放奖励,其中,总交易额为统计交易集合中的全部交易信息中的交易额得到。
在具体实施时,第一节点向某一个担保节点Bi发放的奖励可以参照以下公式:
本实施例中,建块节点剩余的金额取决于担保节点的个数和担保额,权重越高,建块节点获得的利益越小,由此可以通过担保额的机制抑制建块速度,提高建块可靠性,并使得系统通信比例降低,降低系统发布的速度,增加系统稳定性,也避免了在区块链共识中的资源浪费和效率较低的问题。
在第一节点向第二节点发送当前区块的哈希值摘要信息后,第二节点需要决定是否向第一节点反馈担保信息。在本实施例中还提供了另一种区块链共识方法。参见图3,该方法应用于第二节点,包括以下步骤:
S201、接收第一节点发送的当前区块的哈希值摘要信息,其中,第一节点为集群中第二节点的相邻节点;
S202、获取当前区块的区块信息;
其中,在步骤S202之前,本实施例提供的方法还包括:获取当前区块,并对当前区块的签名进行验签,如果验签通过,则继续执行步骤S202,否则直接抛弃该区块。由此,通过验证区块的签名可以保证区块信息是唯一节点签发的。
S203、对当前区块的区块信息的有效性进行验证,并判断是否满足提供担保的预设条件;
其中,对当前区块的区块信息的有效性进行验证包括:验证当前区块的完整性,以及验证当前区块的交易内容的有效性,或者验证交易内容的合法性。其中,判断是否满足提供担保的预设条件包括:验证待提供的担保额是否符合担保上限(如担保额总值超过上限,或担保额总值低于下限均不符合),或者,验证反馈担保信息的第二节点是否属于黑名单/白名单(属于白名单的第二节点满足,属于黑名单的第二节点不满足)。本发明对此不做限制。
由于当前区块记录了对应的交易数据,当第二节点接收到创建好的当前区块时,由于该当前区块为待验证区块,所以第二节点会对其进行验证,该验证过程可以包括:检验该当前区块的签名信息、验证该当前区块中交易的签名信息、交易是否存在双花等。
S204、如果当前区块的区块信息有效,且满足提供担保的预设条件,则向第一节点反馈担保信息,担保信息包括当前区块的哈希值摘要信息和对当前区块的担保额。
如果不符合上述两个条件任意一个,第二节点都不会向建块节点反馈担保额。第二节点仅进行挖矿,拒绝反馈担保信息,降低了账户被攻击的风险,尤其是降低了大资金账户在提供担保后会暴露账户的资金情况存在被攻击的风险。
作为本实施例中一种可选的实施方式,在获取当前区块的区块信息之前,本方法还包括:根据当前区块的序号查询本地是否已存当前区块,如果没有,则向第一节点获取当前区块。序号,或者说是高度。区块链中的区块都是按照高度排序的,即一个区块摞在一个区块的上面,区块序号唯一且依次递增,序号可以唯一标识区块。
作为本实施例中一种可选的实施方式,本方法还包括:接收第一节点发放的奖励,奖励按照第二节点反馈的担保额与第一节点收到的总担保额的占比发放,或者,按照第二节点反馈的担保额与总担保额和第一节点的总交易额之和的占比发放。
本发明第一节点仅将前置区块哈希值发送给第二节点,达到压缩信息的目的,可以节约网络传输带宽消耗,提高网络传输效率。第二节点接收到前置区块的哈希值摘要信息后,对区块进行验证,验证通过后向第一节点反馈担保额,第一节点收到第二节点反馈的担保额后,建立目标区块,目标区块的区块信息至少包括担保额,当对目标区块的区块信息计算得到的哈希值摘要信息符合预设条件时,建块成功。本发明通过由群内其他节点提供担保额的机制抑制建块速度,提高建块可靠性,并使得系统通信比例降低,降低系统发布的速度,增加系统稳定性,也避免了在区块链共识中的资源浪费和效率较低的问题。
在本发明实施例中还提供了一种第一节点10,参见图4,包括:
生成模块101,用于生成当前区块,获取当前区块的哈希值摘要信息;
发送模块102,用于将当前区块的哈希值摘要信息发送至第二节点,第二节点为集群中第一节点的多个相邻节点;
接收模块103,用于接收第二节点反馈的担保信息,担保信息包括当前区块的哈希值摘要信息和对当前区块的担保额;
验证模块104,用于对担保信息的有效性进行验证;
生成模块101,还用于如果担保信息有效,生成目标区块,获取目标区块的区块信息,目标区块的区块信息至少包括:当前区块的哈希值摘要信息、担保集合和交易集合;其中,目标区块为区块链上当前区块的下一个区块,担保集合包括多个第二节点反馈的担保信息,交易集合包括目标区块记录的一笔或多笔交易的交易信息;
验证模块104,还用于对目标区块的区块信息进行哈希计算得到目标区块的哈希值摘要信息,判断目标区块的哈希值摘要信息是否符合预设条件;
发送模块102,还用于如果验证模块的判断结果为是,则将目标区块发送给集群内的其他节点。
作为本实施例中一种可选的实施方式,第一节点10还包括:重整模块,用于如果目标区块的哈希值摘要信息不符合预设条件,则按照预设的策略调整担保集合的担保信息重新获得担保集合,并触发验证模块104工作。
对应的,在本发明实施例中还提供了一种第二节点20,参见图5,包括:
接收模块201,用于接收第一节点发送的当前区块的哈希值摘要信息,其中,第一节点为集群中第二节点的相邻节点;
获取模块202,用于获取当前区块的区块信息;
验证模块203,用于对当前区块的区块信息的有效性进行验证,并判断是否满足提供担保的预设条件;
担保模块204,用于如果验证模块验证当前区块的区块信息有效,且满足提供担保的预设条件,则向第一节点反馈担保信息,担保信息包括当前区块的哈希值摘要信息和对当前区块的担保额。
在本发明的另一实施例中还包括一种区块链共识系统,包括上述的第一节点10和第二节点20,其中,所述第一节点为建立目标区块的节点,而第二节点为在集群中第一节点外的多个相邻节点。
本发明第一节点仅将前置区块哈希值发送给第二节点,达到压缩信息的目的,可以节约网络传输带宽消耗,提高网络传输效率。第二节点接收到前置区块的哈希值摘要信息后,对区块进行验证,验证通过后向第一节点反馈担保额,第一节点收到第二节点反馈的担保额后,建立目标区块,目标区块的区块信息至少包括担保额,当对目标区块的区块信息计算得到的哈希值摘要信息符合预设条件时,建块成功。本发明通过由群内其他节点提供担保额的机制抑制建块速度,提高建块可靠性,并使得系统通信比例降低,降低系统发布的速度,增加系统稳定性,也避免了在区块链共识中的资源浪费和效率较低的问题。
本领域技术人员应明白,本文的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本文可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本文可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质,包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质等。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
本文是参照根据本文实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
尽管已描述了本文的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本文范围的所有变更和修改。
显然,本领域的技术人员可以对本文进行各种改动和变型而不脱离本文的精神和范围。这样,倘若本文的这些修改和变型属于本文权利要求及其等同技术的范围之内,则本文的意图也包含这些改动和变型在内。
Claims (10)
1.一种区块链共识方法,其特征在于,应用于第一节点,所述方法包括:
生成当前区块,获取所述当前区块的哈希值摘要信息;
将所述当前区块的哈希值摘要信息发送至第二节点,所述第二节点为集群中所述第一节点的多个相邻节点;
接收所述第二节点反馈的担保信息,所述担保信息包括所述当前区块的哈希值摘要信息和对所述当前区块的担保额;
对所述担保信息的有效性进行验证;
如果所述担保信息有效,生成目标区块,获取所述目标区块的区块信息,所述目标区块的区块信息至少包括:所述当前区块的哈希值摘要信息、担保集合和交易集合;其中,所述目标区块为区块链上所述当前区块的下一个区块,所述担保集合包括多个所述第二节点反馈的担保信息,所述交易集合包括所述目标区块记录的一笔或多笔交易的交易信息;
对所述目标区块的区块信息进行哈希计算得到所述目标区块的哈希值摘要信息,判断所述目标区块的哈希值摘要信息是否符合预设条件,如果是,则将所述目标区块发送给所述集群内的其他节点。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述目标区块的哈希值摘要信息不符合预设条件,则按照预设的策略调整所述担保集合的担保信息重新获得所述担保集合,并转至执行所述对所述目标区块的区块信息进行哈希计算得到所述目标区块的哈希值摘要信息的步骤。
3.根据权利要1或2所述的方法,其特征在于,所述方法还包括:
提取每个第二节点反馈的担保信息中的担保额;
统计所述担保集合中的全部担保信息中的担保额得到总担保额;
按照每个第二节点反馈的担保额与所述总担保额的占比向所述第二节点发放奖励,或者,按照每个第二节点反馈的担保额与所述总担保额和总交易额之和的占比向所述第二节点发放奖励,其中,所述总交易额为统计所述交易集合中的全部交易信息中的交易额得到。
4.一种区块链共识方法,其特征在于,应用于第二节点,所述方法包括:
接收第一节点发送的当前区块的哈希值摘要信息,其中,所述第一节点为集群中所述第二节点的相邻节点;
获取所述当前区块的区块信息,对所述当前区块的区块信息的有效性进行验证,并判断是否满足提供担保的预设条件;
如果所述当前区块的区块信息有效,且满足提供担保的预设条件,则向所述第一节点反馈担保信息,所述担保信息包括所述当前区块的哈希值摘要信息和对所述当前区块的担保额。
5.根据权利要求4所述的方法,其特征在于,
在所述获取所述当前区块的区块信息之前,所述方法还包括:
根据所述当前区块的序号查询本地是否已存所述当前区块,如果没有,则向所述第一节点获取所述当前区块。
6.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
接收所述第一节点发放的奖励,所述奖励按照所述第二节点反馈的担保额与所述第一节点收到的总担保额的占比发放,或者,按照所述第二节点反馈的担保额与所述总担保额和所述第一节点的总交易额之和的占比发放。
7.一种第一节点,其特征在于,包括:
生成模块,用于生成当前区块,获取所述当前区块的哈希值摘要信息;
发送模块,用于将所述当前区块的哈希值摘要信息发送至第二节点,所述第二节点为集群中所述第一节点的多个相邻节点;
接收模块,用于接收所述第二节点反馈的担保信息,所述担保信息包括所述当前区块的哈希值摘要信息和对所述当前区块的担保额;
验证模块,用于对所述担保信息的有效性进行验证;
所述生成模块,还用于如果所述担保信息有效,生成目标区块,获取所述目标区块的区块信息,所述目标区块的区块信息至少包括:所述当前区块的哈希值摘要信息、担保集合和交易集合;其中,所述目标区块为区块链上所述当前区块的下一个区块,所述担保集合包括多个所述第二节点反馈的担保信息,所述交易集合包括所述目标区块记录的一笔或多笔交易的交易信息;
所述验证模块,还用于对所述目标区块的区块信息进行哈希计算得到所述目标区块的哈希值摘要信息,判断所述目标区块的哈希值摘要信息是否符合预设条件;
所述发送模块,还用于如果所述验证模块的判断结果为是,则将所述目标区块发送给所述集群内的其他节点。
8.根据权利要求7所述的节点,其特征在于,还包括:
重整模块,用于如果所述目标区块的哈希值摘要信息不符合预设条件,则按照预设的策略调整所述担保集合的担保信息重新获得所述担保集合,并触发所述验证模块工作。
9.一种第二节点,其特征在于,包括:
接收模块,用于接收第一节点发送的当前区块的哈希值摘要信息,其中,所述第一节点为集群中所述第二节点的相邻节点;
获取模块,用于获取所述当前区块的区块信息;
验证模块,用于对所述当前区块的区块信息的有效性进行验证,并判断是否满足提供担保的预设条件;
担保模块,用于如果所述验证模块验证所述当前区块的区块信息有效,且满足提供担保的预设条件,则向所述第一节点反馈担保信息,所述担保信息包括所述当前区块的哈希值摘要信息和对所述当前区块的担保额。
10.一种区块链共识系统,其特征在于,包括:
如权利要求7或8所述的第一节点和如权利要求9所述的第二节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911373714.6A CN111177262A (zh) | 2019-12-27 | 2019-12-27 | 一种区块链共识方法、相关装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911373714.6A CN111177262A (zh) | 2019-12-27 | 2019-12-27 | 一种区块链共识方法、相关装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111177262A true CN111177262A (zh) | 2020-05-19 |
Family
ID=70647482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911373714.6A Pending CN111177262A (zh) | 2019-12-27 | 2019-12-27 | 一种区块链共识方法、相关装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111177262A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112671732A (zh) * | 2020-12-15 | 2021-04-16 | 中国联合网络通信集团有限公司 | 一种共识方法、装置及系统 |
CN112819628A (zh) * | 2021-02-01 | 2021-05-18 | 网易(杭州)网络有限公司 | 交易防重放的检测方法及装置、系统、电子设备、存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108487A (zh) * | 2018-01-10 | 2018-06-01 | 杭州复杂美科技有限公司 | 一种区块链的共识方法 |
CN110298657A (zh) * | 2018-03-21 | 2019-10-01 | 中思博安科技(北京)有限公司 | 一种区块链共识方法、相关装置及系统 |
WO2019213867A1 (zh) * | 2018-05-09 | 2019-11-14 | 合肥达朴汇联科技有限公司 | 区块链共识达成方法和装置 |
-
2019
- 2019-12-27 CN CN201911373714.6A patent/CN111177262A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108487A (zh) * | 2018-01-10 | 2018-06-01 | 杭州复杂美科技有限公司 | 一种区块链的共识方法 |
CN110298657A (zh) * | 2018-03-21 | 2019-10-01 | 中思博安科技(北京)有限公司 | 一种区块链共识方法、相关装置及系统 |
WO2019213867A1 (zh) * | 2018-05-09 | 2019-11-14 | 合肥达朴汇联科技有限公司 | 区块链共识达成方法和装置 |
Non-Patent Citations (1)
Title |
---|
李燕 等: "区块链关键技术的研究进展", 《计算机工程与应用? * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112671732A (zh) * | 2020-12-15 | 2021-04-16 | 中国联合网络通信集团有限公司 | 一种共识方法、装置及系统 |
CN112671732B (zh) * | 2020-12-15 | 2022-11-22 | 中国联合网络通信集团有限公司 | 一种共识方法、装置及系统 |
CN112819628A (zh) * | 2021-02-01 | 2021-05-18 | 网易(杭州)网络有限公司 | 交易防重放的检测方法及装置、系统、电子设备、存储介质 |
CN112819628B (zh) * | 2021-02-01 | 2024-02-02 | 网易(杭州)网络有限公司 | 交易防重放的检测方法及装置、系统、电子设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12008524B2 (en) | Method and system of mining blockchain transactions provided by a validator node | |
CN112862612B (zh) | 一种跨链发送资源的方法和装置 | |
CN108846659B (zh) | 基于区块链的转账方法、装置及存储介质 | |
CN111061769B (zh) | 一种区块链系统的共识方法及相关设备 | |
CN109829718B (zh) | 一种基于存储应用场景的区块链多层级构架及其运行方法 | |
CN110599177A (zh) | 一种交易验证方法及相关设备 | |
CN110738472B (zh) | 区块链的存储方法和区块链的节点 | |
CN109859043B (zh) | 一种交易清算方法和交易清算系统 | |
CN112651724A (zh) | 跨链交互方法、装置和系统 | |
CN107358524B (zh) | 一种同种货币下多个账户管理行间资金平账的方法 | |
CN113448694B (zh) | 一种提高事务处理能力的区块链共识方法 | |
CN110706113A (zh) | 一种跨区块链的数据处理方法、装置、设备及介质 | |
CN110910000A (zh) | 一种区块链资产管理方法和装置 | |
CN111177262A (zh) | 一种区块链共识方法、相关装置及系统 | |
CN111161078A (zh) | 一种一对多的区块链转账实现方法 | |
US11922526B2 (en) | Net settlement of subrogation claims using a distributed ledger | |
CN111292190A (zh) | 交易生成方法、区块创建方法及相关装置、设备 | |
CN112053271A (zh) | 基于区块链的公益平台数据存证管理方法及系统 | |
CN111597264A (zh) | 一种区块链记账方法及装置 | |
CN113128998B (zh) | 一种区块链系统的业务处理方法、装置及系统 | |
CN110225110B (zh) | 一种区块链群组的拆分方法及装置 | |
CN112488683A (zh) | 一种区块链的链下交易方法及装置 | |
CN112150143A (zh) | 一种基于区块链技术的资金管理方法及装置 | |
US20220005025A1 (en) | Distributed ledger management system, distributed ledger management method, and node | |
KR20190140687A (ko) | 블록체인을 이용한 트랜잭션 일괄처리 시스템 및 방법 |
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 |