CN114092093B - 区块链交易处理方法、装置、电子设备和可读介质 - Google Patents
区块链交易处理方法、装置、电子设备和可读介质 Download PDFInfo
- Publication number
- CN114092093B CN114092093B CN202210065233.4A CN202210065233A CN114092093B CN 114092093 B CN114092093 B CN 114092093B CN 202210065233 A CN202210065233 A CN 202210065233A CN 114092093 B CN114092093 B CN 114092093B
- Authority
- CN
- China
- Prior art keywords
- transaction
- request
- signature
- proposal
- verification
- 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.)
- Active
Links
Images
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/3825—Use of electronic signatures
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- Marketing (AREA)
- Economics (AREA)
- Computer Security & Cryptography (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种区块链交易处理的方法、装置、电子设备和可读介质。该方法包括:接收客户端发送的交易请求;根据交易请求进行签名操作,得到交易签名并向客户端发送交易签名;接收客户端发送的交易验证请求,其中,交易验证请求是客户端根据至少两个区块链节点发送的交易签名生成的;接收提案请求并根据交易请求、交易验证请求和提案请求生成交易区块,提案请求是根据交易请求生成的。该方法能够让交易请求在提案请求之前到达区块链节点,避免在处理提案请求的过程中等待广播的交易请求到达,从而减少了交易过程中的等待时间,提高了交易过程的处理效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种区块链交易处理的方法、装置、电子设备和可读介质。
背景技术
区块链系统是一种可以将数据分别存储在不同的物理节点上并且通过网络连接进行访问的数据库系统。该类数据库中,各个系统中的节点通过相互达成共识来共同维护数据。
在相关技术中,区块链交易的过程中,客户端会将交易消息发送到区块链系统某个节点,这个节点再通过广播的方式将交易消息发送至区块链系统中的其他节点,以便各个节点获取交易消息。
然而,区块链节点在处理生成新区块的提案请求时,提案请求中所包含的交易所对应的交易消息可能还未被广播到该节点,节点需要等到接收到其他节点广播的交易消息后才能进行交易,降低了交易过程的处理效率。
发明内容
基于上述技术问题,本申请提供一种区块链交易处理的方法、装置、电子设备和可读介质,以能够交易请求在提案请求之前到达区块链节点,避免在处理提案请求的过程中等待广播的交易请求到达,从而减少了交易过程中的等待时间,提高了交易过程的处理效率。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供一种区块链交易处理方法,包括:
接收客户端发送的交易请求;
根据所述交易请求进行签名操作,得到交易签名并向所述客户端发送所述交易签名;
接收所述客户端发送的交易验证请求,其中,所述交易验证请求是所述客户端根据至少两个区块链节点发送的交易签名生成的;
接收提案请求并根据所述交易请求、所述交易验证请求和提案请求生成交易区块,所述提案请求是根据所述交易请求生成的。
根据本申请实施例的一个方面,提供一种区块链交易处理装置,包括:
交易请求接收模块,用于接收客户端发送的交易请求;
签名模块,用于根据所述交易请求进行签名操作,得到交易签名并向所述客户端发送所述交易签名;
验证请求接收模块,用于接收所述客户端发送的交易验证请求,其中,所述交易验证请求是所述客户端根据至少两个区块链节点发送的交易签名生成的;
区块生成模块,用于接收提案请求并根据所述交易请求、所述交易验证请求和提案请求生成交易区块,所述提案请求是根据所述交易请求生成的。
在本申请的一些实施例中,基于以上技术方案,所述交易验证请求中包括聚合签名,所述聚合签名是所述客户端根据所述至少两个区块链节点发送的交易签名进行聚合计算得到的;所述区块链交易处理装置包括:
交易验证模块,用于根据所述交易验证请求中的聚合签名进行交易验证;
第一交易池更新模块,用于若交易验证通过,则将所述交易请求加入到交易池中。
在本申请的一些实施例中,基于以上技术方案,所述区块生成模块,包括:
交易请求比较子模块,用于根据所述提案请求中的交易请求与所述交易池中的交易请求的比较结果,获取待处理的交易请求;
第一交易子模块,用于根据所述待处理的交易请求进行区块链交易,得到交易结果;
第一区块打包子模块,用于将根据所有待处理的交易请求的交易结果打包生成交易区块。
在本申请的一些实施例中,基于以上技术方案,交易请求比较子模块包括:
第一请求确定单元,用于若所述提案请求中的交易请求在所述交易池中存在,则将所述提案请求中的所述交易请求确定为待处理的交易请求;
第一聚合验证单元,用于若所述提案请求中的交易请求在所述交易池中不存在,根据所述提案请求中的交易请求对应的聚合签名进行交易验证;
第二请求确定单元,用于若所述交易验证通过,则将所获得的交易请求确定为待处理的交易请求。
在本申请的一些实施例中,基于以上技术方案,所述提案请求是所述区块链节点根据所述交易请求的交易标识生成的;区块生成模块包括:
交易标识比较子模块,用于根据所述提案请求中的交易标识与所述交易池中的交易请求的匹配结果,获取待处理的交易请求;
第二交易子模块,用于根据所述待处理的交易请求进行区块链交易,得到交易结果;
第二区块打包子模块,用于将根据所有待处理的交易请求的交易结果打包生成交易区块。
在本申请的一些实施例中,基于以上技术方案,所述交易标识比较子模块包括:
请求获取单元,用于若所述交易池中包含对应于所述提案请求中交易标识的交易请求,则从所述交易池中获取对应于所述交易标识的交易请求;
待验证请求获取单元,用于若所述交易池中不包含对应于所述提案请求中交易标识的交易请求,根据所述交易标识获取待验证请求,所述待验证请求是来自另一区块链节点的交易请求;
第二聚合验证单元,用于根据所述待验证请求对应的聚合签名进行交易验证;
第三请求确定单元,用于若所述交易验证通过,则将所述待验证请求确定为待处理的交易请求。
在本申请的一些实施例中,基于以上技术方案,所述区块链交易处理装置还包括:
提案请求生成模块,用于对至少一个交易请求的交易标识进行打包,生成提案请求;
提案请求发送模块,用于向区块链系统中的各个区块链节点发送所述提案请求,以使所述各个区块链节点根据所述交易请求、所述交易验证请求和提案请求生成交易区块。
在本申请的一些实施例中,基于以上技术方案,所述区块链交易处理装置还包括:
广播消息生成模块,用于根据所述交易签名和所述交易请求生成交易广播消息;
广播消息发送模块,用于向区块链系统中的其他区块链节点发送所述交易广播消息。
在本申请的一些实施例中,基于以上技术方案,所述区块链交易处理装置还包括:
广播消息接收模块,用于接收所述区块链系统中的至少两个区块链节点发送的交易广播消息;
广播消息验证模块,用于若未接收到所述客户端发送的所述交易签名请求,根据所述交易广播消息中的交易签名进行交易验证;
第二交易池更新模块,用于若交易验证通过,则将所述交易请求加入到交易池中。
在本申请的一些实施例中,基于以上技术方案,所述签名模块包括:
客户端签名验证单元,用于根据所述交易请求中的客户端签名进行签名验证,所述客户端签名用于标识所述客户端;
交易标识获取单元,用于若签名验证通过,获取所述交易请求中的交易标识;
交易标识签名单元,用于对所述交易标识进行签名计算,得到交易签名。
根据本申请实施例的一个方面,提供一种区块链交易处理方法,包括:
向区块链系统的各个区块链节点发送交易请求;
接收所述各个区块链节点发送的交易签名,所述交易签名是所述区块链节点对所述交易请求进行签名操作生成的;
根据所接收到的交易签名进行签名聚合,得到交易验证请求;
向所述各个区块链节点发送所述交易验证请求,以使所述区块链节点根据所述交易请求、所述交易验证请求和提案请求生成交易区块,其中,所述提案请求是所述区块链节点根据所述交易请求生成的。
根据本申请实施例的一个方面,提供一种区块链交易处理装置,包括:
交易请求发送模块,用于向区块链系统的各个区块链节点发送交易请求;
签名接收模块,用于接收所述各个区块链节点发送的交易签名,所述交易签名是所述区块链节点对所述交易请求进行签名操作生成的;
签名聚合模块,用于根据所接收到的交易签名进行签名聚合,得到交易验证请求;
验证请求发送模块,用于向所述各个区块链节点发送所述交易验证请求,以使所述区块链节点根据所述交易请求、所述交易验证请求和提案请求生成交易区块,其中,所述提案请求是所述区块链节点根据所述交易请求生成的。
根据本申请实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,该处理器配置为经由执行可执行指令来执行如以上技术方案中的区块链交易处理方法。
根据本申请实施例的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,当该计算机程序被处理器执行时实现如以上技术方案中的区块链交易处理方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供区块链交易处理方法。
在本申请的实施例中,区块链节点接收客户端发送的交易签名请求,然后对交易签名请求进行验签操作,生成交易签名并向客户端发送该交易签名。随后,接收所述客户端发送的交易请求,交易请求是客户端根据至少两个区块链节点发送的交易签名生成的。区块链节点还接收其他节点发起的提案请求并根据提案请求和交易请求生成交易区块。通过上述的方式,在进行区块链交易的过程中,由于客户端先收集区块链节点的交易签名,并根据签名直接向区块链节点发起交易请求,使得区块链节点在接收到根据交易请求生成的提案请求时,已经接收到过交易请求,从而能够交易请求在提案请求之前到达区块链节点,避免在处理提案请求的过程中等待广播的交易请求到达,从而减少了交易过程中的等待时间,提高了交易过程的处理效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的分布式系统应用于区块链系统的一个可选的结构示意图。
图2是本发明实施例提供的区块结构一个可选的示意图。
图3为在相关技术中验签过程的流程示意图。
图4为本申请实施例中一种区块链交易处理方法的示意流程图。
图5为本申请实施例中客户端请求的示意图。
图6为本申请实施例中交易验证请求的结构示意图。
图7示出了本申请实施例中交易的详细过程的示意图。
图8为本申请实施例中提案请求变化的示意图。
图9为本申请实施例中提案请求的处理流程的示意流程图。
图10示意性地示出了本申请实施例中区块链交易处理装置的组成框图。
图11示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,本申请的方案可以应用于区块链系统中,并且具体可以应用于区块链系统中的客户端进行交易的场景。在区块链系统中进行交易的过程中,用户想要进行交易时可以通过客户端发起交易。客户端会向区块链中的节点发送交易请求,区块链节点则在验证所接收到的交易之后,广播给其他节点。当区块链系统中进行区块上链时,在将验证的交易打包上链。通过本申请的方案,客户端会向区块链系统中的所有节点广播其交易消息,而各个区块链节点在接收到客户端的交易消息后会对交易消息进行签名,将签名发送给客户端,客户端则会根据从各个区块链节点接收到的所有签名向所有的区块链节点广播基于多个签名进行的交易。在后续的交易上链过程中,区块链节点会根据基于多个签名进行的交易来进行上链操作。
本发明实施例涉及的区块链系统可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成的分布式系统。
参见图1,图1是本发明实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端形成,节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P 协议是一个运行在传输控制协议(TCP,Transmission Control Protocol )协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图1示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行虚拟资产的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询虚拟资产地址中剩余的虚拟资产;
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的虚拟资产转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
参见图2,图2是本发明实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
可以理解的是,本申请的方案可以在上述的区块链系统中可以用于客户端提出交易以及各个区块链节点进行交易的过程。下面结合具体实施方式对本申请提供的技术方案做出详细说明。
在相关技术中的验签过程如下:客户端在向区块链的共识发送交易消息时,会将交易消息发送给区块链的某个共识节点。该共识节点会通过广播的方式将交易消息发送给其他节点,其他节点在接收到交易消息时,也会继续对该交易消息进行广播,直到区块链中所有的节点都收到这个交易消息位置。区块链中的领导节点在生成提案消息时,会将交易消息打包,并且发送给区块链中的其他节点,从而触发各个节点将新的区块上链。为了便于介绍,请参阅图3,图3为在相关技术中验签过程的流程示意图。客户端向节点3发送交易请求。节点3在本地进行验签过后向客户端发送响应,并且把交易加入到本地交易池。随后节点3向节点2、节点1和节点0广播该交易。各个节点在接收到该交易之后各自进行验签并加入到本地的交易池中。
为了便于介绍,请参阅图4,图4为本申请实施例中一种区块链交易处理方法的示意流程图。该方法可以应用于上述的区块链节点中。区块链节点可以被视为一种计算机设备,在本申请实施例中,以区块链节点的计算机设备作为执行主体来对区块链交易处理方法进行介绍,该区块链交易处理方法可以包括如下的步骤S310至S340:
步骤S310,接收客户端发送的交易请求。
客户端可以是在区块链节点中的任意一个节点上运行的软件应用。用户通过客户端来发起交易,并且输入进行交易所需要的交易信息,例如交易内容、交易对象以及身份验证信息等。具体地,在区块链节点中,身份验证信息可以通过加密密钥的形式来实现,例如,通过用户的私钥来交易内容进行加密来证明自己的身份。交易信息会放入交易请求中,并且被发送给区块链节点。
步骤S320,根据交易请求进行签名操作,得到交易签名并向客户端发送交易签名。
区块链节点根据所接收到交易请求进行签名操作,得到交易签名。可以理解,区块链节点在签名之前会对交易请求中的内容进行验证操作,例如通过客户端的公钥来验证客户端身份以及根据本地存储的信息来验证交易请求中的内容是否合法和有效等等。验证通过后,区块链节点可以根据完整的交易请求或者交易请求中的部分信息来签名操作,从而得到交易签名。所生成的交易签名可以采用响应信息的形式发送给客户端。
步骤S330,接收客户端发送的交易验证请求,其中,交易验证请求是客户端根据至少两个区块链节点发送的交易签名生成的。
交易验证请求是客户端根据至少两个区块链节点发送的交易签名生成的。具体地,生成交易验证请求所涉及的交易签名的数量与区块链节点的数量以及生成规则相关。在客户端向所有区块链节点发送交易请求的情况下,客户端预期会接收到所有区块链节点返回的交易签名,交易验证请求则是根据所有区块链节点返回的交易签名生成的。交易验证请求的生成规则可以变化,例如,可以规定只要客户端接收到一定数量的交易签名或者某个比例的区块链节点的交易签名就可以生成交易验证请求。交易验证请求中通常包括对应的交易请求的交易信息以及根据区块链节点发送的交易签名生成的验证信息,例如联合签名、门限签名、聚合签名或者直接包含客户端所接收到的所有交易签名。在一个实施例中,交易验证请求中可以只包括交易请求的标识(例如交易ID)以及签名,而不包含对应于实际交易内容的交易信息。
步骤S340,接收提案请求并根据交易请求、交易验证请求和提案请求生成交易区块,提案请求是根据交易请求生成的。
提案请求是用于使区块链节点将新区块上链的请求。提案请求通常由区块链系统中的一部分节点生成并发送给其他区块链节点。接收到提案请求的节点根据将提案请求中的所涉及的交易打包成新的区块并且上链。提案请求通常由区块链中的一部分节点生成,例如,由共识节点或者由领导节点根据预设的条件生成,例如根据区块链中发生交易的数量或者根据时间来作为判断条件。区块链节点会根据提案请求确定本次需要打包的交易,并且根据该交易对应的交易请求和交易验证请求来对交易进行验证并且执行交易。提案请求中通常还包括其他的交易,所有的交易都验证通过后,则根据交易所涉及的各类交易信息,例如根据交易请求的信息和交易的结果生成新的区块并且在区块链中上链。
在本申请的实施例中,区块链节点接收客户端发送的交易签名请求,然后对交易签名请求进行验签操作,生成交易签名并向客户端发送该交易签名。随后,接收客户端发送的交易请求,交易请求是客户端根据至少两个区块链节点发送的交易签名生成的。区块链节点还接收其他节点发起的提案请求并根据提案请求和交易请求生成交易区块。通过上述的方式,在进行区块链交易的过程中,由于客户端先收集区块链节点的交易签名,并根据签名直接向区块链节点发起交易请求,使得区块链节点在接收到根据交易请求生成的提案请求时,已经接收到过交易请求,从而能够交易请求在提案请求之前到达区块链节点,避免在处理提案请求的过程中等待广播的交易请求到达,从而减少了交易过程中的等待时间,提高了交易过程的处理效率。
在本申请的一个实施例中,基于上述的技术方案,交易验证请求中包括聚合签名,聚合签名是客户端根据至少两个区块链节点发送的交易签名进行聚合计算得到的;上述步骤S330中接收客户端发送的交易验证请求之后,该方法还包括:
根据交易验证请求中的聚合签名进行交易验证;
若交易验证通过,则将交易请求加入到交易池中。
具体地,聚合签名是客户端根据各个区块链节点返回的交易签名进行签名聚合计算后得到的签名。根据聚合签名,区块链节点可以对该交易请求是否被其他节点验证进行核对。例如,区块链中存在4个区块链节点,则聚合签名通常是根据这4个区块链节点对交易请求的交易签名生成的。在区块链节点接收到聚合签名后,可以根据聚合签名验证其他区块链节点对交易请求的签名结果。如果交易验证通过,则表示该交易得到区块链节点的认可,属于合法交易,可以将该交易请求加入到交易池中。交易池中的交易请求通常是已经得到验证但还未上链的交易请求。在一个实施例中,代替交易请求,可以从交易请求中提出与交易相关的交易信息加入到交易池中。
在本申请的实施例中,根据聚合签名来对交易进行交易验证,并且在验证通过后将交易请求加入到交易池中,使得可以根据客户端的请求来进行签名验证,而不需要等待其他区块链节点的广播,从而避免广播过程影响交易消息的接收,提升交易过程的总体效率。
在本申请的一个实施例中,基于上述的技术方案,上述步骤S340,根据交易请求、交易验证请求和提案请求生成交易区块,可以包括如下步骤:
根据提案请求中的交易请求与交易池中的交易请求的比较结果,获取待处理的交易请求;
根据待处理的交易请求进行区块链交易,得到交易结果;
将根据所有待处理的交易请求的交易结果打包生成交易区块。
在本实施例中,提案请求是根据交易请求或者交易请求中的交易信息打包生成的。以交易请求为例,提案请求通常包含根据打包的交易请求进行签名得到的签名结果。区块链节点首先会根据签名结果验证提案请求的合法性和有效性。在确认提案请求正常后,会遍历提案请求中的各个交易请求。在遍历的过程中,对于各个交易请求,首先区块链节点将该交易请求与本地的交易池中的交易请求进行比较,根据比较的结果获取待处理的交易请求。获取的方式可以是如果交易请求在交易池中存在,则获取交易池中的交易请求作为待处理的交易请求,否则,则获取提案请求中的交易请求作为待处理交易请求。根据所获取的待处理的交易请求可以进行区块链交易,例如根据交易内容和本地的账本计算交易数据,从而得到交易结果。对于提案请求中包含的交易请求都执行上述过程,可以得到所有待处理的交易请求的交易结果。可以理解的是,提案请求中的每个交易请求都会被处理而得到对应的交易结果。随后,将所有交易结果打包生成交易区块。打包的内容还可以包括交易请求以及对交易结果的签名等相关的信息。
在本申请的一个实施例中,基于上述的技术方案,上述步骤,根据提案请求中的交易请求与交易池中的交易请求的比较结果,获取待处理的交易请求,可以包括如下步骤:
若提案请求中的交易请求在交易池中存在,则将提案请求中的交易请求确定为待处理的交易请求;
若提案请求中的交易请求在交易池中不存在,根据提案请求中的交易请求对应的聚合签名进行交易验证;
若交易验证通过,则将所获得的交易请求确定为待处理的交易请求。
具体地,若提案请求中的交易请求在交易池中存在,则表示该交易请求在交易验证请求的过程中已经进行过验证,因此不需要进行验证,可以直接将提案请求中的交易请求确定为待处理的交易请求。在一个实施例中,由于提案请求和交易池中都包括该交易请求,因此,也可以从交易池中获取交易请求作为待处理的交易请求。若提案请求中的交易请求在交易池中不存在,则表示之前有客户端发起的通信过程出现问题,因此获取提案请求中的交易请求。随后,根据交易请求对应的聚合签名来进行交易验证。具体地,聚合签名的获取方式可以从来自客户端的交易验证请求中获取,也可以根据交易请求从其他区块链节点查询来获取该聚合签名。如果交易验证通过,则将所获得的提案请求中的交易请求确定为待处理的交易请求。
在本实施例中,根据提案请求中的交易请求来进行确定待处理的交易请求并进行交易,从而能够在区块链节点的本地交易池中没有相关交易时从提案请求中获取交易信息,降低交易链路故障的影响,提高交易过程的稳定性。
在本申请的一个实施例中,基于上述的技术方案,提案请求是区块链节点根据交易请求的交易标识生成的;上述步骤S340,根据交易请求、交易验证请求和提案请求生成交易区块,可以包括如下的步骤:
根据提案请求中的交易标识与交易池中的交易请求的匹配结果,获取待处理的交易请求;
根据待处理的交易请求进行区块链交易,得到交易结果;
将根据所有待处理的交易请求的交易结果打包生成交易区块。
在本实施例中,提案请求是根据交易请求的交易标识生成的,即,在提案请求中不包含交易请求中的交易内容。区块链节点根据提案请求中的交易标识与交易池中的交易请求的匹配结果,获取待处理的交易请求。具体地,区块链节点可以根据交易标识从交易池中查询对应的交易请求作为待处理的交易请求。随后,区块链节点根据待处理的交易请求进行区块链交易,例如根据交易内容和本地的账本计算交易数据,从而得到交易结果。然后将根据所有待处理的交易请求的交易结果打包生成交易区块。对于提案请求中包含的交易标识都执行上述过程,可以得到所有待处理的交易请求的交易结果。可以理解的是,提案请求中的每个交易标识都会被处理而得到对应的交易结果。随后,将所有交易结果打包生成交易区块。打包的内容还可以包括交易标识以及对交易结果的签名等相关的信息。
在本申请的一个实施例中,基于上述的技术方案,上述步骤,根据提案请求中的交易标识与交易池中的交易请求的匹配结果,获取待处理的交易请求,可以包括如下步骤:
若交易池中包含对应于提案请求中交易标识的交易请求,则从交易池中获取对应于交易标识的交易请求;
若交易池中不包含对应于提案请求中交易标识的交易请求,根据交易标识获取待验证请求,待验证请求是来自另一区块链节点的交易请求;
根据待验证请求对应的聚合签名进行交易验证;
若交易验证通过,则将待验证请求确定为待处理的交易请求。
具体地,若交易池中包含对应于提案请求中交易标识的交易请求,则表示该交易请求在交易验证请求的过程中已经进行过验证,因此不需要进行验证,直接根据交易标识获取交易池中的交易请求作为待处理的交易请求。若提案请求中的交易请求在交易池中不存在,则表示之前有客户端发起的通信过程出现问题,则需要根据交易标识获取待验证请求,待验证请求是来自另一区块链节点的交易请求。该交易请求可以是其他区块链节点在生成交易签名之后广播的交易请求,也可以是根据交易标识向其他区块链节点主动查询得到的。在获取到待验证请求后,则根据待验证请求对应的聚合签名进行交易验证。聚合签名可以从接收到的交易验证请求中获得,如果没有接收到交易验证请求,可以向其他区块链节点主动查询。如果交易验证通过,则将所获得的提案请求中的交易请求确定为待处理的交易请求。
在本实施例中,根据提案请求中的交易标识来进行确定待处理的交易请求并进行交易,从而能够减少提案请求的数据量,从而降低传输提案请求的链路消耗,提升交易的执行效率。
在本申请的一个实施例中,基于上述的技术方案,在上述步骤S340,接收提案请求之前,方法还包括:
对至少一个交易请求的交易标识进行打包,生成提案请求;
向区块链系统中的各个区块链节点发送提案请求,以使各个区块链节点根据交易请求、交易验证请求和提案请求生成交易区块。
具体地,区块链节点会根据预设的条件来判断是否需要生成提案请求,例如根据时间或者交易数量来判断。在满足条件的情况下,区块链节点可以对至少一个交易请求的交易标识进行打包,生成提案请求。具体地,交易请求可以从本地的交易池中获得。随后,区块链节点向区块链系统中的各个区块链节点发送提案请求,以使各个区块链节点根据交易请求、交易验证请求和提案请求生成交易区块。具体地,提案请求可以广播的形式发出,其他的区块链节点在接收到提案请求之后也会将该请求广播出去,从而加快提案请求的传播效率。
在本申请的一个实施例中,基于上述的技术方案,在步骤S320,向客户端发送交易签名之后,方法还包括:
根据交易签名和交易请求生成交易广播消息;
向区块链系统中的其他区块链节点发送交易广播消息。
具体地,区块链节点在向客户端发送交易签名,根据所生成的交易签名和接收到的交易请求打包生成交易广播消息。该交易广播消息会被区块链节点转发给区块链系统中的所有其他区块链节点。也就是说,每个区块链节点都会接收到其他区块链节点发送的交易广播消息。从交易广播消息中则可以获取到对应的交易请求。通过上述的方式可以为区块链节点提供额外的接收交易请求的方式,从而在客户端发送的交易请求出现故障时作为补充,提升方案的鲁棒性。
在本申请的一个实施例中,基于上述的技术方案,在上述步骤S330,接收客户端发送的交易验证请求之前,方法还包括:
接收区块链系统中的至少两个区块链节点发送的交易广播消息;
若未接收到客户端发送的交易签名请求,根据交易广播消息中的交易签名进行交易验证;
若交易验证通过,则将交易请求加入到交易池中。
在本实施例中,区块链节点会从区块链系统中的至少两个区块链节点接收到交易广播消息。可以理解的是,这些交易广播消息是基于同一个交易请求生成的。随后,如果未接收到客户端发送的交易签名请求,则根据交易广播消息中的交易签名进行交易验证。具体地,区块链节点可以在接收到交易请求后启动一个计时器,在计时器到期后再判断是否接收到客户端发送的交易签名请求。如果未接收到交易签名请求,则仍可以进一步根据其他区块链节点发送的交易广播消息来进行交易验证。具体地,可以从交易广播消息中的其他区块链节点的交易签名。根据所有其他区块链节点的交易签名以及本地的交易签名,则可以按照客户端的方式进行签名聚合或者门限签名等方式,从而进行交易验证。如果交易验证通过,则可以将交易请求加入到交易池中。
在本申请的实施例中,通过交易广播消息的内容进行交易验证,从而可以避免交易签名请求丢失而影响交易过程,提升交易的稳定性。
在本申请的一个实施例中,基于上述的技术方案,上述步骤S320,根据交易请求进行签名操作,得到交易签名,包括如下的步骤:
根据交易请求中的客户端签名进行签名验证,客户端签名用于标识客户端;
若签名验证通过,获取交易请求中的交易标识;
对交易标识进行签名计算,得到交易签名。
在本实施例中,交易签名是根据交易请求的交易标识进行签名得到的。具体地,区块链节点在接收到交易请求之后,首先会根据交易请求中的客户端签名进行签名验证,客户端签名用于标识客户端。客户端签名通常可以采用公私钥的方式来实现,客户端利用私钥来对交易内容进行签名,例如对交易标识进行签名,得到客户端签名,而区块链节点根据对应的公钥来对客户端签名进行验证。若签名验证通过,则区块链节点获取交易请求中的交易标识,并且对交易标识进行签名计算,得到交易签名。
例如,在一个实施例中,交易信息中通常会包括当前交易所在的区块的hash值、当前交易所在的区块号、发起交易的账户、当前交易hash值、部署智能合约交易的16进制代码、交易签名和用去决定交易的发送者的对应值、交易接受者地址、交易序号、交易项目的数量等。在本申请的方案中,可以将当前交易的hash值作为交易标识,并且在计算签名时,客户端利用私钥来对当前交易的hash值进行签名,得到计算出的一系列加密信息作为客户端签名。而区块链节点则可以根据公钥来验证所得到的客户端签名是否能够与当前交易hash值相匹配,从而得到验证结果。根据该示例可见,整个交易信息中所包括的信息量明显比其中一个或者几个字段的数据量大。取决于交易信息的构成不同,单笔交易的交易信息可以包括几百至几千字节或者更多字节的信息,而其中的交易标识通常只有几个字节或者十几个字节,签名所需要的数据量大大降低。通过基于交易标识进行签名来得到交易签名,而非对整个交易请求进行签名,从而减少传输的请求中所需要的数据量,节约通信资源。
下面对本申请的实施例中另一个实施例中的区块链交易处理方法。该方法可以应用于上述的客户端中。客户端可以被视为一种计算机设备,在本申请实施例中,以客户端的计算机设备作为执行主体来对区块链交易处理方法进行介绍,该区块链交易处理方法可以包括如下的步骤:
向区块链系统的各个区块链节点发送交易请求;
接收各个区块链节点发送的交易签名,交易签名是区块链节点对交易请求进行签名操作生成的;
根据所接收到的交易签名进行签名聚合,得到交易验证请求;
向各个区块链节点发送交易验证请求,以使区块链节点根据交易请求、交易验证请求和提案请求生成交易区块,其中,提案请求是区块链节点根据交易请求生成的。
在本实施例中,客户端根据用户发起的交易生成交易请求。之后,客户端向区块链系统的各个区块链节点发送交易请求。各个区块链节点会根据交易请求进行签名,并且返回交易签名。客户端接收各个区块链节点发送的交易签名。客户端在接收到足够数量的交易签名后,会根据所接收到的交易签名进行签名聚合,得到交易验证请求。随后,客户端向各个区块链节点发送交易验证请求。区块链节点在接收到交易验证请求之后会进行验证,并且在验证通过后将交易请求加入到交易池中,并且在后续根据提案请求执行交易过程。
应当注意,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
下面以区块链系统为例,结合具体示例来描述本申请中的区块链交易处理方法的方案。
为了便于介绍,请参阅图5,图5为本申请实施例中客户端请求的示意图。如图5所示,区块链系统中存在4个节点,其中,节点0到节点2为验证节点,节点3为领导节点。客户端会向所有的4个节点发送交易请求(TxRequest1),并且从节点接收到交易签名。随后客户端将交易签名进行签名聚合,并且再向所有的4个节点发送交易验证请求(Request)。各个节点在返回签名后会向其他节点广播交易信息。节点3在满足一定条件之后会发起提案请求来生成新的区块。交易验证请求(Request)的具体接口可以参考图6。图6为本申请实施例中交易验证请求的结构示意图。交易验证请求(Request)中包括交易标识(TxID)以及各个节点返回的交易签名(Sign0至Sign3)。
图7示出了本申请实施例中交易的详细过程的示意图。如图7所示,客户端会向各个节点发送交易请求。各个节点则会分别验证接收到的交易请求并且生成交易签名。随后将交易签名返回客户端。之后。区块链节点会相互广播其交易请求。客户端根据接收到各个交易签名进行聚合签名计算,得到聚合签名。随后,客户端将包括聚合签名的请求发送给各个区块链节点。区块链节点则会根据含有聚合签名的请求来进行验证,并且在验证通过后将交易请求加入到交易池中。并且向客户端返回响应。图7中还示出了故障情况。客户端由于通信链路问题等而没有将交易请求发送给节点1。因此,在后续的过程中,节点1在接收到含有聚合签名的请求并且验证通过后,从其他节点获取交易请求,并且将交易请求加入到交易池中。
区块链节点会生成提案请求来生成新区块。图8为本申请实施例中提案请求变化的示意图。提案请求可以基于交易请求生成,如图8所示,提案请求根据交易请求0至交易请求2生成,并且包含基于交易请求0至2生成的签名。在本申请中,提案请求中所包含的是交易请求的交易标识TxID0至TxID2,以及根据交易标识生成的签名。
基于提案请求,区块链节点会生成交易区块。请参阅图9,图9为本申请实施例中提案请求的处理流程的示意流程图。如图9所示,区块链节点会遍历提案请求中的交易标识,并且对交易标识逐一进行处理。对于每个交易标识,首先判断该交易标识是否存在于区块链节点的交易池中。如果存在,则直接从交易池中取出交易请求,并且按照交易请求执行交易,随后迭代下一个交易。如果交易标识在区块链节点的交易池中不存在,则从其他区块链节点获取交易请求,并且根据交易签名进行验证,得到验证结果。如果验证结果指示验证成功,则按照交易请求执行交易。否则,如果验证结果指示验证失败,则记录该验证失败并且继续进行下一个交易请求的迭代。
以下介绍本申请的装置实施,可以用于执行本申请上述实施例中的区块链交易处理方法。图10示意性地示出了本申请实施例中区块链交易处理装置的组成框图。如图10所示,区块链交易处理装置900主要可以包括:
交易请求接收模块910,用于接收客户端发送的交易请求;
签名模块920,用于根据所述交易请求进行签名操作,得到交易签名并向所述客户端发送所述交易签名;
验证请求接收模块930,用于接收所述客户端发送的交易验证请求,其中,所述交易验证请求是所述客户端根据至少两个区块链节点发送的交易签名生成的;
区块生成模块940,用于接收提案请求并根据所述交易请求、所述交易验证请求和提案请求生成交易区块,所述提案请求是根据所述交易请求生成的。
在本申请的一些实施例中,基于以上技术方案,所述交易验证请求中包括聚合签名,所述聚合签名是所述客户端根据所述至少两个区块链节点发送的交易签名进行聚合计算得到的;所述区块链交易处理装置900包括:
交易验证模块,用于根据所述交易验证请求中的聚合签名进行交易验证;
第一交易池更新模块,用于若交易验证通过,则将所述交易请求加入到交易池中。
在本申请的一些实施例中,基于以上技术方案,所述区块生成模块940,包括:
交易请求比较子模块,用于根据所述提案请求中的交易请求与所述交易池中的交易请求的比较结果,获取待处理的交易请求;
第一交易子模块,用于根据所述待处理的交易请求进行区块链交易,得到交易结果;
第一区块打包子模块,用于将根据所有待处理的交易请求的交易结果打包生成交易区块。
在本申请的一些实施例中,基于以上技术方案,交易请求比较子模块包括:
第一请求确定单元,用于若所述提案请求中的交易请求在所述交易池中存在,则将所述提案请求中的所述交易请求确定为待处理的交易请求;
第一聚合验证单元,用于若所述提案请求中的交易请求在所述交易池中不存在,根据所述提案请求中的交易请求对应的聚合签名进行交易验证;
第二请求确定单元,用于若所述交易验证通过,则将所获得的交易请求确定为待处理的交易请求。
在本申请的一些实施例中,基于以上技术方案,所述提案请求是所述区块链节点根据所述交易请求的交易标识生成的;区块生成模块940包括:
交易标识比较子模块,用于根据所述提案请求中的交易标识与所述交易池中的交易请求的匹配结果,获取待处理的交易请求;
第二交易子模块,用于根据所述待处理的交易请求进行区块链交易,得到交易结果;
第二区块打包子模块,用于将根据所有待处理的交易请求的交易结果打包生成交易区块。
在本申请的一些实施例中,基于以上技术方案,所述交易标识比较子模块包括:
请求获取单元,用于若所述交易池中包含对应于所述提案请求中交易标识的交易请求,则从所述交易池中获取对应于所述交易标识的交易请求;
待验证请求获取单元,用于若所述交易池中不包含对应于所述提案请求中交易标识的交易请求,根据所述交易标识获取待验证请求,所述待验证请求是来自另一区块链节点的交易请求;
第二聚合验证单元,用于根据所述待验证请求对应的聚合签名进行交易验证;
第三请求确定单元,用于若所述交易验证通过,则将所述待验证请求确定为待处理的交易请求。
在本申请的一些实施例中,基于以上技术方案,所述区块链交易处理装置900还包括:
提案请求生成模块,用于对至少一个交易请求的交易标识进行打包,生成提案请求;
提案请求发送模块,用于向区块链系统中的各个区块链节点发送所述提案请求,以使所述各个区块链节点根据所述交易请求、所述交易验证请求和提案请求生成交易区块。
在本申请的一些实施例中,基于以上技术方案,所述区块链交易处理装置900还包括:
广播消息生成模块,用于根据所述交易签名和所述交易请求生成交易广播消息;
广播消息发送模块,用于向区块链系统中的其他区块链节点发送所述交易广播消息。
在本申请的一些实施例中,基于以上技术方案,所述区块链交易处理装置900还包括:
广播消息接收模块,用于接收所述区块链系统中的至少两个区块链节点发送的交易广播消息;
广播消息验证模块,用于若未接收到所述客户端发送的所述交易签名请求,根据所述交易广播消息中的交易签名进行交易验证;
第二交易池更新模块,用于若交易验证通过,则将所述交易请求加入到交易池中。
在本申请的一些实施例中,基于以上技术方案,所述签名模块920包括:
客户端签名验证单元,用于根据所述交易请求中的客户端签名进行签名验证,所述客户端签名用于标识所述客户端;
交易标识获取单元,用于若签名验证通过,获取所述交易请求中的交易标识;
交易标识签名单元,用于对所述交易标识进行签名计算,得到交易签名。
根据本申请实施例的一个方面,提供一种区块链交易处理装置,包括:
交易请求发送模块,用于向区块链系统的各个区块链节点发送交易请求;
签名接收模块,用于接收所述各个区块链节点发送的交易签名,所述交易签名是所述区块链节点对所述交易请求进行签名操作生成的;
签名聚合模块,用于根据所接收到的交易签名进行签名聚合,得到交易验证请求;
验证请求发送模块,用于向所述各个区块链节点发送所述交易验证请求,以使所述区块链节点根据所述交易请求、所述交易验证请求和提案请求生成交易区块,其中,所述提案请求是所述区块链节点根据所述交易请求生成的。
需要说明的是,上述实施例所提供的装置与上述实施例所提供的方法属于同一构思,其中各个模块执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
图11示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图11示出的电子设备的计算机系统1000仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图11所示,计算机系统1000包括中央处理单元(Central Processing Unit,CPU)1001,其可以根据存储在只读存储器(Read-Only Memory,ROM)1002中的程序或者从储存部分1008加载到随机访问存储器(Random Access Memory,RAM)1003中的程序而执行各种适当的动作和处理。在RAM 1003中,还存储有系统操作所需的各种程序和数据。CPU1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(Input /Output,I/O)接口1005也连接至总线1004。
以下部件连接至I/O接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1007;包括硬盘等的储存部分1008;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入储存部分1008。
特别地,根据本申请的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理单元(CPU)1001执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (13)
1.一种区块链交易处理方法,其特征在于,包括:
接收客户端发送的交易请求;
对所述交易请求的内容进行合法性和有效性验证,在对所述交易请求的内容进行合法性和有效性验证之后,对所述交易请求中的交易标识进行签名操作,得到交易签名并向所述客户端发送所述交易签名;
接收所述客户端发送的交易验证请求,其中,所述交易验证请求中包括所述交易标识、聚合签名并且所述交易验证请求中不包含对应于所述交易请求的内容的交易信息,所述聚合签名是所述客户端根据至少两个区块链节点对所述交易请求进行合法性和有效性验证之后发送的所述交易签名进行聚合计算得到的;
根据所述交易验证请求中的聚合签名进行交易验证;
若根据所述聚合签名对交易验证通过,则将所述交易请求加入到交易池中;
接收提案请求,所述提案请求是提案节点根据需要上链的交易请求生成的,所述提案请求用于使区块链节点生成交易区块;
若所述提案请求中包含的交易请求存在于所述交易池中,则不验证所述提案请求中包含的交易请求并根据所述提案请求中包含的交易请求进行区块链交易,得到交易结果;
将所述提案请求中包含的交易请求的交易结果打包生成交易区块。
2.根据权利要求1所述的方法,其特征在于,所述方法包括:
若所述提案请求中的交易请求在所述交易池中不存在,则根据所述提案请求中的交易请求对应的聚合签名进行交易验证;
根据交易验证通过的交易请求进行区块链交易,得到所述交易结果。
3.根据权利要求1所述的方法,其特征在于,所述提案请求是所述区块链节点根据所述交易请求的交易标识生成的;所述接收提案请求之后,所述方法包括:
若所述提案请求中包含的交易标识存在于所述交易池中,则根据所述提案请求中包含的交易标识所对应的交易请求进行区块链交易,得到交易结果;
将所述提案请求中包含的交易请求的交易结果打包生成交易区块。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述交易池中不包含对应于所述提案请求中交易标识的交易请求,根据所述交易标识获取待验证请求,所述待验证请求是来自另一区块链节点的交易请求;
根据所述待验证请求对应的聚合签名进行交易验证;
根据交易验证通过的交易请求进行区块链交易,得到所述交易结果。
5.根据权利要求3所述的方法,其特征在于,所述接收提案请求之前,所述方法还包括:
对至少一个交易请求的交易标识进行打包,生成提案请求;
向区块链系统中的各个区块链节点发送所述提案请求,以使所述各个区块链节点根据所述交易请求、所述交易验证请求和提案请求生成交易区块。
6.根据权利要求1所述的方法,其特征在于,所述向所述客户端发送所述交易签名之后,所述方法还包括:
根据所述交易签名和所述交易请求生成交易广播消息;
向区块链系统中的其他区块链节点发送所述交易广播消息。
7.根据权利要求6所述的方法,其特征在于,所述接收所述客户端发送的交易验证请求之前,所述方法还包括:
接收所述区块链系统中的至少两个区块链节点发送的交易广播消息;
若未接收到所述客户端发送的所述交易签名请求,根据所述交易广播消息中的交易签名进行交易验证;
若交易验证通过,则将所述交易请求加入到交易池中。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述对所述交易请求中的交易标识进行签名操作,得到交易签名,包括:
根据所述交易请求中的客户端签名进行签名验证,所述客户端签名用于标识所述客户端;
若签名验证通过,获取所述交易请求中的交易标识;
对所述交易标识进行签名计算,得到交易签名。
9.一种区块链交易处理方法,其特征在于,包括:
向区块链系统的各个区块链节点发送交易请求;
接收所述各个区块链节点发送的交易签名,所述交易签名是所述区块链节点对所述交易请求的内容进行合法性和有效性验证,在对所述交易请求的内容进行合法性和有效性验证之后对所述交易请求中的交易标识进行签名操作生成的;
根据所接收到的交易签名进行签名聚合,得到交易验证请求,所述交易验证请求中包括所述交易标识、聚合签名并且不包含对应于所述交易请求的内容的交易信息;
向所述各个区块链节点发送所述交易验证请求,以使所述区块链节点根据所述交易验证请求中的聚合签名进行交易验证,若根据所述聚合签名对交易验证通过,则将所述交易请求加入到交易池中,接收提案请求,其中,所述提案请求是提案节点根据需要上链的,所述提案请求用于使区块链节点生成交易区块,若所述提案请求中包含的交易请求存在于所述交易池中,则不验证所述提案请求中包含的交易请求并根据所述提案请求中包含的交易请求进行区块链交易,得到交易结果,将所述提案请求中包含的交易请求的交易结果打包生成交易区块。
10.一种区块链交易处理装置,其特征在于,包括:
交易请求接收模块,用于接收客户端发送的交易请求;
签名模块,用于对所述交易请求的内容进行合法性和有效性验证,在对所述交易请求的内容进行合法性和有效性验证之后,对所述交易请求中的交易标识进行签名操作,得到交易签名并向所述客户端发送所述交易签名;
验证请求接收模块,用于接收所述客户端发送的交易验证请求,其中,所述交易验证请求中包括所述交易标识、聚合签名并且所述交易验证请求中不包含对应于所述交易请求的内容的交易信息,所述聚合签名是所述客户端根据至少两个区块链节点对所述交易请求进行合法性和有效性验证之后发送的所述交易签名进行聚合计算得到的;
交易验证模块,用于根据所述交易验证请求中的聚合签名进行交易验证;
第一交易池更新模块,用于若根据所述聚合签名对交易验证通过,则将所述交易请求加入到交易池中;
区块生成模块,用于接收提案请求,所述提案请求是提案节点根据需要上链的交易请求生成的,所述提案请求用于使区块链节点生成交易区块;
第一交易子模块,用于若所述提案请求中包含的交易请求存在于所述交易池中,则不验证所述提案请求中包含的交易请求并根据所述提案请求中包含的交易请求进行区块链交易,得到交易结果;
第一区块打包子模块,用于将所述提案请求中包含的交易请求的交易结果打包生成交易区块。
11.一种区块链交易处理装置,其特征在于,包括:
交易请求发送模块,用于向区块链系统的各个区块链节点发送交易请求;
签名接收模块,用于接收所述各个区块链节点发送的交易签名,所述交易签名是所述区块链节点对所述交易请求的内容进行合法性和有效性验证,在对所述交易请求的内容进行合法性和有效性验证之后对所述交易请求中的交易标识进行签名操作生成的;
签名聚合模块,用于根据所接收到的交易签名进行签名聚合,得到交易验证请求,所述交易验证请求中包括所述交易标识、聚合签名并且不包含对应于所述交易请求的内容的交易信息;
验证请求发送模块,用于向所述各个区块链节点发送所述交易验证请求,以使所述区块链节点根据所述交易验证请求中的聚合签名进行交易验证,若根据所述聚合签名对交易验证通过,则将所述交易请求加入到交易池中,接收提案请求,其中,所述提案请求是提案节点根据需要上链的,所述提案请求用于使区块链节点生成交易区块,若所述提案请求中包含的交易请求存在于所述交易池中,则不验证所述提案请求中包含的交易请求并根据所述提案请求中包含的交易请求进行区块链交易,得到交易结果,将所述提案请求中包含的交易请求的交易结果打包生成交易区块。
12.一种电子设备,其特征在于,包括:
处理器;
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至9中任意一项所述的区块链交易处理方法。
13.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述的区块链交易处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210065233.4A CN114092093B (zh) | 2022-01-20 | 2022-01-20 | 区块链交易处理方法、装置、电子设备和可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210065233.4A CN114092093B (zh) | 2022-01-20 | 2022-01-20 | 区块链交易处理方法、装置、电子设备和可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114092093A CN114092093A (zh) | 2022-02-25 |
CN114092093B true CN114092093B (zh) | 2022-12-16 |
Family
ID=80308857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210065233.4A Active CN114092093B (zh) | 2022-01-20 | 2022-01-20 | 区块链交易处理方法、装置、电子设备和可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114092093B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115186035B (zh) * | 2022-09-13 | 2022-11-22 | 腾讯科技(深圳)有限公司 | 一种区块处理方法、相关系统及存储介质和服务器 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111047330B (zh) * | 2020-03-18 | 2020-09-22 | 杭州智块网络科技有限公司 | 区块的验证分红奖励方法和装置 |
CN111461886B (zh) * | 2020-04-01 | 2022-02-01 | 杭州溪塔科技有限公司 | 区块链上不依赖智能合约的系统配置的管理方法和装置 |
US11573952B2 (en) * | 2020-05-04 | 2023-02-07 | International Business Machines Corporation | Private shared resource confirmations on blockchain |
CN111815321A (zh) * | 2020-05-21 | 2020-10-23 | 北京金山云网络技术有限公司 | 交易提案的处理方法、装置、系统、存储介质和电子装置 |
CN112003820B (zh) * | 2020-07-13 | 2023-04-07 | 南京邮电大学 | 一种基于环签名和聚合签名的区块链共识优化方法 |
CN112348673A (zh) * | 2020-10-20 | 2021-02-09 | 深圳前海微众银行股份有限公司 | 一种区块链交易处理的方法及装置 |
CN113806441B (zh) * | 2021-02-09 | 2024-04-05 | 京东科技控股股份有限公司 | 基于区块链的签名处理方法、装置、电子设备和存储介质 |
-
2022
- 2022-01-20 CN CN202210065233.4A patent/CN114092093B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114092093A (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107438002B (zh) | 基于区块链的系统以及系统中的电子设备和方法 | |
CN110766408A (zh) | 异构区块链的跨链交易验证方法、引擎、设备和存储介质 | |
CN108390872B (zh) | 证书管理方法、装置、介质及电子设备 | |
US20200250168A1 (en) | Point-to-point distributed decentralized system | |
WO2020258847A1 (zh) | 基于处理模块跨链发送可认证消息的方法和装置 | |
CN110601816A (zh) | 一种区块链系统中轻量级节点控制方法及装置 | |
CN110336779B (zh) | 一种区块链的构建方法、装置和电子设备 | |
CN113255014B (zh) | 一种基于区块链的数据处理方法以及相关设备 | |
CN112036878B (zh) | 数据处理方法及装置 | |
CN113706313A (zh) | 基于区块链的融资方法、系统及计算机可读存储介质 | |
CN111125778A (zh) | 一种版权交易信息的处理方法及装置 | |
WO2023005500A1 (zh) | 跨链交易处理方法、装置、电子设备以及存储介质 | |
CN114221972A (zh) | 中继区块链系统以及跨链交易方法 | |
CN114092093B (zh) | 区块链交易处理方法、装置、电子设备和可读介质 | |
CN113132459B (zh) | 分布式存储方法、系统、存储介质、信息数据处理终端 | |
CN115705601A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN115619395A (zh) | 基于区块链的数据处理方法及相关设备 | |
CN110784324B (zh) | 一种节点准入方法及装置 | |
CN112150158B (zh) | 一种区块链交易交付验证方法及装置 | |
CN115271942A (zh) | 区块链交易处理方法、装置、电子设备和可读介质 | |
CN117952747A (zh) | 基于区块链的权益凭证交易方法、装置、设备和可读介质 | |
CN113112269B (zh) | 多重签名方法、计算机设备和存储介质 | |
CN117221337A (zh) | 区块链共识方法、装置、介质及电子设备 | |
CN113672988B (zh) | 基于区块链的信息管理方法、系统、介质及电子设备 | |
CN113674118A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40065633 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |