CN110138767B - 事务请求的处理方法、装置、设备和存储介质 - Google Patents

事务请求的处理方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN110138767B
CN110138767B CN201910389027.7A CN201910389027A CN110138767B CN 110138767 B CN110138767 B CN 110138767B CN 201910389027 A CN201910389027 A CN 201910389027A CN 110138767 B CN110138767 B CN 110138767B
Authority
CN
China
Prior art keywords
transaction request
authority
contract
verification
account
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
Application number
CN201910389027.7A
Other languages
English (en)
Other versions
CN110138767A (zh
Inventor
郑旗
肖伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baidu Online Network Technology Beijing Co Ltd
Original Assignee
Baidu Online Network Technology Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Baidu Online Network Technology Beijing Co Ltd filed Critical Baidu Online Network Technology Beijing Co Ltd
Priority to CN201910389027.7A priority Critical patent/CN110138767B/zh
Publication of CN110138767A publication Critical patent/CN110138767A/zh
Application granted granted Critical
Publication of CN110138767B publication Critical patent/CN110138767B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例公开了一种事务请求的处理方法、装置、设备和存储介质。该方法应用于区块链节点,包括:获取基于应用智能合约发起的事务请求,及事务请求的预执行结果;根据预执行结果以及应用智能合约的权限控制表,分别对事务请求的执行过程进行系统级及合约级处理权限的验证;若各项权限的验证通过,则调用应用智能合约执行事务请求,以获取验证执行结果,并与预执行结果进行匹配验证;结果匹配验证通过后,确定事务请求预执行结果的有效性。本发明实施例的技术方案通过在对事务请求的处理过程中嵌入权限管理机制,实现了事务请求处理和权限管理的同步执行,从而强化了事务请求处理过程的权限管理的系统性、通用性以及易执行性。

Description

事务请求的处理方法、装置、设备和存储介质
技术领域
本发明实施例涉及区块链权限管理技术,尤其涉及一种事务请求的处理方法、装置、设备和存储介质。
背景技术
现有区块链可大致分为公有链、联盟链和私有链。公有链系统主要有比特币、以太坊和EOS(Enterprise Operation System,商用操作系统)。在区块链系统的权限管理方面,一般不同系统的权限管理方式都不同。
比特币系统中没有设计权限管理系统。以太坊系统中引入了智能合约,以太坊系统对于智能合约没有进行权限控制的手段,需要通过在智能合约内硬编码方式来确定权限控制方案。EOS系统中为智能合约提供了基于RBAC(基于角色的权限访问控制,Role-BasedAccess Control)的权限控制方案。
但是,上述不同区块链系统中的权限管理方案,通用性较差,在去中性化为特点的区块链系统中,权限的配置和升级均不方便。由此导致事务请求处理过程中的权限控制通用性差。
发明内容
本发明实施例提供一种事务请求的处理方法、装置、设备和存储介质,以强化区块链中事务请求处理过程的权限管理的系统性、通用性、以及易执行性。
第一方面,本发明实施例提供了一种事务请求的处理方法,应用于区块链节点,所述方法包括:
获取基于应用智能合约发起的事务请求,以及所述事务请求的预执行结果;
根据所述事务请求的预执行结果,对所述事务请求的执行过程进行系统级处理权限的验证;
根据所述事务请求的预执行结果,并基于所述应用智能合约的权限控制表,对所述事务请求的执行过程进行合约级处理权限的验证;
如果各项权限的验证通过,则调用所述应用智能合约执行所述事务请求,以获取验证执行结果,并与所述预执行结果进行匹配验证;
结果匹配验证通过后,确定所述事务请求预执行结果的有效性。
第二方面,本发明实施例还提供了一种事务请求的处理装置,配置于区块链节点,所述装置包括:
事务请求获取模块,用于获取基于应用智能合约发起的事务请求,以及所述事务请求的预执行结果;
系统级验证模块,用于根据所述事务请求的预执行结果,对所述事务请求的执行过程进行系统级处理权限的验证;
合约级验证模块,用于根据所述事务请求的预执行结果,并基于所述应用智能合约的权限控制表,对所述事务请求的执行过程进行合约级处理权限的验证;
执行结果验证模块,用于在各项权限的验证通过时,调用所述应用智能合约执行所述事务请求,以获取验证执行结果,并与所述预执行结果进行匹配验证;
有效性确定模块,用于在结果匹配验证通过后,确定所述事务请求预执行结果的有效性。
第三方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面实施例所提供的一种事务请求的处理方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面实施例所提供的一种事务请求的处理方法。
本发明实施例通过引入基于应用智能合约的事务请求对应的预执行结果以及应用智能合约的权限控制表,分别对事务请求的执行过程进行系统级以及合约级处理权限的验证;在系统级和合约级处理权限的验证通过后,通过调用应用智能合约执行事务请求得到验证执行结果,进一步验证预执行结果的正确性,从而实现对事务请求预执行结果的有效性的验证。上述技术方案通过在对事务请求的处理过程中嵌入权限管理机制,实现了事务请求处理和权限管理的同步执行,从而强化了事务请求处理过程的权限管理的系统性、通用性以及易执行性。
附图说明
图1A是本发明实施例所采用的一种智能合约账户模型的结构示意图;
图1B是本发明实施例所采用的一种合约账户的结构示意图;
图2是本发明实施例一中的一种事务请求的处理方法的流程图;
图3是本发明实施例二中的一种事务请求的处理方法的流程图;
图4是本发明实施例三中的一种事务请求的处理方法的流程图;
图5是本发明实施例四中的一种事务请求的处理方法的流程图;
图6是本发明实施例五中的一种事务请求的处理装置的结构图;
图7是本发明实施例六提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
为了清楚地介绍本发明各实施例的技术方案,首先参见图1A所示的智能合约账户模型的结构示意图和图1B所示的合约账户的结构示意图,对系统账户、合约账户和用户账户进行详细说明。
系统账户,是为区块链系统对应创建的系统级账户,一般可以在创建区块链时创建,该系统账户绑定有一个基础智能合约(Kernel合约),是专用于为合约账户生成权限控制数据的智能合约,通常完成系统级别的功能管理。
合约账户,是为智能合约账户模型中的智能合约所分配的合约级账户,由需要部署智能合约的一个或多个用户账户,调用基础智能合约来创建,用于对智能合约进行部署和/或管理。合约账户可以由基础智能合约对其进行管理。
在合约账户中配置有权限控制数据,用于作为对合约账户的账户操作进行鉴权的参照依据;在合约账户中部署有至少一个应用智能合约,用于供用户账户进行调用,以通过执行应用智能合约实现各种所需的具体应用功能;合约账户还可以持有区块链系统中任何应用智能合约发行时的资产,用于在参与应用智能合约时实现账户资产的转移;合约账户中还配置有权限控制表,用于控制用户账户调用应用智能合约中的子程序(method)的调用权限。
用户账户,通常由个人或企业所有,用于作为用户在区块链中的唯一标识。每个用户账户可以分配有非对称的公钥和私钥,由用户管理私钥,可以将公钥作为用户账户的地址。
在智能合约账户模型中,通常包括一个系统账户和至少一个合约账户。本发明各实施例的技术方案基于上述智能合约账户模型加以实现。
实施例一
图2是本发明实施例一中的一种事务请求的处理方法的流程图。本发明实施例适用于区块链节点对事务请求进行处理的情况,该方法由事务请求的处理装置执行,该装置由软件和/或硬件实现,并具体配置于承载有区块链节点的电子设备中。
如图2所示的一种事务请求的处理方法,应用于区块链节点,包括:
S110、获取基于应用智能合约发起的事务请求,以及所述事务请求的预执行结果。
其中,应用智能合约包含有至少一个子程序,用于通过调用应用智能合约的子程序实现相应的应用功能,例如转账交易、数据分析等任何需要完成的功能。其中,预执行结果可以理解为用户账户直接调用应用智能合约处理事务请求所得到的执行结果。预执行结果通常包括调用应用智能合约执行过程所需使用到的读取数据、写入数据,以及执行过程中调用的程序、接口等各种资源,还可以包括该事务请求执行所需的签名信息,例如,发起用户提供的授权签名等。
具体的,用户账户具备某一应用需求时,将会基于该应用需求对应的应用智能合约发起事务请求,并将事务请求以及调用应用智能合约得到的预执行结果在区块链网络中进行广播;区块链节点接收该事务请求以及事务请求的与执行结果,进行后续处理。
可选的,基于应用智能合约发起的事务请求的获取,可以是以常规事务请求的获取方式进行当前事务请求的获取;解析获取的当前事务请求,以确定当前事务请求是否为基于应用智能合约发起的事务请求。示例性地,基于应用智能合约发起的事务请求可以通过在事务请求中添加标识信息加以区分,其中标识信息可以是设定字符等。
需要说明的是,在预执行事务请求的过程中,用户账户可以请求其他授权账户进行签名,以获取执行事务请求时所需的权限,该权限可以是执行事务请求时的所有权限,也可以是用户账户所缺少的权限。示例性地,执行事务请求时所需的权限可以包括系统级处理权限或者合约级处理权限等。当然,如果用户账户自身具备执行事务请求时所需的各权限时,也可以不从其他授权账户获取签名授权。其中,系统级处理权限可以理解为区块链系统中的节点设备处理事务请求时所需的权限,合约级处理权限可以理解为调用智能合约处理事务请求时的合约调用权限。
S120、根据所述事务请求的预执行结果,对所述事务请求的执行过程进行系统级处理权限的验证。
其中,系统级处理是指执行该事务请求所需使用的系统级资源,可以理解为对系统接口的调用以及系统参数的调整等。其中,系统接口由区块链系统提供,可以是查询区块链、写入区块链以及密钥算法等通用功能接口。其中,系统参数可以是共识出块时间或者区块大小等。
在本发明实施例的一个可选实施方式中,根据所述事务请求的预执行结果,对所述事务请求的执行过程进行系统级处理权限的验证,可以是:确定所述事务请求获得预执行结果中所使用的系统接口;根据为所述应用智能合约配置的系统接口调用权限表,验证所述应用智能合约是否有权限调用所述系统接口,以进行系统级处理权限的验证。其中,系统接口调用权限表用于限定运行应用智能合约时,对具备调用权限的系统接口进行限定。
在本发明实施例的另一个可选实施方式中,根据所述事务请求的预执行结果,对所述事务请求的执行过程进行系统级处理权限的验证,可以是:确定所述事务请求获得预执行结果中所修改的系统参数;根据为所述应用智能合约配置的系统参数修改权限表,验证所述应用智能合约是否有权限修改所述系统参数,以进行系统级处理权限的验证。其中,系统参数修改权限表用于限定运行应用智能合约时,对具备修改权限的系统接口进行限定。上述权限表可以记录各种权限控制策略,例如,白名单、黑名单、或签名信息的验证策略等。
S130、根据所述事务请求的预执行结果,并基于所述应用智能合约的权限控制表,对所述事务请求的执行过程进行合约级处理权限的验证。
其中,应用智能合约的权限控制表用于记录应用智能合约中子程序的函数调用权限,用于通过应用智能合约的权限控制表,确定事务请求的执行过程中是否具备应用智能合约中相应子程序的函数调用权限,进而实现对事务请求的执行过程中的合约级处理权限的验证。应用智能合约的权限控制表可以在应用智能合约部署到区块链节点时进行配置,也可以在后续进行更改调整。
S140、如果各项权限的验证通过,则调用所述应用智能合约执行所述事务请求,以获取验证执行结果,并与所述预执行结果进行匹配验证。
具体的,当对事务请求的执行过程中的系统级处理权限验证通过,并且合约级处理权限验证也通过时,说明有权限调用应用智能合约来执行,进而可调用应用智能合约执行事务请求,得到相应的运行结果作为验证执行结果;将验证执行结果与预执行结果进行匹配验证,后续通过匹配验证结果,确定事务请求的预执行结果的有效性。通常调用应用智能合约执行事务请求,需要占用的资源较多,因此,预先进行系统级处理权限验证和合约级处理权限验证,能够先确认是否有权限执行该事务请求。若没有权限,则不必浪费资源执行一遍事务请求。
可以理解的是,为了强化事务请求验证过程的系统性和通用性,提高事务请求验证结果的准确性,在获取验证执行结果时,可以通过系统级的基础智能合约进行应用智能合约的调用。
可选的,与预执行结果进行匹配验证,可以是将验证执行结果的读写集与预执行结果的读写集进行匹配;若两读写集至少部分不同,则确定预执行结果有误,也即匹配验证失败;若两读写集完全相同,则确定预执行结果正确,也即匹配验证通过。或者可选的,为了减少数据运算量,与预执行结果进行匹配验证,还可以是将验证执行结果的读写集结果与预执行结果的读写集结果进行匹配;若两读写集结果至少部分不同,则确定预执行结果有误,也即匹配验证失败;若两读写集结果完全相同,则确定预执行结果正确,也即匹配验证通过。
S150、结果匹配验证通过后,确定所述事务请求预执行结果的有效性。
示例性地,当验证执行结果与预执行结果相一致时,表明匹配验证通过,则确定事务请求预执行结果有效;当验证执行结果与预执行结果不一致时,表明匹配验证未通过,则确定事务请求预执行结果无效。
需要说明的是,对系统级处理权限的验证和合约级处理权限的验证可以先后执行,也可以同时执行,同时对两权限验证过程的先后顺序不做任何限定。可以理解的是,为了减少事务请求处理过程的数据运算量,同时提高事务请求的处理效率,优选是先进行系统级处理权限的验证,只有在系统级处理权限验证通过之后,再进行合约级处理权限的验证。
本发明实施例通过引入基于应用智能合约的事务请求对应的预执行结果以及应用智能合约的权限控制表,分别对事务请求的执行过程进行系统级以及合约级处理权限的验证;在系统级和合约级处理权限的验证通过后,通过调用应用智能合约执行事务请求得到验证执行结果,进一步验证预执行结果的正确性,从而实现对事务请求预执行结果的有效性的验证。上述技术方案通过在对事务请求的处理过程中嵌入权限管理机制,实现了事务请求处理和权限管理的同步执行,从而强化了事务请求处理过程的权限管理的系统性、通用性以及易执行性。
在本发明实施例的一个可选实施方式中,为了进一步强化区块链中事务请求处理过程的权限管理的系统性和通用性,对系统级处理权限的验证和/或合约级处理权限的验证,可以通过调用基础智能合约来实现。
在上述各实施例的技术方案的基础上,为了便于区块链网络中其他区块链节点对事务请求的真实性和/或有效性进行验证,在结果匹配验证通过后,确定所述事务请求执行结果的有效性之后,还包括:将所述预执行结果封装到所述事务请求中,向区块链网络中传输,以请求其他区块链节点验证所述事务请求。此过程是由事务请求的发起节点来执行的。例如,某个用户访问某个区块链节点,在该节点上形成一个事务请求,经预执行以及验证有效性后,该区块链节点作为发起节点,将该事务请求向区块链网络广播传输,以请求将事务请求的结果上链存储。或者,在结果匹配验证通过后,确定所述事务请求执行结果的有效性之后,还包括:将包括所述预执行结果的事务请求,作为事务数据,存储到区块中。该过程是由接收到网络发送的事务请求的区块链节点来执行的,这类节点在验证事务请求的结果有效且正确之后,就进行上链存储。
示例性地,当区块链节点确定事务请求的有效性后,将预执行结果封装到事务请求中,广播至区块链网络;区块链网络中的其他区块链节点接收到事务请求后,解析该事务请求以获取预执行结果;根据解析获取的预执行结果对事务请求的执行过程进行系统级处理权限的验证;以及根据解析获取的预执行结果,并基于事务请求执行所需调用的智能合约的权限控制表,对事务请求的执行过程进行合约级处理权限的验证;如果各项权限的验证通过,则调用应用智能合约执行事务请求,以获取验证执行结果,并与预执行结果进行匹配验证;结果匹配验证通过,则确定预执行结果的有效性,进而确定所接收的事务请求有效。
实施例二
图3是本发明实施例二中的一种事务请求的处理方法的流程图,本发明实施例在上述各实施例的技术方案的基础上进行了优化改进。
进一步地,将操作“根据所述事务请求的预执行结果,对所述事务请求的执行过程进行系统级处理权限的验证”细化为“确定所述事务请求获得预执行结果中所使用的系统接口;根据为所述应用智能合约配置的系统接口调用权限表,验证所述应用智能合约是否有权限调用所述系统接口,以进行系统级处理权限的验证”,以完善对事务请求的执行过程进行系统级处理权限的验证时的验证机制。
如图3所示的一种事务请求的处理方法,包括:
S210、获取基于应用智能合约发起的事务请求,以及所述事务请求的预执行结果。
S220、确定所述事务请求获得预执行结果中所使用的系统接口。
示例性地,预执行结果中包含了在事务请求的预执行过程中所调用的系统接口。相应的,可以直接解析预执行结果,从而得到预执行过程中所调用的系统接口,进而对系统接口的调用权限加以验证。
S230、根据为所述应用智能合约配置的系统接口调用权限表,验证所述应用智能合约是否有权限调用所述系统接口,以进行系统级处理权限的验证。
其中,系统接口调用权限表用于限定运行应用智能合约时,对具备调用权限的系统接口进行限定。可选的,对具备调用权限的系统接口的限定可以是肯定性限定,也即在系统接口调用权限表中对运行应用智能合约时对允许调用权限的系统接口进行记载;或者可选的,对具备调用权限的系统接口的限定可以是否定性限定,也即在系统调用权限表中对运行应用智能合约时禁止调用的系统接口进行记载。
可选的,为应用智能合约配置的系统接口调用权限表,可以存储在应用智能合约中,也即在同一合约账户中所包含的不同的应用智能合约对应不同的系统接口调用权限表。或者可选的,为应用智能合约配置的系统接口调用权限表,可以存储在合约账户的权限控制数据中,也即在同一合约账户中所包含的不同的应用智能合约对应相同的系统接口调用权限表。
可以理解的是,为了便于对系统接口调用权限的统一管理,减少合约账户中的数据存储量,同时便于对同一合约账户中不同应用智能合约的系统接口调用权限进行针对性管理,优选是采用两种方式并行管理的方式。
示例性地,在应用智能合约所在的合约账户中和应用智能合约中设置互斥的系统接口调用权限表,并设置应用智能合约中记载的系统接口的权限优先级高于合约账户中记载的系统接口的优先级。也即,在合约账户中的系统接口调用权限表中记载允许调用的各系统接口,并在应用智能合约中的系统接口调用权限与合约账户中记载的同一系统接口的调用权限不一致时,在应用智能合约的系统接口调用权限表中记载调用权限不一致的系统接口,以禁止该系统接口的调用;或者,在合约账户中的系统接口调用权限表中记载禁止调用的各系统接口,并在应用智能合约中的系统接口调用权限与合约账户中记载的同一系统接口的调用权限不一致时,在应用智能合约的系统接口调用权限表中记载调用权限不一致的系统接口,以允许该系统接口的调用。
示例性地,在应用智能合约所在的合约账户中设置互补的系统接口调用权限表。也即,在合约账户中的系统接口调用权限表中记载各应用智能合约共同允许和/或禁止的系统接口,同时在各应用智能合约对应的系统接口调用权限表中限定对其他系统接口的允许权限或禁止权限。
其中,对系统参数修改权限表的设置以及系统参数修改权限的验证过程,分别与前述系统接口调用权限表的设置以及系统接口调用权限的验证过程相似,在此不再赘述。
S240、根据所述事务请求的预执行结果,并基于所述应用智能合约的权限控制表,对所述事务请求的执行过程进行合约级处理权限的验证。
S250、如果各项权限的验证通过,则调用所述应用智能合约执行所述事务请求,以获取验证执行结果,并与所述预执行结果进行匹配验证。
S260、结果匹配验证通过后,确定所述事务请求预执行结果的有效性。
本发明实施例通过将对事务请求执行过程中系统级处理权限的验证过程,细化为确定事务请求获得预执行结果中所使用的系统接口;根据为应用智能合约配置的系统接口调用权限表,验证应用智能合约是否有权限调用系统接口,以进行系统级处理权限的验证,实现了对系统接口调用过程的合法性的有效验证,进而完善了对事务请求进行系统级处理权限验证时的验证机制。
实施例三
图4是本发明实施例三中的一种事务请求的处理方法的流程图,本发明实施例在上述各实施例的技术方案的基础上进行了优化改进。
进一步地,将操作“根据所述事务请求的预执行结果,并基于所述应用智能合约的权限控制表,对所述事务请求的执行过程进行合约级处理权限的验证”细化为“根据所述事务请求的预执行结果确定所调用的所述应用智能合约的子程序;根据所述应用智能合约的权限控制表,确定发起所述事务请求的用户是否有权限调用所述子程序,以进行合约级处理权限的验证,其中,所述权限控制表包括所述应用智能合约中子程序的调用权限策略”,以完善对事务请求的执行过程进行合约级处理权限的验证时的验证机制。
如图4所示的一种事务请求的处理方法,包括:
S310、获取基于应用智能合约发起的事务请求,以及所述事务请求的预执行结果。
S320、根据所述事务请求的预执行结果,对所述事务请求的执行过程进行系统级处理权限的验证。
S330、根据所述事务请求的预执行结果确定所调用的所述应用智能合约的子程序。
示例性地,预执行结果中包含了在对事务请求的预执行过程中所调用的子程序以及调用子程序的输出结果。相应的,可以直接解析预执行结果,从而得到预执行过程中所调用的应用智能合约的子程序,进而对子程序的调用权限加以验证。
S340、根据所述应用智能合约的权限控制表,确定发起所述事务请求的用户是否有权限调用所述子程序,以进行合约级处理权限的验证。
其中,所述权限控制表包括所述应用智能合约中子程序的调用权限策略,并通过调用权限策略控制用户账户对应用智能合约中子程序的调用权限。
其中,权限控制表中所包含的调用权限策略由应用智能合约的部署者自定义确定,并可以通过应用智能合约所在合约账户对权限控制表进行增加、变更、删除以及查询等管理操作。
相应的,根据应用智能合约的权限控制表,对应用智能合约中子程序的调用权限进行鉴权,以进行合约级处理权限的验证。只有在应用智能合约中子程序的调用权限鉴权通过时,才可以调用应用智能合约中相应的子程序,得到函数运行结果,进而实现验证执行结果的获取。
示例性地,调用权限策略包括下述至少一种:函数调用阈值策略,用于根据事务请求中所包含的授权账户的权重之和,与设定调用阈值之间的关系,确定函数调用鉴权通过结果;函数调用背书策略,用于根据事务请求中所包含的授权账户的数量或比例,确定函数调用鉴权通过结果;固定账户策略,用于根据事务请求发起用户与预设授权账户之间的关系,确定函数调用鉴权通过结果。其中,授权账户为具备函数调用权限的用户账户。其中,不同授权账户在部署应用智能合约后预先设定有相应的函数调用权重值。当然,对于不同的应用智能合约,也可以设置某些子程序是可以供所有用户账户调用的。
可选地,根据所述应用智能合约的权限控制表,确定发起所述事务请求的用户是否有权限调用所述子程序,可以是:获取事务请求中所包含的授权账户的函数调用权重值;计算事务请求中所包含的授权账户的函数调用权重值之和;若函数调用权重值之和大于设定函数调用阈值,则确定发起事务请求的用户具有调用子程序的权限;否则不具有调用子程序的权限。
或者可选地,根据所述应用智能合约的权限控制表,确定发起所述事务请求的用户是否有权限调用所述子程序,可以是:统计事务请求中所包含的授权账户的数量,或确定事务请求中所包含的授权账户的比例;若确定的授权账户的数量大于函数调用设定数量阈值,或确定的授权账户的比例大于函数调用设定比例阈值,则确定发起事务请求的用户具有调用子程序的权限;否则不具有调用子程序的权限。
或者可选地,根据所述应用智能合约的权限控制表,确定发起所述事务请求的用户是否有权限调用所述子程序,可以是:统计事务请求中所包含的授权账户是否为预设授权账户;若是则确定发起事务请求的用户具有调用子程序的权限;否则不具有调用子程序的权限。例如,转账智能合约,可识别授权账户是否为待转出资产的用户账户,如果是,则确定用户具有调用转账智能合约的子程序的权限。
S350、如果各项权限的验证通过,则调用所述应用智能合约执行所述事务请求,以获取验证执行结果,并与所述预执行结果进行匹配验证。
只有在系统级处理权限验证通过,并且合约级处理权限的验证通过的情况下,才能确定事务请求的预执行过程中系统级处理合法以及合约级处理合法。只有在系统接口调用和应用智能合约中子程序的调用均合法的基础上,才有必要对预执行结果的正确性加以验证。
示例性地,可以采用设定智能合约,例如基础智能合约直接调用应用智能合约中相应的子程序,执行事务请求,并将运行结果作为验证执行结果;通过比较验证执行结果与预执行结果,确定预执行结果的正确性。
S360、结果匹配验证通过后,确定所述事务请求预执行结果的有效性。
具体的,在系统级处理权限验证通过,则确实事务请求的系统级处理过程合法,例如系统接口调用为合法调用;在合约级处理权限验证通过时,则确定事务请求的合约级处理过程合法,例如应用智能合约中子程序调用为合法调用;在预执行结果与验证执行结果相一致时,则确定预执行过程的执行结果正确。当系统级处理过程具备合法性、合约级处理过程具备合法性、以及预执行结果具备正确性这三个限制条件均满足时,确定事务请求的预执行结果有效;当至少一个限制条件不满足时,确定事务请求的预执行结果无效。
本发明实施例通过将对事务请求的执行过程进行合约级处理权限的验证操作细化为根据事务请求的预执行结果确定所调用的应用合约的子程序;根据应用智能合约的权限控制表,确定发起事务请求的用户是否有权限调用子程序,以进行合约级处理权限的验证,实现了对子程序调用过程的合法性的有效验证,进而完善了对事务请求进行合约级处理权限验证时的验证机制。
实施例四
图5是本发明实施例四中的一种事务请求的处理方法的流程图,本发明实施例在上述各实施例的技术方案的基础上进行了优化改进。
进一步地,将操作“获取基于应用智能合约发起的事务请求”之后,追加“根据所述应用智能合约所属的合约账户,识别所述事务请求是否为合约账户的账户操作;如果所述事务请求为账户操作,则基于所述合约账户的权限控制数据,对所述账户操作的处理权限进行验证”,以通过合约账户实现对合约账户的账户操作的鉴权,进而强化对区块链中合约账户的账户操作过程的权限管理的系统性、通用性以及易执行性。
如图5所示的一种事务请求的处理方法,包括:
S410、获取基于应用智能合约发起的事务请求,以及所述事务请求的预执行结果。
S420、根据所述应用智能合约所属的合约账户,识别所述事务请求是否为合约账户的账户操作。
示例性地,事务请求中包括账户操作标识,用于将对智能合约进行账户操作的事务请求和其他事务请求加以区分。可选的,事务请求中还包括账户操作信息,用于对不同的账户操作加以区分。其中,账户操作信息可以是账户操作内容或账户操作标识。进一步地,还可以根据事务请求中的账户操作信息,确定对合约账户需进行的具体的账户操作,进而对相应的账户操作进行权限验证。
可选的,账户操作包括下述至少一项:配置所述合约账户的权限控制数据的内容、控制所述合约账户部署的应用智能合约、以及控制所述合约账户的资产转移。当然,本领域技术人员可以理解,合约账户的账户操作还可以包括其他对合约账户进行的整体操作、或需要限制权限的操作。
示例性地,若账户操作为配置合约账户的权限控制数据的内容,则执行账户操作包括下述至少一项:增加或删除成员账户集合中的成员账户;增加、删除、或修改权限控制策略。
示例性地,若账户操作为控制合约账户的资产转移,则执行账户操作包括下述至少一项:账户资产的转入、转出、不同资产元素的兑换、发行和销毁。
示例性地,若账户操作为控制合约账户部署的应用智能合约,则执行账户操作包括下述至少一项:在区块链节点中部署所述应用智能合约的代码和参数;在区块链节点中变更所述应用智能合约的代码和参数;在区块链节点中为所述应用智能合约配置、变更、删除或查询权限控制表;其中,所述权限控制表用于控制用户账户对所述应用智能合约中子程序的调用权限。
S430、如果所述事务请求为账户操作,则基于所述合约账户的权限控制数据,对所述账户操作的处理权限进行验证。
当用户存在合约账户的账户操作需求时,在于执行事务请求的过程中,用户账户可以请求其他授权账户进行签名,以获取对合约账户进行账户操作的权限;相应的,对账户操作的处理权限进行验证,可以是对事务请求中所包含的签名信息,也即鉴权信息进行验证。或者,用户账户自身具备充分的账户操作权限时,也可以不从其他授权中户获取签名授权;相应的,对账户操作的处理权限进行验证,可以是对用户账户是否符合合约账户的账户操作权限加以验证。
其中,权限控制数据包括成员账户集合和权限控制策略。
其中,成员账户集合中存储有至少一个用户账户的账户地址,用于限定对合约账户具备管理权限的用户账户。可选的,对合约账户具备管理权限的限定可以是肯定性限定,也即成员账户集合中存储的用户账户为具备管理权限的用户账户;或者可选的,对合约账户具备管理权限的限定可以是否定性限定,也即成员账户集合中存储的用户账户为不具备管理权限的用户账户。一般的,对合约账户进行管理的用户账户的数量可少于使用合约账户的用户账户的数量,因此为了减少合约账户中的数据存储量,优选是在成员账户集合中存储具备管理权限的用户账户的账户地址。
权限控制策略用于限定对合约账户的管理操作策略,由合约账户的创建者或所有者根据需要自定义确定,是合约账户创建时所指定的合约账户的属性。
其中,权限控制策略包括下述至少一个:阈值策略,用于根据鉴权通过的成员账户的权重值之和,与设定通过阈值之间的关系,确定整体鉴权通过结果;背书策略,用于根据鉴权通过的成员账户的数量或比例,确定整体鉴权通过结果;固定账户策略,用于根据账户操作的关联账户与预设固定账户之间的关系,确定整体鉴权通过结果。
以事务请求为合约账户的资产转移操作为例,对账户操作的处理权限的验证过程进行详细说明。其中,账户操作的处理权限的验证可以是基于合约账户的权限控制数据,确定所述事务请求的鉴权信息或用户是否符合合约账户的资产转移权限要求。
可选地,基于所述合约账户的权限控制数据,对所述账户操作的处理权限进行验证,可以是:获取事务请求中所包含的各待鉴权账户;将各待鉴权账户与成员账户集合中的成员账户进行查找匹配;确定匹配成功的各待鉴权账户的权重值之和;若权重值之和大于设定通过阈值,则账户操作的权限验证通过,也即鉴权信息符合资产转移权限要求;否则账户操作的权限验证不通过,也即鉴权信息不符合资产转移权限要求。其中,成员账户集合中各成员账户的权重值在定义成员账户集合时,由合约账户的创建者或所有者进行分配。
或者可选地,基于所述合约账户的权限控制数据,对所述账户操作的处理权限进行验证,可以是:获取事务请求中所包含的各待鉴权账户;将各待鉴权账户与成员账户集合中的成员账户进行查找匹配;确定匹配成功的各待鉴权账户的数量或比例;若匹配成功的待鉴权账户的数量大于设定数量阈值,或者匹配成功的待鉴权账户的比例大于设定比例阈值,则账户操作的权限验证通过,也即鉴权信息符合资产转移权限要求;否则账户操作的权限验证不通过,也即鉴权信息不符合资产转移权限要求。
或者可选地,基于所述合约账户的权限控制数据,对所述账户操作的处理权限进行验证,可以是:获取合约账户操作事务请求中所包含的各待鉴权账户;将各待鉴权账户与成员账户集合中的预设固定账户进行匹配;若匹配成功,则确定账户操作的权限验证通过,也即鉴权信息符合资产转移权限要求;否则账户操作的权限验证不通过,也即鉴权信息不符合资产转移权限要求。
或者可选地,基于所述合约账户的权限控制数据,对所述账户操作的处理权限进行验证,可以是:获取确定对合约账户需进行的账户操作的关联账户,或事务请求的发起者账户;若关联账户或发起者账户为成员账户集合中预设固定账户的衍生账户或被衍生账户,则确定账户操作的权限验证通过,也即用户符合资产转移权限要求;否则账户操作的权限验证不通过,也即用户不符合资产转移权限要求。其中,预设固定账户的衍生账户可以理解为预设固定账户的子账户,继承有预设固定账户的至少部分操作权限;预设固定账户的被衍生账户可以理解为预设固定账户的父账户,预设固定账户继承有被衍生账户的至少部分操作权限。
当然,为了进一步保证对合约账户的资产转移操作的顺利执行,在对账户操作的处理权限进行验证的过程中,还可以对资产转移的参与方的有效性加以验证。示例性地,可以对资产转移的转入账户和转出账户是否为合约账户加以验证;还可以对资产转移中所涉及的待处理元素在转出账户中余额是否满足转出需求加以验证;还可以对转入账户中是否拥有待处理元素的储备权限加以验证等。
S440、根据所述事务请求的预执行结果,对所述事务请求的执行过程进行系统级处理权限的验证。
S450、根据所述事务请求的预执行结果,并基于所述应用智能合约的权限控制表,对所述事务请求的执行过程进行合约级处理权限的验证。
S460、如果各项权限的验证通过,则调用所述应用智能合约执行所述事务请求,以获取验证执行结果,并与所述预执行结果进行匹配验证。
S470、结果匹配验证通过后,确定所述事务请求预执行结果的有效性。
需要说明的是,本发明实施例对系统级处理权限的验证、账户操作的处理权限的验证、以及合约级处理权限的验证的先后顺序不做任何限定。当然,为了简化权限验证过程的计算量,提高权限验证效率,优选是将权限验证的主席经书序从前至后依次设置为:系统级处理权限的验证、账户操作的处理权限的验证、以及合约级处理权限的验证。
为了实现对各权限验证的统一管理,保证权限验证过程被强制执行以及无差别执行,同时实现对权限验证方式的添加、删除、查看以及修改等管理,进而进一步强化区块链中事务请求处理过程的权限管理的系统性、通用性、以及易执行性,优选是通过调用基础智能合约实现系统级处理权限的验证、账户操作的处理权限的验证、以及合约级处理权限的验证的权限验证过程。
本发明实施例通过在获取基于应用智能合约发起的事务请求之后,追加在事务请求为账户操作时,对账户操作的处理权限的验证过程,通过合约账户实现对账户操作的鉴权,从而强化了区块链中合约账户的账户操作过程的权限管理的系统性、通用性以及易执行性;通过对合约账户的账户操作的鉴权,还提高了账户操作的安全性,进而保证了区块链系统的稳定性。
实施例五
图6是本发明实施例五中的一种事务请求的处理装置的结构图。本发明实施例适用于区块链节点对事务请求进行处理的情况,该装置由软件和/或硬件实现,并具体配置于承载有区块链节点的电子设备中。
如图6所示的一种事务请求的处理装置,包括:事务请求获取模块510、系统级验证模块520、合约级验证模块530、执行结果验证模块540以及有效性确定模块550。
其中,事务请求获取模块510,用于获取基于应用智能合约发起的事务请求,以及所述事务请求的预执行结果;
系统级验证模块520,用于根据所述事务请求的预执行结果,对所述事务请求的执行过程进行系统级处理权限的验证;
合约级验证模块530,用于根据所述事务请求的预执行结果,并基于所述应用智能合约的权限控制表,对所述事务请求的执行过程进行合约级处理权限的验证;
执行结果验证模块540,用于在各项权限的验证通过时,调用所述应用智能合约执行所述事务请求,以获取验证执行结果,并与所述预执行结果进行匹配验证;
有效性确定模块550,用于在结果匹配验证通过后,确定所述事务请求预执行结果的有效性。
本发明实施例通过事务请求获取模块获取基于应用智能合约发起的事务请求,以及事务请求的预执行结果;通过系统级验证模块根据事务请求的预执行结果,对事务请求的执行过程进行系统级处理权限的验证;通过合约级验证模块根据事务请求的预执行结果,并基于应用智能合约的权限控制表,对事务请求的执行过程进行合约级处理权限的验证;通过执行结果验证模块,在各项权限的验证通过时,调用应用智能合约执行事务请求,以获取验证执行结果,并与预执行结果进行匹配验证;通过有效性确定模块在结果匹配验证通过后,确定事务请求预执行结果的有效性。上述技术方案通过在对事务请求的处理过程中嵌入权限管理机制,实现了事务请求处理和权限管理的同步执行,从而强化了事务请求处理过程的权限管理的系统性、通用性以及易执行性。
进一步地,该装置还包括,账户操作验证模块,具体包括:
账户操作识别单元,用于在获取基于应用智能合约发起的事务请求之后,根据所述应用智能合约所属的合约账户,识别所述事务请求是否为合约账户的账户操作;
账户操作验证单元,用于在所述事务请求为账户操作时,基于所述合约账户的权限控制策略,对所述账户操作的处理权限进行验证。
进一步地,权限验证的执行顺序从前至后依次包括:所述系统级处理权限的验证、所述账户操作的处理权限的验证、以及所述合约级处理权限的验证。
进一步地,所述系统级处理权限的验证、所述账户操作的处理权限的验证、以及所述合约级处理权限的验证通过调用基础智能合约来实现。
进一步地,该装置还包括事务请求验证模块,具体用于:
在结果匹配验证通过后,确定所述事务请求执行结果的有效性之后,将所述预执行结果封装到所述事务请求中,向区块链网络中传输,以请求其他区块链节点验证所述事务请求。
进一步地,该装置还包括,事务数据存储模块,具体用于:
在结果匹配验证通过后,确定所述事务请求执行结果的有效性之后,将包括所述预执行结果的事务请求,作为事务数据,存储到区块中。
进一步地,系统级验证模块520,包括:
系统接口确定单元,用于确定所述事务请求获得预执行结果中所使用的系统接口;
系统级验证单元,用于根据为所述应用智能合约配置的系统接口调用权限表,验证所述应用智能合约是否有权限调用所述系统接口,以进行系统级处理权限的验证。
进一步地,合约级验证模块530,包括:
子程序确定单元,用于根据所述事务请求的预执行结果确定所调用的所述应用智能合约的子程序;
合约级验证单元,用于根据所述应用智能合约的权限控制表,确定发起所述事务请求的用户是否有权限调用所述子程序,以进行合约级处理权限的验证,其中,所述权限控制表包括所述应用智能合约中子程序的调用权限策略。
进一步地,账户操作验证单元,具体用于:
如果所述事务请求为合约账户的资产转移操作,则基于所述合约账户的权限控制策略,确定所述事务请求的鉴权信息或用户是否符合合约账户的资产转移权限要求,以对所述账户操作的处理权限进行验证。
本发明实施例所提供的事务请求的处理装置可执行本发明任意实施例所提供的事务请求的处理方法,具备执行事务请求的处理方法相应的功能模块和有益效果。
实施例六
图7是本发明实施例六提供的一种电子设备的结构示意图。图7示出了适于用来实现本发明实施方式的示例性电子设备612的框图。图7显示的电子设备612仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,电子设备612以通用计算设备的形式表现。电子设备612的组件可以包括但不限于:一个或者多个处理器或者处理单元616,系统存储器628,连接不同系统组件(包括系统存储器628和处理单元616)的总线618。
总线618表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备612典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备612访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器628可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)630和/或高速缓存存储器632。电子设备612可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统634可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线618相连。存储器628可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块642的程序/实用工具640,可以存储在例如存储器628中,这样的程序模块642包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块642通常执行本发明所描述的实施例中的功能和/或方法。
电子设备612也可以与一个或多个外部设备614(例如键盘、指向设备、显示器624等)通信,还可与一个或者多个使得用户能与该电子设备612交互的设备通信,和/或与使得该电子设备612能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口622进行。并且,电子设备612还可以通过网络适配器620与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器620通过总线618与电子设备612的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备612使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元616通过运行存储在系统存储器628中的多个程序中的至少一个程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的一种事务请求的处理方法。
实施例七
本发明实施例七提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任一实施例所提供的一种事务请求的处理方法,应用于区块链节点,所述方法包括:获取基于应用智能合约发起的事务请求,以及所述事务请求的预执行结果;根据所述事务请求的预执行结果,对所述事务请求的执行过程进行系统级处理权限的验证;根据所述事务请求的预执行结果,并基于所述应用智能合约的权限控制表,对所述事务请求的执行过程进行合约级处理权限的验证;如果各项权限的验证通过,则调用所述应用智能合约执行所述事务请求,以获取验证执行结果,并与所述预执行结果进行匹配验证;结果匹配验证通过后,确定所述事务请求预执行结果的有效性。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (11)

