CN115842639A - 交易处理方法及相关设备 - Google Patents
交易处理方法及相关设备 Download PDFInfo
- Publication number
- CN115842639A CN115842639A CN202111091827.4A CN202111091827A CN115842639A CN 115842639 A CN115842639 A CN 115842639A CN 202111091827 A CN202111091827 A CN 202111091827A CN 115842639 A CN115842639 A CN 115842639A
- Authority
- CN
- China
- Prior art keywords
- software version
- cryptographic algorithm
- blockchain
- version
- request 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种交易处理方法及相关设备,其中,由区块链客户端执行的交易处理方法包括:在第一密码算法集中确定目标密码算法,所述第一密码算法集为第一软件版本对应的可用密码算法集,所述第一软件版本为所述区块链客户端当前的软件版本;向区块链节点发送交易请求消息,所述交易请求消息携带所述目标密码算法,所述目标密码算法用于指示所述区块链节点基于所述目标密码算法对所述交易请求消息进行处理;所述区块链客户端的软件版本与所述区块链节点的软件版本同步更新。能够提高区块链系统的安全性。
Description
技术领域
本发明实施例涉及区块链技术领域,尤其涉及一种交易处理方法及相关设备。
背景技术
密码算法在区块链系统的多个交易处理环节都有使用,可以起到确保数字资产持有者身份的真实性、确定信息不被篡改,确保交易信息的完整性等作用。
现有的区块链系统中密码算法通常是固定的,随着时间的推移,固定的密码算法可能逐渐与区块链系统不适配,或算法本身开始出现漏洞,这些情况均可能提高密码算法被攻破的概率。
发明内容
本发明实施例的目的在于提供一种交易处理方法及相关设备,解决了现有的密码算法被攻破的概率较高的问题。
为了解决上述问题,第一方面,本发明实施例提供一种交易处理方法,由区块链客户端执行,包括:
在第一密码算法集中确定目标密码算法,所述第一密码算法集为第一软件版本对应的可用密码算法集,所述第一软件版本为所述区块链客户端当前的软件版本;
向区块链节点发送交易请求消息,所述交易请求消息携带所述目标密码算法,所述目标密码算法用于指示所述区块链节点基于所述目标密码算法对所述交易请求消息进行处理;
其中,所述区块链客户端的软件版本与所述区块链节点的软件版本同步更新。
第二方面,本发明实施例提供一种交易处理方法,由区块链节点执行,包括:
接收区块链客户端发送的交易请求消息,所述交易请求消息携带目标密码算法,所述目标密码算法为第一密码算法集中的密码算法,所述第一密码算法集为第一软件版本对应的可用密码算法集,所述第一软件版本为所述区块链客户端当前的软件版本;
基于所述目标密码算法对所述交易请求消息进行处理;
其中,所述区块链节点的软件版本与所述区块链客户端的软件版本同步更新。
第三方面,本发明实施例提供一种交易处理装置,包括:
第一确定模块,用于在第一密码算法集中确定目标密码算法,所述第一密码算法集为第一软件版本对应的可用密码算法集,所述第一软件版本为所述装置当前的软件版本;
第一发送模块,用于向区块链节点发送交易请求消息,所述交易请求消息携带所述目标密码算法,所述目标密码算法用于指示所述区块链节点基于所述目标密码算法对所述交易请求消息进行处理;
其中,所述装置的软件版本与所述区块链节点的软件版本同步更新。
第四方面,本发明实施例提供一种交易处理装置,包括:
第二接收模块,用于接收区块链客户端发送的交易请求消息,所述交易请求消息携带目标密码算法,所述目标密码算法为第一密码算法集中的密码算法,所述第一密码算法集为第一软件版本对应的可用密码算法集,所述第一软件版本为所述区块链客户端当前的软件版本;
第一处理模块,用于基于所述目标密码算法对所述交易请求消息进行处理;
其中,所述装置的软件版本与所述区块链客户端的软件版本同步更新。
第五方面,本发明实施例提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的交易处理方法的步骤。
第六方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的交易处理方法的步骤。
上述技术方案中的一个技术方案具有如下优点或有益效果:
本发明实施例中,所述区块链客户端可以每发起一次交易请求消息时,便在当前可提供的可用密码算法集中确定一次所述目标密码算法,使得所述区块链系统中使用的密码算法不固定,降低了系统密码算法被攻破的概率,提高了区块链系统整体的安全性。
附图说明
图1是本发明实施例可应用的一种网络系统的结构图;
图2是一种区块链交易处理流程的流程图;
图3是本发明实施例提供的交易处理方法的流程示意图之一;
图4是本发明实施例提供的区块链客户端与区块链节点同步更新示意图;
图5a是本发明实施例提供的一种密码算法选择和确定流程的交互图;
图5b是本发明实施例提供的一种密码算法选择和确定流程的流程图;
图6是本发明实施例提供的交易处理方法的流程示意图之二;
图7是本发明实施例提供的交易处理装置的结构图之一;
图8是本发明实施例提供的交易处理装置的结构图之二;
图9为本发明实施例提供的一种电子设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,本申请中使用“和/或”表示所连接对象的至少其中之一,例如A和/或B和/或C,表示包含单独A,单独B,单独C,以及A和B都存在,B和C都存在,A和C都存在,以及A、B和C都存在的7种情况。
在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
请参见图1,图1是本发明实施例可应用的一种网络系统的结构图。如图1所示,网络系统包括区块链客户端11和区块链节点12,区块链客户端11和区块链节点12之间可以进行通信。
本发明实施例中,网络系统可以视为区块链系统,区块链实质是一种去中心化的分布式账本,其基于区块链网络建立。区块链网络包括多个区块链节点12,也可以称为区块链网络节点,多个区块链节点12共同维护上述分布式账本。区块链系统还包括一个或多个区块链客户端11,区块链客户端11可以向区块链网络广播交易请求,区块链网络可以基于共识机制确定一个取得记账权的区块链节点12,以下简称为记账节点,以对交易请求进行处理。
为了方便理解,以下对本发明实施例涉及的一些内容进行说明:
一、区块链系统的交易处理流程。
如图2所示,交易处理流程的具体步骤如下:
步骤201、区块链客户端登录区块链系统。
本步骤中,对于无许可的区块链系统,区块链客户端无需认证就可以登录系统。对于许可的区块链系统,区块链客户端需要在认证后才能登录系统。
步骤202、生成交易。
本步骤中,区块链客户端使用其私钥对交易请求消息进行签名以授权交易。在无许可的区块链系统中,交易请求消息包括但不限于:交易内容、签名、发起者的公钥和接收者的地址。接收者的地址可以通过对接收者的公钥进行哈希处理确定。在许可的区块链系统中,交易请求消息包括但不限于:发起者的证书、交易建议、签名,交易建议包括但不限于:发起者身份、交易负载、交易标识。生成交易后,可以通过点对点网络传播交易。
步骤203、使用共识机制确定记账节点。
本步骤中,区块链网络中的区块链节点可以使用共识机制取得记账权,即形成区块(写入区块数据)的权利。在无许可的区块链系统中,主要使用竞争共识机制来选择记账节点创建区块,每一区块链节点的计算能力、资产数量等资源是选择结果的决定因素。在许可的区块链系统中,主要使用协作共识机制以使多个节点之间达到一致。许可的区块链系统的共识机制通常使用签名算法用于确保交换消息的完整性。
步骤204、形成区块。
本步骤中,形成区块可以理解为写入区块数据的过程。记账节点对交易请求消息中的签名进行验证,以确保交易的真实性。此外,还会检查交易格式是否正确以及每笔交易中的数字资产提供者是否真实。然后,通过收集一组交易写入区块以形成一个新的区块。通常一个区块包括区块头和区块数据,区块头包括区块的元数据,区块数据包括交易列表。交易列表通常在Merkle树(Merkle Authentication Tree)中进行管理,Merkle树的叶子代表交易,根代表整个交易集的数字指纹,通过哈希函数从叶子到根实现层层哈希计算,最终Merkle树的根被写入区块头。
步骤205、更新账本。
本步骤中,基于区块链中分布式记账的原则,在记账节点形成区块后,该节点可以通过区块链网络(通常为对等网络(Peer-to-Peer Network,P2P网络))广播该区块。区块链网络中的其他区块链节点在确定该区块的有效性后,可以将该区块链接到对应区块链账本的最后一个区块上,区块链账本中每个区块的区块头都包含前一个区块的区块头的哈希摘要。这样独立更新账本,以实现区块链网络中的所有区块链节点记录的账本的一致性。
在上述交易处理流程中,密码算法在多个交易处理流程均被使用。例如,数字签名算法用在生成交易环节以确保交易是数字资产持有者发起的交易,又例如,数字签名算法用在共识机制环节以确保交换的消息是没有被篡改的,还例如,哈希算法用在形成区块环节以确保交易的完整性。
请参见图3,图3是本发明实施例提供的一种交易处理方法的流程示意图之一,交易处理方法可以由区块链客户端执行。
如图3所示,交易处理方法包括以下步骤:
步骤301、在第一密码算法集中确定目标密码算法。
其中,第一密码算法集为第一软件版本对应的可用密码算法集,第一软件版本为区块链客户端当前的软件版本。
本发明实施例中,可用密码算法集中可以包括当前区块链系统中可用的密码算法,以供用户在发起交易请求时根据需要对密码算法进行选择。区块链系统可将可用密码算法集封装入区块链软件中,区块链软件为用于实现区块链上所有交易的应用程序。
可以理解的是,可用密码算法集的代码库可以视为区块链软件的代码库的一部分,在可用密码算法集发生更新时,区块链软件的软件版本也会随之更新。在用户需要使用区块链客户端发起交易请求时,区块链客户端可提供的密码算法集为区块链客户端当前的软件版本中封装的密码算法集,即第一密码算法集。
本步骤中,区块链客户端可以基于用户的选择操作在第一密码算法集中确定目标密码算法。
在一可选实施方式中,可用密码算法集包括以下至少一项:可用签名算法集;可用哈希算法集;可用加密算法集。在一示例中,可用签名算法集可以为签名算法列表,即签名算法列表={签名算法1,签名算法2,…,签名算法n},例如签名算法列表={ECDSA,EDDSA,DSA};可用哈希算法集可以为哈希算法列表,即哈希算法列表={哈希算法1,哈希算法2,…,哈希算法m},例如哈希算法列表={SHA-256,SHA-384,SHA-3};可用加密算法集可以为加密算法列表,即加密算法列表={加密算法1,加密算法2,…,加密算法k},例如加密算法列表={AES 128,AES 256,IDEA}。
在可用密码算法集包括可用签名算法集、可用哈希算法集和可用加密算法集的情况下,目标密码算法包括目标签名算法、目标哈希算法和目标加密算法。具体实现时,可以包括四种情况:
第一种情况,用户未选择任意一种密码算法,则目标签名算法为系统可用的默认签名算法,目标哈希算法为系统可用的默认哈希算法,目标加密算法为系统可用的默认加密算法。
第二种情况,用户选择一种密码算法,即用户在可用签名算法集中选择了一种签名算法,或者在可用哈希算法集中选择了一种哈希算法,或者在可用加密算法集中选择了一种签名加密。假设在可用签名算法集中选择了一种签名算法,则目标签名算法为用户选择的签名算法,目标哈希算法为系统可用的默认哈希算法,目标加密算法为系统可用的默认加密算法。
第三种情况,用户选择两种密码算法,即用户在可用签名算法集和可用哈希算法集中各选择一种密码算法,或者在可用签名算法集和可用加密算法集中各选择一种密码算法,或者在可用哈希算法集和可用加密算法集中各选择一种密码算法。假设在可用签名算法集和可用哈希算法集中各选择一种密码算法,则目标签名算法为用户选择的签名算法,目标哈希算法为用户选择的哈希算法,目标加密算法为系统可用的默认加密算法。
第四种情况,用户选择三种密码算法,则目标签名算法为用户选择的签名算法,目标哈希算法为用户选择的哈希算法,目标加密算法为用户选择的加密算法。
需要说明的是,每一软件版本对应的可用密码算法集中均预先设置有一默认的密码算法,在可用密码算法集包括可用签名算法集、可用哈希算法集和可用加密算法集的情况下,均预先设置有一默认的签名算法、一默认的哈希算法和一默认的加密算法。
步骤302、向区块链节点发送交易请求消息。
其中,交易请求消息携带目标密码算法,可选地,携带有目标密码算法的算法标识。目标密码算法用于指示区块链节点基于目标密码算法对交易请求消息进行处理,区块链客户端的软件版本与区块链节点的软件版本同步更新。
本步骤中,区块链客户端可以将目标密码算法封装进交易请求消息中。在区块链客户端的软件版本与区块链节点的软件版本同步更新的情况下,区块链客户端与区块链节点的软件版本可以保持一致,二者可提供的可用密码算法集也可以保持一致。当区块链节点接收到交易请求消息后,可以获取目标密码算法,并可以基于目标密码算法对交易请求消息进行验签,并在验签成功后基于目标密码算法进行后续交易处理。
具体实现时,区块链客户端可以使用其私钥对交易请求消息对交易请求消息进行签名,签名算法基于目标密码算法确定。区块链客户端可以向区块链网络广播交易请求消息。当区块链节点接收到交易请求消息后,可以对交易请求消息验签,验签算法可以基于目标密码算法确定。
在验签成功的情况下区块链节点可以在后续交易处理流程中均基于目标密码算法进行,包括但不限于共识机制环节、形成区块环节和更新账本环节。需要说明的是,在验签不成功的情况下,表示交易请求的发起者可能不是数字资产的持有者,区块链节点可以向区块链客户端发送第二指示信息,第二指示信息用于指示验签失败,区块链客户端可以重新发起交易请求。
本发明实施例提供的交易处理方法,区块链客户端可以每发起一次交易请求消息时,便在当前可提供的可用密码算法集中确定一次目标密码算法,使得区块链系统中使用的密码算法不固定,降低了系统密码算法被攻破的概率,提高了区块链系统整体的安全性。此外,基于区块链客户端的软件版本与区块链节点的软件版本同步更新,可以保证区块链客户端与区块链节点的可用密码算法保持一致,避免因二者可用密码不一致而出现如验签不成功等漏洞、异常的情况,提高了交易请求处理的成功率。
可选地,在第一密码算法集中确定目标密码算法之前,该交易处理方法还包括:控制区块链客户端的软件版本与区块链节点的软件版本同步更新。
本实施例中,区块链客户端可以通过控制其软件版本的更新,实现与区块链节点的软件版本的更新同步。可选地,包括两种实施方式:
第一种实施方式,控制区块链客户端的软件版本与区块链节点的软件版本同步更新,包括:
控制区块链客户端的软件版本以第一预设时间间隔进行更新;
其中,第一预设时间间隔为区块链节点的软件版本的更新时间间隔。
本实施方式中,区块链客户端和区块链节点基于同一时间间隔进行软件版本的更新,以实现对软件版本的更新同步。
将第一预设时间间隔记为T。如图4所示,每个区块链客户端加入区块链系统的时间点记为PTJ(Point of Time for Join),以PTJ为基准,区块链客户端的更新时间点可以为PTJi+T,PTJi+2T,PTJi+3T,…,i表示区块链客户端的编号。每个区块链节点在区块链网络中被激活的时间点记为PTA(Point of Time for Activation),以PTA为基准,区块链节点的更新时间点可以为PTAj+T,PTAj+2T,PTAj+3T,…,j表示区块链节点的编号。具体实现时,可以在每个区块链客户端和每个区块链节点上设定一个统一定时器。在定时器的时间值每增加T,定时器对区块链客户端或区块链节点进行一次更新提醒。
第二实施方式中,控制区块链客户端的软件版本与区块链节点的软件版本同步更新,包括:
在第一更新时间点向软件服务器发送更新请求消息;
接收软件服务器返回的第二软件版本的信息,第二软件版本为最新的软件版本;
根据第二软件版本的信息,对区块链客户端的软件版本进行更新,以及向其他任一区块链客户端和任一区块链节点发送第二软件版本的信息,以使其他任一区块链客户端和任一区块链节点根据第二软件版本的信息,对软件版本进行更新。
本实施方式中,以方法由区块链客户端1执行为例,第一更新时间点为区块链客户端1的更新时间点,第一更新时间点可以为区块链客户端1加入区块链系统的时间点,也可以为区块链客户端1后续的任一更新时间点。
在区块链客户端1达到更新时间点时,区块链客户端1可以从软件服务器获取最新的软件版本的信息。通过向区块链系统广播信息,区块链系统中除区块链客户端1之外的其他任一区块链客户端和任一区块链节点,可以根据最新的软件版本的信息,实现对软件版本的更新同步。
具体实现时,对于区块链客户端1,在从软件服务器接收到最新软件版本的信息后,可以从软件服务器下载最新软件版本的数据实现更新。对于软件版本已经为最新软件版本的其他区块链客户端或区块链节点,在从区块链客户端1接收到最新软件版本的信息后,可以不再重复更新。对于还未到达更新时间点的其他区块链客户端或区块链节点,在从区块链客户端1接收到最新软件版本的信息后,可以从软件服务器下载最新软件版本的数据实现更新。
需要说明的是,在一可选实施方式中,上述两种实施方式可以结合。具体地,将区块链系统中每个区块链客户端和每个区块链节点设定一统一更新时间间隔T,在区块链客户端1达到更新时间点并向区块链系统广播最新软件版本的信息后,所有区块链客户端和区块链节点可以对软件版本更新以实现软件版本的一致。之后,所有区块链客户端和区块链节点对其后续的更新时间点进行更新,任一区块链客户端或任一区块链节点后续的更新时间点为第一更新时间点+T,第一更新时间点+2T,第一更新时间点+3T,…。
为方便理解,下面分情况进行举例说明:
假设第一更新时间点为08月13日,更新时间间隔T为10天。
第一种情况,对于区块链客户端1,08月13日为其原本的更新时间点,那么后续的更新时间点则继续以08月13日为基准,以10天为间隔进行确定。
第二种情况,对于其他区块链客户端或区块链节点,以区块链客户端2为例,假设其上一次的更新时间点为08月10日,则其原本的下一次的更新时间点为08月20日。由于区块链客户端1的更新,为了实现更新同步,若08月13日区块链客户端2确定其软件版本不是最新的软件版本,则在08月13日区块链客户端2进行更新,其下一次的更新时间点变更为08月23日;若08月13日区块链客户端2确定其软件版本是最新的软件版本,则在08月13日区块链客户端2无需进行重复更新,其下一次的更新时间点仍然变更为08月23日。
这样,区块链客户端的软件版本和区块链节点的区块链软件版不仅可以基于相同时间间隔同步更新,在出现个别区块链客户端或区块链节点因断网等异常下线情况而更新不同步的情况下,可以通过某一当前更新的区块链客户端或区块链节点的广播信息再次实现更新同步,进一步提高了区块链客户端和区块链节点二者的可用密码算法集的一致性,提高了目标密码算法与区块链节点的适配程度。而且,还能够使区块链系统中使用的密码算法始终为当前最新的可用密码算法,避免因密码算法陈旧而容易被攻破的概率,进一步提高了区块链系统的安全性。
需要说明的是,区块链节点也可以通过控制其软件版本的更新,实现与区块链客户端之间软件版本的更新同步。具体实施方式与上述区块链客户端实现更新同步的实施方式相同,在此不再赘述。
可选地,向区块链节点发送交易请求消息之后,方法还包括:
接收区块链节点发送的第一指示信息和第三软件版本的版本标识,第一指示信息用于指示目标密码算法不在第二密码算法集中,第二密码算法集为第三软件版本对应的可用密码算法集,第三软件版本为区块链节点当前的软件版本;
在第三软件版本的版本标识表征第三软件版本高于第一软件版本的情况下,对区块链客户端的软件版本进行更新。
本实施例中,即使在区块链客户端的软件版本与区块链节点的软件版本同步更新的情况下,第一软件版本一般与第三软件版本相同,第一密码算法集一般与第二密码算法集也相同,但不排除个别区块链客户端或区块链节点因断网等异常下线原因而软件版本不一致的情况。
基于此,区块链节点在接收到交易请求消息时,可以将目标密码算法与其自身可提供的第二密码算法集进行比较。若目标密码算法在第二密码算法集中,可以继续基于目标密码算法对交易请求进行处理。若目标密码算法不在第二密码算法集中,表示目标密码算法与区块链节点可用的密码算法不一致,可能是区块链客户端的软件版本较低,也可能是区块链节点的软件版本较低。区块链节点可以向区块链客户端返回第一指示信息和第三软件版本的版本标识,以供区块链客户端对软件版本进行检查比较。
版本标识可以为版本号。区块链客户端可以比较第一软件版本号与第三软件版本号,若第一软件版本号较低,则区块链客户端对其软件版本进行更新,若第一软件版本号较高,则区块链客户端可以不对其软件版本进行更新。这样能够进一步保证目标密码算法为最新的可用密码算法,进一步避免因密码算法陈旧容易被攻破的情况,提高了区块链系统整体的安全性。
可选地,交易请求消息还携带第一软件版本的版本标识,第一软件版本的版本标识用于指示区块链节点确定是否对区块链节点的软件版本进行更新。
本实施例中,版本标识可以为版本号。在交易请求消息还携带第一软件版本号的情况下,区块链节点在接收到交易请求消息后,可以将目标密码算法与其自身可提供的第二密码算法集进行比较。若目标密码算法在第二密码算法集中,可以继续对交易请求进行处理。若目标密码算法不在第二密码算法集中,表示目标密码算法与区块链节点可用的密码算法不一致,可能是区块链客户端的软件版本较低,也可能是区块链节点的软件版本较低。
区块链节点可以比较第一软件版本号与第三软件版本号,若第三软件版本号较低,则区块链节点对其软件版本进行更新,若第三软件版本号较高,则区块链节点可以不对其软件版本进行更新,并向区块链客户端返回第一指示信息和第三软件版本号。这样能够进一步保证区块链系统中可用密码算法为最新的密码算法,进一步避免因密码算法陈旧容易被攻破的情况,提高了区块链系统整体的安全性。
下面介绍本发明实施例中一示例性的密码算法选择和确定流程:
如图5a和图5b所示,密码算法选择和确定流程如下:
步骤501、确定目标密码算法。
本步骤中,在用户执行选择操作的情况下,基于用户的选择操作在区块链客户端的可用密码算法集中确定目标密码算法,在用户未执行选择操作的情况下,将默认的密码算法作为目标密码算法。之后,区块链客户端可以将目标密码算法封装进交易请求消息中,并使用目标密码算法对交易请求消息进行签名。交易请求消息具体包括客户端软件版本号(V),目标密码算法(CHA),交易相关的信息(TRI),签名(SIG)。对于无许可的区块链系统,交易相关的信息包括交易内容、发送者的公钥和接收者的地址。对于许可的区块链系统,交易相关的信息包括发送者的证书和交易建议。本步骤后执行步骤502。
步骤502、区块链客户端向区块链网络广播交易请求消息。
本步骤后执行步骤503。
步骤503、区块链节点确定目标密码算法是否在其可用密码算法集中。
本步骤中,区块链网络的每个区块链节点收到交易请求消息后,将目标密码算法与其可用密码算法集进行比较。若在,则执行步骤504;若不在,则执行步骤507。
步骤504、区块链节点使用目标签名算法对交易请求消息进行验签。
本步骤中,若验签成功,则执行步骤505;若验签失败,则执行步骤506。
步骤505、区块链节点使用目标密码算法对交易请求消息进行处理。本步骤中,区块链节点可以将目标密码算法用于交易处理的共识机制环节、形成区块环节、更新账本环节等。本步骤后流程结束。
步骤506、区块链节点向区块链客户端发送第二指示信息。
本步骤中,第二指示信息用于指示验签失败,区块链客户端可以重新发送交易请求消息。本步骤后重新执行步骤501。
步骤507、区块链节点向区块链客户端发送第一指示信息和软件版本号。
本步骤中,第一指示信息用于指示目标密码算法不在区块链节点的可用密码集中。本步骤后可以执行步骤508和步骤510。
步骤508、区块链客户端比较自身软件版本号和区块链节点的软件版本号。
本步骤中,若区块链客户端的版本号较高,则结束流程;若区块链客户端的版本号较低,则执行步骤509。需要说明的是,在一般情况下,区块链系统中的区块链客户端的软件版本号与区块链节点的软件版本号在软件服务器上保持一致,也就是区块链客户端的软件版本号与区块链节点的软件版本号同步更新。
步骤509、区块链客户端更新其软件版本。
本步骤中,区块链客户端更新其软件版本可重新发起交易请求消息。本步骤后重新执行步骤501。
步骤510、区块链节点比较自身软件版本号和区块链客户端的软件版本号。
本步骤中,若区块链节点的版本号较高,则结束流程;若区块链节点的版本号较低,则执行步骤511。
步骤511、区块链节点更新其软件版本。
本步骤中,区块链节点更新其软件版本后,可继续执行步骤504。
请参见图6,图6是本发明实施例提供的一种交易处理方法的流程示意图之二,交易处理方法可以由区块链节点执行。
如图6所示,交易处理方法包括以下步骤:
步骤601、接收区块链客户端发送的交易请求消息,交易请求消息携带目标密码算法,目标密码算法为第一密码算法集中的密码算法,第一密码算法集为第一软件版本对应的可用密码算法集,第一软件版本为区块链客户端当前的软件版本。
步骤602、基于目标密码算法对交易请求消息进行处理。
其中,区块链节点的软件版本与区块链客户端的软件版本同步更新。
可选地,可用密码算法集包括以下至少一项:可用签名算法;可用哈希算法;可用加密算法。
可选地,接收区块链客户端发送的交易请求消息之前,方法还包括:
控制区块链节点的软件版本与区块链客户端的软件版本同步更新。
可选地,控制区块链节点的软件版本与区块链客户端的软件版本同步更新,包括:
控制区块链节点的软件版本以第一预设时间间隔进行更新;
其中,第一预设时间间隔为区块链客户端的软件版本的更新时间间隔。
可选地,控制区块链节点的软件版本与区块链客户端的软件版本同步更新,包括:
在第二更新时间点向软件服务器发送更新请求消息;
接收软件服务器返回的第二软件版本的信息,第二软件版本为最新的软件版本;
根据第二软件版本的信息,对区块链节点的软件版本进行更新,以及向其他任一区块链节点和任一区块链客户端发送第二软件版本的信息,以使其他任一区块链节点和任一区块链客户端根据第二软件版本的信息,对软件版本进行更新。
可选地,接收区块链客户端发送的交易请求消息之后,方法还包括:
在目标密码算法不在第二密码算法集中的情况下,向区块链客户端发送第一指示信息和第三软件版本的版本标识,第二密码算法集为第三软件版本对应的可用密码算法集,第三软件版本为区块链节点当前的软件版本;
基于目标密码算法对交易请求消息进行处理,包括:
在目标密码算法在第二密码算法集中的情况下,基于目标密码算法对交易请求消息进行处理。
可选地,交易请求消息还携带第一软件版本的版本标识;
接收区块链客户端发送的交易请求消息之后,方法还包括:
在目标密码算法不在第二密码算法集中,且第一软件版本的版本标识表征第一软件版本高于第三软件版本的情况下,对区块链节点的软件版本进行更新。
需要说明的是,本实施例作为与上述方法实施例对应的区块链节点的实施方式,因此,可以参见上述方法实施例中的相关说明,且可以达到相同的有益效果。为了避免重复说明,在此不再赘述。
本发明实施例提供的交易处理方法,区块链客户端可以每发起一次交易请求消息时,便在当前可提供的可用密码算法集中确定一次目标密码算法,使得区块链系统中使用的密码算法不固定,降低了系统密码算法被攻破的概率,提高了区块链系统整体的安全性。此外,基于区块链客户端的软件版本与区块链节点的软件版本同步更新,可以保证区块链客户端与区块链节点的可用密码算法保持一致,避免因二者可用密码不一致而出现如验签不成功等漏洞、异常的情况,提高了交易请求处理的成功率。
参见图7,图7是本发明实施例提供的交易处理装置的结构图之一。
如图7所示,交易处理装置700包括:
第一确定模块701,用于在第一密码算法集中确定目标密码算法,第一密码算法集为第一软件版本对应的可用密码算法集,第一软件版本为区块链客户端当前的软件版本;
第一发送模块702,用于向区块链节点发送交易请求消息,交易请求消息携带目标密码算法,目标密码算法用于指示区块链节点基于目标密码算法对交易请求消息进行处理;
其中,装置的软件版本与区块链节点的软件版本同步更新。
可选地,可用密码算法集包括以下至少一项:可用签名算法;可用哈希算法;可用加密算法。
可选地,交易处理装置700还包括:
第一控制模块,用于控制区块链客户端的软件版本与区块链节点的软件版本同步更新。
可选地,第一控制模块具体用于:
控制区块链客户端的软件版本以第一预设时间间隔进行更新;
其中,第一预设时间间隔为区块链节点的软件版本的更新时间间隔。
可选地,第一控制模块包括:
第一发送单元,在第一更新时间点向软件服务器发送更新请求消息;
第一接收单元,用于接收软件服务器返回的第二软件版本的信息,第二软件版本为最新的软件版本;
第一处理单元,用于根据第二软件版本的信息,对区块链客户端的软件版本进行更新,以及向最新的软件版本的信息发送第二软件版本的信息,以使最新的软件版本的信息根据第二软件版本的信息,对软件版本进行更新。
可选地,交易处理装置700还包括:
第一接收模块,用于接收区块链节点发送的第一指示信息和第三软件版本的版本标识,第一指示信息用于指示目标密码算法不在第二密码算法集中,第二密码算法集为第三软件版本对应的可用密码算法集,第三软件版本为区块链节点当前的软件版本;
第一更新模块,用于在第三软件版本的版本标识表征第三软件版本高于第一软件版本的情况下,对区块链客户端的软件版本进行更新。
可选地,交易请求消息还携带第一软件版本的版本标识,第一软件版本的版本标识用于指示区块链节点确定是否对区块链节点的软件版本进行更新。
交易处理装置700能够实现本发明方法实施例中区块链客户端能够实现的各个过程,以及达到相同的有益效果,为避免重复,这里不再赘述。
参见图8,图8是本发明实施例提供的交易处理装置的结构图之二。
如图8所示,交易处理装置800包括:
第二接收模块801,用于接收区块链客户端发送的交易请求消息,交易请求消息携带目标密码算法,目标密码算法为第一密码算法集中的密码算法,第一密码算法集为第一软件版本对应的可用密码算法集,第一软件版本为区块链客户端当前的软件版本;
第一处理模块802,用于基于目标密码算法对交易请求消息进行处理;
其中,装置的软件版本与区块链客户端的软件版本同步更新。
可选地,可用密码算法集包括以下至少一项:可用签名算法;可用哈希算法;可用加密算法。
可选地,交易处理装置800还包括:
第二控制模块,用于控制区块链节点的软件版本与区块链客户端的软件版本同步更新。
可选地,第二控制模块具体用于:
控制区块链节点的软件版本以第一预设时间间隔进行更新;
其中,第一预设时间间隔为区块链客户端的软件版本的更新时间间隔。
可选地,第二控制模块包括:
第二发明单元,用于在第二更新时间点向软件服务器发送更新请求消息;
第二接收单元,用于接收软件服务器返回的第二软件版本的信息,第二软件版本为最新的软件版本;
第三处理单元,用于根据第二软件版本的信息,对区块链节点的软件版本进行更新,以及向其他任一区块链节点和任一区块链客户端发送第二软件版本的信息,以使其他任一区块链节点和任一区块链客户端根据第二软件版本的信息,对软件版本进行更新。
可选地,交易处理装置800还包括:
第二发送模块,用于在目标密码算法不在第二密码算法集中的情况下,向区块链客户端发送第一指示信息和第三软件版本的版本标识,第二密码算法集为第三软件版本对应的可用密码算法集,第三软件版本为区块链节点当前的软件版本;
第一处理模块802具体用于:
在目标密码算法在第二密码算法集中的情况下,基于目标密码算法对交易请求消息进行处理。
可选地,交易请求消息还携带第一软件版本的版本标识;
交易处理装置800还包括:
第二更新模块,用于在目标密码算法不在第二密码算法集中,且第一软件版本的版本标识表征第一软件版本高于第三软件版本的情况下,对区块链节点的软件版本进行更新。
交易处理装置800能够实现本发明方法实施例中区块链节点能够实现的各个过程,以及达到相同的有益效果,为避免重复,这里不再赘述。
本发明实施例还提供一种电子设备。请参见图9,电子设备900可以包括处理器901、存储器902及存储在存储器902上并可在处理器901上运行的计算机程序9021,计算机程序9021被处理器901执行时可实现图3或者图6对应的方法实施例中的任意步骤及达到相同的有益效果,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法的全部或者部分步骤是可以通过程序指令相关的硬件来完成,所述的程序可以存储于一可读取介质中。本发明实施例还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时可实现上述图3或图6对应的方法实施例中的任意步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
所述的存储介质,如只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
以上所述是本发明实施例的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (30)
1.一种交易处理方法,由区块链客户端执行,其特征在于,包括:
在第一密码算法集中确定目标密码算法,所述第一密码算法集为第一软件版本对应的可用密码算法集,所述第一软件版本为所述区块链客户端当前的软件版本;
向区块链节点发送交易请求消息,所述交易请求消息携带所述目标密码算法,所述目标密码算法用于指示所述区块链节点基于所述目标密码算法对所述交易请求消息进行处理;
其中,所述区块链客户端的软件版本与所述区块链节点的软件版本同步更新。
2.根据权利要求1所述的方法,其特征在于,所述可用密码算法集包括以下至少一项:可用签名算法;可用哈希算法;可用加密算法。
3.根据权利要求1所述的方法,其特征在于,所述在第一密码算法集中确定目标密码算法之前,所述方法还包括:
控制所述区块链客户端的软件版本与所述区块链节点的软件版本同步更新。
4.根据权利要求3所述的方法,其特征在于,所述控制所述区块链客户端的软件版本与所述区块链节点的软件版本同步更新,包括:
控制所述区块链客户端的软件版本以第一预设时间间隔进行更新;
其中,所述第一预设时间间隔为所述区块链节点的软件版本的更新时间间隔。
5.根据权利要求3所述的方法,其特征在于,所述控制所述区块链客户端的软件版本与所述区块链节点的软件版本同步更新,包括:
在第一更新时间点向软件服务器发送更新请求消息;
接收所述软件服务器返回的第二软件版本的信息,所述第二软件版本为最新的软件版本;
根据所述第二软件版本的信息,对所述区块链客户端的软件版本进行更新,以及向其他任一区块链客户端和任一区块链节点发送所述第二软件版本的信息,以使所述其他任一区块链客户端和任一区块链节点根据所述第二软件版本的信息,对软件版本进行更新。
6.根据权利要求1所述的方法,其特征在于,所述向区块链节点发送交易请求消息之后,所述方法还包括:
接收所述区块链节点发送的第一指示信息和第三软件版本的版本标识,所述第一指示信息用于指示所述目标密码算法不在第二密码算法集中,所述第二密码算法集为所述第三软件版本对应的可用密码算法集,所述第三软件版本为所述区块链节点当前的软件版本;
在所述第三软件版本的版本标识表征所述第三软件版本高于所述第一软件版本的情况下,对所述区块链客户端的软件版本进行更新。
7.根据权利要求1所述的方法,其特征在于,所述交易请求消息还携带所述第一软件版本的版本标识,所述第一软件版本的版本标识用于指示所述区块链节点确定是否对所述区块链节点的软件版本进行更新。
8.一种交易处理方法,由区块链节点执行,其特征在于,包括:
接收区块链客户端发送的交易请求消息,所述交易请求消息携带目标密码算法,所述目标密码算法为第一密码算法集中的密码算法,所述第一密码算法集为第一软件版本对应的可用密码算法集,所述第一软件版本为所述区块链客户端当前的软件版本;
基于所述目标密码算法对所述交易请求消息进行处理;
其中,所述区块链节点的软件版本与所述区块链客户端的软件版本同步更新。
9.根据权利要求8所述的方法,其特征在于,所述可用密码算法集包括以下至少一项:可用签名算法;可用哈希算法;可用加密算法。
10.根据权利要求8所述的方法,其特征在于,所述接收区块链客户端发送的交易请求消息之前,所述方法还包括:
控制所述区块链节点的软件版本与所述区块链客户端的软件版本同步更新。
11.根据权利要求10所述的方法,其特征在于,所述控制所述区块链节点的软件版本与所述区块链客户端的软件版本同步更新,包括:
控制所述区块链节点的软件版本以第一预设时间间隔进行更新;
其中,所述第一预设时间间隔为所述区块链客户端的软件版本的更新时间间隔。
12.根据权利要求10所述的方法,其特征在于,所述控制所述区块链节点的软件版本与所述区块链客户端的软件版本同步更新,包括:
在第二更新时间点向软件服务器发送更新请求消息;
接收所述软件服务器返回的第二软件版本的信息,所述第二软件版本为最新的软件版本;
根据所述第二软件版本的信息,对所述区块链节点的软件版本进行更新,以及向其他任一区块链节点和任一区块链客户端发送所述第二软件版本的信息,以使所述其他任一区块链节点和任一区块链客户端根据所述第二软件版本的信息,对软件版本进行更新。
13.根据权利要求8所述的方法,其特征在于,所述接收区块链客户端发送的交易请求消息之后,所述方法还包括:
在所述目标密码算法不在第二密码算法集中的情况下,向所述区块链客户端发送第一指示信息和第三软件版本的版本标识,所述第二密码算法集为所述第三软件版本对应的可用密码算法集,所述第三软件版本为所述区块链节点当前的软件版本;
所述基于所述目标密码算法对所述交易请求消息进行处理,包括:
在所述目标密码算法在所述第二密码算法集中的情况下,基于所述目标密码算法对所述交易请求消息进行处理。
14.根据权利要求8所述的方法,其特征在于,所述交易请求消息还携带所述第一软件版本的版本标识;
所述接收区块链客户端发送的交易请求消息之后,所述方法还包括:
在所述目标密码算法不在第二密码算法集中,且所述第一软件版本的版本标识表征所述第一软件版本高于第三软件版本的情况下,对所述区块链节点的软件版本进行更新。
15.一种交易处理装置,其特征在于,包括:
第一确定模块,用于在第一密码算法集中确定目标密码算法,所述第一密码算法集为第一软件版本对应的可用密码算法集,所述第一软件版本为所述装置当前的软件版本;
第一发送模块,用于向区块链节点发送交易请求消息,所述交易请求消息携带所述目标密码算法,所述目标密码算法用于指示所述区块链节点基于所述目标密码算法对所述交易请求消息进行处理;
其中,所述装置的软件版本与所述区块链节点的软件版本同步更新。
16.根据权利要求15所述的装置,其特征在于,所述可用密码算法集包括以下至少一项:可用签名算法;可用哈希算法;可用加密算法。
17.根据权利要求15所述的装置,其特征在于,所述装置还包括:
第一控制模块,用于控制所述区块链客户端的软件版本与所述区块链节点的软件版本同步更新。
18.根据权利要求17所述的装置,其特征在于,所述第一控制模块具体用于:
控制所述区块链客户端的软件版本以第一预设时间间隔进行更新;
其中,所述第一预设时间间隔为所述区块链节点的软件版本的更新时间间隔。
19.根据权利要求17所述的装置,其特征在于,所述第一控制模块包括:
第一发送单元,在第一更新时间点向软件服务器发送更新请求消息;
第一接收单元,用于接收所述软件服务器返回的第二软件版本的信息,所述第二软件版本为最新的软件版本;
第一处理单元,用于根据所述第二软件版本的信息,对所述区块链客户端的软件版本进行更新,以及向其他任一区块链客户端和任一区块链节点发送所述第二软件版本的信息,以使所述其他任一区块链客户端和任一区块链节点根据所述第二软件版本的信息,对软件版本进行更新。
20.根据权利要求15所述的装置,其特征在于,所述装置还包括:
第一接收模块,用于接收所述区块链节点发送的第一指示信息和第三软件版本的版本标识,所述第一指示信息用于指示所述目标密码算法不在第二密码算法集中,所述第二密码算法集为所述第三软件版本对应的可用密码算法集,所述第三软件版本为所述区块链节点当前的软件版本;
第一更新模块,用于在所述第三软件版本的版本标识表征所述第三软件版本高于所述第一软件版本的情况下,对所述区块链客户端的软件版本进行更新。
21.根据权利要求15所述的装置,其特征在于,所述交易请求消息还携带所述第一软件版本的版本标识,所述第一软件版本的版本标识用于指示所述区块链节点确定是否对所述区块链节点的软件版本进行更新。
22.一种交易处理装置,其特征在于,包括:
第二接收模块,用于接收区块链客户端发送的交易请求消息,所述交易请求消息携带目标密码算法,所述目标密码算法为第一密码算法集中的密码算法,所述第一密码算法集为第一软件版本对应的可用密码算法集,所述第一软件版本为所述区块链客户端当前的软件版本;
第一处理模块,用于基于所述目标密码算法对所述交易请求消息进行处理;
其中,所述装置的软件版本与所述区块链客户端的软件版本同步更新。
23.根据权利要求22所述的装置,其特征在于,所述可用密码算法集包括以下至少一项:可用签名算法;可用哈希算法;可用加密算法。
24.根据权利要求22所述的装置,其特征在于,所述装置还包括:
第二控制模块,用于控制所述区块链节点的软件版本与所述区块链客户端的软件版本同步更新。
25.根据权利要求24所述的装置,其特征在于,所述第二控制模块具体用于:
控制所述区块链节点的软件版本以第一预设时间间隔进行更新;
其中,所述第一预设时间间隔为所述区块链客户端的软件版本的更新时间间隔。
26.根据权利要求24所述的装置,其特征在于,所述第二控制模块包括:
第二发明单元,用于在第二更新时间点向软件服务器发送更新请求消息;
第二接收单元,用于接收所述软件服务器返回的第二软件版本的信息,所述第二软件版本为最新的软件版本;
第三处理单元,用于根据所述第二软件版本的信息,对所述区块链节点的软件版本进行更新,以及向其他任一区块链节点和任一区块链客户端发送所述第二软件版本的信息,以使所述其他任一区块链节点和任一区块链客户端根据所述第二软件版本的信息,对软件版本进行更新。
27.根据权利要求22所述的装置,其特征在于,所述装置还包括:
第二发送模块,用于在所述目标密码算法不在第二密码算法集中的情况下,向所述区块链客户端发送第一指示信息和第三软件版本的版本标识,所述第二密码算法集为所述第三软件版本对应的可用密码算法集,所述第三软件版本为所述区块链节点当前的软件版本;
所述第一处理模块具体用于:
在所述目标密码算法在所述第二密码算法集中的情况下,基于所述目标密码算法对所述交易请求消息进行处理。
28.根据权利要求22所述的装置,其特征在于,所述交易请求消息还携带所述第一软件版本的版本标识;
所述装置还包括:
第二更新模块,用于在所述目标密码算法不在第二密码算法集中,且所述第一软件版本的版本标识表征所述第一软件版本高于第三软件版本的情况下,对所述区块链节点的软件版本进行更新。
29.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至14中任一项所述的方法的步骤。
30.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至14中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111091827.4A CN115842639A (zh) | 2021-09-17 | 2021-09-17 | 交易处理方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111091827.4A CN115842639A (zh) | 2021-09-17 | 2021-09-17 | 交易处理方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115842639A true CN115842639A (zh) | 2023-03-24 |
Family
ID=85574149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111091827.4A Pending CN115842639A (zh) | 2021-09-17 | 2021-09-17 | 交易处理方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115842639A (zh) |
-
2021
- 2021-09-17 CN CN202111091827.4A patent/CN115842639A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2018348336B2 (en) | Performing a change of primary node in a distributed system | |
CN109462483B (zh) | 基于区块链的邮件存证方法、装置、设备和存储介质 | |
WO2018059334A1 (zh) | 区块链网络、分支节点、区块链网络应用方法及存储介质 | |
CN106815722B (zh) | 基于区块链的信息处理方法和装置 | |
CN110612700B (zh) | 基于恢复的公钥进行认证 | |
CN111047324B (zh) | 用于更新区块链节点处的公钥集合的方法及装置 | |
EP4002181A1 (en) | A consensus method and framework for a blockchain system | |
CN112968884B (zh) | 一种防止黑客攻击的区块链异构共识方法及终端 | |
CN111066046A (zh) | 抗重放攻击认证协议 | |
CN110177124B (zh) | 基于区块链的身份认证方法及相关设备 | |
CN108696356B (zh) | 一种基于区块链的数字证书删除方法、装置及系统 | |
CN111786812B (zh) | 节点管理方法、装置、计算机设备和存储介质 | |
CN111212139A (zh) | 对信任节点信息进行更新的方法及装置 | |
CN111275555B (zh) | 区块链交易处理方法、交易节点以及区块链系统 | |
US20220156735A1 (en) | Methods and devices for propagating blocks in a blockchain network | |
CN108737105B (zh) | 私钥的找回方法、装置、私钥设备和介质 | |
CN111815321A (zh) | 交易提案的处理方法、装置、系统、存储介质和电子装置 | |
KR102057570B1 (ko) | 블록체인 네트워크 | |
CN109840769B (zh) | 基于区块链的存证方法及装置、系统与存储介质 | |
CN109936620B (zh) | 基于区块链的存储方法及装置、系统与存储介质 | |
CN113127562A (zh) | 一种低冗余区块链数据存储和检索方法及系统 | |
CN115174570A (zh) | 一种基于动态委员会的跨链共识方法及系统 | |
JP2023522119A (ja) | ブロックチェーンネットワークにおけるポイズニングされたトランザクションによるブロック伝搬 | |
GB2587541A (en) | A consensus method and framework for a blockchain system | |
CN109274674B (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 |