CN109377229A - 一种交易共识方法、节点及区块链系统 - Google Patents
一种交易共识方法、节点及区块链系统 Download PDFInfo
- Publication number
- CN109377229A CN109377229A CN201811409763.6A CN201811409763A CN109377229A CN 109377229 A CN109377229 A CN 109377229A CN 201811409763 A CN201811409763 A CN 201811409763A CN 109377229 A CN109377229 A CN 109377229A
- Authority
- CN
- China
- Prior art keywords
- nodes
- transaction
- node
- itself
- private value
- 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
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
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- 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
- G06Q20/3827—Use of message hashing
Abstract
本发明提供了一种交易共识方法、节点及区块链系统,该方法包括:区块链系统中的任一节点针对预设时间段内,自身发起及其他节点发起的各交易的交易信息,校验交易内容的有效性;生成包括预设时间段内各交易内容及其有效性校验结果的自身私有值;针对各其他节点:利用与当前其他节点间唯一的共享密钥加密自身的私有值并广播所得密文,利用该共享密钥根据当前其他节点广播的密文获得其私有值;基于自身及各其他节点的私有值,针对待生成的新区块与各其他节点达成共识,新区块由所有诚实节点生成以获得预设时间段内各有效的交易内容,不同诚实节点的私有值相同。基于共享密钥进行共识,故本方案可保证节点间能够准确达成共识。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种交易共识方法、节点及区块链系统。
背景技术
区块链是一种新兴的应用模式,在区块链网络上的交易是无法被窜改或否认的,这其中涉及到多种关键技术,比如共识机制。共识机制用于确保交易信息在整个区块链网络中达成一致。
目前,通常可基于非对称加密的数字签名,以保证交易信息的不可篡改性和不可抵赖性,从而保证节点间能够准确达成共识。
然而,随着量子计算机的出现,作为区块链底层安全支撑技术之一的传统公钥密码的安全性将受到严峻的挑战。
发明内容
本发明提供了一种交易共识方法、节点及区块链系统,可以保证节点间能够准确达成共识。
为了达到上述目的,本发明是通过如下技术方案实现的:
第一方面,本发明提供了一种交易共识方法,应用于区块链系统中的任一节点,包括:
针对预设时间段内每一个交易的交易信息均执行:校验当前交易信息中的交易内容的有效性,其中,该交易信息为自身所发起交易的交易信息或所述区块链系统中任一其他节点所发起交易的交易信息;
生成自身的私有值,该私有值包括:所述预设时间段内的每一个交易内容及其有效性校验结果;
针对每一个所述其他节点均执行:利用与当前其他节点间唯一的共享密钥加密自身的私有值,并将所得密文在所述区块链系统中进行广播;利用与所述当前其他节点间的共享密钥,根据所述当前其他节点在所述区块链系统中广播的密文,获得所述当前其他节点的私有值;
基于自身的私有值和每一个所述其他节点的私有值,针对待生成的新区块与每一个所述其他节点达成共识,其中,所述新区块由所述区块链系统中的所有诚实节点生成,以获得所述预设时间段内每一个有效的交易内容,且不同诚实节点的私有值相同。
进一步地,该方法还包括:将自身发起的每一个交易的交易信息在所述区块链系统中进行广播,该交易信息包括:交易内容、采用带自身秘密值的哈希算法计算交易内容所获得的第一哈希标签、每一个所述其他节点对应的第二哈希标签,其中,任一所述其他节点对应的第二哈希标签,由采用与该其他节点间的共享密钥加密交易内容和第一哈希标签而获得;以及接收任一所述其他节点广播的每一个交易信息;
所述校验当前交易信息中的交易内容的有效性,包括:当前交易信息为一所述其他节点广播的交易信息时,采用与该其他节点间的共享密钥加密所述当前交易信息中的交易内容和第一哈希标签,以得到哈希标签;判断得到的哈希标签与所述当前交易信息中的第二哈希标签是否相同,若是,确定所述当前交易信息中的交易内容有效。
进一步地,所述针对每一个所述其他节点均执行:利用与当前其他节点间唯一的共享密钥加密自身的私有值,并将所得密文在所述区块链系统中进行广播;利用与所述当前其他节点间的共享密钥,根据所述当前其他节点在所述区块链系统中广播的密文,获得所述当前其他节点的私有值,包括:
针对每一个所述其他节点均执行:利用与当前其他节点间唯一的共享密钥加密自身的私有值,以获得所述当前其他节点对应的第三哈希标签;
在所述区块链系统中广播自身的共识信息,该共识信息包括:自身的公钥、自身的私有值、每一个所述其他节点对应的第三哈希标签;
在接收到一共识信息时,确定具有该共识信息中公钥的其他节点,并利用与该其他节点间的共享密钥,加密该共识信息中的私有值以得到哈希标签;判断得到的哈希标签与该共识信息中的第三哈希标签是否相同,若是,确定该共识信息中的私有值为该其他节点的私有值。
进一步地,所述针对待生成的新区块与每一个所述其他节点达成共识,包括:基于实用拜占庭容错算法,针对待生成的新区块与每一个所述其他节点达成共识。
第二方面,本发明提供了一种节点,该节点为区块链系统中的任一节点,包括:
校验单元,用于针对预设时间段内每一个交易的交易信息均执行:校验当前交易信息中的交易内容的有效性,其中,该交易信息为自身所发起交易的交易信息或所述区块链系统中任一其他节点所发起交易的交易信息;
生成单元,用于生成自身的私有值,该私有值包括:所述预设时间段内的每一个交易内容及其有效性校验结果;
处理单元,用于针对每一个所述其他节点均执行:利用与当前其他节点间唯一的共享密钥加密自身的私有值,并将所得密文在所述区块链系统中进行广播;利用与所述当前其他节点间的共享密钥,根据所述当前其他节点在所述区块链系统中广播的密文,获得所述当前其他节点的私有值;
共识单元,用于基于自身的私有值和每一个所述其他节点的私有值,针对待生成的新区块与每一个所述其他节点达成共识,其中,所述新区块由所述区块链系统中的所有诚实节点生成,以获得所述预设时间段内每一个有效的交易内容,且不同诚实节点的私有值相同。
进一步地,所述处理单元,还用于将自身发起的每一个交易的交易信息在所述区块链系统中进行广播,该交易信息包括:交易内容、采用带自身秘密值的哈希算法计算交易内容所获得的第一哈希标签、每一个所述其他节点对应的第二哈希标签,其中,任一所述其他节点对应的第二哈希标签,由采用与该其他节点间的共享密钥加密交易内容和第一哈希标签而获得;以及接收任一所述其他节点广播的每一个交易信息;
所述校验单元,用于当前交易信息为一所述其他节点广播的交易信息时,采用与该其他节点间的共享密钥加密所述当前交易信息中的交易内容和第一哈希标签,以得到哈希标签;判断得到的哈希标签与所述当前交易信息中的第二哈希标签是否相同,若是,确定所述当前交易信息中的交易内容有效。
进一步地,所述处理单元,用于针对每一个所述其他节点均执行:利用与当前其他节点间唯一的共享密钥加密自身的私有值,以获得所述当前其他节点对应的第三哈希标签;在所述区块链系统中广播自身的共识信息,该共识信息包括:自身的公钥、自身的私有值、每一个所述其他节点对应的第三哈希标签;在接收到一共识信息时,确定具有该共识信息中公钥的其他节点,并利用与该其他节点间的共享密钥,加密该共识信息中的私有值以得到哈希标签;判断得到的哈希标签与该共识信息中的第三哈希标签是否相同,若是,确定该共识信息中的私有值为该其他节点的私有值。
进一步地,所述共识单元,用于基于实用拜占庭容错算法,针对待生成的新区块与每一个所述其他节点达成共识。
第三方面,本发明提供了一种区块链系统,包括:至少三个上述任一所述的节点;
其中,所述区块链系统中的所有诚实节点,用于生成所述新区块,并将所述新区块记录于主链中。
进一步地,所述区块链系统中的所有诚实节点,还用于在主链中对应记录所述新区块中每一个有效的交易内容的哈希标签,该哈希标签为采用带交易发起方秘密值的哈希算法计算交易内容所获得的哈希标签。
本发明提供了一种交易共识方法、节点及区块链系统,该方法包括:区块链系统中的任一节点针对预设时间段内,自身发起及其他节点发起的各交易的交易信息,校验交易内容的有效性;生成包括预设时间段内各交易内容及其有效性校验结果的自身私有值;针对各其他节点:利用与当前其他节点间唯一的共享密钥加密自身的私有值并广播所得密文,利用该共享密钥根据当前其他节点广播的密文获得其私有值;基于自身及各其他节点的私有值,针对待生成的新区块与各其他节点达成共识,新区块由所有诚实节点生成以获得预设时间段内各有效的交易内容,不同诚实节点的私有值相同。基于共享密钥进行共识,故本发明可保证节点间能够准确达成共识。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种交易共识方法的流程图;
图2是本发明一实施例提供的另一种交易共识方法的流程图;
图3是本发明一实施例提供的一种节点的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种交易共识方法,应用于区块链系统中的任一节点,可以包括以下步骤:
步骤101:针对预设时间段内每一个交易的交易信息均执行:校验当前交易信息中的交易内容的有效性,其中,该交易信息为自身所发起交易的交易信息或所述区块链系统中任一其他节点所发起交易的交易信息。
步骤102:生成自身的私有值,该私有值包括:所述预设时间段内的每一个交易内容及其有效性校验结果。
步骤103:针对每一个所述其他节点均执行:利用与当前其他节点间唯一的共享密钥加密自身的私有值,并将所得密文在所述区块链系统中进行广播;利用与所述当前其他节点间的共享密钥,根据所述当前其他节点在所述区块链系统中广播的密文,获得所述当前其他节点的私有值。
步骤104:基于自身的私有值和每一个所述其他节点的私有值,针对待生成的新区块与每一个所述其他节点达成共识,其中,所述新区块由所述区块链系统中的所有诚实节点生成,以获得所述预设时间段内每一个有效的交易内容,且不同诚实节点的私有值相同。
本发明实施例提供了一种交易共识方法,区块链系统中的任一节点针对预设时间段内,自身发起及其他节点发起的各交易的交易信息,校验交易内容的有效性;生成包括预设时间段内各交易内容及其有效性校验结果的自身私有值;针对各其他节点:利用与当前其他节点间唯一的共享密钥加密自身的私有值并广播所得密文,利用该共享密钥根据当前其他节点广播的密文获得其私有值;基于自身及各其他节点的私有值,针对待生成的新区块与各其他节点达成共识,新区块由所有诚实节点生成以获得预设时间段内各有效的交易内容,不同诚实节点的私有值相同。基于共享密钥进行共识,故本发明实施例可保证节点间能够准确达成共识。
本发明实施例中,区块链系统中可以包括一定数量的节点,各节点呈分布式存在。上述交易信息即可以为某一节点向另一节点所发起交易的信息,该信息中包括有交易内容。每一个节点均需对交易内容进行有效性校验。有效的交易内容可记录于主链中。可见,需校验的交易信息,即可以为节点自身发起的交易,也可以为其他节点发起的交易。
由于可以周期性的将交易内容记入主链,故可以周期性的对特定时间段内的全部交易进行有效性校验。经有效性校验,即可生成自身的私有值,以记录全部交易的交易内容及相应有效性校验结果。
在本发明一个实施例中,可以用比特向量对每个交易的有效性进行标记,比如,1表示该交易经验证是有效的,反之,0表示该交易不能通过验证。
举例来说,假设预设时间段内共发生了3起交易,交易内容的标识分别为M1、M2、M3,节点A经验证,M1和M2均有效,而M3无效。如此,生成的自身私有值即可以为NA=(M1,M2,M3)‖(1,1,0)。通常情况下,为方便其他节点读取所需部分的数据,各个交易内容可以安装交易发生时间先后顺序依次排列,交易内容的有效性校验结果对应依次排列。
生成自身的私有值后,节点A即可将其加密后广播出去。同样,每一个节点均将自身的私有值加密后广播出去。如此,各个节点即可根据自身与其他各个节点的共享密钥,以获知其他各个节点的私有值。
通过私有值,可以获知各个节点对各交易内容的有效性校验结果。如此,各个节点间可以基于私有值达成共识,明确哪些节点是诚实节点,哪些节点是不诚实节点,并由所有诚实节点生成新区块。通常情况下,诚实节点的占比应能达到一定的比例要求。当然,各个诚实节点的私有值应是一致的。
所有节点间达成共识后,即可由所有诚实节点生成并维护新区块,在新区块中记录预设时间段内的每一个有效交易内容,再将新区块的内容记入主链中,以实现主链的一致性。
本发明实施例中,可以利用多轮广播协议以达成共识,即各个节点均将自身的私有值广播出去,经过多轮广播,所有节点对新区块包含的交易达成共识,所有诚实节点生成新区块,并将新区块中的所有交易信息记录于主链中。如此,可避免使用工作量证明机制(POW)从而节省了全网的算力。
通常情况下,可以经过不超过m+1轮,即达成对即将生成的新区块的共识。其中,m<n/3,n/3为不诚实节点数量,n为所有节点数量。
综上所述,本发明实施例中,区块链系统内节点之间两两建立共享密钥,以实现身份认证的功能;基于每个节点的私有值,通过多轮广播进行共识。如此,本发明实施例可用于构建抗量子攻击的区块链。
在本发明的一个实施例中,为了说明一种校验交易内容有效性的可能实现方式,所以,该方法还包括:将自身发起的每一个交易的交易信息在所述区块链系统中进行广播,该交易信息包括:交易内容、采用带自身秘密值的哈希算法计算交易内容所获得的第一哈希标签、每一个所述其他节点对应的第二哈希标签,其中,任一所述其他节点对应的第二哈希标签,由采用与该其他节点间的共享密钥加密交易内容和第一哈希标签而获得;以及接收任一所述其他节点广播的每一个交易信息;
所述校验当前交易信息中的交易内容的有效性,包括:当前交易信息为一所述其他节点广播的交易信息时,采用与该其他节点间的共享密钥加密所述当前交易信息中的交易内容和第一哈希标签,以得到哈希标签;判断得到的哈希标签与所述当前交易信息中的第二哈希标签是否相同,若是,确定所述当前交易信息中的交易内容有效。
详细地,使用带密钥的哈希函数,可用来保证不可篡改性和不可抵赖性。
本发明实施例中,任一节点,只要其作为交易发起方,向任一其他节点发起交易,即可将交易的交易信息进行广播。对应地,每一个其他节点均可接受到广播的这一交易信息。为方便各节点进行交易内容有效性验证,所广播的交易信息可以包括交易内容、上述第一哈希标签和各其他节点对应的上述第二哈希标签。
举例来说,假设共有a个节点,节点1发起了交易,则所广播的交易信息即可以为M‖MACk1(M)‖MACk12(M‖MACk1(M))‖MACk13(M‖MACk1(M))‖……‖MACk1i(M‖MACk1(M))‖……‖MACk1a(M‖MACk1(M))。
其中,M为交易内容,k1为节点1的自身秘密值,MACk1(M)为采用带自身秘密值k1的哈希算法计算交易内容M所获得的第一哈希标签,MACk1i(M‖MACk1(M))为节点i对应的第二哈希标签,即采用节点1与节点i间的共享密钥k1i加密交易内容M和第一哈希标签MACk1(M),所得到的哈希标签。
对应地,假设节点i收到该交易信息时,即可利用采用节点1与节点i间的共享密钥k1i,加密该交易信息中的交易内容M和第一哈希标签MACk1(M),以获得一哈希标签。当交易信息未被恶意篡改时,节点i获得的这一哈希标签应与交易信息中的MACk1i(M‖MACk1(M))保持一致。如此,节点i即可认为交易内容M有效。
在本发明一个实施例中,广播的交易信息中还可以包括交易发起者的公钥,如此,其他节点即可明确所需使用哪个共享密钥来进行有效性验证。
在本发明的一个实施例中,所述针对每一个所述其他节点均执行:利用与当前其他节点间唯一的共享密钥加密自身的私有值,并将所得密文在所述区块链系统中进行广播;利用与所述当前其他节点间的共享密钥,根据所述当前其他节点在所述区块链系统中广播的密文,获得所述当前其他节点的私有值,包括:
针对每一个所述其他节点均执行:利用与当前其他节点间唯一的共享密钥加密自身的私有值,以获得所述当前其他节点对应的第三哈希标签;
在所述区块链系统中广播自身的共识信息,该共识信息包括:自身的公钥、自身的私有值、每一个所述其他节点对应的第三哈希标签;
在接收到一共识信息时,确定具有该共识信息中公钥的其他节点,并利用与该其他节点间的共享密钥,加密该共识信息中的私有值以得到哈希标签;判断得到的哈希标签与该共识信息中的第三哈希标签是否相同,若是,确定该共识信息中的私有值为该其他节点的私有值。
举例来说,假设节点A为编号最大的节点,节点A的私有值为NA=(M1,M2,M3)‖(1,1,0),则节点A广播的共识信息可以为pkA‖NA‖MACkA1(NA)‖MACkA2(NA)‖……‖MACkAi(NA)‖……‖MACkA(A-1)(NA)。其中,pkA为节点A的公钥,MACkAi(NA)为节点i对应的第三哈希标签,即利用节点A与节点i间的共享密钥kAi,加密节点A的私有值NA所得到的哈希标签。
对应地,假设节点i收到该共识信息时,即可利用采用节点A与节点i间的共享密钥kAi,加密该共识信息中的私有值NA,以获得一哈希标签。当共识信息未被恶意篡改时,节点i获得的这一哈希标签应与共识信息中的MACkAi(NA)保持一致。如此,节点i即可利用各个其他节点的私有值,与各个其他节点达成共识。
在本发明的一个实施例中,所述针对待生成的新区块与每一个所述其他节点达成共识,包括:基于实用拜占庭容错算法,针对待生成的新区块与每一个所述其他节点达成共识。
本发明实施例中,以去中心化的方式生成新区块,采用多轮广播协议广播共识信息,且该协议允许在具有成对认证通信的任何网络中实现拜占庭协议,当然前提是不诚实节点数少于n/3,n为网络中总节点数。
如图2所示,本发明实施例提供了一种交易共识方法,应用于区块链系统中的任一节点,可以包括以下步骤:
步骤201:将自身发起的每一个交易的交易信息在区块链系统中进行广播,该交易信息包括:交易内容、采用带自身秘密值的哈希算法计算交易内容所获得的第一哈希标签、每一个其他节点对应的第二哈希标签,其中,任一其他节点对应的第二哈希标签,由采用与该其他节点间的共享密钥加密交易内容和第一哈希标签而获得。
步骤202:接收任一其他节点广播的每一个交易信息。
步骤203:针对预设时间段内每一个交易的交易信息均执行:当前交易信息为自身广播的交易信息时,确定当前交易信息中的交易内容有效;当前交易信息为一其他节点广播的交易信息时,采用与该其他节点间的共享密钥加密当前交易信息中的交易内容和第一哈希标签,以得到哈希标签;得到的哈希标签与当前交易信息中的第二哈希标签相同时,确定当前交易信息中的交易内容有效。
步骤204:生成自身的私有值,该私有值包括:预设时间段内的每一个交易内容及其有效性校验结果。
步骤205:针对每一个其他节点均执行:利用与当前其他节点间唯一的共享密钥加密自身的私有值,以获得当前其他节点对应的第三哈希标签。
步骤206:在区块链系统中广播自身的共识信息,该共识信息包括:自身的公钥、自身的私有值、每一个其他节点对应的第三哈希标签。
步骤207:在接收到一共识信息时,确定具有该共识信息中公钥的其他节点,并利用与该其他节点间的共享密钥,加密该共识信息中的私有值以得到哈希标签;得到的哈希标签与该共识信息中的第三哈希标签相同时,确定该共识信息中的私有值为该其他节点的私有值。
步骤208:基于自身的私有值和每一个其他节点的私有值,以及基于实用拜占庭容错算法,针对待生成的新区块与每一个其他节点达成共识,其中,新区块由区块链系统中的所有诚实节点生成,以获得预设时间段内每一个有效的交易内容,且不同诚实节点的私有值相同。
如图3所示,本发明实施例提供了一种节点,该节点为区块链系统中的任一节点,包括:
校验单元301,用于针对预设时间段内每一个交易的交易信息均执行:校验当前交易信息中的交易内容的有效性,其中,该交易信息为自身所发起交易的交易信息或所述区块链系统中任一其他节点所发起交易的交易信息;
生成单元302,用于生成自身的私有值,该私有值包括:所述预设时间段内的每一个交易内容及其有效性校验结果;
处理单元303,用于针对每一个所述其他节点均执行:利用与当前其他节点间唯一的共享密钥加密自身的私有值,并将所得密文在所述区块链系统中进行广播;利用与所述当前其他节点间的共享密钥,根据所述当前其他节点在所述区块链系统中广播的密文,获得所述当前其他节点的私有值;
共识单元304,用于基于自身的私有值和每一个所述其他节点的私有值,针对待生成的新区块与每一个所述其他节点达成共识,其中,所述新区块由所述区块链系统中的所有诚实节点生成,以获得所述预设时间段内每一个有效的交易内容,且不同诚实节点的私有值相同。
在本发明一个实施例中,所述处理单元303,还用于将自身发起的每一个交易的交易信息在所述区块链系统中进行广播,该交易信息包括:交易内容、采用带自身秘密值的哈希算法计算交易内容所获得的第一哈希标签、每一个所述其他节点对应的第二哈希标签,其中,任一所述其他节点对应的第二哈希标签,由采用与该其他节点间的共享密钥加密交易内容和第一哈希标签而获得;以及接收任一所述其他节点广播的每一个交易信息;
所述校验单元301,用于当前交易信息为一所述其他节点广播的交易信息时,采用与该其他节点间的共享密钥加密所述当前交易信息中的交易内容和第一哈希标签,以得到哈希标签;判断得到的哈希标签与所述当前交易信息中的第二哈希标签是否相同,若是,确定所述当前交易信息中的交易内容有效。
在本发明一个实施例中,所述处理单元303,用于针对每一个所述其他节点均执行:利用与当前其他节点间唯一的共享密钥加密自身的私有值,以获得所述当前其他节点对应的第三哈希标签;在所述区块链系统中广播自身的共识信息,该共识信息包括:自身的公钥、自身的私有值、每一个所述其他节点对应的第三哈希标签;在接收到一共识信息时,确定具有该共识信息中公钥的其他节点,并利用与该其他节点间的共享密钥,加密该共识信息中的私有值以得到哈希标签;判断得到的哈希标签与该共识信息中的第三哈希标签是否相同,若是,确定该共识信息中的私有值为该其他节点的私有值。
在本发明一个实施例中,所述共识单元304,用于基于实用拜占庭容错算法,针对待生成的新区块与每一个所述其他节点达成共识。
上述产品内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
基于上述内容,本发明实施例提供了一种区块链系统,可以包括:至少三个上述任一所述的节点;其中,所述区块链系统中的所有诚实节点,用于生成所述新区块,并将所述新区块记录于主链中。
详细地,区块链系统中所有的诚实节点可以通过对比接收到的私有值达成一个共识,即获得当前时间段内所有有效的交易集合,进而所有诚实节点能够生成相同的新区块,实现主链的一致性。
在比特币网络中,节点需要争夺记账权才能获得产生新区块的权利,并且由获取记账权的节点确定区块的具体内容。不同于比特币网络,在本发明实施例提供的区块链系统中,区块的内容由所有诚实节点达成共识并进行维护,使其成为最长合法链。
在本发明一个实施例中,所述区块链系统中的所有诚实节点,还用于在主链中对应记录所述新区块中每一个有效的交易内容的哈希标签,该哈希标签为采用带交易发起方秘密值的哈希算法计算交易内容所获得的哈希标签。
详细地,所有诚实节点生成新的区块,并将预设时间段内的所有有效交易信息M及其第一哈希标签MACki(M)记录于主链中,这里的ki可以表示为节点i的秘密值,且节点i作为交易发起者发起了交易内容为M的交易。MACki(M)即为利用带密钥ki的哈希算法加密交易内容M所得的哈希标签。
本发明实施例中,只将交易内容和交易发起者计算的哈希标签记录于区块中,这样能够减少区块大小,缓解系统的整体存储负担。而用于验证的哈希标签只在验证过程中进行广播和临时存储。
综上所述,本发明实施例中,区块链系统中的所有节点两两之间建立共享密钥;使用带密钥的哈希算法计算交易的哈希标签来保证交易的不可篡改性和不可抵赖性;区块链系统中的节点对收到的交易信息重新计算哈希标签进行验证,并对每笔交易进行标记,标记结果作为一个私有值;区块链系统中所有节点将私有值进行拜占庭式共识,所有诚实节点生成新的区块,并将其记录于主链中。这样就不需要原来基于非对称加密的数字签名了,直接使用交易的哈希标签就可以保证不可篡改性和不可抵赖性。
综上所述,本发明的实施例具有至少如下有益效果:
1、本发明实施例中,区块链系统中的任一节点针对预设时间段内,自身发起及其他节点发起的各交易的交易信息,校验交易内容的有效性;生成包括预设时间段内各交易内容及其有效性校验结果的自身私有值;针对各其他节点:利用与当前其他节点间唯一的共享密钥加密自身的私有值并广播所得密文,利用该共享密钥根据当前其他节点广播的密文获得其私有值;基于自身及各其他节点的私有值,针对待生成的新区块与各其他节点达成共识,新区块由所有诚实节点生成以获得预设时间段内各有效的交易内容,不同诚实节点的私有值相同。基于共享密钥进行共识,故本发明实施例可保证节点间能够准确达成共识。
2、本发明实施例中,可以利用多轮广播协议以达成共识,即各个节点均将自身的私有值广播出去,经过多轮广播,所有节点对新区块包含的交易达成共识,所有诚实节点生成新区块,并将新区块中的所有交易信息记录于主链中。如此,可避免使用工作量证明机制(POW)从而节省了全网的算力。
3、本发明实施例中,区块链系统中的所有节点两两之间建立共享密钥;使用带密钥的哈希算法计算交易的哈希标签来保证交易的不可篡改性和不可抵赖性;区块链系统中的节点对收到的交易信息重新计算哈希标签进行验证,并对每笔交易进行标记,标记结果作为一个私有值;区块链系统中所有节点将私有值进行拜占庭式共识,所有诚实节点生成新的区块,并将其记录于主链中。这样就不需要原来基于非对称加密的数字签名了,直接使用交易的哈希标签就可以保证不可篡改性和不可抵赖性。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种交易共识方法,其特征在于,应用于区块链系统中的任一节点,包括:
针对预设时间段内每一个交易的交易信息均执行:校验当前交易信息中的交易内容的有效性,其中,该交易信息为自身所发起交易的交易信息或所述区块链系统中任一其他节点所发起交易的交易信息;
生成自身的私有值,该私有值包括:所述预设时间段内的每一个交易内容及其有效性校验结果;
针对每一个所述其他节点均执行:利用与当前其他节点间唯一的共享密钥加密自身的私有值,并将所得密文在所述区块链系统中进行广播;利用与所述当前其他节点间的共享密钥,根据所述当前其他节点在所述区块链系统中广播的密文,获得所述当前其他节点的私有值;
基于自身的私有值和每一个所述其他节点的私有值,针对待生成的新区块与每一个所述其他节点达成共识,其中,所述新区块由所述区块链系统中的所有诚实节点生成,以获得所述预设时间段内每一个有效的交易内容,且不同诚实节点的私有值相同。
2.根据权利要求1所述的交易共识方法,其特征在于,
进一步包括:将自身发起的每一个交易的交易信息在所述区块链系统中进行广播,该交易信息包括:交易内容、采用带自身秘密值的哈希算法计算交易内容所获得的第一哈希标签、每一个所述其他节点对应的第二哈希标签,其中,任一所述其他节点对应的第二哈希标签,由采用与该其他节点间的共享密钥加密交易内容和第一哈希标签而获得;以及接收任一所述其他节点广播的每一个交易信息;
所述校验当前交易信息中的交易内容的有效性,包括:当前交易信息为一所述其他节点广播的交易信息时,采用与该其他节点间的共享密钥加密所述当前交易信息中的交易内容和第一哈希标签,以得到哈希标签;判断得到的哈希标签与所述当前交易信息中的第二哈希标签是否相同,若是,确定所述当前交易信息中的交易内容有效。
3.根据权利要求1所述的交易共识方法,其特征在于,
所述针对每一个所述其他节点均执行:利用与当前其他节点间唯一的共享密钥加密自身的私有值,并将所得密文在所述区块链系统中进行广播;利用与所述当前其他节点间的共享密钥,根据所述当前其他节点在所述区块链系统中广播的密文,获得所述当前其他节点的私有值,包括:
针对每一个所述其他节点均执行:利用与当前其他节点间唯一的共享密钥加密自身的私有值,以获得所述当前其他节点对应的第三哈希标签;
在所述区块链系统中广播自身的共识信息,该共识信息包括:自身的公钥、自身的私有值、每一个所述其他节点对应的第三哈希标签;
在接收到一共识信息时,确定具有该共识信息中公钥的其他节点,并利用与该其他节点间的共享密钥,加密该共识信息中的私有值以得到哈希标签;判断得到的哈希标签与该共识信息中的第三哈希标签是否相同,若是,确定该共识信息中的私有值为该其他节点的私有值。
4.根据权利要求1至3中任一所述的交易共识方法,其特征在于,
所述针对待生成的新区块与每一个所述其他节点达成共识,包括:基于实用拜占庭容错算法,针对待生成的新区块与每一个所述其他节点达成共识。
5.一种节点,其特征在于,该节点为区块链系统中的任一节点,包括:
校验单元,用于针对预设时间段内每一个交易的交易信息均执行:校验当前交易信息中的交易内容的有效性,其中,该交易信息为自身所发起交易的交易信息或所述区块链系统中任一其他节点所发起交易的交易信息;
生成单元,用于生成自身的私有值,该私有值包括:所述预设时间段内的每一个交易内容及其有效性校验结果;
处理单元,用于针对每一个所述其他节点均执行:利用与当前其他节点间唯一的共享密钥加密自身的私有值,并将所得密文在所述区块链系统中进行广播;利用与所述当前其他节点间的共享密钥,根据所述当前其他节点在所述区块链系统中广播的密文,获得所述当前其他节点的私有值;
共识单元,用于基于自身的私有值和每一个所述其他节点的私有值,针对待生成的新区块与每一个所述其他节点达成共识,其中,所述新区块由所述区块链系统中的所有诚实节点生成,以获得所述预设时间段内每一个有效的交易内容,且不同诚实节点的私有值相同。
6.根据权利要求5所述的节点,其特征在于,
所述处理单元,还用于将自身发起的每一个交易的交易信息在所述区块链系统中进行广播,该交易信息包括:交易内容、采用带自身秘密值的哈希算法计算交易内容所获得的第一哈希标签、每一个所述其他节点对应的第二哈希标签,其中,任一所述其他节点对应的第二哈希标签,由采用与该其他节点间的共享密钥加密交易内容和第一哈希标签而获得;以及接收任一所述其他节点广播的每一个交易信息;
所述校验单元,用于当前交易信息为一所述其他节点广播的交易信息时,采用与该其他节点间的共享密钥加密所述当前交易信息中的交易内容和第一哈希标签,以得到哈希标签;判断得到的哈希标签与所述当前交易信息中的第二哈希标签是否相同,若是,确定所述当前交易信息中的交易内容有效。
7.根据权利要求5所述的节点,其特征在于,
所述处理单元,用于针对每一个所述其他节点均执行:利用与当前其他节点间唯一的共享密钥加密自身的私有值,以获得所述当前其他节点对应的第三哈希标签;在所述区块链系统中广播自身的共识信息,该共识信息包括:自身的公钥、自身的私有值、每一个所述其他节点对应的第三哈希标签;在接收到一共识信息时,确定具有该共识信息中公钥的其他节点,并利用与该其他节点间的共享密钥,加密该共识信息中的私有值以得到哈希标签;判断得到的哈希标签与该共识信息中的第三哈希标签是否相同,若是,确定该共识信息中的私有值为该其他节点的私有值。
8.根据权利要求5至7中任一所述的节点,其特征在于,
所述共识单元,用于基于实用拜占庭容错算法,针对待生成的新区块与每一个所述其他节点达成共识。
9.一种区块链系统,其特征在于,包括:至少三个如权利要求5至8中任一所述的节点;
其中,所述区块链系统中的所有诚实节点,用于生成所述新区块,并将所述新区块记录于主链中。
10.根据权利要求9所述的区块链系统,其特征在于,
所述区块链系统中的所有诚实节点,还用于在主链中对应记录所述新区块中每一个有效的交易内容的哈希标签,该哈希标签为采用带交易发起方秘密值的哈希算法计算交易内容所获得的哈希标签。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811409763.6A CN109377229B (zh) | 2018-11-23 | 2018-11-23 | 一种交易共识方法、节点及区块链系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811409763.6A CN109377229B (zh) | 2018-11-23 | 2018-11-23 | 一种交易共识方法、节点及区块链系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109377229A true CN109377229A (zh) | 2019-02-22 |
CN109377229B CN109377229B (zh) | 2021-03-02 |
Family
ID=65383789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811409763.6A Active CN109377229B (zh) | 2018-11-23 | 2018-11-23 | 一种交易共识方法、节点及区块链系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109377229B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111985006A (zh) * | 2020-08-18 | 2020-11-24 | 深圳中兴网信科技有限公司 | 基于区块链的数据同步方法、系统和计算机可读存储介质 |
CN112702326A (zh) * | 2020-12-18 | 2021-04-23 | 中国联合网络通信集团有限公司 | 密码信息管理方法及密码管理节点 |
CN112910648A (zh) * | 2019-12-03 | 2021-06-04 | 北京百度网讯科技有限公司 | 区块链隐私状态的共识方法和装置 |
CN112907243A (zh) * | 2021-02-09 | 2021-06-04 | 工银科技有限公司 | 区块链交易审计方法及装置 |
CN113347182A (zh) * | 2021-06-01 | 2021-09-03 | 永旗(北京)科技有限公司 | 一种区块链节点的交易共识方法 |
WO2021226846A1 (en) * | 2020-05-12 | 2021-11-18 | Beijing Wodong Tianjun Information Technology Co., Ltd. | Systems and methods for establishing consensus in distributed communications |
CN114826592A (zh) * | 2022-06-22 | 2022-07-29 | 腾讯科技(深圳)有限公司 | 基于区块链的密钥生成方法、装置、电子设备和可读介质 |
US11973744B2 (en) | 2020-05-12 | 2024-04-30 | New Jersey Institute Of Technology | Systems and methods for establishing consensus in distributed communications |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105488665A (zh) * | 2015-11-25 | 2016-04-13 | 布比(北京)网络技术有限公司 | 一种去中心化的交易方法 |
US20160134593A1 (en) * | 2014-11-12 | 2016-05-12 | Yaron Gvili | Manicoding for communication verification |
CN106447311A (zh) * | 2016-09-26 | 2017-02-22 | 北京天德科技有限公司 | 一种四次通信的拜占庭容错算法的区块链建块方法 |
CN106445711A (zh) * | 2016-08-28 | 2017-02-22 | 杭州云象网络技术有限公司 | 一种应用于区块链的拜占庭容错共识方法 |
US20170070886A1 (en) * | 2013-09-13 | 2017-03-09 | Network Kinetix, LLC | System and method for an automated system for continuous observation, audit and control of user activities as they occur within a mobile network |
CN106971302A (zh) * | 2017-04-17 | 2017-07-21 | 北京工商大学 | 一种基于区块链技术的三维模型确权与交易方法 |
CN107038639A (zh) * | 2017-03-07 | 2017-08-11 | 杭州公链网络技术有限公司 | 一种兼容多资产类型快速交易的联盟链构建方法 |
US20170337534A1 (en) * | 2015-11-06 | 2017-11-23 | Cable Television Laboratories, Inc | Systems and methods for blockchain virtualization and scalability |
CN107612934A (zh) * | 2017-10-24 | 2018-01-19 | 济南浪潮高新科技投资发展有限公司 | 一种基于密钥分割的区块链移动端计算系统和方法 |
CN108021506A (zh) * | 2017-12-18 | 2018-05-11 | 王松山 | 一种检测区块链系统的方法 |
CN108234456A (zh) * | 2017-12-15 | 2018-06-29 | 南京邮电大学 | 一种基于区块链的能源互联网可信服务管理系统和方法 |
CN108492103A (zh) * | 2018-02-07 | 2018-09-04 | 北京大学深圳研究生院 | 一种联盟区块链共识方法 |
CN108805567A (zh) * | 2018-05-22 | 2018-11-13 | 深圳供电局有限公司 | 一种充电公司网络交易结算方法及装置 |
-
2018
- 2018-11-23 CN CN201811409763.6A patent/CN109377229B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170070886A1 (en) * | 2013-09-13 | 2017-03-09 | Network Kinetix, LLC | System and method for an automated system for continuous observation, audit and control of user activities as they occur within a mobile network |
US20160134593A1 (en) * | 2014-11-12 | 2016-05-12 | Yaron Gvili | Manicoding for communication verification |
US20170337534A1 (en) * | 2015-11-06 | 2017-11-23 | Cable Television Laboratories, Inc | Systems and methods for blockchain virtualization and scalability |
CN105488665A (zh) * | 2015-11-25 | 2016-04-13 | 布比(北京)网络技术有限公司 | 一种去中心化的交易方法 |
CN106445711A (zh) * | 2016-08-28 | 2017-02-22 | 杭州云象网络技术有限公司 | 一种应用于区块链的拜占庭容错共识方法 |
CN106447311A (zh) * | 2016-09-26 | 2017-02-22 | 北京天德科技有限公司 | 一种四次通信的拜占庭容错算法的区块链建块方法 |
CN107038639A (zh) * | 2017-03-07 | 2017-08-11 | 杭州公链网络技术有限公司 | 一种兼容多资产类型快速交易的联盟链构建方法 |
CN106971302A (zh) * | 2017-04-17 | 2017-07-21 | 北京工商大学 | 一种基于区块链技术的三维模型确权与交易方法 |
CN107612934A (zh) * | 2017-10-24 | 2018-01-19 | 济南浪潮高新科技投资发展有限公司 | 一种基于密钥分割的区块链移动端计算系统和方法 |
CN108234456A (zh) * | 2017-12-15 | 2018-06-29 | 南京邮电大学 | 一种基于区块链的能源互联网可信服务管理系统和方法 |
CN108021506A (zh) * | 2017-12-18 | 2018-05-11 | 王松山 | 一种检测区块链系统的方法 |
CN108492103A (zh) * | 2018-02-07 | 2018-09-04 | 北京大学深圳研究生院 | 一种联盟区块链共识方法 |
CN108805567A (zh) * | 2018-05-22 | 2018-11-13 | 深圳供电局有限公司 | 一种充电公司网络交易结算方法及装置 |
Non-Patent Citations (2)
Title |
---|
KEJIAO LI ET AL: "Proof of Vote: A High-Performance Consensus Protocol Based on Vote Mechanism & Consortium Blockchain", 《COMPUTER SOCIETY》 * |
韩璇 等: "区块链技术中的共识机制研究", 《信息网络安全》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112910648A (zh) * | 2019-12-03 | 2021-06-04 | 北京百度网讯科技有限公司 | 区块链隐私状态的共识方法和装置 |
CN112910648B (zh) * | 2019-12-03 | 2023-04-07 | 北京百度网讯科技有限公司 | 区块链隐私状态的共识方法和装置 |
WO2021226846A1 (en) * | 2020-05-12 | 2021-11-18 | Beijing Wodong Tianjun Information Technology Co., Ltd. | Systems and methods for establishing consensus in distributed communications |
US11973744B2 (en) | 2020-05-12 | 2024-04-30 | New Jersey Institute Of Technology | Systems and methods for establishing consensus in distributed communications |
CN111985006A (zh) * | 2020-08-18 | 2020-11-24 | 深圳中兴网信科技有限公司 | 基于区块链的数据同步方法、系统和计算机可读存储介质 |
CN112702326A (zh) * | 2020-12-18 | 2021-04-23 | 中国联合网络通信集团有限公司 | 密码信息管理方法及密码管理节点 |
CN112702326B (zh) * | 2020-12-18 | 2023-04-07 | 中国联合网络通信集团有限公司 | 密码信息管理方法及密码管理节点 |
CN112907243A (zh) * | 2021-02-09 | 2021-06-04 | 工银科技有限公司 | 区块链交易审计方法及装置 |
CN113347182A (zh) * | 2021-06-01 | 2021-09-03 | 永旗(北京)科技有限公司 | 一种区块链节点的交易共识方法 |
CN114826592A (zh) * | 2022-06-22 | 2022-07-29 | 腾讯科技(深圳)有限公司 | 基于区块链的密钥生成方法、装置、电子设备和可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109377229B (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109377229A (zh) | 一种交易共识方法、节点及区块链系统 | |
CN108646983B (zh) | 在区块链上存储业务数据的处理方法和装置 | |
Garg et al. | An efficient blockchain-based hierarchical authentication mechanism for energy trading in V2G environment | |
WO2020082887A1 (zh) | 一种区块链的交易方法和装置 | |
WO2019140464A1 (en) | Internet of things devices for use with an encryption service | |
CN112215608A (zh) | 数据处理方法和装置 | |
CN113556363B (zh) | 基于去中心化和分布式代理重加密的数据共享方法及系统 | |
CN116204912B (zh) | 基于全同态加密的数据处理方法和装置 | |
CN103051453A (zh) | 一种基于数字证书的移动终端网络安全交易系统与方法 | |
CN108932410A (zh) | 一种数字资源版权鉴权方法、装置、系统和存储介质 | |
GB2487503A (en) | Authentication of digital files and associated identities using biometric information | |
CN110597836B (zh) | 基于区块链网络的信息查询请求响应方法及装置 | |
Wan et al. | Electronic contract signing without using trusted third party | |
JP2007089156A (ja) | メッセージ送信方法 | |
CN109861956B (zh) | 基于状态通道的数据验证系统、方法、装置及设备 | |
CN110336673B (zh) | 一种基于隐私保护的区块链设计方法 | |
Esfahani et al. | Secure blockchain-based energy transaction framework in smart power systems | |
CN111461799B (zh) | 数据处理方法、装置、计算机设备及介质 | |
CN109118377A (zh) | 一种基于区块链的理赔事件的处理方法、系统及电子设备 | |
CN111049806B (zh) | 一种联合权限控制方法、装置、电子设备和存储介质 | |
CN110224985B (zh) | 数据处理的方法及相关装置 | |
EP3955149B1 (en) | Method and apparatus for securing real-time data transfer from a device | |
CN107749854A (zh) | 基于客户端的单点登录方法及系统 | |
Zhang | A study on application of digital signature technology | |
CN114143312A (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 |