1.一种事务请求的处理方法,其特征在于,应用于区块链节点,所述方法包括:
获取基于应用智能合约发起的事务请求,以及所述事务请求的预执行结果;其中,所述预执行结果包括执行过程中调用的接口和程序;
根据所述事务请求的预执行结果,对所述事务请求的执行过程进行系统级处理权限的验证;
根据所述事务请求的预执行结果,并基于所述应用智能合约的权限控制表,对所述事务请求的执行过程进行合约级处理权限的验证;
如果各项权限的验证通过,则调用所述应用智能合约执行所述事务请求,以获取验证执行结果,并与所述预执行结果进行匹配验证;
结果匹配验证通过后,确定所述事务请求预执行结果的有效性。
2.根据权利要求1所述的方法,其特征在于,获取基于应用智能合约发起的事务请求之后,还包括:
根据所述应用智能合约所属的合约账户,识别所述事务请求是否为合约账户的账户操作;
如果所述事务请求为账户操作,则基于所述合约账户的权限控制数据,对所述账户操作的处理权限进行验证。
3.根据权利要求2所述的方法,其特征在于,权限验证的执行顺序从前至后依次包括:所述系统级处理权限的验证、所述账户操作的处理权限的验证、以及所述合约级处理权限的验证。
4.根据权利要求3所述的方法,其特征在于,所述系统级处理权限的验证、所述账户操作的处理权限的验证、以及所述合约级处理权限的验证通过调用基础智能合约来实现。
5.根据权利要求1所述的方法,其特征在于,结果匹配验证通过后,确定所述事务请求执行结果的有效性之后,还包括:
将所述预执行结果封装到所述事务请求中,向区块链网络中传输,以请求其他区块链节点验证所述事务请求;或
将包括所述预执行结果的事务请求,作为事务数据,存储到区块中。
6.根据权利要求1所述的方法,其特征在于,根据所述事务请求的预执行结果,对所述事务请求的执行过程进行系统级处理权限的验证包括:
确定所述事务请求获得预执行结果中所使用的系统接口;
根据为所述应用智能合约配置的系统接口调用权限表,验证所述应用智能合约是否有权限调用所述系统接口,以进行系统级处理权限的验证。
7.根据权利要求1所述的方法,其特征在于,根据所述事务请求的预执行结果,并基于所述应用智能合约的权限控制表,对所述事务请求的执行过程进行合约级处理权限的验证包括:
根据所述事务请求的预执行结果确定所调用的所述应用智能合约的子程序;
根据所述应用智能合约的权限控制表,确定发起所述事务请求的用户是否有权限调用所述子程序,以进行合约级处理权限的验证,其中,所述权限控制表包括所述应用智能合约中子程序的调用权限策略。
8.根据权利要求2所述的方法,其特征在于,如果所述事务请求为账户操作,则基于所述合约账户的权限控制数据,对所述账户操作的处理权限进行验证包括:
如果所述事务请求为合约账户的资产转移操作,则基于所述合约账户的权限控制数据,确定所述事务请求的鉴权信息或用户是否符合合约账户的资产转移权限要求,以对所述账户操作的处理权限进行验证。
9.一种事务请求的处理装置,其特征在于,配置于区块链节点,所述装置包括:
事务请求获取模块,用于获取基于应用智能合约发起的事务请求,以及所述事务请求的预执行结果;其中,所述预执行结果包括执行过程中调用的接口和程序;
系统级验证模块,用于根据所述事务请求的预执行结果,对所述事务请求的执行过程进行系统级处理权限的验证;
合约级验证模块,用于根据所述事务请求的预执行结果,并基于所述应用智能合约的权限控制表,对所述事务请求的执行过程进行合约级处理权限的验证;
执行结果验证模块,用于在各项权限的验证通过时,调用所述应用智能合约执行所述事务请求,以获取验证执行结果,并与所述预执行结果进行匹配验证;
有效性确定模块,用于在结果匹配验证通过后,确定所述事务请求预执行结果的有效性。
10.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8任一项所述的一种事务请求的处理方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8任一项所述的一种事务请求的处理方法。
CN201910389027.7A 2019-05-07 2019-05-07 事务请求的处理方法、装置、设备和存储介质 Active CN110138767B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910389027.7A CN110138767B (zh) 2019-05-07 2019-05-07 事务请求的处理方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910389027.7A CN110138767B (zh) 2019-05-07 2019-05-07 事务请求的处理方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN110138767A CN110138767A (zh) 2019-08-16
CN110138767B true CN110138767B (zh) 2021-11-30

