CN112037055A - 交易处理方法、装置、电子设备及可读存储介质 - Google Patents
交易处理方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN112037055A CN112037055A CN202010828158.3A CN202010828158A CN112037055A CN 112037055 A CN112037055 A CN 112037055A CN 202010828158 A CN202010828158 A CN 202010828158A CN 112037055 A CN112037055 A CN 112037055A
- Authority
- CN
- China
- Prior art keywords
- transaction
- frozen
- target
- intelligent contract
- freezing
- 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
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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明实施例提供一种交易处理方法、装置、电子设备及可读存储介质,旨在提高区块链网络对交易执行的约束力。其中,所述交易处理方法,应用于区块链网络中的节点,所述方法包括:接收所述区块链网络中的指定节点发送的具有顺序关系的多个交易,所述多个交易中包括目标交易和冻结交易,所述目标交易是依赖于智能合约而执行的交易,所述冻结交易用于使该冻结交易针对的目标智能合约被冻结;按照所述多个交易的顺序关系,依次执行所述多个交易,其中,在执行所述目标交易之前,判断所述目标交易所依赖的智能合约是否被冻结,并在所述目标交易所依赖的智能合约被冻结的情况下,拒绝执行所述目标交易。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种交易处理方法、装置、电子设备及可读存储介质。
背景技术
区块链技术构建在传输网络(也可称为区块链网络)之上,传输网络中的分布式节点设备(以下简称为节点)通过运行区块链程序,实现以预设共识策略来生成和更新数据,并利用链式数据结构来验证与存储数据,最终实现了数据防篡改机制。
区块链技术可应用至多种业务场景,例如金融领域、电子商务领域、商品或原材料溯源领域、电子存证领域等,由于区块链技术实现了数据防篡改机制,因此利用区块链技术开展业务,能解决业务参与各方之间的信任危机。
相关技术中,区块链网络中的各个节点通过执行交易以开展业务。其中,某些交易的执行依赖于智能合约。在一些场景中,智能合约可以解释为:一种旨在以信息化方式传播、验证或执行合同的计算机协议,允许在没有第三方的情况下进行可信交易。然而现有技术中,由于智能合约在发布期间的监管措施不足,导致某些不符合监管要求的智能合约被部署到区块链网络。依赖于这些智能合约执行交易时,通常也会引发一些不合法的问题,或者导致交易参与者蒙受损失。总之,现有技术中,区块链网络在执行交易期间,对交易执行过程的约束能力不足,区块链网络的实用性有待改进。
发明内容
本发明实施例的目的在于提供一种交易处理方法、装置、电子设备及可读存储介质,旨在提高区块链网络对交易执行的约束力。具体技术方案如下:
在本发明实施例的第一方面,提供一种交易处理方法,应用于区块链网络中的节点,所述方法包括:
接收所述区块链网络中的指定节点发送的具有顺序关系的多个交易,所述多个交易中包括目标交易和冻结交易,所述目标交易是依赖于智能合约而执行的交易,所述冻结交易用于使该冻结交易针对的目标智能合约被冻结;
按照所述多个交易的顺序关系,依次执行所述多个交易,其中,在执行所述目标交易之前,判断所述目标交易所依赖的智能合约是否被冻结,并在所述目标交易所依赖的智能合约被冻结的情况下,拒绝执行所述目标交易。
在本发明实施例的第二方面,提供一种交易处理装置,应用于区块链网络中的节点,所述装置包括:
交易接收模块,用于接收所述区块链网络中的指定节点发送的具有顺序关系的多个交易,所述多个交易中包括目标交易和冻结交易,所述目标交易是依赖于智能合约而执行的交易,所述冻结交易用于使该冻结交易针对的目标智能合约被冻结;
交易执行模块,用于按照所述多个交易的顺序关系,依次执行所述多个交易;
其中,所述交易执行模块包括:目标交易执行单元,所述目标交易执行单元用于:在执行所述目标交易之前,判断所述目标交易所依赖的智能合约是否被冻结,并在所述目标交易所依赖的智能合约被冻结的情况下,拒绝执行所述目标交易。
在本发明实施例的第三方面,提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于在执行存储器上所存放的程序时,实现本发明任一实施例所提供的交易处理方法。
在本发明实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任一实施例所提供的交易处理方法。
本发明中,区块链网络中的节点接收指定节点发送的具有时序关系的多个交易,包括冻结交易和目标交易。其中,冻结交易用于使相应的智能合约被冻结。而在执行目标交易之前,需要判断目标交易所依赖的智能合约是否被冻结,并在该目标交易所依赖的智能合约被冻结的情况下,拒绝执行该目标交易。如此,可以通过冻结交易,实现对智能合约的监管冻结。并且在某一智能合约被冻结后,依赖于该智能合约而执行的交易,也不会被执行。可见,本发明中区块链网络对交易执行的约束力更强,能发挥对智能合约及交易的监管作用,具有更强的实用性。
此外,由于节点接收的多个交易具有顺序关系,且节点按照该顺序关系依次执行各个交易。如此,区块链网络中的每个节点均按照相同的顺序关系,依次执行各个交易,确保各个节点按照相同的先后顺序执行冻结交易和目标交易。避免出现以下情况:一部分节点先执行冻结交易,后执行目标交易,目标交易被拒绝执行,得到目标交易执行失败的处理结果;另一部分节点先执行目标交易,后执行冻结交易,得到目标交易执行成功的处理结果。可见,本发明通过限定交易执行顺序,以确保各节点的交易执行结果的统一性,有利于降低交易错误率,并提高区块链网络的共识成功率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,以下描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1是本发明一实施例提出的区块链网络的示意图;
图2是本发明一实施例提出的交易处理方法的流程图;
图3是本发明一实施例提出的冻结权限配置交易的处理流程图;
图4是本发明一实施例提出的交易处理装置的示意图;
图5是本发明一实施例提出的电子设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
区块链技术构建在传输网络(也可称为区块链网络)之上,传输网络中的分布式节点设备(以下简称为节点)通过运行区块链程序,实现以预设共识策略来生成和更新数据,并利用链式数据结构来验证与存储数据,最终实现了数据防篡改机制。
相关技术中,区块链网络中的各个节点通过执行交易以开展业务。其中,某些交易的执行依赖于智能合约。在一些场景中,智能合约可以解释为:一种旨在以信息化方式传播、验证或执行合同的计算机协议,允许在没有第三方的情况下进行可信交易。然而现有技术中,由于智能合约在发布期间的监管措施不足,导致某些不符合监管要求的智能合约被部署到区块链网络。依赖于这些智能合约执行交易时,通常也会引发一些不合法的问题,或者导致交易参与者蒙受损失。总之,现有技术中,区块链网络在执行交易期间,对交易执行过程的约束能力不足,区块链网络的实用性有待改进。
为此,本发明通过以下实施例,提出交易处理方法、装置、电子设备及可读存储介质,旨在提高区块链网络对交易执行的约束力。
参考图1,图1是本发明一实施例提出的区块链网络的示意图。如图1所示,区块链网络包括多个分布式节点设备(以下简称为节点),每个节点用于运行区块链程序。多个节点中包括一个主节点,该主节点是从多个节点中选举出的节点。可选地,在一些具体实施方式中,主节点并不固定,区块链网络会周期性地对主节点进行重新选举。
利用图1所示的区块链网络开展业务时,在同一段时间内,可以同时开展多种不同的业务。示例地,如图1所示,节点1获得与业务A相关的交易a。其中,交易a可以是客户端侧发送给节点1的,或者交易a也可以是节点1自动生成的,本发明对此不做限定。响应于交易a的获得,节点1根据预设的业务投票规则,将交易a发送给业务投票规则中规定的节点(例如节点3、节点5以及节点7)以进行业务投票。这些节点对交易a进行业务投票,并将业务投票结果返回给节点1。其中,每个节点对交易a的业务投票结果,表征该节点是否赞成执行交易a。节点1收集各节点对交易a的业务投票结果,并将交易a和各节点的对交易a的业务投票结果打包提交给主节点。为简化附图,图1中未示出业务投票的具体过程。
如图1所示,节点4获得与业务B相关的交易b。其中,交易b可以是客户端侧发送给节点4的,或者交易b也可以是节点4自动生成的,本发明对此不做限定。响应于交易b的获得,节点4根据预设的业务投票规则,将交易b发送给业务投票规则中规定的节点(例如节点3、节点5以及节点7)以进行业务投票。这些节点对交易b进行业务投票,并将业务投票结果返回给节点4。其中,每个节点对交易b的业务投票结果,表征该节点是否赞成执行交易b。节点4收集各节点对交易b的业务投票结果,并将交易b和各节点的对交易b的业务投票结果打包提交给主节点。为简化附图,图1中未示出业务投票的具体过程。
如此,主节点会陆续接收到各个节点提交的多个交易。主节点可以根据交易达到的时间顺序,对陆续达到的多个交易进行排序,并将排序后的多个交易(包括交易a和交易b)一次性或分批次地分发给所有节点。本发明具体实现时,主节点陆续地接收到交易,主节点每接收到一个交易后,将该交易排列至上一个接收到的交易之后。当主节点中排列的交易的数量达到预设数量(例如100)时,主节点将这100个交易发送给每个节点(包括主节点自身)。如此,每个节点接收到具有顺序关系的100个交易。
每个节点在接收到具有顺序关系的100个交易后,按照这100个交易的顺序关系,依次执行这100个交易。其中,每个节点在执行每个交易之前,需要检验该交易的业务投票结果。具体地,该节点根据预设业务共识规则和该交易的业务投票结果,判断是否可以执行该交易,并在确定可以执行该交易时,执行该交易。每个节点在每执行完一个交易后,将该交易的交易执行结果记入该节点的区块中,该区块中记录的各个交易执行结果具有顺序,该顺序与各个交易的执行顺序一致。当该区块中记录的交易执行结果满足预设条件时,该节点基于预设共识策略,与区块链网络中的其他节点进行区块共识,并在区块共识通过的情况下,将该区块接入所述区块链网络的区块链。
示例地,上述业务共识规则可以是:如果一个交易的所有业务投票结果均表征:赞成执行该交易,则确定可以执行该交易。或者示例地,如果一个交易的所有业务投票结果中,超过预设比例的业务投票结果表征:赞成执行该交易,则确定可以执行该交易。需要说明的是,本发明对于业务共识规则的具体内容,不做限定。
示例地,上述“当该区块中记录的交易执行结果满足预设条件时”中的“预设条件”可以是:区块已经记录了当前批次中所有交易的交易执行结果,例如区块已经记录了100(100是当前批次的交易数量)个交易的交易执行结果。或者示例地,上述预设条件也可以是:区块已经记录了指定数量个交易执行结果,例如区块已经记录了50(50是指定数量)个交易执行结果。需要说明的是,本发明对于上述预设条件的具体内容,不做限定。
示例地,上述预设共识策略可以是:每个节点为其区块中的所有交易执行结果,计算一个总的hash值,各节点相互之间比较各自计算的hash值是否相等;如果所有hash值中超过预设比例的hash值一致,例如所有hash值中80%以上的hash值是一致的,则这些hash值一致的区块通过区块共识。这些区块中的每个区块,被其对应的节点接入至区块链。而对于其他区块,由于这些其他区块的hash值与绝大多数区块的hash值不一致,说明这些其他区块中记录的交易执行结果与绝大多数区块中记录的交易执行结果不一致,进而说明这些其他区块对应的节点在执行交易期间,可能发生错误,因此可以对这些节点执行下线处理。
需要说明的是,上述业务开展过程中,业务投票步骤和业务投票检验步骤,相当于是在上述区块共识的基础上,增加了业务共识。在此情况下,如果多个节点联合作恶,则不仅需要通过区块共识的考验,还需要通过业务共识的考验,因此有利于降低节点联合作恶的可能性,进一步提高业务开展的安全性。但需要补充说明的是,本发明在具体实现时,可以省略上述业务投票步骤和业务投票检验步骤。
以上,本发明提出了区块链网络及利用该区块链网络开展业务的过程。以下,本发明通过实施例提出基于该区块链网络的交易处理方法,以下实施例可以包括以上实施例中的部分或全部技术特征,具体地,请参见下文。
参考图2,图2是本发明一实施例提出的交易处理方法的流程图,该交易处理方法应用于区块链网络中的节点,具体可以是任一节点。如图2所示,该交易处理方法包括以下步骤:
步骤S21:接收所述区块链网络中的指定节点发送的具有顺序关系的多个交易,所述多个交易中包括目标交易和冻结交易,所述目标交易是依赖于智能合约而执行的交易,所述冻结交易用于使该冻结交易针对的目标智能合约被冻结。
其中,所述指定节点可以是区块链网络中的主节点,如图1所示。此外,所述指定节点也可以是区块链网络中预先指定的其他节点。
如前所述,所述多个交易是所述指定节点一次性发送的;或者所述多个交易是所述指定节点先后多批次发送的,每个批次中包括所述多个交易中的部分交易。
以指定节点具体是主节点为例,本发明在具体实现时,如前所述,主节点陆续地接收到交易,主节点每接收到一个交易后,将该交易排列至上一个接收到的交易之后。当主节点中排列的交易的数量达到预设数量(例如100)时,主节点将这100个交易发送给每个节点(包括主节点自身)。如此,每个节点接收到具有顺序关系的100个交易。此后,主节点仍然会陆续地接收到交易,主节点按照同样的方式,对陆续接收到的交易进行排序,当主节点中排列的交易的数量再次达到预设数量(例如100)时,主节点将这100个交易发送给每个节点(包括主节点自身)。如此,每个节点接收到另一批次具有顺序关系的100个交易。
正常情况下,区块链网络中的每个节点将源源不断地接收到主节点发送的交易批次,每个交易批次中包括100个交易,这100个交易具有顺序关系。在一些情况下,例如主节点在短时间内接收到目标交易和冻结交易,则该目标交易和冻结交易很可能会出现在同一个交易批次中。而在另一些情况下,例如主节点先后接收到目标交易和冻结交易的时间跨度很大,则该目标交易和冻结交易很可能会分别出现在不同的交易批次中。
需要说明的是,通常情况下,目标交易的数量通常远大于冻结交易的数量。其原因在于,区块链网络中很多交易的执行都依赖于相应的智能合约,这些交易都被视为目标交易,因此目标交易的数量较多。而需要冻结智能合约的情况比较少见,因此产生的冻结交易的数量较少。但是需要补充说明的是,上述情况虽然是通常情况,但是不排除产生例外情况的可能性,例如冻结交易的数量大于目标交易的数量。因此无论是通常情况还是例外情况,都不应被排除在本发明的保护之外。
步骤S22:按照所述多个交易的顺序关系,依次执行所述多个交易,其中,在执行所述目标交易之前,判断所述目标交易所依赖的智能合约是否被冻结,并在所述目标交易所依赖的智能合约被冻结的情况下,拒绝执行所述目标交易。
本发明具体实现时,在目标交易的交易结构的指定位置处,填充有该目标交易所依赖的智能合约的合约标识,示例地,合约标识具体可以是合约地址。如此,节点在处理每个交易之前,可以首先检测该交易的交易结构的指定位置处,是否填充有合约标识,以判断该交易是否为目标交易。如果该交易的交易结构的指定位置处未填充合约标识,则确定该交易不属于目标交易。如果该交易的交易结构的指定位置处填充有合约标识,则确定该交易属于目标交易。
本发明具体实现时,区块链中存储有合约状态清单,该合约状态清单中记录有每个智能合约的状态。具体地,合约状态清单中包括多条key-value(关键字-值)数据。每条key-value数据分别对应一个智能合约,其中key为该智能合约的合约标识,value为该智能合约的状态信息。其中,智能合约的状态信息具体为“启用”或者“冻结”。如果某智能合约对应的状态信息value为“启用”,则表示该智能合约没有被冻结。而如果某智能合约对应的状态信息value为“冻结”,则表示该智能合约已经被冻结。
如此,当节点在执行某交易之前,判断出该交易是一个目标交易(即依赖于智能合约而执行的交易),则还需要以该交易携带的合约标识为索引,从合约状态清单中查找该合约标识对应的value。如果查找出的value为“启用”,则说明该交易依赖的智能合约没有被冻结,因此可以继续执行该交易。如果查找出的value为“冻结”,则说明该交易依赖的智能合约已经被冻结,因此可以拒绝执行该交易,此外还可以直接生成交易执行失败的执行结果。
通过以上述步骤S21和步骤S22的方式处理交易,冻结交易可用于使相应的智能合约被冻结,而在执行目标交易之前,需要判断目标交易所依赖的智能合约是否被冻结,并在该目标交易所依赖的智能合约被冻结的情况下,拒绝执行该目标交易。如此,可以通过冻结交易,实现对智能合约的监管冻结。并且在某一智能合约被冻结后,依赖于该智能合约而执行的交易,也不会被执行。可见,本发明中区块链网络对交易执行的约束力更强,能发挥对智能合约及交易的监管作用,具有更强的实用性。
此外,由于节点接收的多个交易具有顺序关系,且节点按照该顺序关系依次执行各个交易。如此,区块链网络中的每个节点均按照相同的顺序关系,依次执行各个交易,确保各个节点按照相同的先后顺序执行冻结交易和目标交易。避免出现以下情况:一部分节点先执行冻结交易,后执行目标交易,目标交易被拒绝执行,得到目标交易执行失败的处理结果;另一部分节点先执行目标交易,后执行冻结交易,得到目标交易执行成功的处理结果。可见,本发明通过限定交易执行顺序,以确保各节点的交易执行结果的统一性,有利于降低交易错误率,并提高区块链网络的共识成功率。
此外,本发明中,通过节点在执行目标交易前,判断目标交易依赖的智能合约是否被冻结,而不是通过上述指定节点在对交易进行排序时,判断目标交易依赖的智能合约是否被冻结。其有益效果是,如果通过指定节点在对交易进行排序时,判断目标交易依赖的智能合约是否被冻结,则可能发生以下情况:指定节点将前一批次的若干交易发送给各节点(包括指定节点自身)执行,前一批次的若干交易中包括冻结交易。指定节点在组装、排序当前批次的若干交易时,接收到一个目标交易,该目标交易所依赖的智能合约,是上述冻结交易需要冻结的智能合约。如果指定节点自身的另一线程还没有完成对上述冻结交易的执行,则指定节点在判断该目标交易依赖的智能合约是否被冻结时,将得到未冻结的判断结果,使得该目标交易被执行。如此,导致冻结交易的有效性降低。而本发明中,通过节点在执行目标交易前,判断目标交易依赖的智能合约是否被冻结,可以有效避免上述情况发生,从而提高冻结交易的有效性。
可选地,在本发明的一些具体实施方式中,如前所述,节点在每执行完一个交易后,将该交易的交易执行结果记入区块中,所述区块中记录的各个交易执行结果具有顺序,该顺序与各个交易的执行顺序一致。在所述区块中记录的交易执行结果满足预设条件的情况下,基于预设共识策略,与所述区块链网络中的其他节点进行区块共识,并在区块共识通过的情况下,将所述区块接入所述区块链网络的区块链。
对于上述这些具体实施方式的具体说明,可参见上文,为避免重复,本发明在此不做赘述。
可选地,在本发明的一些具体实施方式中,节点接收到的多个交易中,可以包括合约部署交易,合约部署交易中携带有待部署合约的合约标识(例如合约地址)。每个节点在执行完合约部署交易后,会将该合约部署交易中携带的合约标识记入合约状态清单,以更新合约状态清单,并将该合约标识对应的状态信息标记为“启用”。此外,节点还会将更新后的合约状态清单作为交易执行结果,存入区块中,以便后续进行共识。
可选地,在本发明的一些具体实施方式中,冻结交易中至少携带目标智能合约的合约标识(例如合约地址),其中,目标智能合约是指:该冻结交易需要冻结的智能合约。节点在执行冻结交易时,具体地,会根据冻结交易中携带的合约标识,从合约状态清单中查询到该合约标识对应的状态信息,并将该状态信息更新为“冻结”,从而更新合约状态清单。如此,完成了对冻结交易的执行。此外,节点还会将更新后的合约状态清单作为交易执行结果,存入区块中,以便后续进行共识。
可选地,在本发明的一些具体实施方式中,为确保冻结交易的安全性,防止作恶者恶意地冻结智能合约,导致正常交易受阻。本发明中,可以预先配置冻结权限,而冻结交易可以携带:该冻结交易的发起者身份信息、以及该冻结交易的数字签名。节点在执行冻结交易之前,首先根据该冻结交易携带的发起者身份信息,从预先存储的多个公钥中,查询该发起者身份信息对应的公钥;然后基于查询到的公钥,对该冻结交易的数字签名进行签名验证,从而检验:该冻结交易的实际发起者,是否的确是该冻结交易携带的发起者身份信息所对应的发起者。
如果该冻结交易通过签名验证,则表示该冻结交易的实际发起者的确是该冻结交易携带的发起者身份信息所对应的发起者,因此可以继续处理该冻结交易。如果该冻结交易未通过签名验证,则表示该冻结交易的实际发起者不是该冻结交易携带的发起者身份信息所对应的发起者,因此可以拒绝执行该冻结交易,此外还可以直接生成交易执行失败的执行结果。
在确定可以继续处理该冻结交易的情况下,也即确定该冻结交易的实际发起者的确是该冻结交易携带的发起者身份信息所对应的发起者,则继续判断该发起者是否具有冻结权限。如果该发起者具有冻结权限,则确定可以执行该冻结交易。如果该发起者不具有冻结权限,则拒绝执行该冻结交易。
为便于理解,假设P1(P1可以是节点,也可以是客户端)生成了冻结交易。P1为了声明该冻结交易是由其自身发出的,P1在该冻结交易中填充了P1的身份信息。此外,P1利用其自身的私钥,对该冻结交易进行了签名,得到了该冻结交易的数字签名。
该冻结交易通过在区块链网络内传递,最终到达区块链网络的各个节点。每个节点在执行该冻结交易之前,首先从该冻结交易中提取出P1的身份信息。然后根据P1的身份信息,获取P1对应的公钥,并利用该公钥对该冻结交易的数字签名进行签名验证。由于P1先前在进行签名时,利用的是其自身的私钥,因此节点利用P1对应的公钥进行签名验证时,数字签名可通过验证。
在数字签名验证通过后,节点断定该冻结交易的确是由P1发出的。接着,节点查询P1是否具有冻结权限。如果P1具有冻结权限,则节点执行该冻结交易。如果P1不具有冻结权限,则节点不执行该冻结交易。
或者为了便于理解,假设P8(P8可以是节点,也可以是客户端)生成了冻结交易。又假设P8是一个作恶者,P8不具有冻结权限。P8为了冻结某一智能合约,P8声明该冻结交易是由P2(P2具有冻结权限)发出的,P8在该冻结交易中填充了P2的身份信息。此外,由于冻结交易需要携带数字签名,因此P8利用其自身的私钥,对该冻结交易进行了签名,得到了该冻结交易的数字签名。
该冻结交易通过在区块链网络内传递,最终到达区块链网络的各个节点。每个节点在执行该冻结交易之前,首先从该冻结交易中提取出P2的身份信息,然后根据P2的身份信息,获取P2对应的公钥,并利用该公钥对该冻结交易的数字签名进行签名验证。由于P8先前在进行签名时,利用的是其自身的私钥(即P8的私钥),因此节点利用P2对应的公钥进行签名验证时,数字签名不会通过验证。
由于数字签名不能通过验证,因此节点断定该冻结交易不是由P2发出的,而是由作恶者假冒P2发出的。如此,节点拒绝执行该冻结交易。
可见,在本发明的上述具体实施方式中,首先检验冻结交易发起者的身份真实性,从而过滤掉假冒者发送的冻结交易。然后在冻结交易发起者的身份真实的情况下,进一步判断该发起者是否具有冻结权限,并在发起者具有冻结权限的情况下,才执行冻结交易。如此,可以有效提升冻结交易的安全性,防止作恶者恶意地冻结智能合约,导致正常交易受阻。
为了实现上述具体实施方式中记载的过程,示例地:
冻结交易中可以携带:该冻结交易的发起者身份信息、以及该冻结交易的数字签名。
节点在执行冻结交易之前,利用所述冻结交易携带的发起者身份信息所对应的公钥,对所述冻结交易的数字签名进行签名验证;在签名验证通过的情况下,根据预设的第一冻结权限清单和所述发起者的身份信息,判断所述发起者是否具有冻结权限;在所述发起者不具有冻结权限的情况下,拒绝执行所述冻结交易。
其中,第一冻结权限清单中记录有一条或多条身份信息,这些身份信息对应的主体(例如节点或客户端),具有冻结权限。该第一冻结权限清单适用于对任何智能合约的冻结交易,换言之,针对任何智能合约的冻结,都需要查询该第一冻结权限清单以验证发起者是否具有冻结权限。为便于理解,当节点在处理冻结交易X(该冻结交易用于冻结智能合约X)之前,如果冻结交易X的数字签名通过签名验证,则查询该第一冻结权限清单中是否记录有冻结交易X携带的发起者身份信息,以判断该发起者是否具有冻结权限。当节点在处理冻结交易Y(该冻结交易用于冻结智能合约Y)之前,如果冻结交易Y的数字签名通过签名验证,则同样查询该第一冻结权限清单中是否记录有冻结交易Y携带的发起者身份信息,以判断该发起者是否具有冻结权限。
或者为了实现上述具体实施方式中记载的过程,示例地:
每个智能合约分别对应有各自的第二冻结权限清单,所述冻结交易携带:该冻结交易所针对的目标智能合约的合约标识、该冻结交易的发起者身份信息、以及该冻结交易的数字签名。
节点在执行冻结交易之前,利用所述冻结交易携带的发起者身份信息所对应的公钥,对所述冻结交易的数字签名进行签名验证;在签名验证通过的情况下,根据所述冻结交易携带的合约标识,确定该合约标识对应的智能合约的第二冻结权限清单;根据确定出的第二冻结权限清单和所述发起者身份信息,判断所述发起者是否具有冻结权限;在所述发起者不具有冻结权限的情况下,拒绝执行所述冻结交易。
其中,不同的智能合约,分别对应不同的第二冻结权限清单。相当于针对不同的智能合约,可以分别配置不同的冻结权限,从而提高智能合约冻结操作的灵活性和适用性。
每份第二冻结权限清单中记录有一条或多条身份信息,这些身份信息对应的主体(例如节点或客户端),具有对该第二冻结权限清单对应的智能合约的冻结权限。为便于理解,假设智能合约M对应第二冻结权限清单m,第二冻结权限清单m中记录有P1、P2以及P4的身份信息,则表示P1、P2以及P4对智能合约M具有冻结权限。又假设智能合约N对应第二冻结权限清单n,第二冻结权限清单n中记录有P2、P3以及P4的身份信息,则表示P2、P3以及P4对智能合约N具有冻结权限。
当节点在处理冻结交易M(该冻结交易用于冻结智能合约M)之前,如果冻结交易M的数字签名通过签名验证,则根据冻结交易M中携带的合约标识M,从多个第二冻结权限清单中确定出第二冻结权限清单m。然后查询第二冻结权限清单m中是否记录有冻结交易M携带的发起者身份信息,以判断该发起者是否具有冻结权限。当节点在处理冻结交易N(该冻结交易用于冻结智能合约N)之前,如果冻结交易N的数字签名通过签名验证,则根据冻结交易N中携带的合约标识N,从多个第二冻结权限清单中确定出第二冻结权限清单n。然后查询第二冻结权限清单n中是否记录有冻结交易N携带的发起者身份信息,以判断该发起者是否具有冻结权限。
可选地,在本发明的一些具体实施方式中,还可以对各个智能合约的冻结权限进行配置。具体实现时:
节点接收到的多个交易中还可以包括冻结权限配置交易,该冻结权限配置交易携带:该冻结权限配置交易所针对的目标智能合约的合约标识、以及拟定管理者的身份信息。
节点在执行该冻结权限配置交易时,如图3所示,具体执行以下步骤:
步骤S31:根据所述冻结权限配置交易携带的合约标识,判断该合约标识对应的智能合约是否已经对应有第二冻结权限清单。
步骤S32:在所述合约标识对应的智能合约未对应有第二冻结权限清单的情况下,判断所述冻结权限配置交易携带的拟定管理者的身份信息,是否均属于预设管理者的身份信息,若是,则为所述合约标识对应的智能合约建立第二冻结权限清单,该第二冻结权限清单中记录有所述冻结权限配置交易携带的拟定管理者的身份信息。
步骤S33:在所述合约标识对应的智能合约已经对应有第二冻结权限清单的情况下,判断所述冻结权限配置交易携带的拟定管理者的身份信息,是否均属于预设管理者的身份信息,若是,则将该第二冻结权限清单中记录的原有身份信息,更新为所述冻结权限配置交易携带的拟定管理者的身份信息。
其中,通过执行步骤S31,从而判断冻结权限配置交易所针对的目标智能合约,是否已经对应有相应的第二冻结权限清单。若是,则执行步骤S33;若否,则执行步骤S32。
其中,通过执行步骤S32,从而为还没有相应第二冻结权限清单的智能合约,建立相应的第二冻结权限清单。换言之,为还没有配置冻结权限的智能合约,配置相应的冻结权限。并且在执行步骤S32期间,需要判断冻结权限配置交易携带的拟定管理者的身份信息,是否均属于预设管理者的身份信息,从而避免将冻结权限赋予不属于预设管理者的主体,导致冻结权限外泄,引发安全性问题。
其中,通过执行步骤S33,从而为已经具有相应第二冻结权限清单的智能合约,更新第二冻结权限清单中的身份信息。换言之,为已经配置冻结权限的智能合约,更新冻结权限。并且在执行步骤S33期间,需要判断冻结权限配置交易携带的拟定管理者的身份信息,是否均属于预设管理者的身份信息,从而避免将冻结权限赋予不属于预设管理者的主体,导致冻结权限外泄,引发安全性问题。
为便于理解,假设预设管理者包括P1、P2、P3、P4、P5以及P6,这些预设管理者的身份信息预先配置在区块链网络中。又假设智能合约F的发布者在发布智能合约F后,又发出针对智能合约F的冻结权限配置交易F。冻结权限配置交易F中携带:合约标识F、以及拟定管理者P1、P2、P3、P4、P5以及P8等的身份信息。当节点在处理冻结权限配置交易F时,首先从冻结权限配置交易F中提取出合约标识F,然后以合约标识F为索引,查询是否存在第二冻结权限清单f。假设未查询到第二冻结权限清单f,则确定智能合约F还没有配置冻结权限。如此,节点从冻结权限配置交易F中提取出拟定管理者P1、P2、P3、P4、P5以及P8等的身份信息,节点根据每个拟定管理者的身份信息,判断该拟定管理者是否属于预设管理者。由于拟定管理者P8不属于预设管理者,为防止对智能合约F的冻结权限被外泄给拟定管理者P8,节点可以拒绝执行冻结权限配置交易F,并将拒绝执行的原因反馈给上述发布者。
又假设智能合约F的发布者在收到拒绝执行的原因后,重新发出针对智能合约F的冻结权限配置交易F'。冻结权限配置交易F'中携带:合约标识F、以及拟定管理者P1、P2、P3、P4以及P5等的身份信息。当节点在处理冻结权限配置交易F'时,首先从冻结权限配置交易F'中提取出合约标识F,然后以合约标识F为索引,查询是否存在第二冻结权限清单f。假设未查询到第二冻结权限清单f,则确定智能合约F还没有配置冻结权限。如此,节点从冻结权限配置交易F'中提取出拟定管理者P1、P2、P3、P4以及P5等的身份信息,节点根据每个拟定管理者的身份信息,判断该拟定管理者是否属于预设管理者。由于所有拟定管理者均属于预设管理者,因此节点继续执行冻结权限配置交易F'。具体地,节点为智能合约F建立第二冻结权限清单f,第二冻结权限清单f中记录有拟定管理者P1、P2、P3、P4以及P5等的身份信息。
再假设经过一段时间后,智能合约F的发布者怀疑预设管理者P2对智能合约F存在偏见,预设管理者P2经常对智能合约F执行一些负面操作,例如冻结智能合约F。为此,智能合约F的发布者可以再次发出针对智能合约F的冻结权限配置交易F”。冻结权限配置交易F”中携带:合约标识F、以及拟定管理者P1、P3、P4以及P5等的身份信息。当节点在处理冻结权限配置交易F”时,首先从冻结权限配置交易F”中提取出合约标识F,然后以合约标识F为索引,查询是否存在第二冻结权限清单f。假设查询到第二冻结权限清单f,则确定智能合约F已经配置有冻结权限。如此,节点从冻结权限配置交易F”中提取出拟定管理者P1、P3、P4以及P5等的身份信息,节点根据每个拟定管理者的身份信息,判断该拟定管理者是否属于预设管理者。由于所有拟定管理者均属于预设管理者,因此节点继续执行冻结权限配置交易F”。具体地,节点将第二冻结权限清单f中的原有身份信息(即P1、P2、P3、P4以及P5等的身份信息),更新为P1、P3、P4以及P5等的身份信息。
此外,本发明在具体实现时,可以采取一定的措施,以限定:只有当冻结权限配置交易的发起者是相应智能合约的发布者时,节点才执行该冻结权限配置交易。换言之,只有某一智能合约的发布者,才被允许发起针对该智能合约的冻结权限配置交易。为便于理解,如果节点接收到针对智能合约F的冻结权限配置交易,则节点需要验证该冻结权限配置交易是否是由智能合约F的发布者所发起的,若是,则继续执行该冻结权限配置交易,若否,则拒绝执行该冻结权限配置交易。如此,可以避免作恶者随意配置智能合约的冻结权限。
示例地,可以采取的措施包括以下步骤:
当某一智能合约成功发布后,节点可以记录该智能合约的发布者身份信息和该智能合约的对应关系。例如,该对应关系形如Px-G,对应关系Px-G表示发布者Px发布了智能合约G。节点在执行冻结权限配置交易前,提取冻结权限配置交易携带的身份信息,并根据该身份信息获取对应的公钥,然后利用获取的公钥,对冻结权限配置交易的数字签名进行签名验证,从而判断冻结权限配置交易携带的身份信息是否真实。该验证过程的原理与上述对冻结交易数字签名的验证过程的原理相同。
在数字签名验证通过的情况下,提取冻结权限配置交易携带的标识信息和身份信息,并判断区块链中是否记录有两者的对应关系,从而确定该冻结权限配置交易是否是由相应智能合约的发布者所发出的。假设标识信息为G,身份信息为Px,由于区块链中记录有对应关系Px-G,因此确定该冻结权限配置交易的确是由智能合约G的发布者所发出的。如此,可以针对智能合约G,执行该冻结权限配置交易。
可选地,在本发明的一些具体实施方式中,用于对智能合约实施监控的设备,可以是区块链网络中的节点。具体实现时:
节点显示智能合约的状态信息,一个智能合约的状态信息用于表征该智能合约是否被冻结;节点响应于目标用户针对目标智能合约的冻结操作,生成针对所述目标智能合约的冻结交易,其中,所述目标用户是通过身份鉴权的用户,所述冻结交易携带所述目标用户的身份信息或节点自身的身份信息;节点利用所述目标用户的私钥或节点自身的私钥对所述冻结交易进行签名,得到所述冻结交易的数字签名;节点将生成的冻结交易及其数字签名提交给所述指定节点。
示例地,区块链网络中的部分节点用于监控智能合约,这些节点可以通过人机交互界面,向用户展示各个智能合约的状态信息。例如这些节点可以将上述某些具体实施方式中所述的合约状态清单显示给用户,该合约状态清单中记录有各个智能合约的合约标识(例如合约地址)以及每个智能合约的状态信息(例如冻结或启用)。用户可以通过节点的输入设备(例如鼠标、键盘、触控屏、麦克风),做出冻结操作,以指示节点针对目标智能合约生成冻结交易。如此,节点响应于用户的冻结操作,生成针对该目标智能合约的冻结交易。
此外,如上述某些具体实施方式所述,节点在将冻结交易提交给指定节点(例如主节点)之前,还可以根据预设的业务投票规则,将冻结交易发送给业务投票规则中规定的节点以进行业务投票。节点获得业务投票结果后,将业务投票结果和冻结交易打包提交给指定节点。
基于同一发明构思,本发明实施例还提供一种交易处理装置。参考图4,图4是本发明一实施例提出的交易处理装置的示意图,该交易处理装置应用于区块链网络中的节点。如图4所示,该装置包括:
交易接收模块41,用于接收所述区块链网络中的指定节点发送的具有顺序关系的多个交易,所述多个交易中包括目标交易和冻结交易,所述目标交易是依赖于智能合约而执行的交易,所述冻结交易用于使该冻结交易针对的目标智能合约被冻结;
交易执行模块42,用于按照所述多个交易的顺序关系,依次执行所述多个交易;
其中,所述交易执行模块包括:目标交易执行单元42-1,所述目标交易执行单元42-1用于:在执行所述目标交易之前,判断所述目标交易所依赖的智能合约是否被冻结,并在所述目标交易所依赖的智能合约被冻结的情况下,拒绝执行所述目标交易。
可选地,所述多个交易是所述指定节点一次性发送的;或者所述多个交易是所述指定节点先后多批次发送的,每个批次中包括所述多个交易中的部分交易。
可选地,所述装置还包括:
结果记录模块,用于在每执行完一个交易后,将该交易的交易执行结果记入区块中,所述区块中记录的各个交易执行结果具有顺序,该顺序与各个交易的执行顺序一致;
区块共识模块,用于在所述区块中记录的交易执行结果满足预设条件的情况下,基于预设共识策略,与所述区块链网络中的其他节点进行区块共识,并在区块共识通过的情况下,将所述区块接入所述区块链网络的区块链。
可选地,所述冻结交易携带:该冻结交易的发起者身份信息、以及该冻结交易的数字签名;
所述交易执行模块包括:第一冻结交易执行单元,所述第一冻结交易执行单元用于:在执行所述冻结交易之前,利用所述冻结交易携带的发起者身份信息所对应的公钥,对所述冻结交易的数字签名进行签名验证;在签名验证通过的情况下,根据预设的第一冻结权限清单和所述发起者的身份信息,判断所述发起者是否具有冻结权限;在所述发起者不具有冻结权限的情况下,拒绝执行所述冻结交易。
可选地,每个智能合约分别对应有各自的第二冻结权限清单,所述冻结交易携带:该冻结交易所针对的目标智能合约的合约标识、该冻结交易的发起者身份信息、以及该冻结交易的数字签名;
所述交易执行模块包括:第二冻结交易执行单元,所述第二冻结交易执行单元用于:在执行所述冻结交易之前,利用所述冻结交易携带的发起者身份信息所对应的公钥,对所述冻结交易的数字签名进行签名验证;在签名验证通过的情况下,根据所述冻结交易携带的合约标识,确定该合约标识对应的智能合约的第二冻结权限清单;根据确定出的第二冻结权限清单和所述发起者身份信息,判断所述发起者是否具有冻结权限;在所述发起者不具有冻结权限的情况下,拒绝执行所述冻结交易。
可选地,所述多个交易中还包括冻结权限配置交易,所述冻结权限配置交易携带:该冻结权限配置交易所针对的目标智能合约的合约标识、以及拟定管理者的身份信息;
所述交易执行模块包括:权限配置交易执行单元,所述权限配置交易执行单元用于:
根据所述冻结权限配置交易携带的合约标识,判断该合约标识对应的智能合约是否已经对应有第二冻结权限清单;
在所述合约标识对应的智能合约未对应有第二冻结权限清单的情况下,判断所述冻结权限配置交易携带的拟定管理者的身份信息,是否均属于预设管理者的身份信息,若是,则为所述合约标识对应的智能合约建立第二冻结权限清单,该第二冻结权限清单中记录有所述冻结权限配置交易携带的拟定管理者的身份信息;
在所述合约标识对应的智能合约已经对应有第二冻结权限清单的情况下,判断所述冻结权限配置交易携带的拟定管理者的身份信息,是否均属于预设管理者的身份信息,若是,则将该第二冻结权限清单中记录的原有身份信息,更新为所述冻结权限配置交易携带的拟定管理者的身份信息。
可选地,所述装置还包括:
信息显示模块,用于显示智能合约的状态信息,一个智能合约的状态信息用于表征该智能合约是否被冻结;
冻结交易生成模块,用于响应于目标用户针对目标智能合约的冻结操作,生成针对所述目标智能合约的冻结交易,其中,所述目标用户是通过身份鉴权的用户,所述冻结交易携带所述目标节点的身份信息或节点自身的身份信息;
签名模块,用于利用所述目标用户的私钥或节点自身的私钥对所述冻结交易进行签名,得到所述冻结交易的数字签名;
交易提交模块,用于将生成的冻结交易及其数字签名提交给所述指定节点。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
基于同一发明构思,本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信。
所述存储器503,用于存放计算机程序;
所述处理器501,用于在执行存储器503上所存放的程序时,实现如下步骤:
接收所述区块链网络中的指定节点发送的具有顺序关系的多个交易,所述多个交易中包括目标交易和冻结交易,所述目标交易是依赖于智能合约而执行的交易,所述冻结交易用于使该冻结交易针对的目标智能合约被冻结;
按照所述多个交易的顺序关系,依次执行所述多个交易,其中,在执行所述目标交易之前,判断所述目标交易所依赖的智能合约是否被冻结,并在所述目标交易所依赖的智能合约被冻结的情况下,拒绝执行所述目标交易。
或者,处理器501用于执行存储器503上所存放的程序时,实现本发明以上其他方法实施例所提供的交易处理方法步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的交易处理方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的交易处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种交易处理方法,其特征在于,应用于区块链网络中的节点,所述方法包括:
接收所述区块链网络中的指定节点发送的具有顺序关系的多个交易,所述多个交易中包括目标交易和冻结交易,所述目标交易是依赖于智能合约而执行的交易,所述冻结交易用于使该冻结交易针对的目标智能合约被冻结;
按照所述多个交易的顺序关系,依次执行所述多个交易,其中,在执行所述目标交易之前,判断所述目标交易所依赖的智能合约是否被冻结,并在所述目标交易所依赖的智能合约被冻结的情况下,拒绝执行所述目标交易。
2.根据权利要求1所述的方法,其特征在于,所述多个交易是所述指定节点一次性发送的;或者所述多个交易是所述指定节点先后多批次发送的,每个批次中包括所述多个交易中的部分交易。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
每执行完一个交易后,将该交易的交易执行结果记入区块中,所述区块中记录的各个交易执行结果具有顺序,该顺序与各个交易的执行顺序一致;
在所述区块中记录的交易执行结果满足预设条件的情况下,基于预设共识策略,与所述区块链网络中的其他节点进行区块共识,并在区块共识通过的情况下,将所述区块接入所述区块链网络的区块链。
4.根据权利要求1所述的方法,其特征在于,所述冻结交易携带:该冻结交易的发起者身份信息、以及该冻结交易的数字签名;
在执行所述冻结交易之前,利用所述冻结交易携带的发起者身份信息所对应的公钥,对所述冻结交易的数字签名进行签名验证;在签名验证通过的情况下,根据预设的第一冻结权限清单和所述发起者的身份信息,判断所述发起者是否具有冻结权限;在所述发起者不具有冻结权限的情况下,拒绝执行所述冻结交易。
5.根据权利要求1所述的方法,其特征在于,每个智能合约分别对应有各自的第二冻结权限清单,所述冻结交易携带:该冻结交易所针对的目标智能合约的合约标识、该冻结交易的发起者身份信息、以及该冻结交易的数字签名;
在执行所述冻结交易之前,利用所述冻结交易携带的发起者身份信息所对应的公钥,对所述冻结交易的数字签名进行签名验证;在签名验证通过的情况下,根据所述冻结交易携带的合约标识,确定该合约标识对应的智能合约的第二冻结权限清单;根据确定出的第二冻结权限清单和所述发起者身份信息,判断所述发起者是否具有冻结权限;在所述发起者不具有冻结权限的情况下,拒绝执行所述冻结交易。
6.根据权利要求5所述的方法,其特征在于,所述多个交易中还包括冻结权限配置交易,所述冻结权限配置交易携带:该冻结权限配置交易所针对的目标智能合约的合约标识、以及拟定管理者的身份信息;
在执行所述冻结权限配置交易时,具体执行以下步骤:
根据所述冻结权限配置交易携带的合约标识,判断该合约标识对应的智能合约是否已经对应有第二冻结权限清单;
在所述合约标识对应的智能合约未对应有第二冻结权限清单的情况下,判断所述冻结权限配置交易携带的拟定管理者的身份信息,是否均属于预设管理者的身份信息,若是,则为所述合约标识对应的智能合约建立第二冻结权限清单,该第二冻结权限清单中记录有所述冻结权限配置交易携带的拟定管理者的身份信息;
在所述合约标识对应的智能合约已经对应有第二冻结权限清单的情况下,判断所述冻结权限配置交易携带的拟定管理者的身份信息,是否均属于预设管理者的身份信息,若是,则将该第二冻结权限清单中记录的原有身份信息,更新为所述冻结权限配置交易携带的拟定管理者的身份信息。
7.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
显示智能合约的状态信息,一个智能合约的状态信息用于表征该智能合约是否被冻结;
响应于目标用户针对目标智能合约的冻结操作,生成针对所述目标智能合约的冻结交易,其中,所述目标用户是通过身份鉴权的用户,所述冻结交易携带所述目标用户的身份信息或节点自身的身份信息;
利用所述目标用户的私钥或节点自身的私钥对所述冻结交易进行签名,得到所述冻结交易的数字签名;
将生成的冻结交易及其数字签名提交给所述指定节点。
8.一种交易处理装置,其特征在于,应用于区块链网络中的节点,所述装置包括:
交易接收模块,用于接收所述区块链网络中的指定节点发送的具有顺序关系的多个交易,所述多个交易中包括目标交易和冻结交易,所述目标交易是依赖于智能合约而执行的交易,所述冻结交易用于使该冻结交易针对的目标智能合约被冻结;
交易执行模块,用于按照所述多个交易的顺序关系,依次执行所述多个交易;
其中,所述交易执行模块包括:目标交易执行单元,所述目标交易执行单元用于:在执行所述目标交易之前,判断所述目标交易所依赖的智能合约是否被冻结,并在所述目标交易所依赖的智能合约被冻结的情况下,拒绝执行所述目标交易。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于在执行存储器上所存放的程序时,实现权利要求1-7任一所述的方法步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时,实现权利要求1-7任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010828158.3A CN112037055B (zh) | 2020-08-17 | 2020-08-17 | 交易处理方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010828158.3A CN112037055B (zh) | 2020-08-17 | 2020-08-17 | 交易处理方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112037055A true CN112037055A (zh) | 2020-12-04 |
CN112037055B CN112037055B (zh) | 2023-05-05 |
Family
ID=73578227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010828158.3A Active CN112037055B (zh) | 2020-08-17 | 2020-08-17 | 交易处理方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112037055B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112767043A (zh) * | 2021-01-26 | 2021-05-07 | 中国人寿保险股份有限公司上海数据中心 | 一种基于区块链的多平台积分整合系统、方法和存储介质 |
CN114422151A (zh) * | 2022-03-29 | 2022-04-29 | 北京微芯感知科技有限公司 | 一种区块块内交易数扩展方法及系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107464118A (zh) * | 2017-08-16 | 2017-12-12 | 济南浪潮高新科技投资发展有限公司 | 一种基于区块链智能合约的数据交易方法 |
CN107562513A (zh) * | 2017-07-18 | 2018-01-09 | 杭州趣链科技有限公司 | 一种基于java的智能合约生命周期的管理方法 |
CN108965399A (zh) * | 2018-06-25 | 2018-12-07 | 百度在线网络技术(北京)有限公司 | 智能合约的执行方法、装置、设备及存储介质 |
CN109345388A (zh) * | 2018-09-20 | 2019-02-15 | 百度在线网络技术(北京)有限公司 | 区块链智能合约验证方法、装置及存储介质 |
CN110070349A (zh) * | 2018-01-22 | 2019-07-30 | 厦门本能管家科技有限公司 | 一种建立双方合约冻结的快速转账方法 |
CN110597916A (zh) * | 2019-09-21 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、存储介质及终端 |
US20190392178A1 (en) * | 2018-06-26 | 2019-12-26 | bootstrap legal Inc. | Method and System for Monitoring a Smart Contract on a Distributed Ledger |
US20200167503A1 (en) * | 2019-05-30 | 2020-05-28 | Alibaba Group Holding Limited | Managing a smart contract on a blockchain |
CN111222160A (zh) * | 2019-12-30 | 2020-06-02 | 联动优势(北京)数字科技有限公司 | 一种智能合约执行方法及系统 |
CN111415260A (zh) * | 2020-03-26 | 2020-07-14 | 杭州复杂美科技有限公司 | 智能合约推广方法、设备和存储介质 |
-
2020
- 2020-08-17 CN CN202010828158.3A patent/CN112037055B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107562513A (zh) * | 2017-07-18 | 2018-01-09 | 杭州趣链科技有限公司 | 一种基于java的智能合约生命周期的管理方法 |
CN107464118A (zh) * | 2017-08-16 | 2017-12-12 | 济南浪潮高新科技投资发展有限公司 | 一种基于区块链智能合约的数据交易方法 |
CN110070349A (zh) * | 2018-01-22 | 2019-07-30 | 厦门本能管家科技有限公司 | 一种建立双方合约冻结的快速转账方法 |
CN108965399A (zh) * | 2018-06-25 | 2018-12-07 | 百度在线网络技术(北京)有限公司 | 智能合约的执行方法、装置、设备及存储介质 |
US20190392178A1 (en) * | 2018-06-26 | 2019-12-26 | bootstrap legal Inc. | Method and System for Monitoring a Smart Contract on a Distributed Ledger |
CN109345388A (zh) * | 2018-09-20 | 2019-02-15 | 百度在线网络技术(北京)有限公司 | 区块链智能合约验证方法、装置及存储介质 |
US20200167503A1 (en) * | 2019-05-30 | 2020-05-28 | Alibaba Group Holding Limited | Managing a smart contract on a blockchain |
CN110597916A (zh) * | 2019-09-21 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、存储介质及终端 |
CN111222160A (zh) * | 2019-12-30 | 2020-06-02 | 联动优势(北京)数字科技有限公司 | 一种智能合约执行方法及系统 |
CN111415260A (zh) * | 2020-03-26 | 2020-07-14 | 杭州复杂美科技有限公司 | 智能合约推广方法、设备和存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112767043A (zh) * | 2021-01-26 | 2021-05-07 | 中国人寿保险股份有限公司上海数据中心 | 一种基于区块链的多平台积分整合系统、方法和存储介质 |
CN112767043B (zh) * | 2021-01-26 | 2024-05-24 | 中国人寿保险股份有限公司上海数据中心 | 一种基于区块链的多平台积分整合系统、方法和存储介质 |
CN114422151A (zh) * | 2022-03-29 | 2022-04-29 | 北京微芯感知科技有限公司 | 一种区块块内交易数扩展方法及系统 |
CN114422151B (zh) * | 2022-03-29 | 2022-07-05 | 北京微芯感知科技有限公司 | 一种区块块内交易数扩展方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112037055B (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110727712B (zh) | 基于区块链网络的数据处理方法、装置、电子设备及存储介质 | |
CN110800005B (zh) | 分片式、许可式、分布式分类账 | |
CN109257334B (zh) | 一种基于区块链的数据上链系统、方法及存储介质 | |
CN112241919B (zh) | 具有数据流控制的多域区块链网络 | |
CN111079136B (zh) | 一种基于区块链技术的雾计算入侵检测特征共享系统 | |
CN110598434B (zh) | 基于区块链网络的房屋信息处理方法、装置、电子设备及存储介质 | |
CN110266872B (zh) | 通讯录数据的管控方法、装置及云通讯录系统、计算机设备、计算机可读存储介质 | |
CN110674128A (zh) | 区块链的链上治理 | |
CN111523890A (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
CN110908786A (zh) | 一种智能合约调用方法、装置及介质 | |
CN113723962B (zh) | 区块链权限管理方法和区块链系统 | |
CN115605868A (zh) | 跨网身份提供 | |
CN114401091B (zh) | 基于区块链的设备跨域认证管理方法及装置 | |
CN112837023A (zh) | 机构的业务协同平台、方法、装置及电子设备 | |
CN112712452A (zh) | 基于区块链的审批信息处理方法和装置 | |
CN112039893B (zh) | 私密交易处理方法、装置、电子设备及可读存储介质 | |
CN112671881B (zh) | 节点组织管理方法、装置、电子设备及可读存储介质 | |
US11343313B1 (en) | Fault tolerant periodic leader rotation for blockchain | |
CN111769956B (zh) | 业务处理方法、装置、设备及介质 | |
CN112037055A (zh) | 交易处理方法、装置、电子设备及可读存储介质 | |
CN112269838A (zh) | 基于区块链的监管方法、装置、电子设备及存储介质 | |
CN112037062A (zh) | 交易共识方法、装置、电子设备及可读存储介质 | |
CN114978651A (zh) | 一种隐私计算存证方法、装置、电子设备及存储介质 | |
CN113890751A (zh) | 控制联盟链权限投票的方法、设备和可读存储介质 | |
CN112507395A (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 |