CN108521328A - 一种区块链共识方法、装置及电子设备 - Google Patents

一种区块链共识方法、装置及电子设备 Download PDF

Info

Publication number
CN108521328A
CN108521328A CN201810251491.5A CN201810251491A CN108521328A CN 108521328 A CN108521328 A CN 108521328A CN 201810251491 A CN201810251491 A CN 201810251491A CN 108521328 A CN108521328 A CN 108521328A
Authority
CN
China
Prior art keywords
block chain
block
node
signature
chain node
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
Application number
CN201810251491.5A
Other languages
English (en)
Other versions
CN108521328B (zh
Inventor
谢晗剑
马宇峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Rivtower Technology Co Ltd
Original Assignee
Cryptape Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cryptape Co ltd filed Critical Cryptape Co ltd
Priority to CN201810251491.5A priority Critical patent/CN108521328B/zh
Publication of CN108521328A publication Critical patent/CN108521328A/zh
Application granted granted Critical
Publication of CN108521328B publication Critical patent/CN108521328B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Image Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书实施例涉及一种区块链共识方法、装置及电子设备,包括:第一区块链节点向多个第二区块链节点发送出块请求;多个第二区块链节点中每个第二区块链节点根据自身的子节点对所述出块请求的子联合签名,确定自身对所述出块请求的联合签名;第一区块链节点根据接收到的节点距离最近的第二区块链节点的联合签名,确定是否执行出块操作。从而,减少了在区块链共识机制下的网络通信量,降低网络拥塞;同时,每个区块链节点处仅存储一个由多方签署的联合签名,这样,在实现共识机制的情况下节约存储空间。从而,提升区块链共识方案的效率。

Description

一种区块链共识方法、装置及电子设备
技术领域
本说明书实施例涉及网络技术领域,尤其涉及一种区块链共识方法、装置及电子设备。
背景技术
区块链技术也称为分布式账本技术,本质上是一种去中心化的分布式互联网数据库。采用区块链技术架构的网络可视为区块链网络,该区块链网络中包含多个区块链节点,任一区块链节点可对应至少一个区块链,任一区块链可包含至少一个区块。
在区块链技术中,共识机制(也称为共识算法)是区块链网络中实现不同区块链节点之间建立信任、获取权益的重要方法。以业务数据中区块上链这一业务请求为例,在共识阶段,任一区块链节点在接收到区块上链请求后,需要由区块链网络中其它所有区块链节点向全网广播自身对本次上链请求的签名,在通过共识后方可上链。考虑到区块链节点众多,当有共识需求时,容易导致区块链网络拥堵;而且,在区块中需要存储全网所有区块链节点的签名,这样,给区块造成存储负担。
由此,亟需找到一种新的区块链共识方案,以克服上述问题。
发明内容
本说明书实施例提供一种区块链共识方法、装置及电子设备,用以解决现有技术的共识方案中存在的网络拥堵以及存储负担的问题。
为了解决上述技术问题,本说明书实施例采用下述技术方案:
第一方面,提供了一种区块链共识方法,应用在包含一个第一区块链节点和多个第二区块链节点的区块链网络中,所述第一区块链节点限定为当前区块链网络的树结构的根节点,所述多个第二区块链节点分别为所述树结构的子节点,所述树结构的深度为D,所述D为大于2的正整数;所述方法包括:
第一区块链节点向所述多个第二区块链节点发送出块请求;
所述多个第二区块链节点中每个第二区块链节点根据自身的子节点对所述出块请求的子联合签名,确定自身对所述出块请求的联合签名;
所述第一区块链节点根据接收到的节点距离最近的第二区块链节点的联合签名,确定是否执行出块操作。
第二方面,提供了一种区块链共识装置,应用在包含一个第一区块链节点和多个第二区块链节点的区块链网络中,所述第一区块链节点限定为当前区块链网络的树结构的根节点,所述多个第二区块链节点分别为所述树结构的子节点,所述树结构的深度为D,所述D为大于2的正整数;所述装置包括:
发送模块,第一区块链节点向所述多个第二区块链节点发送出块请求;
确定模块,所述多个第二区块链节点中每个第二区块链节点根据自身的子节点对所述出块请求的子联合签名,确定自身对所述出块请求的联合签名;
执行模块,所述第一区块链节点根据接收到的节点距离最近的第二区块链节点的联合签名,确定是否执行出块操作。
第三方面,提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行:
第一区块链节点向所述多个第二区块链节点发送出块请求;
所述多个第二区块链节点中每个第二区块链节点根据自身的子节点对所述出块请求的子联合签名,确定自身对所述出块请求的联合签名;
所述第一区块链节点根据接收到的节点距离最近的第二区块链节点的联合签名,确定是否执行出块操作。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
第一区块链节点向所述多个第二区块链节点发送出块请求;
所述多个第二区块链节点中每个第二区块链节点根据自身的子节点对所述出块请求的子联合签名,确定自身对所述出块请求的联合签名;
所述第一区块链节点根据接收到的节点距离最近的第二区块链节点的联合签名,确定是否执行出块操作。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
通过上述技术方案,当作为根节点的第一区块链节点向作为子节点的多个第二区块链节点发送出块请求,不需要区块链网络中所有见证节点分别向该领导节点返回签名,而是以树结构中深度最大的子节点开始逐级向自己的上一级子节点返回签名;每个见证节点根据自己对出块请求的签名以及接收到的下一级子节点上报的签名,确定自己的联合签名;这样,逐级向自己的上一级子节点反馈后,最终达到领导节点的联合签名仅是由相距领导节点最近的有限个数的见证节点返回的,从而,减少了在区块链共识机制下的网络通信量,降低网络拥塞;同时,每个区块链节点处仅存储一个由多方签署的联合签名,这样,在实现共识机制的情况下节约存储空间。总之,提升区块链共识方案的效率。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例提供的区块链共识方法的步骤示意图之一;
图2为本说明书实施例提供的区块链共识方法的步骤示意图之二;
图3为本说明书实施例提供的区块链共识方法的步骤示意图之三;
图4为本说明书实施例提供的二叉树结构示意图;
图5为本说明书实施例提供的电子设备的结构示意图;
图6为本说明书实施例提供的区块链共识装置的结构示意图。
具体实施方式
为使本说明书实施例的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书实施例保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
需要说明的是,在本说明书实施例中,所涉及的区块链共识方案是以N-叉树这类树形拓扑结构实现的签名层级反馈方案,当作为根节点的第一区块链节点(本说明书实施例中均以领导节点为例)向作为子节点的多个第二区块链节点(本说明书实施例中均以见证节点为例)发送出块请求,不需要区块链网络中所有见证节点分别向该领导节点返回签名,而是以树结构中深度最大的子节点开始逐级向自己的上一级子节点(其中,上一级子节点可理解为父节点)返回签名;每个见证节点根据自己对出块请求的签名以及接收到的下一级子节点上报的签名(若下一级子节点没有子节点,则这里的签名应理解为是下一级子节点对出块请求的签名;若下一级子节点存在子节点,则这里的签名应理解为是下一级子节点对出块请求的子联合签名),确定自己的联合签名;这样,逐级向自己的上一级子节点反馈后,最终达到领导节点的联合签名仅是由相距领导节点最近的有限个数的见证节点返回的,从而,减少了在区块链共识机制下的网络通信量,降低网络拥塞;同时,每个区块链节点处仅存储一个由多方签署的联合签名,这样,在实现共识机制的情况下节约存储空间。总之,提升区块链共识方案的效率。
实施例一
参照图1所示,为本说明书实施例提供的一种区块链共识方法的步骤示意图,其中,该共识方法应用在包含一个第一区块链节点和多个第二区块链节点的区块链网络中,所述第一区块链节点限定为当前区块链网络的树结构的根节点,所述多个第二区块链节点分别为所述树结构的子节点,所述树结构的深度为D,所述D为大于2的正整数。
该区块链共识方法主要包括以下步骤:
步骤102:第一区块链节点向所述多个第二区块链节点发送出块请求。
其中,该出块请求可理解为区块链网络中区块上链的一种业务请求,在本说明书实施例中,主要由领导节点(或是称为根节点)生成并通过广播的通信方式发出该出块请求,以便于所有的第二区块链节点都可以接收到这一信息并做出相应反馈。
步骤104:多个第二区块链节点中每个第二区块链节点根据自身的子节点对所述出块请求的子联合签名,确定自身对所述出块请求的联合签名。
该步骤中,第二区块链节点可根据自身的子节点对出块请求的子联合签名,确定自身对出块请求的联合签名。这样,每个第二区块链节点的联合签名,只与其自身的子节点相关,与其他子节点无关,即不需要知道其他子节点的签名情况,只需要知道自身的子节点的签名情况。
步骤106:第一区块链节点根据接收到的节点距离最近的第二区块链节点的联合签名,确定是否执行出块操作。
第一区块链节点仅接收到节点距离最近的第二区块链节点发送的联合签名,就可以决策是否执行出块操作。这是因为,虽然并未接收到全部的区块链节点返回的签名,但是,接收到的节点距离最近的第二区块链节点返回的联合签名中,携带有该第二区块链节点的所有子节点的签名信息。从而,根据联合签名可以实现共识机制。同时,还可以减少通信数量,缓解网络拥堵;以及减小区块链节点的存储负担。
可选地,在本说明书实施例中,第一区块链节点向所述多个第二区块链节点发送出块请求,可具体包括:所述第一区块链节点在区块链高度为H处定义一个待上链的区块;按照预设规则向多个第二区块链节点广播针对所述区块生成的出块请求。
其中,预设规则可以是根据需求制定的广播策略,可选地,按照预设规则向所有的第二区块链节点广播针对所述区块生成的出块请求,可执行为:按照树结构中自根节点至子节点的顺序依次向所有第二区块链节点广播针对区块生成的出块请求。
或者,为了进一步减少网络通信量,可以按照树结构中自根节点至子节点的顺序,以层级递传的方式依次向多个第二区块链节点广播针对区块生成的出块请求,具体地,由根节点作为父节点,将出块请求发送给与该根节点的节点距离最近的一个或多个子节点,然后,再这一个或多个子节点作为父节点,将出块请求发送给与各自节点距离最近的子节点,依次类推,直至发送给最底层的子节点。这样,可以避免根节点向每个子节点发送出块请求,只需相邻节点之间的层级传递即可使得每个子节点都能收到出块请求,从而,进一步减少了网络通信量,缓解网络拥塞问题。
可选地,在本说明书实施例中,所述出块请求中至少携带有所述第一区块链节点对所述区块的签名;相应地,参照图2所示,所述多个第二区块链节点中每个第二区块链节点根据自身的子节点对所述出块请求的子联合签名,确定自身对所述出块请求的联合签名,可具体包括:
步骤202:所述第二区块链节点根据所述第一区块链节点对所述区块的签名,确定自身对所述区块的第一签名。
步骤204:所述第二区块链节点确定自身的子节点对所述区块的子联合签名。
步骤206:所述第二区块链节点根据所述第一签名以及接收到的子联合签名,确定自身对所述区块的联合签名。
可选地,所述第二区块链节点根据所述第一区块链节点对所述区块的签名,确定自身对所述区块的第一签名,具体包括:
对所述第一区块链节点对所述区块的签名进行校验;
若校验结果有效,则采用哈希函数计算自身对所述区块的第一签名;
可选地,具体可以采用安全哈希函数h{0,1}*→G1计算得到第一签名。
若校验结果无效,则确定自身对所述区块的签名为预设数值。
其中,所述预设数值可以是区块链网络中定义的任意数值,一般以数值1或0为佳。应理解,这里的预设数值仅是为了进行签名标记,其并不表示数值大小。
可选地,在本说明书实施例中,所述第二区块链节点确定自身的子节点对所述区块的子联合签名,包括:
第一步,接收节点距离最近的子节点发送的主子联合签名以及至少两个其它深度的子节点的次子联合签名。
这里的节点距离最近的子节点是指与第二区块链节点直接连接的子节点,而该主联合签名是由节点距离最近的子节点直接发送给第二区块链节点的;至少两个其它深度的子节点,是指以该第二区块链节点为分支且属于树结构其它深度的子节点,而该次子联合签名也是由节点距离最近的子节点直接发送给第二区块链节点的。
应理解,这里的次子联合签名,分别是由树结构的最底层的子节点逐级叠加上报的签名,因此,每个子节点的子联合签名中,都携带了该子节点以下层级的所有节点的签名信息。
第二步,将所述主子联合签名以及所述至少两个次子联合签名分别更新至相应的节点字段;
其实,在每个子节点上,都设置由一个初始值为0的bitmap字段,该字段中每个bit都对应该子节点所在分支的下属层级的一个子节点,假设,其中一个下属层级的子节点对区块的签名为1,那么相应地bit值为0;反之,下属层级的子节点对应区块的签名为0,bit值为1。
第三步,确定所述节点字段中的所有签名为子联合签名。
可选地,在本说明书实施例中,所述第二区块链节点根据所述第一签名以及接收到的子联合签名,确定自身对所述区块的联合签名,具体包括:
将接收到的子联合签名中每个子节点对应的子联合签名进行按位或运算,得到和值;
将所述和值与所述第一签名相乘得到第一部分联合签名;
将所述子联合签名作为第二部分联合签名与所述第一部分联合签名组合确定为联合签名。
其实,具体可以参照以下公式(1):
其中,δ′i(B)是第i个子节点对区块B的第一部分联合签名;σi(B)是第i个子节点对区块B的第一签名;σj(B)是第i个子节点下属层级的子节点j的第一部分联合签名;j∈Ci为按位或进行计算。
可选地,所述第一区块链节点根据接收到的节点距离最近的第二区块链节点的联合签名,确定是否执行出块操作,包括:
确定接收到的联合签名的第二部分联合签名中预设数值的个数与所有第二区块链节点个数的比值;
若该比值满足共识策略,则对所述区块执行出块操作;
若该比值不满足共识策略,则拒绝对所述区块执行出块操作。
其实,在本说明书实施例中,当满足共识策略时,还可以进一步根据公式(1)计算第一区块链节点的聚合签名,并选择节点L+1mod n作为新的根节点,即领导节点,重新构建拓扑树结构;否则,选择节点L+1mod n作为新的根节点,重新由该新的根节点提交出块请求。其中节点L表示当前的根节点,L+1表示下一次共识阶段中新的根节点;因此,无论比值是否满足共识策略,新定义的根节点都是相同的,不同在于:若满足共识策略,意味着对区块B成功上链,并由新的根节点提出对高度为H+1的区块链的出块请求;若不满足共识策略,则意味着区块B并未成功上链,需要由新的根节点在当前高度为H的区块链上重新提出出块请求。
应理解,在本说明书实施例中,共识策略可以是具体的阈值比较策略,例如,当比值大于等于2/3时,认为达成共识,满足共识策略;否则,认为未达成共识,不满足共识策略。
下面通过一个具体的实例对本说明书实施例进行详细介绍。
参照图3所示,为本说明书实施例中的区块链共识方法的具体流程图,主要包括:
步骤302:区块链网络中所有区块链节点均生成密钥对。
具体地,在该步骤中,系统使用JPBC软件库中附带提供的A类型参数生成系统参数(G1,G2,GT,e,g1,g2,p,h),其中素数p为8071079966331252243778198475404981580688319941420821102865339926647563088022257078625179422662221423155858769582317459277713367317481324925129998224791,G1,G2是阶为p的循环乘法群,生成元分别是g1,g2;e是双线性映射G1*G2→GT,由JPBC库所提供的“pairing"运算提供,哈希函数h可选择SHA256算法。
每个区块链节点i随机选择xi∈Zp,计算区块链节点i的私钥为SKi=xi,公钥为PKi=vi。每个区块链节点i可使用Fiat-Shamir启发式算法生成关于PKi是SKi所对应的公钥的零知识证明证明πi
在本说明书实施例中,密钥对的生成可理解为现有技术,并不是本说明书方案所必须的步骤。
步骤304:将区块链节点初始化为二叉树结构。
参照图4所示,将区块链节点依次编号为0,1,2,3,4,5,6。选择0号区块链节点作为根节点,并按照层次遍历的顺序来构造正规二叉树结构;根节点作为领导节点(本说明书实施例中的第一区块链节点),其他节点为见证节点(本说明书实施例中的第二区块链节点)。
应理解,本说明书实施例以二叉树结构为例,但是,并不限于此,还可以三叉树或是N叉树结构来实现本说明书的区块链共识方案。
步骤306:领导节点向见证节点广播出块请求。
例如,领导节点0在区块链高度为H处打包一个区块B,并对区块B提交出块请求;在树结构中自上向下的顺序向各个节点广播区块B的区块标识及领导节点0对区块B的签名
步骤308:见证节点投票。
这里所谓的投票,实质上是通过联合签名的方式间接参与对该出块请求的决策。
具体以图4中的二叉树结构为例。其中,领导节点0为根节点,见证节点1和见证节点2为一级子节点,见证节点3-见证节点6可视为二级子节点。考虑到见证节点3,4,5,6并没有下属的子节点,因此,见证节点3和见证节点4分别向见证节点1返回各自对区块B的签名,见证节点3返回的签名为σ3(B),见证节点4返回的签名为σ4(B);相应地,见证节点5和见证节点6分别向见证节点2返回σ5(B)和σ6(B)。而见证节点3-见证节点6并不向其他节点返回签名。
见证节点1接收到见证节点3和见证节点4返回的签名后,会根据接收到的签名更新自己的bitmap字段。假设见证节点3的签名为1,而见证4的签名不为1,则bitmap字段中对应见证节点3的bit值为0,对应见证节点4的bit值为1。
之后,见证节点1根据哈希安全公式计算自己对区块B的签名σ1(B),然后,根据公式(1),计算见证节点1的第一部分联合签名 同理,见证节点2根据哈希安全公式计算自己对区块B的签名σ2(B),然后,根据公式(1),计算见证节点2的第一部分联合签名(假设见证节点5和见证节点6的签名与见证节点3和见证节点4返回的签名一样)。
最后,见证节点1向领导节点返回自己的第一部分联合签名以及该见证节点1的bitmap字段中的bit值(其实质是签名),见证节点2向领导节点0返回自己的第一部分联合签名以及该见证节点2的bitmap字段中的bit值。
领导节点0会将自己的bitmap字段中的所有字段更新,即对应0-6节点分别的bit值均按照接收到的相应节点的签名或是bit值进行更新。
步骤310:领导节点执行出块操作。
领导节点0收到对应各个子节点的bitmap字段后计算出自己的bitmap字段,若自己的bitmap字段中1的个数超过有系统中节点总数的2/3,则将区块B放入区块链网络中,并计算聚合签名
之后,选择见证节点1作为新的领导节点,重新调整拓扑位置,即跳转至步骤304,以便见证节点1对新的区块链高度上提交出块请求.
其实,当领导节点0的bitmap字段中1的个数未超过系统中节点总数的2/3,选择节点1mod n作为新的领导节点,由见证节点1在当前的区块链高度上提交出块请求。
实施例二
下面参照图5详细介绍本说明书实施例的电子设备。请参考图5,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(Non-Volatile Memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(ExtendedIndustry Standard Architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成内容推荐装置。处理器,执行存储器所存放的程序,并具体用于执行前文所述服务器作为执行主体时所执行的方法操作。
上述如本说明书实施例图1-图3所示实施例揭示的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1-图3的方法,并实现区块链共识装置在图1-图3所示实施例的功能,本说明书实施例在此不再赘述。
当然,除了软件实现方式之外,本说明书实施例的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
实施例三
本说明书实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
第一区块链节点向所述多个第二区块链节点发送出块请求;
所述多个第二区块链节点中每个第二区块链节点根据自身的子节点对所述出块请求的子联合签名,确定自身对所述出块请求的联合签名;
所述第一区块链节点根据接收到的节点距离最近的第二区块链节点的联合签名,确定是否执行出块操作。
其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
实施例四
参照图6所示,为本说明书实施例提供的区块链共识装置的结构示意图,该装置主要包括:
发送模块602,第一区块链节点向所述多个第二区块链节点发送出块请求;
确定模块604,所述多个第二区块链节点中每个第二区块链节点根据自身的子节点对所述出块请求的子联合签名,确定自身对所述出块请求的联合签名;
执行模块606,所述第一区块链节点根据接收到的节点距离最近的第二区块链节点的联合签名,确定是否执行出块操作。
本说明书实施例中,当作为根节点的第一区块链节点向作为子节点的多个第二区块链节点发送出块请求,不需要区块链网络中所有见证节点分别向该领导节点返回签名,而是以树结构中深度最大的子节点开始逐级向自己的上一级子节点返回签名;每个见证节点根据自己对出块请求的签名以及接收到的下一级子节点上报的签名,确定自己的联合签名;这样,逐级向自己的上一级子节点反馈后,最终达到领导节点的联合签名仅是由相距领导节点最近的有限个数的见证节点返回的,从而,减少了在区块链共识机制下的网络通信量,降低网络拥塞;同时,每个区块链节点处仅存储一个由多方签署的联合签名,这样,在实现共识机制的情况下节约存储空间。总之,提升区块链共识方案的效率。
总之,以上所述仅为本说明书实施例的较佳实施例而已,并非用于限定本说明书实施例的保护范围。凡在本说明书实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书实施例中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

Claims (11)

1.一种区块链共识方法,应用在包含一个第一区块链节点和多个第二区块链节点的区块链网络中,所述第一区块链节点限定为当前区块链网络的树结构的根节点,所述多个第二区块链节点分别为所述树结构的子节点,所述树结构的深度为D,所述D为大于2的正整数;所述方法包括:
第一区块链节点向所述多个第二区块链节点发送出块请求;
所述多个第二区块链节点中每个第二区块链节点根据自身的子节点对所述出块请求的子联合签名,确定自身对所述出块请求的联合签名;
所述第一区块链节点根据接收到的节点距离最近的第二区块链节点的联合签名,确定是否执行出块操作。
2.如权利要求1所述的方法,第一区块链节点向所述多个第二区块链节点发送出块请求,包括:
所述第一区块链节点在区块链高度为H处定义一个待上链的区块;
按照预设规则向多个第二区块链节点广播针对所述区块生成的出块请求。
3.如权利要求2所述的方法,按照预设规则向多个第二区块链节点广播针对所述区块生成的出块请求,包括:
按照树结构中自根节点至子节点的顺序,以层级递传的方式依次向多个第二区块链节点广播针对区块生成的出块请求。
4.如权利要求2所述的方法,所述出块请求中至少携带有所述第一区块链节点对所述区块的签名;
所述多个第二区块链节点中每个第二区块链节点根据自身的子节点对所述出块请求的子联合签名,确定自身对所述出块请求的联合签名,包括:
所述第二区块链节点根据所述第一区块链节点对所述区块的签名,确定自身对所述区块的第一签名;
所述第二区块链节点确定自身的子节点对所述区块的子联合签名;
所述第二区块链节点根据所述第一签名以及接收到的子联合签名,确定自身对所述区块的联合签名。
5.如权利要求4所述的方法,所述第二区块链节点根据所述第一区块链节点对所述区块的签名,确定自身对所述区块的第一签名,包括:
对所述第一区块链节点对所述区块的签名进行校验;
若校验结果有效,则采用哈希函数计算自身对所述区块的第一签名;
若校验结果无效,则确定自身对所述区块的签名为预设数值。
6.如权利要求4所述的方法,所述第二区块链节点确定自身的子节点对所述区块的子联合签名,包括:
接收节点距离最近的子节点发送的主子联合签名以及至少两个其它深度的子节点的次子联合签名;
将所述主子联合签名以及所述至少两个次子联合签名分别更新至相应的节点字段;
确定所述节点字段中的所有签名为子联合签名。
7.如权利要求3-6任一项所述的方法,所述第二区块链节点根据所述第一签名以及接收到的子联合签名,确定自身对所述区块的联合签名,包括:
将接收到的子联合签名中每个子节点对应的子联合签名进行按位或运算,得到和值;
将所述和值与所述第一签名相乘得到第一部分联合签名;
将所述子联合签名作为第二部分联合签名与所述第一部分联合签名组合确定为联合签名。
8.如权利要求7所述的方法,所述第一区块链节点根据接收到的节点距离最近的第二区块链节点的联合签名,确定是否执行出块操作,包括:
确定接收到的联合签名的第二部分联合签名中预设数值的个数与所有第二区块链节点个数的比值;
若该比值满足共识策略,则对所述区块执行出块操作;
若该比值不满足共识策略,则拒绝对所述区块执行出块操作。
9.一种区块链共识装置,应用在包含一个第一区块链节点和多个第二区块链节点的区块链网络中,所述第一区块链节点限定为当前区块链网络的树结构的根节点,所述多个第二区块链节点分别为所述树结构的子节点,所述树结构的深度为D,所述D为大于2的正整数;所述装置包括:
发送模块,第一区块链节点向所述多个第二区块链节点发送出块请求;
确定模块,所述多个第二区块链节点中每个第二区块链节点根据自身的子节点对所述出块请求的子联合签名,确定自身对所述出块请求的联合签名;
执行模块,所述第一区块链节点根据接收到的节点距离最近的第二区块链节点的联合签名,确定是否执行出块操作。
10.一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行:
第一区块链节点向所述多个第二区块链节点发送出块请求;
所述多个第二区块链节点中每个第二区块链节点根据自身的子节点对所述出块请求的子联合签名,确定自身对所述出块请求的联合签名;
所述第一区块链节点根据接收到的节点距离最近的第二区块链节点的联合签名,确定是否执行出块操作。
11.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
第一区块链节点向所述多个第二区块链节点发送出块请求;
所述多个第二区块链节点中每个第二区块链节点根据自身的子节点对所述出块请求的子联合签名,确定自身对所述出块请求的联合签名;
所述第一区块链节点根据接收到的节点距离最近的第二区块链节点的联合签名,确定是否执行出块操作。
CN201810251491.5A 2018-03-26 2018-03-26 一种区块链共识方法、装置及电子设备 Active CN108521328B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810251491.5A CN108521328B (zh) 2018-03-26 2018-03-26 一种区块链共识方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810251491.5A CN108521328B (zh) 2018-03-26 2018-03-26 一种区块链共识方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN108521328A true CN108521328A (zh) 2018-09-11
CN108521328B CN108521328B (zh) 2020-08-28

Family

ID=63434333

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810251491.5A Active CN108521328B (zh) 2018-03-26 2018-03-26 一种区块链共识方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN108521328B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109376274A (zh) * 2018-10-23 2019-02-22 杭州能链科技有限公司 基于区块链系统的出块方法、设备以及存储介质
CN110247774A (zh) * 2019-06-28 2019-09-17 深圳市网心科技有限公司 一种区块链数据的共识方法及相关设备
CN110300172A (zh) * 2019-06-28 2019-10-01 深圳市网心科技有限公司 一种区块链数据的共识方法及相关设备
CN110336816A (zh) * 2019-07-05 2019-10-15 深圳市九链科技有限公司 一种使用通信证明作为区块链共识的方法
CN110943838A (zh) * 2018-09-21 2020-03-31 上海派链信息科技有限公司 区块链网络中确定区块的共识的方法、设备和存储介质
CN111147392A (zh) * 2019-12-25 2020-05-12 腾讯科技(深圳)有限公司 基于区块链的数据同步方法、装置、设备及可读存储介质
CN111835572A (zh) * 2020-07-23 2020-10-27 上海优扬新媒信息技术有限公司 一种区块链网络的通信方法及装置
CN112968884A (zh) * 2018-09-27 2021-06-15 福建福链科技有限公司 一种防止黑客攻击的区块链异构共识方法及终端
CN112988911A (zh) * 2021-05-07 2021-06-18 支付宝(杭州)信息技术有限公司 区块链数据存储方法及装置、电子设备
CN113114463A (zh) * 2020-01-13 2021-07-13 中国移动通信有限公司研究院 一种证书注册方法、验证方法及设备
CN113256427A (zh) * 2021-06-28 2021-08-13 北京航空航天大学 一种基于联合签名的联盟区块链共识方法及系统
CN113592638A (zh) * 2020-04-30 2021-11-02 顺丰科技有限公司 交易请求的处理方法、装置以及联盟链
WO2022001810A1 (zh) * 2020-07-01 2022-01-06 阿里巴巴集团控股有限公司 交易数据的处理方法和装置、数据处理方法和装置
CN116862509A (zh) * 2023-07-17 2023-10-10 武汉大学 主从多链架构下的主链树形快速共识系统及方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106411503A (zh) * 2016-11-28 2017-02-15 中国银行股份有限公司 区块链投票记账模式的记账方法及系统、投票及记账节点
CN106453636A (zh) * 2016-11-22 2017-02-22 深圳银链科技有限公司 可信区块生成方法及系统
CN106789090A (zh) * 2017-02-24 2017-05-31 陈晶 基于区块链的公钥基础设施系统及半随机联合证书签名方法
CN107005574A (zh) * 2016-12-23 2017-08-01 深圳前海达闼云端智能科技有限公司 区块生成方法、装置和区块链网络
CN107040582A (zh) * 2017-02-17 2017-08-11 阿里巴巴集团控股有限公司 一种数据处理方法及装置
CN107045518A (zh) * 2016-10-18 2017-08-15 北京天德科技有限公司 一种区块链的扩展设计方法
US20170295180A1 (en) * 2016-04-06 2017-10-12 Guardtime Ip Holdings Limited System and Method for Access Control Using Context-Based Proof
CN107392608A (zh) * 2017-07-11 2017-11-24 北京博晨技术有限公司 基于区块链系统的数字资产交易方法及区块链系统
US20180060596A1 (en) * 2016-08-30 2018-03-01 Workday, Inc. Secure storage audit verification system

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170295180A1 (en) * 2016-04-06 2017-10-12 Guardtime Ip Holdings Limited System and Method for Access Control Using Context-Based Proof
US20180060596A1 (en) * 2016-08-30 2018-03-01 Workday, Inc. Secure storage audit verification system
CN107045518A (zh) * 2016-10-18 2017-08-15 北京天德科技有限公司 一种区块链的扩展设计方法
CN106453636A (zh) * 2016-11-22 2017-02-22 深圳银链科技有限公司 可信区块生成方法及系统
CN106411503A (zh) * 2016-11-28 2017-02-15 中国银行股份有限公司 区块链投票记账模式的记账方法及系统、投票及记账节点
CN107005574A (zh) * 2016-12-23 2017-08-01 深圳前海达闼云端智能科技有限公司 区块生成方法、装置和区块链网络
CN107040582A (zh) * 2017-02-17 2017-08-11 阿里巴巴集团控股有限公司 一种数据处理方法及装置
CN106789090A (zh) * 2017-02-24 2017-05-31 陈晶 基于区块链的公钥基础设施系统及半随机联合证书签名方法
CN107392608A (zh) * 2017-07-11 2017-11-24 北京博晨技术有限公司 基于区块链系统的数字资产交易方法及区块链系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PETER TODD: "Tree-chains preliminary summary", 《HTTPS://WWW.MAIL-ARCHIVE.COM/BITCOIN-DEVELOPMENT@LISTS.SOURCEFORGE》 *
VANESA DAZA 等: "CONNECT: CONtextual NamE disCovery for blockchain-based services in the IoT", 《IEEE ICC 2017 SAC SYMPOSIUM INTERNET OF THINGS TRACK》 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110943838A (zh) * 2018-09-21 2020-03-31 上海派链信息科技有限公司 区块链网络中确定区块的共识的方法、设备和存储介质
CN112968884A (zh) * 2018-09-27 2021-06-15 福建福链科技有限公司 一种防止黑客攻击的区块链异构共识方法及终端
CN109376274A (zh) * 2018-10-23 2019-02-22 杭州能链科技有限公司 基于区块链系统的出块方法、设备以及存储介质
CN110247774A (zh) * 2019-06-28 2019-09-17 深圳市网心科技有限公司 一种区块链数据的共识方法及相关设备
CN110300172A (zh) * 2019-06-28 2019-10-01 深圳市网心科技有限公司 一种区块链数据的共识方法及相关设备
CN110336816A (zh) * 2019-07-05 2019-10-15 深圳市九链科技有限公司 一种使用通信证明作为区块链共识的方法
CN111147392A (zh) * 2019-12-25 2020-05-12 腾讯科技(深圳)有限公司 基于区块链的数据同步方法、装置、设备及可读存储介质
CN111147392B (zh) * 2019-12-25 2021-08-24 腾讯科技(深圳)有限公司 基于区块链的数据同步方法、装置、设备及可读存储介质
CN113114463A (zh) * 2020-01-13 2021-07-13 中国移动通信有限公司研究院 一种证书注册方法、验证方法及设备
CN113114463B (zh) * 2020-01-13 2023-04-07 中国移动通信有限公司研究院 一种证书注册方法、验证方法及设备
CN113592638A (zh) * 2020-04-30 2021-11-02 顺丰科技有限公司 交易请求的处理方法、装置以及联盟链
WO2022001810A1 (zh) * 2020-07-01 2022-01-06 阿里巴巴集团控股有限公司 交易数据的处理方法和装置、数据处理方法和装置
CN111835572A (zh) * 2020-07-23 2020-10-27 上海优扬新媒信息技术有限公司 一种区块链网络的通信方法及装置
CN111835572B (zh) * 2020-07-23 2023-01-13 度小满科技(北京)有限公司 一种区块链网络的通信方法及装置
CN112988911A (zh) * 2021-05-07 2021-06-18 支付宝(杭州)信息技术有限公司 区块链数据存储方法及装置、电子设备
CN113256427B (zh) * 2021-06-28 2021-09-14 北京航空航天大学 一种基于联合签名的联盟区块链共识方法及系统
CN113256427A (zh) * 2021-06-28 2021-08-13 北京航空航天大学 一种基于联合签名的联盟区块链共识方法及系统
CN116862509A (zh) * 2023-07-17 2023-10-10 武汉大学 主从多链架构下的主链树形快速共识系统及方法
CN116862509B (zh) * 2023-07-17 2024-05-17 武汉大学 主从多链架构下的主链树形快速共识系统及方法

Also Published As

Publication number Publication date
CN108521328B (zh) 2020-08-28

Similar Documents

Publication Publication Date Title
CN108521328A (zh) 一种区块链共识方法、装置及电子设备
CN112003703B (zh) 一种跨链发送可认证消息的方法和装置
CN110245956B (zh) 一种基于异步多链的区块链交易确认方法及系统
CN109711192B (zh) 区块链系统节点间交易方法及系统
WO2019100864A1 (zh) 一种数据处理方法和装置
CN113409045B (zh) 一种基于区块链的数据处理方法、装置及电子设备
CN111753335A (zh) 区块内容的编辑方法及装置
US10581616B1 (en) Managing nodes of a cryptographic hash tree in a hash-based digital signature scheme
CN108550038A (zh) 一种应用于区块链的数据传播系统及方法
Hagouel Issues in routing for large and dynamic networks
CN109474682A (zh) 一种区块链网络传输方法、装置及电子设备
CN110032599A (zh) 数据结构的读取及更新方法、装置、电子设备
CN110020859A (zh) 一种并行执行的区块链共识方法、装置及电子设备
CN110555079B (zh) 数据处理方法、装置、设备以及存储介质
CN108846748A (zh) 一种独立进程执行合约的方法及装置
CN109218037A (zh) P2p网络中的消息广播方法及装置
CN111064583A (zh) 一种门限sm2数字签名方法、装置、电子设备及存储介质
CN113448694B (zh) 一种提高事务处理能力的区块链共识方法
CN111640018B (zh) 一种区块链交易存在性验证方法及装置
CN110505311A (zh) 一种同构区块链跨链交互方法和系统
CN110032568A (zh) 数据结构的读取及更新方法、装置、电子设备
CN113469815A (zh) 数据管理方法及装置
CN113034137A (zh) 基于区块链的数据处理方法、装置及相关设备
CN116668008A (zh) 密钥的协同交换方法、装置、电子设备及介质
CN110958666A (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
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20180911

Assignee: Hangzhou Xita Technology Co.,Ltd.

Assignor: CRYPTAPE Co.,Ltd.

Contract record no.: X2020330000117

Denomination of invention: A blockchain consensus method, device and electronic device

Granted publication date: 20200828

License type: Common License

Record date: 20201218

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231221

Address after: 10/F, Guotou Building, No. 398 Shaoxing Road, Gongshu District, Hangzhou City, Zhejiang Province, 310000

Patentee after: Hangzhou Xita Technology Co.,Ltd.

Address before: Room 1301, block a, Huaxing Times Square, 478 Wensan Road, Xihu District, Hangzhou City, Zhejiang Province, 310013

Patentee before: CRYPTAPE Co.,Ltd.