Family

ID=67573215

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910389027.7A Active CN110138767B (zh) 2019-05-07 2019-05-07 事务请求的处理方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN110138767B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111258725B (zh) * 2020-01-17 2023-07-25 北京百度网讯科技有限公司 一种基于区块链的数据处理方法、装置、设备和介质
CN111369246B (zh) * 2020-03-02 2023-06-06 万翼科技有限公司 智能合约的调用鉴权方法、装置、电子设备及存储介质
CN111565204B (zh) * 2020-07-16 2021-06-18 百度在线网络技术(北京)有限公司 区块链运行方法、装置、设备及存储介质
CN112235251B (zh) * 2020-09-21 2022-11-15 中国建设银行股份有限公司 一种区块链管理方法、装置、计算机设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789443A (zh) * 2017-01-13 2017-05-31 百度在线网络技术(北京)有限公司 呈现网络访问请求分析结果的方法与装置
WO2018036701A1 (de) * 2016-08-24 2018-03-01 Siemens Aktiengesellschaft Gesichertes verarbeiten einer berechtigungsnachweisanfrage
CN108305170A (zh) * 2018-03-07 2018-07-20 物数(上海)信息科技有限公司 基于区块链的外部服务访问方法、系统、设备及存储介质
CN108737348A (zh) * 2017-04-21 2018-11-02 中国科学院信息工程研究所 一种基于区块链的智能合约的物联网设备访问控制方法
CN109067759A (zh) * 2018-08-27 2018-12-21 深圳前海益链网络科技有限公司 一种智能合约调用单点执行系统
CN109064168A (zh) * 2018-06-12 2018-12-21 深圳前海微众银行股份有限公司 基于区块链的权限控制方法、装置及计算机可读存储介质
CN109145189A (zh) * 2018-08-22 2019-01-04 杭州微链区块链科技有限公司 一种基于区块链的数据存入和搜索系统及其方法
CN109391612A (zh) * 2018-08-17 2019-02-26 杭州微链区块链科技有限公司 一种基于区块链的身份确认系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107341702B (zh) * 2017-03-08 2020-06-23 创新先进技术有限公司 一种业务处理的方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018036701A1 (de) * 2016-08-24 2018-03-01 Siemens Aktiengesellschaft Gesichertes verarbeiten einer berechtigungsnachweisanfrage
CN106789443A (zh) * 2017-01-13 2017-05-31 百度在线网络技术(北京)有限公司 呈现网络访问请求分析结果的方法与装置
CN108737348A (zh) * 2017-04-21 2018-11-02 中国科学院信息工程研究所 一种基于区块链的智能合约的物联网设备访问控制方法
CN108305170A (zh) * 2018-03-07 2018-07-20 物数(上海)信息科技有限公司 基于区块链的外部服务访问方法、系统、设备及存储介质
CN109064168A (zh) * 2018-06-12 2018-12-21 深圳前海微众银行股份有限公司 基于区块链的权限控制方法、装置及计算机可读存储介质
CN109391612A (zh) * 2018-08-17 2019-02-26 杭州微链区块链科技有限公司 一种基于区块链的身份确认系统及方法
CN109145189A (zh) * 2018-08-22 2019-01-04 杭州微链区块链科技有限公司 一种基于区块链的数据存入和搜索系统及其方法
CN109067759A (zh) * 2018-08-27 2018-12-21 深圳前海益链网络科技有限公司 一种智能合约调用单点执行系统

