CN109472602A - 一种验证交易的方法、一种节点及一种区块链系统 - Google Patents
一种验证交易的方法、一种节点及一种区块链系统 Download PDFInfo
- Publication number
- CN109472602A CN109472602A CN201811408215.1A CN201811408215A CN109472602A CN 109472602 A CN109472602 A CN 109472602A CN 201811408215 A CN201811408215 A CN 201811408215A CN 109472602 A CN109472602 A CN 109472602A
- Authority
- CN
- China
- Prior art keywords
- hash
- node
- label
- nodes
- broadcast message
- 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
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种验证交易的方法、一种节点及一种区块链系统,该方法,包括:根据交易信息,生成第一哈希标签;针对区块链网络中的每个其他节点,执行:获取与当前的其他节点的共享密钥,根据第一哈希标签、交易信息和与当前的其他节点的共享密钥,生成第二哈希标签;根据交易信息、第一哈希标签和每个第二哈希标签,生成广播信息;将广播信息广播到区块链网络中,以使每个其他节点执行:接收广播信息,根据接收到的广播信息,以及与发出广播信息的节点的共享密钥,生成待验证哈希标签,从广播信息中获取对应的第二哈希标签,判断获取的第二哈希标签是否与待验证哈希标签相同,如果是,则确定发出该交易通过验证。本发明能够对交易进行验证。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种验证交易的方法、一种节点及一种区块链系统。
背景技术
随着计算机技术的快速发展,网络交易越来越多。在现有技术中,网络交易的交易信息通过网络进行传输,接收到该交易信息的节点无法对该交易信息对应的交易进行验证。
发明内容
本发明实施例提供了一种验证交易的方法、一种节点及一种区块链系统,能够对交易进行验证。
第一方面,本发明实施例提供了一种验证交易的方法,应用于区块链网络中的任一节点,在所述区块链网络中的每个节点中保存有与其他节点的共享密钥;包括:
当所述区块链网络中的任一节点发起交易时,该节点执行:
根据交易信息,生成第一哈希标签;
针对所述区块链网络中的每个其他节点,执行:获取与当前的其他节点的共享密钥,根据所述第一哈希标签、所述交易信息和与当前的其他节点的共享密钥,生成当前的其他节点对应的第二哈希标签;
根据所述交易信息、所述第一哈希标签和每个其他节点对应的第二哈希标签,生成广播信息;
将所述广播信息广播到所述区块链网络中,以使每个其他节点执行:接收广播信息,根据接收到的广播信息,以及当前的其他节点与发出所述广播信息的节点的共享密钥,生成待验证哈希标签,从接收到的广播信息中获取当前的其他节点对应的第二哈希标签,判断获取的当前的其他节点对应的第二哈希标签是否与所述待验证哈希标签相同,如果是,则确定发出所述广播信息的节点发起的交易通过验证。
优选地,
所述根据交易信息,生成第一哈希标签,包括:
将预先设置的秘密值作为带密钥的哈希算法的输入密钥;
根据所述秘密值,利用所述带密钥的哈希算法计算所述交易信息的所述第一哈希标签。
优选地,
所述根据所述第一哈希标签、所述交易信息和与当前的其他节点的共享密钥,生成当前的其他节点对应的第二哈希标签,包括:
将与当前的其他节点的共享密钥作为带密钥的哈希算法的输入密钥;
将所述交易信息和所述第一哈希标签拼接成中间信息;
根据与当前的其他节点的共享密钥,利用所述带密钥的哈希算法计算所述中间信息的第二哈希标签。
优选地,
所述根据所述交易信息、所述第一哈希标签和每个其他节点对应的第二哈希标签,生成广播信息,包括:
根据第一式子,将所述交易信息、所述第一哈希标签和每个其他节点对应的第二哈希标签拼接成所述广播信息,其中,所述第一式子为:
G=J||h||H1||H2||…Hi…||Hn;
其中,G为所述广播信息,J为所述交易信息,h为所述第一哈希标签,Hi为第i个其他节点对应的第二哈希标签,i=1,2,…,n。
第二方面,本发明实施例提供了一种节点,包括:
第一哈希单元,用于根据交易信息,生成第一哈希标签;
第二哈希单元,用于针对区块链网络中的每个其他节点,执行:获取与当前的其他节点的共享密钥,根据所述第一哈希标签、所述交易信息和与当前的其他节点的共享密钥,生成当前的其他节点对应的第二哈希标签;
广播信息生成单元,用于根据所述交易信息、所述第一哈希标签和每个其他节点对应的第二哈希标签,生成广播信息;
广播单元,用于将所述广播信息广播到所述区块链网络中,以使每个其他节点执行:接收广播信息,根据接收到的广播信息,以及当前的其他节点与发出所述广播信息的节点的共享密钥,生成待验证哈希标签,从接收到的广播信息中获取当前的其他节点对应的第二哈希标签,判断获取的当前的其他节点对应的第二哈希标签是否与所述待验证哈希标签相同,如果是,则确定发出所述广播信息的节点发起的交易通过验证;
其中,在所述区块链网络中的每个节点中保存有与其他节点的共享密钥。
优选地,
所述第一哈希单元,用于将预先设置的秘密值作为带密钥的哈希算法的输入密钥;根据所述秘密值,利用所述带密钥的哈希算法计算所述交易信息的所述第一哈希标签。
优选地,
所述第二哈希单元,在执行所述根据所述第一哈希标签、所述交易信息和与当前的其他节点的共享密钥,生成当前的其他节点对应的第二哈希标签时,具体用于:
将与当前的其他节点的共享密钥作为带密钥的哈希算法的输入密钥;
将所述交易信息和所述第一哈希标签拼接成中间信息;
根据与当前的其他节点的共享密钥,利用所述带密钥的哈希算法计算所述中间信息的第二哈希标签。
优选地,
所述广播信息生成单元,用于根据第一式子,将所述交易信息、所述第一哈希标签和每个其他节点对应的第二哈希标签拼接成所述广播信息,其中,所述第一式子为:
G=J||h||H1||H2||…Hi…||Hn;
其中,G为所述广播信息,J为所述交易信息,h为所述第一哈希标签,Hi为第i个其他节点对应的第二哈希标签,i=1,2,…,n。
第三方面,本发明实施例提供了一种区块链系统,包括:
多个节点;
其中,每个节点中保存有与其他节点的共享密钥;
针对每个节点,在当前节点发起交易时,当前节点作为发起节点,在其他节点发起交易时,当前节点作为接收节点;
所述节点,用于当作为发起节点时,执行:
根据交易信息,生成第一哈希标签;
针对每个其他节点,执行:获取与当前的其他节点的共享密钥,根据所述第一哈希标签、所述交易信息和与当前的其他节点的共享密钥,生成当前的其他节点对应的第二哈希标签;
根据所述交易信息、所述第一哈希标签和每个其他节点对应的第二哈希标签,生成广播信息,将该广播信息广播到区块链网络中;
所述节点,用于当作为接收节点时,执行:
接收到区块链网络中的广播信息,根据接收到的广播信息,以及与发出该广播信息的节点的共享密钥,生成待验证哈希标签,从接收到的广播信息中获取本节点对应的第二哈希标签,判断获取的本节点对应的第二哈希标签是否与所述待验证哈希标签相同,如果是,则确定发出该广播信息的节点发起的交易通过验证。
优选地,
所述节点,当作为发起节点时,在执行所述根据所述第一哈希标签、所述交易信息和与当前的其他节点的共享密钥,生成当前的其他节点对应的第二哈希标签时,具体用于包括:
将与当前的其他节点的共享密钥作为带密钥的哈希算法的输入密钥;
将交易信息和第一哈希标签拼接成中间信息;
根据与当前的其他节点的共享密钥,利用所述带密钥的哈希算法计算所述中间信息的第二哈希标签;
所述节点,当作为接收节点时,在执行所述根据接收到的广播信息,以及与发出该广播信息的节点的共享密钥,生成待验证哈希标签时,具体用于:
根据接收到的广播信息,确定接收到的广播信息中的交易信息和第一哈希标签;
将与发出该广播信息的节点的共享密钥作为带密钥的哈希算法的输入密钥;
将接收到的广播信息中的交易信息和第一哈希标签拼接成待计算信息;
根据与发出该广播信息的节点的共享密钥,利用带密钥的哈希算法计算所述待计算信息的所述待验证哈希标签。
在本发明实施例中,在区块链网络中的每个两个节点之间有一个共享密钥,发起交易的节点根据交易信息生成第一哈希标签,然后,根据第一哈希标签、交易信息和与其他节点的共享密钥,生成第二哈希标签,根据交易信息、第一哈希标签和每个其他节点对应的第二哈希标签,生成广播信息,并广播到区块链网络中,区块链网络中的节点都可以接收到该广播信息,在接收到该广播信息后,接收到该广播信息的节点根据该广播信息和与发出广播信息的节点的共享密钥,生成待验证哈希标签,将该待验证哈希标签与广播信息中对应的第二哈希标签进行比较,如果相同则确定该交易通过验证,实现对交易的验证
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种验证交易的方法的流程图;
图2是本发明一实施例提供的另一种验证交易的方法的流程图;
图3是本发明一实施例提供的一种节点的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种验证交易的方法,应用于区块链网络中的任一节点,在所述区块链网络中的每个节点中保存有与其他节点的共享密钥,该方法包括:
当所述区块链网络中的任一节点发起交易时,该节点执行:
步骤101:根据交易信息,生成第一哈希标签;
步骤102:针对所述区块链网络中的每个其他节点,执行:获取与当前的其他节点的共享密钥,根据所述第一哈希标签、所述交易信息和与当前的其他节点的共享密钥,生成当前的其他节点对应的第二哈希标签;
步骤103:根据所述交易信息、所述第一哈希标签和每个其他节点对应的第二哈希标签,生成广播信息;
步骤104:将所述广播信息广播到所述区块链网络中,以使每个其他节点执行:接收广播信息,根据接收到的广播信息,以及当前的其他节点与发出所述广播信息的节点的共享密钥,生成待验证哈希标签,从接收到的广播信息中获取当前的其他节点对应的第二哈希标签,判断获取的当前的其他节点对应的第二哈希标签是否与所述待验证哈希标签相同,如果是,则确定发出所述广播信息的节点发起的交易通过验证。
在本发明实施例中,在区块链网络中的每个两个节点之间有一个共享密钥,发起交易的节点根据交易信息生成第一哈希标签,然后,根据第一哈希标签、交易信息和与其他节点的共享密钥,生成第二哈希标签,根据交易信息、第一哈希标签和每个其他节点对应的第二哈希标签,生成广播信息,并广播到区块链网络中,区块链网络中的节点都可以接收到该广播信息,在接收到该广播信息后,接收到该广播信息的节点根据该广播信息和与发出广播信息的节点的共享密钥,生成待验证哈希标签,将该待验证哈希标签与广播信息中对应的第二哈希标签进行比较,如果相同则确定该交易通过验证,实现对交易的验证
由于任意两个节点之间设置有共享密钥,只有通过相同的密钥,计算出的哈希标签才相同,如果不同,说明该交易的交易信息可能被篡改,或者,该交易的发起节点不安全,那么,该交易是不可信的,不能通过验证。
通过任一两个节点之间的唯一的共享密钥来生成哈希标签,比较发起交易的节点生成的第二哈希标签与接收到广播信息的节点生成的待验证哈希标签,即可实现对该交易的验证,并且能够保证不可篡改性和不可抵赖性。
下面通过发起交易的节点A和任一一个在区块链网络中的其他节点B为例,来说明该验证交易的方法:
节点A发起了交易,节点A根据与节点B的共享密钥kAB,生成了针对节点B的第二哈希标签HAB,发出广播信息;
节点B接收到节点A发出的广播信息后,根据与节点A的共享密钥kAB,生成了待验证哈希标签,如果节点B判断出第二哈希标签HAB与其生成的待验证哈希标签相同,则确定节点A发起的交易通过验证,该交易是可信的,并且该交易不可篡改、不可抵赖;如果节点A判断出第二哈希标签HAB与其生成的待验证哈希标签不相同,则确定节点A发起的交易没有通过验证,该交易是不可信的。
在本发明一实施例中,所述根据交易信息,生成第一哈希标签,包括:
将预先设置的秘密值作为带密钥的哈希算法的输入密钥;
根据所述秘密值,利用所述带密钥的哈希算法计算所述交易信息的所述第一哈希标签。
在本发明实施例中,该秘密值可以是每个发起交易的节点自行设置。在生成第一哈希标签时,将秘密值和交易信息作为带密钥的哈希算法的输入,经过带密钥的哈希算法的处理后,生成第一哈希标签。
在本发明一实施例中,所述根据所述第一哈希标签、所述交易信息和与当前的其他节点的共享密钥,生成当前的其他节点对应的第二哈希标签,包括:
将与当前的其他节点的共享密钥作为带密钥的哈希算法的输入密钥;
将所述交易信息和所述第一哈希标签拼接成中间信息;
根据与当前的其他节点的共享密钥,利用所述带密钥的哈希算法计算所述中间信息的第二哈希标签。
在本发明实施例中,在生成第二哈希标签时,将共享密钥和中间信息作为带密钥的哈希算法的输入,经过带密钥的哈希算法的处理后,生成第二哈希标签。
在本发明一实施例中,所述根据所述交易信息、所述第一哈希标签和每个其他节点对应的第二哈希标签,生成广播信息,包括:
根据第一式子,将所述交易信息、所述第一哈希标签和每个其他节点对应的第二哈希标签拼接成所述广播信息,其中,所述第一式子为:
G=J||h||H1||H2||…Hi…||Hn;
其中,G为所述广播信息,J为所述交易信息,h为所述第一哈希标签,Hi为第i个其他节点对应的第二哈希标签,i=1,2,…,n。
在本发明实施例中,广播信息有交易信息、第一哈希标签和每个其他节点对应的第二哈希标签拼接而成。其中,通过第一式子可见,在广播信息中,按照顺序依次是:J、h、H1、H2···Hn。
接收到的广播信息的节点可以根据该广播信息确定出本节点对应的第二哈希标签。
如图2所示,从发起交易的节点A和接收节点A发出的广播信息的其他节点的交互来详细说明本发明实施例提供了一种验证交易的方法。在区块链网络中的每个节点中保存有与其他节点的共享密钥,例如:节点A和节点B均是区块链网络中的节点,节点A中保存有与节点B的共享密钥KAB,节点B中也保存有与节点A的共享密钥KAB。该方法可以包括以下步骤:
步骤201:节点A发起交易,生成交易信息。
举例来说,节点A发起了与节点C的交易,J={A(pkA)支付3个密码货币给C(pkc)},其中,J为交易信息,pkA为节点A的公钥,pkc为节点C的公钥,交易信息中包含交易发起者和接收者的公钥作为身份标识。
步骤202:节点A将预先设置的秘密值作为带密钥的哈希算法的输入密钥,根据秘密值,利用带密钥的哈希算法计算交易信息的第一哈希标签。
具体地,根据秘密值,利用带密钥的哈希算法计算交易信息的哈希标签,该哈希标签为第一哈希标签。
h=MACkA(J),其中,kA为节点A的秘密值,h为第一哈希标签,MACkA(J)表示根据秘密值kA,利用带密钥的哈希算法(MAC)计算交易信息J的第一哈希标签h。
步骤203:节点A针对区块链网络中的每个其他节点,执行:获取与当前的其他节点的共享密钥,将与当前的其他节点的共享密钥作为带密钥的哈希算法的输入密,将交易信息和第一哈希标签拼接成中间信息,根据与当前的其他节点的共享密钥,利用带密钥的哈希算法计算中间信息的第二哈希标签。
具体地,节点A针对每个其他节点都生成对应的第二哈希标签,以节点B为例,节点A获取与节点B的共享密钥kAB,将交易信息J和第一哈希h标签拼接成中间信息,该中间信息表示为J||h,根据与节点B的共享密钥kAB,利用带密钥的哈希算法计算中间信息J||h的第二哈希标签Hi,其中,节点B为第i个其他节点,第i个其他节点对应的第二哈希标签表示为Hi。
Hi=MACkAB(J||h)。
根据与当前的其他节点的共享密钥,利用带密钥的哈希算法计算中间信息的哈希标签,该哈希标签为当前的其他节点对应的第二哈希标签。
步骤204:节点A根据第一式子,将交易信息、第一哈希标签和每个其他节点对应的第二哈希标签拼接成广播信息,其中,第一式子为:
G=J||h||H1||H2||…Hi…||Hn;
其中,G为广播信息,J为交易信息,h为第一哈希标签,Hi为第i个其他节点对应的第二哈希标签,i=1,2,…,n。
步骤205:节点A将广播信息广播到区块链网络中。
步骤206:区块链网络中的每个其他节点接收广播信息。
举例来说,节点B为区块链网络中的节点,节点B接收节点A发出的广播信息。
步骤207:每个其他节点,执行:从广播信息获取交易信息、第一哈希标签,以及本节点对应的第二哈希标签,将与节点A的共享密钥作为带密钥的哈希算法的输入密钥,将获取的交易信息和第一哈希标签拼接成待计算信息,根据与节点A的共享密钥,利用带密钥的哈希算法计算待计算信息的待验证哈希标签。
以节点B为例,节点B执行:
从广播信息获取交易信息J、第一哈希标签h,以及节点B对应的第二哈希标签Hi;
将与节点A的共享密钥kAB作为带密钥的哈希算法的输入密钥,将获取的交易信息J和第一哈希标签h拼接成待计算信息J||h;
根据与节点A的共享密钥kAB,利用带密钥的哈希算法计算待计算信息J||h的待验证哈希标签。
步骤208:每个其他节点,执行:判断获取的本节点对应的第二哈希标签是否与待验证哈希标签相同,如果是,则确定节点A发起的交易通过验证,否则,确定节点A发起的交易不通过验证。
以节点B为例,节点B执行:
判断获取的节点B对应的第二哈希标签Hi是否与节点B生成的待验证哈希标签相同,如果是,则确定节点A发起的交易通过验证,否则,确定节点A发起的交易不通过验证。
其中,带密钥的哈希算法可以是基于SHA-3的消息认证码算法。
另外,任意两个节点的共享密钥可以通过以下方式生成:
第一节点获取第二节点共享的第二节点的公钥;
第一节点根据第二节点的公钥,确定与第二节点的共享密钥。
其中,第一节点根据第二节点的公钥,确定与第二节点的共享密钥,包括:
根据以下公式,确定第二节点公钥对应的共享函数:
v(x)=u(x)s(x)+e1(x)∈Rq;
其中,v(x)表征共享函数,u(x)表征第二节点的公钥,s(x)表征预设的随机函数,e1(x)表征预设的误差函数,Rq表征由奇素数q构成的实数域,其中,s(x)∈R Rq,e1(x)←Rχ;
确定共享函数的信号向量,并确定信号向量的舍入结果;
根据预设的划分规则,从舍入结果中划分出与第二节点的共享密钥。
在本发明实施例中,在节点之间两两建立共享密钥,在发起交易时,采用带密钥的哈希算法生成交易的哈希标签,其他节点可以利用与发起交易的节点的共享密钥验证交易的真实性,这样避免了通信开销过大和单个区块过大的问题。
如图3所示,本发明实施例提供了一种节点,包括:
第一哈希单元301,用于根据交易信息,生成第一哈希标签;
第二哈希单元302,用于针对区块链网络中的每个其他节点,执行:获取与当前的其他节点的共享密钥,根据所述第一哈希标签、所述交易信息和与当前的其他节点的共享密钥,生成当前的其他节点对应的第二哈希标签;
广播信息生成单元303,用于根据所述交易信息、所述第一哈希标签和每个其他节点对应的第二哈希标签,生成广播信息;
广播单元304,用于将所述广播信息广播到所述区块链网络中,以使每个其他节点执行:接收广播信息,根据接收到的广播信息,以及当前的其他节点与发出所述广播信息的节点的共享密钥,生成待验证哈希标签,从接收到的广播信息中获取当前的其他节点对应的第二哈希标签,判断获取的当前的其他节点对应的第二哈希标签是否与所述待验证哈希标签相同,如果是,则确定发出所述广播信息的节点发起的交易通过验证;
其中,在所述区块链网络中的每个节点中保存有与其他节点的共享密钥。
在本发明一实施例中,所述第一哈希单元,用于将预先设置的秘密值作为带密钥的哈希算法的输入密钥;根据所述秘密值,利用所述带密钥的哈希算法计算所述交易信息的所述第一哈希标签。
在本发明一实施例中,所述第二哈希单元,在执行所述根据所述第一哈希标签、所述交易信息和与当前的其他节点的共享密钥,生成当前的其他节点对应的第二哈希标签时,具体用于:
将与当前的其他节点的共享密钥作为带密钥的哈希算法的输入密钥;
将所述交易信息和所述第一哈希标签拼接成中间信息;
根据与当前的其他节点的共享密钥,利用所述带密钥的哈希算法计算所述中间信息的第二哈希标签。
在本发明一实施例中,所述广播信息生成单元,用于根据第一式子,将所述交易信息、所述第一哈希标签和每个其他节点对应的第二哈希标签拼接成所述广播信息,其中,所述第一式子为:
G=J||h||H1||H2||…Hi…||Hn;
其中,G为所述广播信息,J为所述交易信息,h为所述第一哈希标签,Hi为第i个其他节点对应的第二哈希标签,i=1,2,…,n。
本发明实施例提供了一种区块链系统,包括:
多个节点;
其中,每个节点中保存有与其他节点的共享密钥;
针对每个节点,在当前节点发起交易时,当前节点作为发起节点,在其他节点发起交易时,当前节点作为接收节点;
所述节点,用于当作为发起节点时,执行:
根据交易信息,生成第一哈希标签;
针对每个其他节点,执行:获取与当前的其他节点的共享密钥,根据所述第一哈希标签、所述交易信息和与当前的其他节点的共享密钥,生成当前的其他节点对应的第二哈希标签;
根据所述交易信息、所述第一哈希标签和每个其他节点对应的第二哈希标签,生成广播信息,将该广播信息广播到区块链网络中;
所述节点,用于当作为接收节点时,执行:
接收到区块链网络中的广播信息,根据接收到的广播信息,以及与发出该广播信息的节点的共享密钥,生成待验证哈希标签,从接收到的广播信息中获取本节点对应的第二哈希标签,判断获取的本节点对应的第二哈希标签是否与所述待验证哈希标签相同,如果是,则确定发出该广播信息的节点发起的交易通过验证。
在本发明实施例中,每个节点即具有发起节点的功能,也具有接收节点的功能。
在本发明一实施例中,所述节点,当作为发起节点时,在执行所述根据所述第一哈希标签、所述交易信息和与当前的其他节点的共享密钥,生成当前的其他节点对应的第二哈希标签时,具体用于包括:
将与当前的其他节点的共享密钥作为带密钥的哈希算法的输入密钥;
将交易信息和第一哈希标签拼接成中间信息;
根据与当前的其他节点的共享密钥,利用所述带密钥的哈希算法计算所述中间信息的第二哈希标签;
所述节点,当作为接收节点时,在执行所述根据接收到的广播信息,以及与发出该广播信息的节点的共享密钥,生成待验证哈希标签时,具体用于:
根据接收到的广播信息,确定接收到的广播信息中的交易信息和第一哈希标签;
将与发出该广播信息的节点的共享密钥作为带密钥的哈希算法的输入密钥;
将接收到的广播信息中的交易信息和第一哈希标签拼接成待计算信息;
根据与发出该广播信息的节点的共享密钥,利用带密钥的哈希算法计算所述待计算信息的所述待验证哈希标签。
本发明各个实施例至少具有如下有益效果:
1、在本发明实施例中,在区块链网络中的每个两个节点之间有一个共享密钥,发起交易的节点根据交易信息生成第一哈希标签,然后,根据第一哈希标签、交易信息和与其他节点的共享密钥,生成第二哈希标签,根据交易信息、第一哈希标签和每个其他节点对应的第二哈希标签,生成广播信息,并广播到区块链网络中,区块链网络中的节点都可以接收到该广播信息,在接收到该广播信息后,接收到该广播信息的节点根据该广播信息和与发出广播信息的节点的共享密钥,生成待验证哈希标签,将该待验证哈希标签与广播信息中对应的第二哈希标签进行比较,如果相同则确定该交易通过验证,实现对交易的验证
2、在本发明实施例中,通过任一两个节点之间的唯一的共享密钥来生成哈希标签,比较发起交易的节点生成的第二哈希标签与接收到广播信息的节点生成的待验证哈希标签,即可实现对该交易的验证,并且能够保证不可篡改性和不可抵赖性。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种验证交易的方法,其特征在于,应用于区块链网络中的任一节点,在所述区块链网络中的每个节点中保存有与其他节点的共享密钥;
还包括:
当所述区块链网络中的任一节点发起交易时,该节点执行:
根据交易信息,生成第一哈希标签;
针对所述区块链网络中的每个其他节点,执行:获取与当前的其他节点的共享密钥,根据所述第一哈希标签、所述交易信息和与当前的其他节点的共享密钥,生成当前的其他节点对应的第二哈希标签;
根据所述交易信息、所述第一哈希标签和每个其他节点对应的第二哈希标签,生成广播信息;
将所述广播信息广播到所述区块链网络中,以使每个其他节点执行:接收广播信息,根据接收到的广播信息,以及当前的其他节点与发出所述广播信息的节点的共享密钥,生成待验证哈希标签,从接收到的广播信息中获取当前的其他节点对应的第二哈希标签,判断获取的当前的其他节点对应的第二哈希标签是否与所述待验证哈希标签相同,如果是,则确定发出所述广播信息的节点发起的交易通过验证。
2.根据权利要求1所述的方法,其特征在于,
所述根据交易信息,生成第一哈希标签,包括:
将预先设置的秘密值作为带密钥的哈希算法的输入密钥;
根据所述秘密值,利用所述带密钥的哈希算法计算所述交易信息的所述第一哈希标签。
3.根据权利要求1所述的方法,其特征在于,
所述根据所述第一哈希标签、所述交易信息和与当前的其他节点的共享密钥,生成当前的其他节点对应的第二哈希标签,包括:
将与当前的其他节点的共享密钥作为带密钥的哈希算法的输入密钥;
将所述交易信息和所述第一哈希标签拼接成中间信息;
根据与当前的其他节点的共享密钥,利用所述带密钥的哈希算法计算所述中间信息的第二哈希标签。
4.根据权利要求1-3中任一所述的方法,其特征在于,
所述根据所述交易信息、所述第一哈希标签和每个其他节点对应的第二哈希标签,生成广播信息,包括:
根据第一式子,将所述交易信息、所述第一哈希标签和每个其他节点对应的第二哈希标签拼接成所述广播信息,其中,所述第一式子为:
G=J||h||H1||H2||…Hi…||Hn;
其中,G为所述广播信息,J为所述交易信息,h为所述第一哈希标签,Hi为第i个其他节点对应的第二哈希标签,i=1,2,…,n。
5.一种节点,其特征在于,包括:
第一哈希单元,用于根据交易信息,生成第一哈希标签;
第二哈希单元,用于针对区块链网络中的每个其他节点,执行:获取与当前的其他节点的共享密钥,根据所述第一哈希标签、所述交易信息和与当前的其他节点的共享密钥,生成当前的其他节点对应的第二哈希标签;
广播信息生成单元,用于根据所述交易信息、所述第一哈希标签和每个其他节点对应的第二哈希标签,生成广播信息;
广播单元,用于将所述广播信息广播到所述区块链网络中,以使每个其他节点执行:接收广播信息,根据接收到的广播信息,以及当前的其他节点与发出所述广播信息的节点的共享密钥,生成待验证哈希标签,从接收到的广播信息中获取当前的其他节点对应的第二哈希标签,判断获取的当前的其他节点对应的第二哈希标签是否与所述待验证哈希标签相同,如果是,则确定发出所述广播信息的节点发起的交易通过验证;
其中,在所述区块链网络中的每个节点中保存有与其他节点的共享密钥。
6.根据权利要求5所述的节点,其特征在于,
所述第一哈希单元,用于将预先设置的秘密值作为带密钥的哈希算法的输入密钥;根据所述秘密值,利用所述带密钥的哈希算法计算所述交易信息的所述第一哈希标签。
7.根据权利要求5所述的节点,其特征在于,
所述第二哈希单元,在执行所述根据所述第一哈希标签、所述交易信息和与当前的其他节点的共享密钥,生成当前的其他节点对应的第二哈希标签时,具体用于:
将与当前的其他节点的共享密钥作为带密钥的哈希算法的输入密钥;
将所述交易信息和所述第一哈希标签拼接成中间信息;
根据与当前的其他节点的共享密钥,利用所述带密钥的哈希算法计算所述中间信息的第二哈希标签。
8.根据权利要求5-7中任一所述的节点,其特征在于,
所述广播信息生成单元,用于根据第一式子,将所述交易信息、所述第一哈希标签和每个其他节点对应的第二哈希标签拼接成所述广播信息,其中,所述第一式子为:
G=J||h||H1||H2||…Hi…||Hn;
其中,G为所述广播信息,J为所述交易信息,h为所述第一哈希标签,Hi为第i个其他节点对应的第二哈希标签,i=1,2,…,n。
9.一种区块链系统,其特征在于,包括:
多个节点;
其中,每个节点中保存有与其他节点的共享密钥;
针对每个节点,在当前节点发起交易时,当前节点作为发起节点,在其他节点发起交易时,当前节点作为接收节点;
所述节点,用于当作为发起节点时,执行:
根据交易信息,生成第一哈希标签;
针对每个其他节点,执行:获取与当前的其他节点的共享密钥,根据所述第一哈希标签、所述交易信息和与当前的其他节点的共享密钥,生成当前的其他节点对应的第二哈希标签;
根据所述交易信息、所述第一哈希标签和每个其他节点对应的第二哈希标签,生成广播信息,将该广播信息广播到区块链网络中;
所述节点,用于当作为接收节点时,执行:
接收到区块链网络中的广播信息,根据接收到的广播信息,以及与发出该广播信息的节点的共享密钥,生成待验证哈希标签,从接收到的广播信息中获取本节点对应的第二哈希标签,判断获取的本节点对应的第二哈希标签是否与所述待验证哈希标签相同,如果是,则确定发出该广播信息的节点发起的交易通过验证。
10.根据权利要求9所述的系统,其特征在于,
所述节点,当作为发起节点时,在执行所述根据所述第一哈希标签、所述交易信息和与当前的其他节点的共享密钥,生成当前的其他节点对应的第二哈希标签时,具体用于包括:
将与当前的其他节点的共享密钥作为带密钥的哈希算法的输入密钥;
将交易信息和第一哈希标签拼接成中间信息;
根据与当前的其他节点的共享密钥,利用所述带密钥的哈希算法计算所述中间信息的第二哈希标签;
所述节点,当作为接收节点时,在执行所述根据接收到的广播信息,以及与发出该广播信息的节点的共享密钥,生成待验证哈希标签时,具体用于:
根据接收到的广播信息,确定接收到的广播信息中的交易信息和第一哈希标签;
将与发出该广播信息的节点的共享密钥作为带密钥的哈希算法的输入密钥;
将接收到的广播信息中的交易信息和第一哈希标签拼接成待计算信息;
根据与发出该广播信息的节点的共享密钥,利用带密钥的哈希算法计算所述待计算信息的所述待验证哈希标签。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811408215.1A CN109472602B (zh) | 2018-11-23 | 2018-11-23 | 一种验证交易的方法、一种节点及一种区块链系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811408215.1A CN109472602B (zh) | 2018-11-23 | 2018-11-23 | 一种验证交易的方法、一种节点及一种区块链系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109472602A true CN109472602A (zh) | 2019-03-15 |
CN109472602B CN109472602B (zh) | 2021-05-11 |
Family
ID=65674512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811408215.1A Active CN109472602B (zh) | 2018-11-23 | 2018-11-23 | 一种验证交易的方法、一种节点及一种区块链系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109472602B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110189143A (zh) * | 2019-04-26 | 2019-08-30 | 华中科技大学 | 一种基于区块链的营销标签真实性验证方法及系统 |
CN110430066A (zh) * | 2019-07-15 | 2019-11-08 | 杭州复杂美科技有限公司 | 用于减少区块链交易重复广播的方法、设备及存储介质 |
CN112070500A (zh) * | 2020-09-20 | 2020-12-11 | 邓燕平 | 基于数字金融服务的区块链支付处理方法及云计算中心 |
CN113379542A (zh) * | 2021-05-28 | 2021-09-10 | 中邮信息科技(北京)有限公司 | 一种区块链交易的查询方法、装置、介质及电子设备 |
CN113554512A (zh) * | 2021-07-21 | 2021-10-26 | 永旗(北京)科技有限公司 | 一种基于区块链的结算方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080028209A1 (en) * | 2002-02-28 | 2008-01-31 | Dare Peter R | Method and system for key certification |
CN107005574A (zh) * | 2016-12-23 | 2017-08-01 | 深圳前海达闼云端智能科技有限公司 | 区块生成方法、装置和区块链网络 |
CN107358424A (zh) * | 2017-06-26 | 2017-11-17 | 中国人民银行数字货币研究所 | 一种基于数字货币的交易方法和装置 |
CN108711052A (zh) * | 2018-05-18 | 2018-10-26 | 电子科技大学 | 一种基于区块链的信息验证系统 |
-
2018
- 2018-11-23 CN CN201811408215.1A patent/CN109472602B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080028209A1 (en) * | 2002-02-28 | 2008-01-31 | Dare Peter R | Method and system for key certification |
CN107005574A (zh) * | 2016-12-23 | 2017-08-01 | 深圳前海达闼云端智能科技有限公司 | 区块生成方法、装置和区块链网络 |
CN107358424A (zh) * | 2017-06-26 | 2017-11-17 | 中国人民银行数字货币研究所 | 一种基于数字货币的交易方法和装置 |
CN108711052A (zh) * | 2018-05-18 | 2018-10-26 | 电子科技大学 | 一种基于区块链的信息验证系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110189143A (zh) * | 2019-04-26 | 2019-08-30 | 华中科技大学 | 一种基于区块链的营销标签真实性验证方法及系统 |
CN110430066A (zh) * | 2019-07-15 | 2019-11-08 | 杭州复杂美科技有限公司 | 用于减少区块链交易重复广播的方法、设备及存储介质 |
CN110430066B (zh) * | 2019-07-15 | 2021-07-06 | 杭州复杂美科技有限公司 | 用于减少区块链交易重复广播的方法、设备及存储介质 |
CN112070500A (zh) * | 2020-09-20 | 2020-12-11 | 邓燕平 | 基于数字金融服务的区块链支付处理方法及云计算中心 |
CN112070500B (zh) * | 2020-09-20 | 2022-03-01 | 中科柏诚科技(北京)股份有限公司 | 基于数字金融服务的区块链支付处理方法及云计算中心 |
CN113379542A (zh) * | 2021-05-28 | 2021-09-10 | 中邮信息科技(北京)有限公司 | 一种区块链交易的查询方法、装置、介质及电子设备 |
CN113379542B (zh) * | 2021-05-28 | 2024-01-09 | 中邮信息科技(北京)有限公司 | 一种区块链交易的查询方法、装置、介质及电子设备 |
CN113554512A (zh) * | 2021-07-21 | 2021-10-26 | 永旗(北京)科技有限公司 | 一种基于区块链的结算方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109472602B (zh) | 2021-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109472602A (zh) | 一种验证交易的方法、一种节点及一种区块链系统 | |
Wang et al. | One-time proxy signature based on quantum cryptography | |
CN107491948B (zh) | 基于区块链技术的转账支付方法 | |
CN109067547A (zh) | 一种基于一次性环签名的区块链隐私保护方法 | |
US20180234253A1 (en) | Signature scheme for homomorphic message encoding functions | |
CN110365662B (zh) | 业务审批方法及装置 | |
CN110399735A (zh) | 加密数据大小关系证明方法、装置、设备及存储介质 | |
CN111478772B (zh) | 一种流水线友好的签名和验签方法、设备及存储介质 | |
CN110011810A (zh) | 基于可链接环签名和多重签名的区块链匿名签名方法 | |
He et al. | Security analysis and improvement of a quantum multi-signature protocol | |
CN109981565A (zh) | 基于Meta-BFT共识机制的区块链平台及实现方法 | |
CN109377229A (zh) | 一种交易共识方法、节点及区块链系统 | |
CN108805571A (zh) | 数据保护方法、平台、区块链节点、系统和存储介质 | |
CN109670826A (zh) | 基于非对称密钥池的抗量子计算区块链交易方法 | |
CN109634615A (zh) | 应用安装包的发布方法、验证方法和装置 | |
CN109005032A (zh) | 一种路由方法和装置 | |
EP3955149B1 (en) | Method and apparatus for securing real-time data transfer from a device | |
CN112132578B (zh) | 一种基于区块链的高效交易处理方法、追踪方法及装置 | |
CN106572066B (zh) | 一种实体身份有效性验证方法及其装置 | |
US20220261507A1 (en) | Secure computation server, trail management method, and program | |
CN107947944A (zh) | 一种基于格的增量签名方法 | |
CN114221753A (zh) | 密钥数据处理方法和电子设备 | |
CN109615513B (zh) | 用于区块链内待交换价值或物品公平交换的方法和系统 | |
CN109981291A (zh) | 一种混合分组签名方法 | |
CN106572063B (zh) | 一种多ttp参与的实体身份有效性验证方法及装置 |
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 |