Also Published As

Publication number Publication date
CN110138767A (zh) 2019-08-16

Similar Documents

Publication Publication Date Title
CN110096857B (zh) 区块链系统的权限管理方法、装置、设备和介质
CN110310205B (zh) 一种区块链数据监控方法、装置、设备和介质
CN110138767B (zh) 事务请求的处理方法、装置、设备和存储介质
CN109981679B (zh) 在区块链网络中执行事务的方法和装置
US11265306B2 (en) Account authentication method for cloud storage, and server
CN110414268B (zh) 访问控制方法、装置、设备及存储介质
CN109889517B (zh) 数据处理方法、权限数据集创建方法、装置及电子设备
CN111343142A (zh) 一种基于区块链网络的数据处理方法、装置及存储介质
US20160028774A1 (en) Data Access Policies
CN113656780B (zh) 一种跨链访问控制方法和装置
US10891357B2 (en) Managing the display of hidden proprietary software code to authorized licensed users
CN111062028B (zh) 权限管理方法及装置、存储介质、电子设备
CN113239386A (zh) Api权限控制方法及装置
KR20160018554A (ko) 신뢰 및 비신뢰 플랫폼에 걸쳐 인터넷 액세스가능 애플리케이션 상태를 로밍하는 기법
WO2020232158A1 (en) System and methods for securely storing data for efficient access by cloud-based computing instances
CN110070360B (zh) 一种事务请求处理方法、装置、设备及存储介质
CN110213250B (zh) 数据处理方法及终端设备
CN113722114A (zh) 一种数据服务的处理方法、装置、计算设备及存储介质
CN111597269A (zh) 一种基于区块链的合约实现方法、装置及设备
CN105677693B (zh) 一种访问数据库的方法及装置
CN108600259B (zh) 设备的认证和绑定方法及计算机存储介质、服务器
CN110336813A (zh) 一种访问控制方法、装置、设备及存储介质
CN112463266A (zh) 执行策略生成方法、装置、电子设备以及存储介质
US10192066B2 (en) Semantic restriction
CN109753769A (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