CN116980136A - 智能合约的接口处理方法、装置、设备、存储介质及产品 - Google Patents
智能合约的接口处理方法、装置、设备、存储介质及产品 Download PDFInfo
- Publication number
- CN116980136A CN116980136A CN202310902436.9A CN202310902436A CN116980136A CN 116980136 A CN116980136 A CN 116980136A CN 202310902436 A CN202310902436 A CN 202310902436A CN 116980136 A CN116980136 A CN 116980136A
- Authority
- CN
- China
- Prior art keywords
- interface
- certificate
- target object
- intelligent contract
- request
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 27
- 238000012795 verification Methods 0.000 claims abstract description 169
- 238000012545 processing Methods 0.000 claims abstract description 112
- 238000000034 method Methods 0.000 claims abstract description 66
- 238000013475 authorization Methods 0.000 claims abstract description 46
- 238000012546 transfer Methods 0.000 claims description 43
- 238000004590 computer program Methods 0.000 claims description 24
- 230000004044 response Effects 0.000 claims description 6
- 238000007726 management method Methods 0.000 description 83
- 238000005516 engineering process Methods 0.000 description 28
- 238000010586 diagram Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 20
- 230000006870 function Effects 0.000 description 14
- 230000003993 interaction Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 238000013473 artificial intelligence Methods 0.000 description 8
- 238000013500 data storage Methods 0.000 description 8
- 230000008520 organization Effects 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 241000700605 Viruses Species 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- 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/32—Cryptographic 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/3263—Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- 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/32—Cryptographic 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/3247—Cryptographic 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
-
- 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
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提出一种智能合约的接口处理方法、装置、设备、存储介质及产品。该方法包括:接收目标对象发起的接口调用请求,接口调用请求包括签名字段,签名字段是采用目标对象的数字证书的私钥对第一请求参数进行签名后生成的;第一请求参数包括请求调用的目标智能合约接口的接口标识;采用目标对象的数字证书的公钥对签名字段进行验签处理;在验签通过后,获取与数字证书相关联的接口权限列表,接口权限列表包含目标对象允许调用的至少一个智能合约接口的接口标识;若接口权限列表包含目标智能合约接口的接口标识,则执行接口授权操作。本申请可以基于数字证书实现目标对象对智能合约接口的调用,提高接口调用的灵活性、安全性。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种智能合约的接口处理方法、一种智能合约的接口处理装置、一种计算机设备、一种计算机可读存储介质及一种计算机程序产品。
背景技术
在区块链中涉及到的各种业务应用,通常需通过调用智能合约接口来执行相应的业务操作。因此,如何进行智能合约接口的调用是区块链领域研究的一大热门话题。
目前,通过是基于白名单或者角色来进行智能合约接口的调用控制,无论是白名单控制方式还是角色控制方式,均是对各个调用对象进行批量管理,即白名单中的各个调用对象可调用的智能合约接口均是相同的,接口管理方式较为单一,灵活性较差。
发明内容
本申请实施例提出了一种智能合约的接口处理方法、装置、设备、存储介质及产品,可以基于数字证书实现目标对象对智能合约接口的调用,提高接口调用的灵活性、安全性。
一方面,本申请实施例提供了一种智能合约的接口处理方法,该方法包括:
接收目标对象发起的接口调用请求,接口调用请求包括签名字段,签名字段是采用目标对象的数字证书的私钥对第一请求参数进行签名后生成的;第一请求参数包括请求调用的目标智能合约接口的接口标识;
采用目标对象的数字证书的公钥对签名字段进行验签处理;
在验签通过后,获取与数字证书相关联的接口权限列表,接口权限列表包含目标对象允许调用的至少一个智能合约接口的接口标识;
若接口权限列表包含目标智能合约接口的接口标识,则执行接口授权操作。
一方面,本申请实施例提供了一种智能合约的接口处理装置,该装置包括:
接收单元,用于接收目标对象发起的接口调用请求,接口调用请求包括签名字段,签名字段是采用目标对象的数字证书的私钥对第一请求参数进行签名后生成的;第一请求参数包括请求调用的目标智能合约接口的接口标识;
处理单元,用于采用目标对象的数字证书的公钥对签名字段进行验签处理;
处理单元,还用于在验签通过后,获取与数字证书相关联的接口权限列表,接口权限列表包含目标对象允许调用的至少一个智能合约接口的接口标识;
处理单元,还用于若接口权限列表包含目标智能合约接口的接口标识,则执行接口授权操作。
在一种可能的实现方式中,智能合约的接口处理方法由区块链节点执行,区块链节点配置有智能合约证书管理模块,智能合约证书管理模块基于智能合约网关获取接口调用请求中的签名字段;接收单元接收目标对象发起的接口调用请求之前,处理单元还用于执行以下操作:
接收智能合约网关转发的证书申请请求,证书申请请求中携带有第二请求参数,第二请求参数包括目标对象的证书请求凭证;
调用智能合约证书管理模块对证书请求凭证进行校验,若确定对证书请求凭证校验通过,则基于证书请求凭证向证书授权机构申请目标对象的数字证书;
其中,对证书请求凭证执行的所述校验包括:格式校验、有效性校验、安全性校验、合法性校验中的任一种或多种。
在一种可能的实现方式中,处理单元基于证书请求凭证向证书授权机构申请目标对象的数字证书,用于执行以下操作:
调用智能合约证书管理模块对证书请求凭证进行加密处理,得到证书加密凭证,并将证书加密凭证发送至证书授权机构;
接收证书授权机构返回的数字证书;
其中,证书授权机构在接收到智能合约证书管理模块发送的证书加密凭证后,对证书加密凭证进行解密得到证书请求凭证,并在确定对证书请求凭证校验通过后,为目标对象生成数字证书。
在一种可能的实现方式中,处理单元还用于执行以下操作:
显示证书申请界面,证书申请界面中显示有待选择的至少一个智能合约的合约标识、以及智能合约接口的接口标识;
响应于在证书申请界面中针对目标智能合约下的目标接口标识的选择操作,确定目标接口标识对应的目标智能合约接口;
当检测到录入的证书请求凭证后,基于证书请求凭证和目标接口标识生成证书申请请求,证书申请请求用于向证书授权机构申请目标对象的数字证书。
在一种可能的实现方式中,第二请求参数还包括:智能合约的合约标识、以及接口权限列表;接口权限列表中记录有目标对象在证书申请界面所选择的至少一个智能合约接口的接口标识;处理单元还用于执行以下操作:
获取目标对象在智能合约平台中的身份注册信息;
基于目标对象的身份注册信息,对接口权限列表中的各个智能合约接口进行权限校验;
若确定对接口权限列表中的各个智能合约接口的权限校验均通过,则将目标对象的数字证书、智能合约的合约标识、以及接口权限列表之间建立关联关系。
在一种可能的实现方式中,处理单元还用于执行以下操作:
若接口权限列表中存在权限校验不通过的智能合约接口,则将校验不通过的智能合约接口从接口权限列表中删除,得到更新后的接口权限列表;
将目标对象的数字证书、智能合约的合约标识、以及更新后的接口权限列表之间建立关联关系。
在一种可能的实现方式中,区块链节点中还运行有智能合约应用程序,接口调用请求是由智能合约网关转发至智能合约应用程序的;接收目标对象发起的接口调用请求之后,处理单元还用于执行以下操作:
调用智能合约应用程序解析接口调用请求中的第一请求参数,得到业务参数;
对业务参数进行参数校验,若确定对业务参数的参数校验通过,则采用目标对象的数字证书的公钥,调用智能合约证书管理模块对签名字段进行验签处理;
其中,参数校验包括:业务权限校验、业务状态校验、数据格式校验中的任一种或多种。
在一种可能的实现方式中,智能合约证书管理模块中记录有:目标对象的标识、目标对象的数字证书、以及接口权限列表之间的关联关系;采用目标对象的数字证书的公钥,调用智能合约证书管理模块对签名字段进行验签处理之后,处理单元还用于执行以下操作:
基于目标对象的标识,获取目标对象的数字证书、以及数字证书的有效期;
基于数字证书的有效期,调用智能合约证书管理模块对数字证书进行有效性验证;
若对数字证书的有效性验证通过,则触发执行获取与数字证书相关联的接口权限列表的步骤。
在一种可能的实现方式中,处理单元还用于执行以下操作:
若接口权限列表中未包含目标智能合约接口的接口标识,则执行接口授权的拒绝操作,并生成拒绝接口调用的反馈消息;
将反馈消息返回至目标对象所在的客户端。
在一种可能的实现方式中,目标智能合约接口包括资源转移接口;若接口权限列表包含目标智能合约接口的接口标识,则处理单元执行接口授权操作之后,还用于执行以下操作:
响应于目标对象所在的客户端发送的资产转移请求,资产转移请求用于请求转移目标资源量的数字资产;
调用资源转移接口,将目标对象的账户中目标资源量的数字资产转移至参考对象的账户中。
一方面,本申请实施例提供一种计算机设备,该计算机设备包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述的智能合约的接口处理方法。
一方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被计算机设备的处理器读取并执行时,使得计算机设备执行上述的智能合约的接口处理方法。
一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的智能合约的接口处理方法。
本申请实施例中,可以接收目标对象发起的接口调用请求,该接口调用请求包括签名字段,签名字段是采用目标对象的数字证书的私钥对第一请求参数进行签名后生成的;该第一请求参数包括请求调用的目标智能合约接口的接口标识;然后,采用目标对象的数字证书的公钥对签名字段进行验签处理;接下来,在验签通过后,获取与数字证书相关联的接口权限列表,该接口权限列表包含目标对象允许调用的至少一个智能合约接口的接口标识;若接口权限列表包含目标智能合约接口的接口标识,则执行接口授权操作。由此可见,一方面,本申请在进行接口调用时,可基于数字证书对目标对象进行身份验证,可确保只有合法持有数字证书的目标对象才能访问特定的智能合约接口,提高接口调用的安全性;另一方面,数字证书与接口权限列表之间具备关联关系,实现了对目标对象的接口调用权限的灵活管理,接口权限列表记录有当前对象允许调用的智能合约接口,进而提高了接口调用的灵活性。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术对象来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种区块链系统的结构示意图;
图2是本申请实施例提供的一种区块链的结构示意图;
图3是本申请实施例提供的一种智能合约的接口处理系统的架构示意图;
图4是本申请实施例提供的一种智能合约的接口处理方法的流程示意图;
图5是本申请实施例提供的一种申请数字证书的流程示意图;
图6是本申请实施例提供的一种获取身份信息的场景示意图;
图7是本申请实施例提供的一种调用智能合约接口的流程示意图;
图8是本申请实施例提供的一种智能合约的接口处理方法的场景示意图;
图9是本申请实施例提供的一种申请证书请求凭证的界面示意图;
图10是本申请实施例提供的一种请求数字证书的界面示意图;
图11是本申请实施例提供的一种签名字段的内容示意图;
图12是本申请实施例提供的一种智能合约的接口处理装置的结构示意图;
图13是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
本申请提供了一种智能合约的接口处理方案,该智能合约的接口处理方案可以利用数字证书进行目标对象的身份验证与权限管理,实现对智能合约接口的安全、高效地授权调用。具体地,该接口处理方案的大致原理如下:可以接收目标对象发起的接口调用请求,该接口调用请求包括签名字段,签名字段是采用目标对象的数字证书的私钥对第一请求参数进行签名后生成的;该第一请求参数包括请求调用的目标智能合约接口的接口标识;然后,采用目标对象的数字证书的公钥对签名字段进行验签处理;接下来,在验签通过后,获取与数字证书相关联的接口权限列表,该接口权限列表包含目标对象允许调用的至少一个智能合约接口的接口标识;若接口权限列表包含目标智能合约接口的接口标识,则执行接口授权操作。由此可见,一方面,本申请在进行接口调用时,可基于数字证书对目标对象进行身份验证,可确保只有合法持有数字证书的目标对象才能访问特定的智能合约接口,提高接口调用的安全性;另一方面,数字证书与接口权限列表之间具备关联关系,实现了对目标对象的接口调用权限的灵活管理,接口权限列表记录有当前对象允许调用的智能合约接口,进而提高了接口调用的灵活性。
下面对本申请实施例涉及的关键技术术语进行阐述。
一、数字证书:
数字证书也称为公钥证书或身份证书,是一个由权威的数字证书颁发机构(CA,Certificate Authority)签发的用于证明公钥持有者身份的电子文件。数字证书至少包含:公钥持有者的信息、公钥以及由CA机构签名的数字签名等数据。其中,一个用户对应一个唯一的数字证书,因此该数字证书是指可以用于证明用户身份的数据文件。本申请中,采用目标对象的数字证书的私钥可以进行签名处理,得到签名字段,若能够基于该数字证书的公钥对签名字段进行验签成功,则可以标识当前的签名字段是由目标对象发起的,从而验证目标对象的身份。
二、证书请求凭证:
顾名思义,所谓证书请求凭证是一种用于请求数字证书的凭证,本申请中的证书请求凭证是指数字证书CSR(Certificate Signing Request,证书请求串),所谓数字证书CSR:是一个包含公钥和其他相关信息(如请求者的名称、组织和国家)的消息,它用于向数字证书颁发机构(CA,Certificate Authority)申请数字证书。CSR通常由申请者(例如目标对象)使用自己的私钥对相关信息进行签名,以证明公钥真实有效且确实属于申请者。
三、智能合约接口:
智能合约接口是一种应用程序接口(Application Programming Interface,API接口),是一种运行下智能合约下的合约接口,不同的智能合约接口用于执行不同地业务操作。例如资源转移接口可用于执行资源转移操作,又如开票接口可用于执行开票操作。本申请中,一个智能合约可包含一个或多个智能合约接口,通过调用不同的智能合约接口可用于执行相应智能合约下不同的业务操作。
四、区块链技术:
区块链(Block chain)本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。具体地,本申请将分别对区块链系统、以及区块链的结构等相关术语进行详细介绍。
(1)区块链系统:
请参见图1,图1是本申请实施例提供的一种区块链系统的结构示意图。如图1所示,区块链系统可以为数据共享系统,所谓数据共享系统是指用于进行节点与节点之间数据共享的系统,该数据共享系统100中可以包括多个区块链节点101,多个区块链节点101可以是指数据共享系统中各个计算机设备,计算机设备例如可以为终端设备或服务器。其中,数据共享系统100中的各个节点之间可以组成点对点网络,点对点网络遵循点对点协议,所谓点对点协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议,基于该TCP协议来维护上述数据共享系统。下面对区块链系统中任一区块链节点进行详细介绍。
①节点之间的数据交互:
具体地,为了保证区块链系统内的信息互通,区块链系统中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。其中,上述的信息连接不限定具体的连接方式,例如可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其他连接方式,本申请在此不做限制。
在一种可能的实现方式中,每个区块链节点101在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该数据共享系统内的共享数据。例如,当区块链系统中的任一区块链节点101接收到输入信息(例如接收到目标对象发起的接口调用请求,接口调用请求包括签名字段)时,若对签名字段验证通过,则该区块链节点101可以根据该接口调用请求,将接口调用请求中携带的第一请求参数分别发送至其它各区块链节点,以使得各区块链节点对该第一请求参数进行区块链共识。若确定对第一请求参数的区块链共识通过后,可将该第一请求参数存储至区块链系统中;后续,任一区块链节点101可从区块链系统中获取第一请求参数,从而实现数据溯源。
②节点实现的功能:
a、应用功能,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,并可将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。例如,本申请中,目标对象在发起针对目标智能合约接口的接口调用请求时,需携带有签名字段(即基于目标对象的数字证书的私钥对第一请求参数进行签名后生成的),然后该接口调用请求可被转发至区块链系统中的区块链节点,区块链节点在对签名字段进行验签处理通过后,即可基于节点的应用功能执行该接口调用请求所指示的业务逻辑。具体地,在验签通过后,可以获取与数字证书相关联的接口权限列表,该接口权限列表包含目标对象允许调用的至少一个智能合约接口的接口标识;若接口权限列表包含目标智能合约接口的接口标识,则执行接口授权操作。
b、合约功能,区块链系统中任一区块链节点具备调用并执行相应的智能合约的功能,所谓智能合约(Smart Contract,可简称合约):一种运行在区块链上的程序(计算机化的协议),可以执行智能合约的某些条款(合约任务),通过部署在共享账本上的用于在满足一定条件时而执行的代码实现;和普通程序不同的是,智能合约要保证在区块链系统内每一个节点中运行的结果完全相同,这样才能使任何一个节点都可以验证区块中智能合约执行的结果是否正确。
具体来说,本申请中区块链节点可以调用相应的智能合约执行授权交易请求进行上链处理(密钥授权处理)所需的处理操作;区块链节点还可以调用相应的智能合约(例如业务中继智能合约、资源管理智能合约、以及应用合约)执行业务交易请求进行上链处理(业务执行处理)所需的处理操作。
基于此,本申请可基于节点的应用功能针对性的执行目标对象发起的业务操作请求所指示的业务逻辑,例如业务操作请求用于指示是由目标对象向转移对象进行数字资源的转移逻辑,则可以基于应用功能实现资源转移的业务逻辑;又如业务操作请求用于指示目标对象向发票服务商请求开一笔电子票据,则可以基于应用功能实现开发票的业务逻辑。其次,在实现诸如上述资源转移的业务逻辑、以及开发票的业务逻辑的过程中主要是触发相应的智能合约来执行相应的处理操作的。
③节点标识:
对于区块链系统中的每个节点,均具有与其对应的节点标识,而且区块链系统中的每个节点均可以存储有区块链系统中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至区块链系统中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。
其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息,表1中仅以IP地址为例进行说明。
表1.节点标识列表
节点名称 | 节点标识 |
节点1 | 000.000.000.000 |
节点2 | 111.111.111.111 |
… | … |
节点N | xxx.xxx.xxx.xxx |
本申请实施例中,区块链系统中各个节点在进行数据交互过程中,可以携带有各自的节点标识,使得其他节点在进行相应的数据处理之前可以基于对应的节点标识进行节点验证处理,从而提高区块链中数据处理过程的安全性。
(2)区块的结构:
参见图2,图2是本申请实施例提供的一种区块链的结构示意图。如图2所示,区块链由多个区块组成,且每个区块链均包含一个创始块,顾名思义,所谓创始块即第一个区块、初始区块。创始块中包括区块头和区块体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块体中存储有输入信息(例如会话密钥、以及会话密钥的授权信息);创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
在一种可能的实现方式中,本申请在对目标对象发起的接口调用请求中的签名字段进行验签通过后,可得到第一请求参数,并可将第一请求参数存储至区块的区块体中,从而避免该接口调用请求中的第一请求参数被篡改或泄露,提高数据安全性和可靠性。
五、云技术:
本申请的智能合约的接口处理方案中,涉及较多的合约调用服务、接口调用、以及数据存储服务,这些服务均涉及大量的数据计算以及数据存储服务,因此需要花费大量的计算机运营成本。那么,本申请可以基于云技术中的云存储技术来实现本申请相关的处理操作,具体可以包括:在验签处理成功后,通过调用对应的智能合约下的智能合约接口来执行相应的业务处理操作。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。其中,云技术可以包括云存储技术,所谓云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
六、人工智能:
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大接口处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本申请提供的智能合约的接口处理方案主要涉及人工智能领域的分布式存储技术。具体来说,本申请中所涉及到的相关数据:签名字段、第一请求参数、第二请求参数、数字证书、以及接口权限列表等等,可采用分布式存储技术进行数据存储,例如目标对象发起的接口调用请求可以发送至区块链系统中的任一区块链节点,任一区块链节点在采用目标对象的数字证书的公钥对签名字段进行验签处理后,可以将接口调用请求中的第一请求参数分布式存储在区块链系统中的各个区块链节点中。在后续需获取相关数据(例如接口权限列表)时可以从任一区块链节点进行数据获取,采用分布式存储技术可提高数据获取的效率。
需要特别说明的是,在本申请中涉及到的接口处理过程中的相关数据,例如:签名字段、第一请求参数、第二请求参数、数字证书、以及接口权限列表等等。在本申请以上实施例运用到具体产品或技术中时,需获得用户许可或同意,且相关数据收集、使用和处理过程需遵守国家和地区的相关法律法规和标准,符合合法、正当、必要的原则,不涉及获取法律法规禁止或限制的数据类型。在一些可选的实施例中,本申请实施例中所涉及的相关数据是经过对象单独授权后获取的,另外,在获取对象单独授权时,向对象表明所涉及的相关数据的用途。
下面结合图3对本申请的智能合约的接口处理系统的架构图进行具体介绍。
请参见图3,图3是本申请实施例提供的一种智能合约的接口处理系统的架构示意图。如图3所示,该接口处理系统的架构图中至少可以包括:智能合约网关300、客户端301、以及至少一个区块链节点302。其中,各区块链节点302构成一个区块链网络。应当说明,该区块链网络中的节点数量仅用于示例,并不对本申请中的节点数量进行具体限定。其中,区块链网络中的任一区块链节点302可与客户端301之间可以通过有线或无线通信方式进行直接或间接地连接,具体地,任一区块链节点302可以通过智能合约网关300与客户端301之间建立通信连接。
接口处理系统中的任一计算机设备(客户端301、或区块链节点302)可以是手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(MID,mobile internet device)、车辆、车载设备、路边设备、飞行器、可穿戴设备,诸如智能手表、智能手环、计步器等的智能设备,虚拟现实设备....等等。
接口处理系统中的任一计算机设备(客户端301、或区块链节点302)可以是服务器。具体地,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
可以理解的是,接口处理系统中的各个计算机设备的类型可以相同或不同,例如:客户端301可以是手机,区块链节点302也可以是手机;再如:客户端301可以是手机,区块链节点302可以是笔记本电脑。本申请并不对接口处理系统中的各个计算机设备的数量及类型进行限定。
(1)首先,对智能合约的接口处理系统中的客户端301、以及区块链节点302的功能进行相应介绍:
①客户端301:可用于发起接口调用请求,例如发起调用目标智能合约接口的接口调用请求。其中,接口调用请求可用于请求调用一个或多个智能合约接口,例如接口调用请求可用于请求调用第一智能合约接口(例如资源转移接口);又如接口调用请求可用于请求同时调用第一智能合约接口(例如资源转移接口)和第二智能合约接口(例如开票接口),其中,第一智能合约接口与第二智能合约接口可以是指同一智能合约下的不同接口,也可以是指不同智能合约下的不同接口,本申请实施例对此不做具体限定。
②区块链节点302:运行有多个智能合约,不同智能合约下包括至少一个API接口(Application Programming Interface,应用程序编程接口),一个智能合约下的API接口可用于执行一种或多种类型的业务逻辑,例如资源转移合约下的API接口可用于执行资源转移的业务逻辑,又如电子发票合约下的API接口可用于执行开具电子搭配的业务逻辑。
(2)然后,对智能合约的接口处理系统中的客户端301、以及区块链节点302之间的数据交互过程进行详细介绍:
①目标对象基于客户端301发起接口调用请求,该接口调用请求包括签名字段,签名字段是采用目标对象的数字证书的私钥对第一请求参数进行签名后生成的,第一请求参数包括请求调用的目标智能合约接口的接口标识;
②客户端301将接口调用请求发送至区块链节点302,该区块链节点302可以是与客户端301通信质量最好的节点,该区块链节点302也可以是区块链网络中的任一节点,该区块链节点302还可以是客户端301所指定的节点;可选的,客户端301与区块链节点301之间可以基于智能合约网关300进行通信。
③区块链节点302采用目标对象的数字证书的公钥对签名字段进行验签处理;
④在验签通过后,区块链节点302可以获取与数字证书相关联的接口权限列表,接口权限列表包含目标对象允许调用的至少一个智能合约接口的接口标识;
⑤若接口权限列表包含目标智能合约接口的接口标识,则区块链节点302执行接口授权操作;后续,客户端301在接收接口授权的通知消息后,客户端301可以发起对目标智能合约接口的调用操作,以调用目标智能合约接口执行相应的业务操作。
本申请提供的智能合约的接口处理系统,可以接收目标对象发起的接口调用请求,该接口调用请求包括签名字段,签名字段是采用目标对象的数字证书的私钥对第一请求参数进行签名后生成的;该第一请求参数包括请求调用的目标智能合约接口的接口标识;然后,采用目标对象的数字证书的公钥对签名字段进行验签处理;接下来,在验签通过后,获取与数字证书相关联的接口权限列表,该接口权限列表包含目标对象允许调用的至少一个智能合约接口的接口标识;若接口权限列表包含目标智能合约接口的接口标识,则执行接口授权操作。由此可见,一方面,本申请在进行接口调用时,可基于数字证书对目标对象进行身份验证,可确保只有合法持有数字证书的目标对象才能访问特定的智能合约接口,提高接口调用的安全性;另一方面,数字证书与接口权限列表之间具备关联关系,实现了对目标对象的接口调用权限的灵活管理,接口权限列表记录有当前对象允许调用的智能合约接口,进而提高了接口调用的灵活性。
可以理解的是,本申请实施例描述的智能合约的接口处理系统是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术对象可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
基于前述对智能合约的接口处理方案和智能合约的接口处理系统的相关描述,下面将结合附图对智能合约的接口处理方案所涉及的具体实施例进行详细描述。
请参见图4,图4是本申请实施例所提供的一种智能合约的接口处理方法的流程示意图。该接口处理方法可以由图3所示的智能合约的接口处理系统中的计算机设备(区块链节点)执行。其中,该智能合约的接口处理方法主要包括但不限于如下步骤S401~S404:
S401:接收目标对象发起的接口调用请求,接口调用请求包括签名字段,签名字段是采用目标对象的数字证书的私钥对第一请求参数进行签名后生成的;第一请求参数包括请求调用的目标智能合约接口的接口标识。
具体地,区块链节点中配置有智能合约证书管理模块,该智能合约证书管理模块基于智能合约网关获取接口调用请求中的签名字段。在一种可能的实现方式中,目标对象基于客户端生成接口调用请求,然后目标对象所在的客户端将接口调用请求发送至智能合约网关,由智能合约网关将该接口调用请求转发至区块链节点。其中,智能合约网关用于在客户端与区块链节点之间建立通信连接。
下面对如何申请目标对象的数字证书的过程进行详细说明:
在一种可能的实现方式中,区块链节点在接收目标对象发起的接口调用请求之前,还用于执行以下操作:接收智能合约网关转发的证书申请请求,该证书申请请求中携带有第二请求参数,第二请求参数包括目标对象的证书请求凭证;调用智能合约证书管理模块对证书请求凭证进行校验,若确定对证书请求凭证校验通过,则基于证书请求凭证向证书授权机构(即数字证书颁发机构,简称CA机构)申请目标对象的数字证书。其中,对证书请求凭证执行的校验包括:格式校验、有效性校验、安全性校验、合法性校验中的任一种或多种。具体地,①格式校验是指校验该证书请求凭证是否满足预设格式(例如是否包含指定字段等),若满足则格式校验通过,若不满足则格式校验不通过;②有效性校验是指校验当前证书请求凭证是否过期或失效,若过期,则不具备有效性;若未过期,则具备有效性;③安全性校验是指解析该证书请求凭证的文件数据中是否包含病毒等不安全数据,若包含,则不具备安全性;若不包含,则具备安全性;④合法性校验是指校验该证书请求凭证中的信息是否符合法律法规,若符合,则具备合法性,若不符合,则不具备合法性。可选的,当上述几种校验均通过,则确定对证书请求凭证的校验通过;若存在任一校验不通过,则可以确定对证书请求凭证的校验不通过。另外,上述几种不同方式的校验之间的先后顺序并不做具体限定,可以并行执行,也可以串行执行。
在一种可能的实现方式中,证书申请请求的生成过程如下:可显示证书申请界面,证书申请界面中显示有待选择的至少一个智能合约的合约标识、以及智能合约接口的接口标识;响应于在证书申请界面中针对目标智能合约下的目标接口标识的选择操作,确定目标接口标识对应的目标智能合约接口;当检测到录入的证书请求凭证后,基于证书请求凭证和目标接口标识生成证书申请请求,证书申请请求用于向证书授权机构申请目标对象的数字证书。采用这种方式,目标对象可以在界面中发起请求调用的各个智能合约接口、以及请求数字证书,界面处理更加方便快捷。
进一步地,第二请求参数还包括:智能合约的合约标识、以及接口权限列表;接口权限列表中记录有目标对象在证书申请界面所选择的至少一个智能合约接口的接口标识;智能合约证书管理模块还可以执行以下操作:①获取目标对象在智能合约平台中的身份注册信息;②基于目标对象的身份注册信息,对接口权限列表中的各个智能合约接口进行权限校验,具体地,基于目标对象的身份注册信息可以确定该目标对象的身份类型,若接口权限列表中包含:付款码接口、转账接口、收款码接口、红包接口,例如目标对象为商户,则对接口权限列表中的各个智能合约接口的权限校验均通过;若目标对象为个人,则对收款码接口的权限校验不通过;③若确定对接口权限列表中的各个智能合约接口的权限校验均通过,则将目标对象的数字证书、智能合约的合约标识、以及接口权限列表之间建立关联关系。④若存在校验不通过的智能合约接口,则可以将接口权限列表中校验不通过的智能合约接口进行删除,得到更新后的接口权限列表;然后将目标对象的数字证书、智能合约的合约标识、以及更新后的接口权限列表之间建立关联关系。采取这种方式,可以对用户自定义选择的智能合约接口进行权限校验,从而使得智能合约证书管理模块中为目标对象所关联存储的接口权限列表既能满足用户自定义选择的灵活需求,又能提高接口授权的可靠性;同时,还可以使得接口授权能够根据调用者的数字证书进行精确的接口调用权限授权,从而实现对智能合约接口访问的更细粒度控制。
具体地,智能合约证书管理模块的数据存储格式如下表2.1所示:
表2.1、智能合约证书管理模块的数据存储格式
目标对象 | 数字证书 | 接口权限列表 |
Id1 | 证书1 | 接口1、2、3 |
Id2 | 证书2 | 接口1、3 |
Id3 | 证书3 | 接口2、4 |
表2.1可知,在智能合约证书管理模块中,可以关联记录每一个目标对象的数字证书、以及允许调用的一个或多个智能合约接口,在该数据存储模式下,所记录的各个目标对象均是针对的同一智能合约。可选的,若各个目标对象各自针对不同的智能合约,则智能合约证书管理模块中还可以记录有智能合约的合约ID,因此,智能合约证书管理模块的数据存储格式还可以如下表2.2所示:
表2.2、智能合约证书管理模块的数据存储格式
目标对象的标识 | 数字证书 | 智能合约 | 接口权限列表 |
Id1 | 证书1 | 合约1 | 接口1、2、3 |
Id2 | 证书2 | 合约2 | 接口1、3 |
Id3 | 证书3 | 合约3 | 接口2、4 |
在一种可能的实现方式中,智能合约证书管理模块基于证书请求凭证向证书授权机构申请目标对象的数字证书,包括:将证书请求凭证直接发送至证书授权机构,证书授权机构校验该证书请求凭证中的具体内容,并在校验通过后,为目标对象生成数字证书。
在另一种可能的实现方式中,智能合约证书管理模块基于证书请求凭证向证书授权机构申请目标对象的数字证书,还可以包括:①调用智能合约证书管理模块对证书请求凭证进行加密处理,得到证书加密凭证,并将证书加密凭证发送至证书授权机构,具体地,可以采用加密算法执行加密处理,加密算法可以包括但不限于:哈希算法、;②接收证书授权机构返回的数字证书;其中,证书授权机构在接收到智能合约证书管理模块发送的证书加密凭证后,对证书加密凭证进行解密得到证书请求凭证,并在确定对证书请求凭证校验通过后,为所述目标对象生成数字证书。采取这种方式,在证书申请过程中,可以对用于申请数字证书的证书请求凭证进行加密处理,防止数据泄露,从而可以确保证书请求凭证的安全性,提高数据交互过程的安全性和可靠性。
S402:采用目标对象的数字证书的公钥对签名字段进行验签处理。
在一种可能的实现方式中,接口调用请求可以携带有发起者(目标对象)的标识,区块链节点在接收到接口调用请求后,可以确定发起请求的目标对象,然后获取该目标对象的数字证书的公钥。接下来,采用该目标对象的数字证书的公钥对签名字段进行验签处理,得到验签结果。若验签通过,则执行以下步骤S403;若验签不通过,则不响应该接口调用请求。
在一种可能的实现方式中,采用目标对象的数字证书的公钥,调用智能合约证书管理模块对签名字段进行验签处理之后,还用于执行以下操作:首先,基于目标对象的标识,获取目标对象的数字证书、以及数字证书的有效期;然后,基于数字证书的有效期,调用智能合约证书管理模块对数字证书进行有效性验证;若对数字证书的有效性验证通过,则触发执行获取与数字证书相关联的接口权限列表的步骤。
S403:在验签通过后,获取与数字证书相关联的接口权限列表,接口权限列表包含目标对象允许调用的至少一个智能合约接口的接口标识。
具体实现时,如前述步骤S401中表2.1和表2.2所示,由于智能合约证书管理模块中关联记录有:目标对象的标识、目标对象的数字证书、以及接口权限列表。因此,本申请实施例中,接口权限列表的获取流程大致如下:在接收到接口调用请求后,即可解析该接口调用请求以确定请求发起者(目标对象)的标识;然后,可基于目标对象的标识获取该目标对象的数字证书;最后,在获取到该目标对象的数字证书后,即可获取与该数字证书相关联的接口权限列表。举例来说,接口调用请求中可以携带有目标对象的标识(例如Id1),那么,基于表2.1或者表2.2可以确定id1关联的数字证书(证书1),然后可以获取到与证书1相关联的接口权限列表,该接口权限列表中记录有:目标对象允许调用的智能合约接口1、2、3。
S404:若接口权限列表包含目标智能合约接口的接口标识,则执行接口授权操作。
在一种可能的实现方式中,若接口权限列表包含目标智能合约接口的接口标识,则执行接口授权操作。例如,当目标智能合约接口为资源转移接口时,则可以响应于目标对象所在的客户端发送的资产转移请求,该资源转移请求用于请求转移目标资源量的数字资产;然后,调用资源转移接口,将目标对象的账户中的目标资源量的数字资产转移至参考对象的账户中。
在另一种可能的实现方式中,若接口权限列表中未包含目标智能合约接口的接口标识,则执行接口授权的拒绝操作,并生成拒绝接口调用的反馈消息;然后,将反馈消息返回至目标对象所在的客户端。
本申请实施例中,可以接收目标对象发起的接口调用请求,该接口调用请求包括签名字段,签名字段是采用目标对象的数字证书的私钥对第一请求参数进行签名后生成的;该第一请求参数包括请求调用的目标智能合约接口的接口标识;然后,采用目标对象的数字证书的公钥对签名字段进行验签处理;接下来,在验签通过后,获取与数字证书相关联的接口权限列表,该接口权限列表包含目标对象允许调用的至少一个智能合约接口的接口标识;若接口权限列表包含目标智能合约接口的接口标识,则执行接口授权操作。由此可见,一方面,本申请在进行接口调用时,可基于数字证书对目标对象进行身份验证,可确保只有合法持有数字证书的目标对象才能访问特定的智能合约接口,提高接口调用的安全性;另一方面,数字证书与接口权限列表之间具备关联关系,实现了对目标对象的接口调用权限的灵活管理,接口权限列表记录有当前对象允许调用的智能合约接口,进而提高了接口调用的灵活性。
下面结合附图对数字证书的申请流程进行详细阐述。
请参见图5,图5是本申请实施例提供的一种申请数字证书的流程示意图。如图5所示,该数字证书的申请流程由:目标对象所在的客户端、智能合约网关、智能合约证书管理模块、以及证书授权机构共同执行,其中,智能合约证书管理模块运行在区块链节点中。具体地,数字证书的申请流程具体包括如下步骤S501-S512:
S501:客户端生成证书公私钥对。
具体实现时,该证书公私钥对包括请求证书的公钥和私钥。其中,公钥可公开,私钥不可公开。具体地,客户端可以基于目标对象的身份信息生成该证书公私钥对,其中,目标对象的身份信息的获取过程如图6所示。请参见图6,图6是本申请实施例提供的一种获取身份信息的场景示意图。如图6所示,如图6所示,在获取目标对象的身份信息之前,需要向该目标对象发送授权请求,该授权请求用于目标对象的授权,当目标对象同意授权后,方可获取到目标对象的身份信息。举例来说,目标对象所使用的客户端在获取到区块链节点发送的授权请求后,可以显示界面S600,该界面S600中显示有提示目标对象是否确定授权的提示信息,并且设有确认控件601和拒绝控件602,若目标对象点击确认控件601,则代表该目标对象同意授权,若目标对象点击拒绝控件602,则代表目标对象拒绝授权。通过这种方式,可以保证目标对象的身份信息的安全性,避免身份信息被泄露。
S502:客户端生成证书请求凭证CSR。
具体实现时,证书请求凭证CSR包括多个数据指示字段,一个数据指示字段对应目标对象的一种属性信息。例如,证书请求凭证CSR的格式如下表3所示:
表3、证书请求凭证的格式
国家代码 | XX |
省/州名称 | XXX |
城市名称 | XXX |
组织名称 | XXX |
部门名称 | XXX |
业务名称 | XXX |
其中,“国家代码”、“城市名称”...“业务名称”这些均是指数据指示字段,目标对象可以按照该数字指示字段进行相关数据的填写,在完成上述数据填写后即可生成证书请求凭证CSR。
S503:客户端向智能合约网关发送证书申请请求。
具体实现时,客户端可以发起证书申请请求,该证书申请请求中可以携带第二请求参数,第二请求参数可以包含:证书请求凭证、目标对象的标识、智能合约的合约标识。
S504:智能合约网关将证书申请请求转发至智能合约证书管理模块。
具体实现时,智能合约网关是链上与链下通信的桥梁,即通过智能合约网关可以将链下的客户端与链上的智能合约证书管理模块之间建立通信连接,从而智能合约网关可以将证书申请请求转发至智能合约证书管理模块。
在一种可能的实现方式中,智能合约网关在接收到客户端发送的证书申请请求后,可以获取客户端标识,并基于客户端标识对该客户端进行身份验证。其中,智能合约网关对客户端执行的身份验证包括:权限验证、安全性验证、合法性验证。例如,智能合约网关可以维护有允许向区块链系统进行数据交互的白名单列表,该白名单列表中记录有允许进行数据交互的客户端标识,若当前客户端标识存在于白名单列表中,则对客户端的权限验证通过,则触发执行S505;若当前客户端标识存在于白名单列表中,则对客户端的权限验证不通过,则智能合约网关删除该证书申请请求。采用这种方式,智能合约网关可以对发起请求的客户端进行安全验证,从而可以提高数据交互过程的安全性。
S505:智能合约证书管理模块校验第二请求参数。
具体实现时,智能合约证书管理模块在接收到证书申请请求后,可以解析得到第二请求参数,并对第二请求参数进行参数校验。其中,参数校验至少包括:安全性校验、合法性校验、有效性校验中的任一种或多种,若对第二请求参数校验通过,则触发执行步骤S506;若对第二请求参数校验不通过,则不响应于证书申请请求。
S506:智能合约证书管理模块向证书授权机构申请数字证书。
具体实现时,智能合约证书管理模块通过证书请求凭证向证书授权机构申请目标对象的数字证书。
S507:证书授权机构验证证书请求凭证。
具体实现时,证书授权机构对证书请求凭证的验证方式包括:格式验证、有效性校验、安全性校验、合法性校验中的任一种或多种。其中,①格式校验是指校验该证书请求凭证是否满足预设格式(例如是否包含指定字段等),若满足则格式校验通过,若不满足则格式校验不通过;②有效性校验是指校验当前证书请求凭证是否过期或失效,若过期,则不具备有效性;若未过期,则具备有效性;③安全性校验是指解析该证书请求凭证的文件数据中是否包含病毒等不安全数据,若包含,则不具备安全性;若不包含,则具备安全性;④合法性校验是指校验该证书请求凭证中的信息是否符合法律法规,若符合,则具备合法性,若不符合,则不具备合法性。可选的,若证书授权机构对证书请求凭证验证通过,则触发执行步骤S508;若证书授权机构对证书请求凭证验证不通过,则无法生成数字证书。
S508:证书授权机构签发数字证书。
S509:证书授权机构将数字证书返回至智能合约证书管理模块。
S510:智能合约证书管理模块记录数字证书、目标对象ID、智能合约的合约ID、接口权限列表之间的关联关系。
S511:智能合约证书管理模块将数字证书发送至智能合约网关。
S512:智能合约网关将数字证书返回至目标对象所在的客户端。
本申请实施例中,客户端、智能合约网关、智能合约证书管理模块和证书授权机构协同完成了数字证书的申请、签发和记录过程。最终,目标对象可以获得CA机构颁发的权威数字证书,该数字证书与目标对象的ID、智能合约的合约ID和接口权限列表关联,使得数字证书的申请过程更加可靠;另外,可以在后续智能合约接口调用过程中采用数字证书来对目标对象进行身份验证,提高数字证书的实用性。
下面结合附图对智能合约接口的调用流程进行详细阐述。
请参见图7,图7是本申请实施例提供的一种调用智能合约接口的流程示意图。如图7所示,该数字证书的申请流程由:目标对象所在的客户端、智能合约网关、智能合约应用程序、以及智能合约证书管理模块共同执行,其中,智能合约应用程序和智能合约证书管理模块均运行在区块链节点中。具体地,智能合约接口的调用流程具体包括如下步骤S701-S711:
S701:客户端使用数字证书的私钥签名,得到签名字段。
具体实现时,目标对象将发起针对目标智能合约接口的接口调用请求,请求调用目标智能合约接口执行第一请求参数,因此目标对象所在的客户端可以采用目标对象的数字证书的私钥对第一请求参数进行签名,得到签名字段(sign字段)。
S702:客户端请求调用目标智能合约接口。
具体实现时,目标智能合约接口可以是目标智能合约下的一个API接口。客户端可以将生成的接口调用请求发送至智能合约网关,该接口调用请求包括签名字段,签名字段是采用目标对象的数字证书的私钥对第一请求参数进行签名后生成的;第一请求参数包括请求调用的目标智能合约接口的接口标识。
S703:智能合约网关将接口调用请求转发至智能合约应用程序。
在一种可能的实现方式中,智能合约网关在接收到客户端发送的接口调用请求后,可以获取客户端标识,并基于客户端标识对该客户端进行身份验证。其中,智能合约网关对客户端执行的身份验证包括:权限验证、安全性验证、合法性验证。例如,智能合约网关可以维护有允许向区块链系统进行数据交互的白名单列表,该白名单列表中记录有允许进行数据交互的客户端标识,若当前客户端标识存在于白名单列表中,则对客户端的权限验证通过,则触发执行S704;若当前客户端标识存在于白名单列表中,则对客户端的权限验证不通过,则智能合约网关删除该接口调用请求。采用这种方式,智能合约网关可以对发起请求的客户端进行安全验证,从而可以提高数据交互过程的安全性。
S704:智能合约应用程序校验第一请求参数。
具体实现时,第一请求参数中可以包含业务参数。智能合约应用程序校验第一请求参数,可以包括:对业务参数进行参数校验,若确定对业务参数的参数校验通过,则采用目标对象的数字证书的公钥,调用智能合约证书管理模块对签名字段进行验签处理。其中,所述参数校验包括:业务权限校验、业务状态校验、数据格式校验中的任一种或多种。其中,①业务权限校验是指校验目标对象是否具备发起该业务参数的业务权限,例如开票场景下,允许指定的业务对象发起开票请求,若当前目标对象具备开票权限,则业务权限校验通过,若当前目标对象不具备开票权限,则业务权限校验不通过;②业务状态校验是指校验当前业务状态是否合法或有效,若不合法或者无效,则业务状态校验不通过,若合法或者有效,则业务状态校验通过;③数据格式校验是指校验业务参数的数据格式。可选的,当上述几种方式的校验均通过,则确定对第一请求参数校验通过;若存在任一种方式的校验不通过,则确定对第一请求参数校验不通过。
S705:智能合约应用程序请求智能合约证书管理模块校验签名字段与查询授权关系。
S706:智能合约证书管理模块验证签名字段。
具体实现时,智能合约证书管理模块采用目标对象的数字证书的公钥对签名字段进行验签处理,若验签成功,则触发执行S707;若验签失败,则结束流程。
S707:智能合约证书管理模块查询授权关系。
具体实现时,智能合约证书管理模块中存储有:目标对象的ID、目标对象的数字证书、智能合约的合约ID、接口权限列表之间的关联关系。那么,智能合约证书管理模块可以基于目标对象的ID查询该目标对象的数字证书,并基于查询到的数字证书获取相关联的接口权限列表,并生成查询结果,该查询结果中携带有查询到的与数字证书相关联的接口权限列表,其中,接口权限列表包含目标对象允许调用的至少一个智能合约接口的接口标识。
S708:智能合约证书管理模块将查询结果返回至智能合约应用程序。
S709:智能合约应用程序按照查询结果执行接口授权操作。
具体实现时,若接口权限列表包含目标智能合约接口的接口标识,则执行接口授权操作;若接口权限列表不包含目标智能合约接口的接口标识,则执行接口授权的拒绝操作,并生成拒绝接口调用的反馈消息。
S710:智能合约应用程序将调用结果返回至智能合约网关。
具体地,调用结果包括接口调用成功或接口调用失败,其中,若智能合约应用程序执行接口授权操作,则调用结果为接口调用成功;若智能合约应用程序执行接口授权的拒绝操作,则调用结果为接口调用失败。
S711:智能合约网关将调用结果返回至客户端。
本申请实施例中,客户端可以采用数字证书的私钥签名第一请求参数,并向智能合约网关发起调用API接口的调用请求;智能合约网关将接口调用请求转发给智能合约应用程序,智能合约应用程序负责校验第一请求参数和向智能合约证书管理模块发送校验请求;智能合约证书管理模块负责验证签名字段和检查授权关系,并将查询结果返回给智能合约应用程序;最后,根据查询结果,智能合约应用程序决定是否允许接口调用。可见,本申请在进行接口调用时,可以基于用户的数字证书进行签名处理,也就是说可以基于用户的数字证书来验证用户身份,从而可以基于数字证书实现目标对象对智能合约接口的调用,使得接口调用更加灵活。
请参见图8,图8是本申请实施例提供的一种智能合约的接口处理方法的场景示意图。如图8所示,该接口处理场景中涉及:客户端、智能合约平台。其中,客户端是指目标对象所使用的设备,智能合约平台用于为客户端提供后台服务(例如生成证书请求凭证的服务、以及申请数字证书的服务),智能合约平台运行在区块链节点中。前述可知,本申请提供的接口处理场景的交互流程主要涉及:生成证书请求凭证、请求授权数字证书、以及使用授权数字证书这三个流程,下面分别对上述各个流程进行详细说明:
(1)生成数字证书请求串CSR(证书请求凭证):
请参见图9,图9是本申请实施例提供的一种申请证书请求凭证的界面示意图。如图9所示,申请证书请求凭证主要包括以下步骤:
①粘贴应用信息。
具体地,证书请求凭证包括多个数据指示字段,一个数据指示字段对应目标对象的一种属性信息。例如,证书请求凭证中的数据指示字段至少包括:国家代码、省/州名称、城市名称、组织名称、部门名称、业务名称。其中,“国家代码”是指:目标对象所属国家的代码,国家代码通常包括两个字符(例如CN);“省/州名称”是指:目标对象所在省/州的完整名称;“城市名称”是指:目标对象所在城市的完整名称;“组织名称”是指:目标对象所属组织/公司的完整名称;“部门名称”是指:目标对象所属部门或单位的完整名称;“业务名称”是指:目标对象当前请求调用目标合约合约接口所处理的业务的完整名称,例如游戏业务、电子发票业务等等。
其中,“国家代码”、“城市名称”...“业务名称”这些均是指数据指示字段,目标对象可以按照该数字指示字段进行相关数据的填写,在完成上述数据填写后即可生成证书请求凭证。
②生成私钥并保存到本地文件中(妥善保管,以防泄露)。
③生成证书请求凭证(CSR),并显示CSR内容。
④复制证书请求凭证(CSR)内容,前往智能合约平台申请数字证书。
(2)请求授权数字证书:
①目标对象登录智能合约平台并注册一个账户(如果尚未注册);若该目标对象在智能合约平台中已注册,则无须注册账户,直接登录即可。
②目标对象在智能合约平台上粘贴CSR内容并选择需要申请的API接口权限。在一种可能的实现方式中,显示证书申请界面,该证书申请界面中显示有待选择的至少一个智能合约的合约标识、以及智能合约接口的接口标识;响应于在证书申请界面中针对目标智能合约下的目标接口标识的选择操作,确定目标接口标识对应的目标智能合约接口;当检测到录入的证书请求凭证后,基于证书请求凭证和目标接口标识生成证书申请请求,证书申请请求用于向证书授权机构申请目标对象的数字证书。请参见图10,图10是本申请实施例提供的一种请求数字证书的界面示意图。如图10所示,该证书申请界面S1001中设置有凭证录入区域10011,目标对象可以在该区域中录入证书请求凭证的CSR内容;另外,该证书申请界面S1001中还设置有合约选择区域10012、以及接口选择区域10013,其中,合约选择区域10012中显示有待选择的至少一个智能合约的合约标识,接口选择区域10013中显示有智能合约接口的接口标识。目标对象可以自定义选择需授权的智能合约(例如预付卡智能合约)、以及所选择的智能合约下的API接口(例如支付接口、转账接口、以及付款码接口),最后目标对象可触发提交申请控件以发起证书申请请求,并可在证书查看界面S1002中触发查看已申请的数字证书。
③智能合约平台验证用户提交的CSR,并确认其有效性。
④智能合约平台生成并签发数字证书,包含用户的公钥、主题信息、颁发者信息(智能合约平台)、有效期限等。
⑤目标对象可复制或者下载颁发的数字证书。
(3)使用数字证书:
①目标对象使用数字证书的私钥对第一请求参数进行签名,得到签名字段。
请参见图11,图11是本申请实施例提供的一种签名字段的内容示意图。如图11所示,该签名字段的具体内容可以如下:
*证书签名
*
*@param.{NSString*}certid //证书id(序列号)
*@param.{NSData}messge //消息内容
*@return.{NSData*} //签名数据
*
-(NSData*)certSign:(NSString*)certid messge:(NSData*)messge userId:(NSData*)userId;
上述可见,该签名字段的具体内容可以包含:目标对象的ID、数字证书的ID、以及具体的消息内容、签名数据等数据。若对该签名字段验签通过,则可以确定请求调用目标智能合约接口的目标对象合法持有数字证书,提高对目标对象进行身份验证的可靠性。
②目标对象将签名字段附加到接口调用请求中,再请求调用目标智能合约接口。
③智能合约平台接收到接口调用请求后,使用数字证书的公钥对签名字段进行验签处理。
④如果验签通过,智能合约平台允许用户调用目标智能合约接口并执行相应的业务操作。否则,智能合约平台将拒绝接口调用请求,并返回反馈信息。
应当理解,客户端调用目标智能合约接口执行业务操作的本质是执行业务数据的过程。在执行业务数据的过程中,主要包括如下步骤S1-S6:
S1、触发合约。
具体实现时,可以根据业务数据的业务类型获取智能合约的合约地址,并基于合约地址触发调用其相应的智能合约。例如,业务数据的业务类型为游戏类型,则该业务数据对应的智能合约可以为游戏合约;又如,业务数据的业务类型为教育类型,则该业务数据对应的智能合约可以为教育合约。
S2、分析业务数据。
具体实现时,验证节点解析业务数据,得到合约调用地址以及合约接口名称,调用用于执行对应的业务数据的智能合约接口(例如包括合约名、合约方法、以及合约输入等信息)。
S3、载入合约的存储信息和合约的字节码。
具体实现时,验证节点从业务数据和状态数据库中获取相应的合约字节码和合约输入。
S4、执行合约。
具体实现时,合约代码在区块链节点中执行,完成对应业务数据所指示的业务逻辑,例如数字资源转移逻辑、开票逻辑、游戏逻辑等业务逻辑。
S5、返回结果更新状态数据库。
具体实现时,区块链节点将业务数据对应的交易执行结果写回到状态数据库中,完成业务状态的更新。
S6、制作默克尔树树根,存储在区块中。
以此,完成了智能合约的执行以及该智能合约下的接口调用的完整流程。
综上所述,本申请实施例提供的接口处理方法具备以下技术效果:①安全性增强:使用数字证书对智能合约接口调用进行授权,可确保只有合法持有数字证书的用户才能访问特定的智能合约接口。此外,数字证书由权威的数字证书颁发机构(CA)签发,进一步提高了身份验证的可信度,降低了中间人攻击和其他安全风险的可能性。②权限管理灵活:本方案中的智能合约证书管理模块负责维护和记录智能合约接口与数字证书之间的关联关系,实现了对接口调用权限的灵活管理。根据实际需求,可以为不同的用户分配不同的调用权限,实现了细粒度的接口访问控制。③防止滥用:通过对数字证书的有效期、接口权限列表等信息进行严格控制,本方案可以有效防止未经授权的用户滥用智能合约接口。此外,数字证书的不可篡改性也确保了一旦证书被颁发,其权限设置将不会受到外部干扰。
上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置,接下来,结合上述本申请实施例提供的接口处理方案,对本申请实施例的相关装置进行相应介绍。
请参见图12,图12是本申请实施例提供的一种智能合约的接口处理装置的结构示意图。如图12所示,该智能合约的接口处理装置1200可应用于前述实施例中所提及的计算机设备(如终端设备或服务器)。具体来说,智能合约的接口处理装置1200可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该接口处理装置1200为一个应用软件;该接口处理装置1200可以用于执行本申请实施例提供的智能合约的接口处理方法中的相应步骤。具体实现时,该智能合约的接口处理装置1200具体可以包括:
接收单元1201,用于接收目标对象发起的接口调用请求,接口调用请求包括签名字段,签名字段是采用目标对象的数字证书的私钥对第一请求参数进行签名后生成的;第一请求参数包括请求调用的目标智能合约接口的接口标识;
处理单元1202,用于采用目标对象的数字证书的公钥对签名字段进行验签处理;
处理单元1202,还用于在验签通过后,获取与数字证书相关联的接口权限列表,接口权限列表包含目标对象允许调用的至少一个智能合约接口的接口标识;
处理单元1202,还用于若接口权限列表包含目标智能合约接口的接口标识,则执行接口授权操作。
在一种可能的实现方式中,智能合约的接口处理方法由区块链节点执行,区块链节点配置有智能合约证书管理模块,智能合约证书管理模块基于智能合约网关获取接口调用请求中的签名字段;接收单元1201接收目标对象发起的接口调用请求之前,处理单元1202还用于执行以下操作:
接收智能合约网关转发的证书申请请求,证书申请请求中携带有第二请求参数,第二请求参数包括目标对象的证书请求凭证;
调用智能合约证书管理模块对证书请求凭证进行校验,若确定对证书请求凭证校验通过,则基于证书请求凭证向证书授权机构申请目标对象的数字证书;
其中,对证书请求凭证执行的所述校验包括:格式校验、有效性校验、安全性校验、合法性校验中的任一种或多种。
在一种可能的实现方式中,处理单元1202基于证书请求凭证向证书授权机构申请目标对象的数字证书,用于执行以下操作:
调用智能合约证书管理模块对证书请求凭证进行加密处理,得到证书加密凭证,并将证书加密凭证发送至证书授权机构;
接收证书授权机构返回的数字证书;
其中,证书授权机构在接收到智能合约证书管理模块发送的证书加密凭证后,对证书加密凭证进行解密得到证书请求凭证,并在确定对证书请求凭证校验通过后,为目标对象生成数字证书。
在一种可能的实现方式中,处理单元1202还用于执行以下操作:
显示证书申请界面,证书申请界面中显示有待选择的至少一个智能合约的合约标识、以及智能合约接口的接口标识;
响应于在证书申请界面中针对目标智能合约下的目标接口标识的选择操作,确定目标接口标识对应的目标智能合约接口;
当检测到录入的证书请求凭证后,基于证书请求凭证和目标接口标识生成证书申请请求,证书申请请求用于向证书授权机构申请目标对象的数字证书。
在一种可能的实现方式中,第二请求参数还包括:智能合约的合约标识、以及接口权限列表;接口权限列表中记录有目标对象在证书申请界面所选择的至少一个智能合约接口的接口标识;处理单元1202还用于执行以下操作:
获取目标对象在智能合约平台中的身份注册信息;
基于目标对象的身份注册信息,对接口权限列表中的各个智能合约接口进行权限校验;
若确定对接口权限列表中的各个智能合约接口的权限校验均通过,则将目标对象的数字证书、智能合约的合约标识、以及接口权限列表之间建立关联关系。
在一种可能的实现方式中,处理单元1202还用于执行以下操作:
若接口权限列表中存在权限校验不通过的智能合约接口,则将校验不通过的智能合约接口从接口权限列表中删除,得到更新后的接口权限列表;
将目标对象的数字证书、智能合约的合约标识、以及更新后的接口权限列表之间建立关联关系。
在一种可能的实现方式中,区块链节点中还运行有智能合约应用程序,接口调用请求是由智能合约网关转发至智能合约应用程序的;接收目标对象发起的接口调用请求之后,处理单元1202还用于执行以下操作:
调用智能合约应用程序解析接口调用请求中的第一请求参数,得到业务参数;
对业务参数进行参数校验,若确定对业务参数的参数校验通过,则采用目标对象的数字证书的公钥,调用智能合约证书管理模块对签名字段进行验签处理;
其中,参数校验包括:业务权限校验、业务状态校验、数据格式校验中的任一种或多种。
在一种可能的实现方式中,智能合约证书管理模块中记录有:目标对象的标识、目标对象的数字证书、以及接口权限列表之间的关联关系;采用目标对象的数字证书的公钥,调用智能合约证书管理模块对签名字段进行验签处理之后,处理单元1202还用于执行以下操作:
基于目标对象的标识,获取目标对象的数字证书、以及数字证书的有效期;
基于数字证书的有效期,调用智能合约证书管理模块对数字证书进行有效性验证;
若对数字证书的有效性验证通过,则触发执行获取与数字证书相关联的接口权限列表的步骤。
在一种可能的实现方式中,处理单元1202还用于执行以下操作:
若接口权限列表中未包含目标智能合约接口的接口标识,则执行接口授权的拒绝操作,并生成拒绝接口调用的反馈消息;
将反馈消息返回至目标对象所在的客户端。
在一种可能的实现方式中,目标智能合约接口包括资源转移接口;若接口权限列表包含目标智能合约接口的接口标识,则处理单元1202执行接口授权操作之后,还用于执行以下操作:
响应于目标对象所在的客户端发送的资产转移请求,资产转移请求用于请求转移目标资源量的数字资产;
调用资源转移接口,将目标对象的账户中目标资源量的数字资产转移至参考对象的账户中。
本申请实施例中,可以接收目标对象发起的接口调用请求,该接口调用请求包括签名字段,签名字段是采用目标对象的数字证书的私钥对第一请求参数进行签名后生成的;该第一请求参数包括请求调用的目标智能合约接口的接口标识;然后,采用目标对象的数字证书的公钥对签名字段进行验签处理;接下来,在验签通过后,获取与数字证书相关联的接口权限列表,该接口权限列表包含目标对象允许调用的至少一个智能合约接口的接口标识;若接口权限列表包含目标智能合约接口的接口标识,则执行接口授权操作。由此可见,一方面,本申请在进行接口调用时,可基于数字证书对目标对象进行身份验证,可确保只有合法持有数字证书的目标对象才能访问特定的智能合约接口,提高接口调用的安全性;另一方面,数字证书与接口权限列表之间具备关联关系,实现了对目标对象的接口调用权限的灵活管理,接口权限列表记录有当前对象允许调用的智能合约接口,进而提高了接口调用的灵活性。
请参见图13,图13是本申请实施例提供的一种计算机设备的结构示意图。该计算机设备1300用于执行前述方法实施例中终端设备或服务器所执行的步骤,该计算机设备1300包括:一个或多个处理器1301;一个或多个输入设备1302,一个或多个输出设备1303和存储器1304。上述处理器1301、输入设备1302、输出设备1303和存储器1304通过总线1305连接。其中,处理器1301(或称CPU(Central Processing Unit,中央处理器))是计算机设备的处理核心,该处理器1301适于实现一条或多条程序指令,具体适于加载并执行一条或多条程序指令从而实现上述的区块链数据处理方法的流程。另外,存储器1304可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的存储器。存储器1304提供存储空间,该存储空间用于存储内容播放设备的操作系统。并且,在该存储空间中还用于存储计算机程序,该计算机程序包括程序指令,且该程序指令适于被处理器调用并执行,以用来执行本申请中智能合约的接口处理方法的各步骤。
具体地,存储器1304用于存储计算机程序,所述计算机程序包括程序指令,处理器1301用于调用存储器1304存储的程序指令,执行以下操作:
接收目标对象发起的接口调用请求,接口调用请求包括签名字段,签名字段是采用目标对象的数字证书的私钥对第一请求参数进行签名后生成的;第一请求参数包括请求调用的目标智能合约接口的接口标识;
采用目标对象的数字证书的公钥对签名字段进行验签处理;
在验签通过后,获取与数字证书相关联的接口权限列表,接口权限列表包含目标对象允许调用的至少一个智能合约接口的接口标识;
若接口权限列表包含目标智能合约接口的接口标识,则执行接口授权操作。
在一种可能的实现方式中,智能合约的接口处理方法由区块链节点执行,区块链节点配置有智能合约证书管理模块,智能合约证书管理模块基于智能合约网关获取接口调用请求中的签名字段;处理器1301接收目标对象发起的接口调用请求之前,还用于执行以下操作:
接收智能合约网关转发的证书申请请求,证书申请请求中携带有第二请求参数,第二请求参数包括目标对象的证书请求凭证;
调用智能合约证书管理模块对证书请求凭证进行校验,若确定对证书请求凭证校验通过,则基于证书请求凭证向证书授权机构申请目标对象的数字证书;
其中,对证书请求凭证执行的所述校验包括:格式校验、有效性校验、安全性校验、合法性校验中的任一种或多种。
在一种可能的实现方式中,处理器1301基于证书请求凭证向证书授权机构申请目标对象的数字证书,用于执行以下操作:
调用智能合约证书管理模块对证书请求凭证进行加密处理,得到证书加密凭证,并将证书加密凭证发送至证书授权机构;
接收证书授权机构返回的数字证书;
其中,证书授权机构在接收到智能合约证书管理模块发送的证书加密凭证后,对证书加密凭证进行解密得到证书请求凭证,并在确定对证书请求凭证校验通过后,为目标对象生成数字证书。
在一种可能的实现方式中,处理器1301还用于执行以下操作:
显示证书申请界面,证书申请界面中显示有待选择的至少一个智能合约的合约标识、以及智能合约接口的接口标识;
响应于在证书申请界面中针对目标智能合约下的目标接口标识的选择操作,确定目标接口标识对应的目标智能合约接口;
当检测到录入的证书请求凭证后,基于证书请求凭证和目标接口标识生成证书申请请求,证书申请请求用于向证书授权机构申请目标对象的数字证书。
在一种可能的实现方式中,第二请求参数还包括:智能合约的合约标识、以及接口权限列表;接口权限列表中记录有目标对象在证书申请界面所选择的至少一个智能合约接口的接口标识;处理器1301还用于执行以下操作:
获取目标对象在智能合约平台中的身份注册信息;
基于目标对象的身份注册信息,对接口权限列表中的各个智能合约接口进行权限校验;
若确定对接口权限列表中的各个智能合约接口的权限校验均通过,则将目标对象的数字证书、智能合约的合约标识、以及接口权限列表之间建立关联关系。
在一种可能的实现方式中,处理器1301还用于执行以下操作:
若接口权限列表中存在权限校验不通过的智能合约接口,则将校验不通过的智能合约接口从接口权限列表中删除,得到更新后的接口权限列表;
将目标对象的数字证书、智能合约的合约标识、以及更新后的接口权限列表之间建立关联关系。
在一种可能的实现方式中,区块链节点中还运行有智能合约应用程序,接口调用请求是由智能合约网关转发至智能合约应用程序的;接收目标对象发起的接口调用请求之后,处理器1301还用于执行以下操作:
调用智能合约应用程序解析接口调用请求中的第一请求参数,得到业务参数;
对业务参数进行参数校验,若确定对业务参数的参数校验通过,则采用目标对象的数字证书的公钥,调用智能合约证书管理模块对签名字段进行验签处理;
其中,参数校验包括:业务权限校验、业务状态校验、数据格式校验中的任一种或多种。
在一种可能的实现方式中,智能合约证书管理模块中记录有:目标对象的标识、目标对象的数字证书、以及接口权限列表之间的关联关系;采用目标对象的数字证书的公钥,调用智能合约证书管理模块对签名字段进行验签处理之后,处理器1301还用于执行以下操作:
基于目标对象的标识,获取目标对象的数字证书、以及数字证书的有效期;
基于数字证书的有效期,调用智能合约证书管理模块对数字证书进行有效性验证;
若对数字证书的有效性验证通过,则触发执行获取与数字证书相关联的接口权限列表的步骤。
在一种可能的实现方式中,处理器1301还用于执行以下操作:
若接口权限列表中未包含目标智能合约接口的接口标识,则执行接口授权的拒绝操作,并生成拒绝接口调用的反馈消息;
将反馈消息返回至目标对象所在的客户端。
在一种可能的实现方式中,目标智能合约接口包括资源转移接口;若接口权限列表包含目标智能合约接口的接口标识,则处理器1301执行接口授权操作之后,还用于执行以下操作:
响应于目标对象所在的客户端发送的资产转移请求,资产转移请求用于请求转移目标资源量的数字资产;
调用资源转移接口,将目标对象的账户中目标资源量的数字资产转移至参考对象的账户中。
本申请实施例中,可以接收目标对象发起的接口调用请求,该接口调用请求包括签名字段,签名字段是采用目标对象的数字证书的私钥对第一请求参数进行签名后生成的;该第一请求参数包括请求调用的目标智能合约接口的接口标识;然后,采用目标对象的数字证书的公钥对签名字段进行验签处理;接下来,在验签通过后,获取与数字证书相关联的接口权限列表,该接口权限列表包含目标对象允许调用的至少一个智能合约接口的接口标识;若接口权限列表包含目标智能合约接口的接口标识,则执行接口授权操作。由此可见,一方面,本申请在进行接口调用时,可基于数字证书对目标对象进行身份验证,可确保只有合法持有数字证书的目标对象才能访问特定的智能合约接口,提高接口调用的安全性;另一方面,数字证书与接口权限列表之间具备关联关系,实现了对目标对象的接口调用权限的灵活管理,接口权限列表记录有当前对象允许调用的智能合约接口,进而提高了接口调用的灵活性。
此外,这里需要指出的是:本申请实施例还提供了一种计算机存储介质,且计算机存储介质中存储有计算机程序,且该计算机程序包括程序指令,当处理器执行上述程序指令时,能够执行前文所对应实施例中的方法,因此,这里将不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可以被部署在一个计算机设备上,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行。
根据本申请的一个方面,本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备可以执行前文所对应实施例中的方法,因此,这里将不再进行赘述。
本领域普通技术对象可以意识到,结合本申请中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术对象可以对每个特定的应用,使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程设备。计算机指令可以存储在计算机可读存储介质中,或者通过计算机可读存储介质进行传输。计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如,同轴电缆、光纤、数字线(DSL))或无线(例如,红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据处理设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术对象在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种智能合约的接口处理方法,其特征在于,包括:
接收目标对象发起的接口调用请求,所述接口调用请求包括签名字段,所述签名字段是采用目标对象的数字证书的私钥对第一请求参数进行签名后生成的;所述第一请求参数包括请求调用的目标智能合约接口的接口标识;
采用所述目标对象的数字证书的公钥对所述签名字段进行验签处理;
在验签通过后,获取与所述数字证书相关联的接口权限列表,所述接口权限列表包含所述目标对象允许调用的至少一个智能合约接口的接口标识;
若所述接口权限列表包含所述目标智能合约接口的接口标识,则执行接口授权操作。
2.如权利要求1所述的方法,其特征在于,所述智能合约的接口处理方法由区块链节点执行,所述区块链节点配置有智能合约证书管理模块,所述智能合约证书管理模块基于智能合约网关获取所述接口调用请求中的签名字段;所述接收目标对象发起的接口调用请求之前,还包括:
接收智能合约网关转发的证书申请请求,所述证书申请请求中携带有第二请求参数,所述第二请求参数包括目标对象的证书请求凭证;
调用所述智能合约证书管理模块对所述证书请求凭证进行校验,若确定对所述证书请求凭证校验通过,则基于所述证书请求凭证向证书授权机构申请所述目标对象的数字证书;
其中,对所述证书请求凭证执行的所述校验包括:格式校验、有效性校验、安全性校验、合法性校验中的任一种或多种。
3.如权利要求2所述的方法,其特征在于,所述基于所述证书请求凭证向证书授权机构申请所述目标对象的数字证书,包括:
调用所述智能合约证书管理模块对所述证书请求凭证进行加密处理,得到证书加密凭证,并将所述证书加密凭证发送至所述证书授权机构;
接收所述证书授权机构返回的数字证书;
其中,所述证书授权机构在接收到所述智能合约证书管理模块发送的证书加密凭证后,对所述证书加密凭证进行解密得到证书请求凭证,并在确定对所述证书请求凭证校验通过后,为所述目标对象生成数字证书。
4.如权利要求2所述的方法,其特征在于,所述方法还包括:
显示证书申请界面,所述证书申请界面中显示有待选择的至少一个智能合约的合约标识、以及智能合约接口的接口标识;
响应于在所述证书申请界面中针对目标智能合约下的目标接口标识的选择操作,确定所述目标接口标识对应的目标智能合约接口;
当检测到录入的证书请求凭证后,基于所述证书请求凭证和目标接口标识生成证书申请请求,所述证书申请请求用于向证书授权机构申请所述目标对象的数字证书。
5.如权利要求2-4任一项所述的方法,其特征在于,所述第二请求参数还包括:智能合约的合约标识、以及接口权限列表;所述接口权限列表中记录有所述目标对象在证书申请界面所选择的至少一个智能合约接口的接口标识;所述方法还包括:
获取所述目标对象在智能合约平台中的身份注册信息;
基于所述目标对象的身份注册信息,对所述接口权限列表中的各个智能合约接口进行权限校验;
若确定对所述接口权限列表中的各个智能合约接口的权限校验均通过,则将所述目标对象的数字证书、所述智能合约的合约标识、以及所述接口权限列表之间建立关联关系。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
若所述接口权限列表中存在权限校验不通过的智能合约接口,则将校验不通过的所述智能合约接口从所述接口权限列表中删除,得到更新后的接口权限列表;
将所述目标对象的数字证书、所述智能合约的合约标识、以及所述更新后的接口权限列表之间建立关联关系。
7.如权利要求2所述的方法,其特征在于,所述区块链节点中还运行有智能合约应用程序,所述接口调用请求是由所述智能合约网关转发至所述智能合约应用程序的;所述接收目标对象发起的接口调用请求之后,还包括:
调用智能合约应用程序解析所述接口调用请求中的第一请求参数,得到业务参数;
对所述业务参数进行参数校验,若确定对所述业务参数的参数校验通过,则采用所述目标对象的数字证书的公钥,调用智能合约证书管理模块对所述签名字段进行验签处理;
其中,所述参数校验包括:业务权限校验、业务状态校验、数据格式校验中的任一种或多种。
8.如权利要求7所述的方法,其特征在于,所述智能合约证书管理模块中记录有:目标对象的标识、目标对象的数字证书、以及接口权限列表之间的关联关系;所述采用所述目标对象的数字证书的公钥,调用智能合约证书管理模块对所述签名字段进行验签处理之后,还包括:
基于所述目标对象的标识,获取所述目标对象的数字证书、以及所述数字证书的有效期;
基于所述数字证书的有效期,调用智能合约证书管理模块对所述数字证书进行有效性验证;
若对所述数字证书的有效性验证通过,则触发执行获取与所述数字证书相关联的接口权限列表的步骤。
9.如权利要求1所述的方法,其特征在于,所述方法还包括:
若所述接口权限列表中未包含所述目标智能合约接口的接口标识,则执行接口授权的拒绝操作,并生成拒绝接口调用的反馈消息;
将所述反馈消息返回至目标对象所在的客户端。
10.如权利要求1所述的方法,其特征在于,所述目标智能合约接口包括资源转移接口;所述若所述接口权限列表包含所述目标智能合约接口的接口标识,则执行接口授权操作之后,还包括:
响应于目标对象所在的客户端发送的资产转移请求,所述资产转移请求用于请求转移目标资源量的数字资产;
调用所述资源转移接口,将所述目标对象的账户中目标资源量的数字资产转移至参考对象的账户中。
11.一种智能合约的接口处理装置,其特征在于,包括:
接收单元,用于接收目标对象发起的接口调用请求,所述接口调用请求包括签名字段,所述签名字段是采用目标对象的数字证书的私钥对第一请求参数进行签名后生成的;所述第一请求参数包括请求调用的目标智能合约接口的接口标识;
处理单元,用于采用所述目标对象的数字证书的公钥对所述签名字段进行验签处理;
所述处理单元,还用于在验签通过后,获取与所述数字证书相关联的接口权限列表,所述接口权限列表包含所述目标对象允许调用的至少一个智能合约接口的接口标识;
所述处理单元,还用于若所述接口权限列表包含所述目标智能合约接口的接口标识,则执行接口授权操作。
12.一种计算机设备,其特征在于,包括:存储装置和处理器;
存储器,所述存储器中存储一条或多条计算机程序;
处理器,用于加载所述一条或多条计算机程序实现如权利要求1-10中任一项所述的智能合约的接口处理方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于被处理器加载并执行如权利要求1-10中任一项所述的智能合约的接口处理方法。
14.一种计算机程序产品,其特征在于,所述计算程序产品包括计算机程序,所述计算机程序适于被处理器加载并执行如权利要求1-10中任一项所述的智能合约的接口处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310902436.9A CN116980136A (zh) | 2023-07-20 | 2023-07-20 | 智能合约的接口处理方法、装置、设备、存储介质及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310902436.9A CN116980136A (zh) | 2023-07-20 | 2023-07-20 | 智能合约的接口处理方法、装置、设备、存储介质及产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116980136A true CN116980136A (zh) | 2023-10-31 |
Family
ID=88477709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310902436.9A Pending CN116980136A (zh) | 2023-07-20 | 2023-07-20 | 智能合约的接口处理方法、装置、设备、存储介质及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116980136A (zh) |
-
2023
- 2023-07-20 CN CN202310902436.9A patent/CN116980136A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11477032B2 (en) | System and method for decentralized-identifier creation | |
CN111095327B (zh) | 用于验证可验证声明的系统和方法 | |
CN111095865B (zh) | 用于发布可验证声明的系统和方法 | |
CN111066020B (zh) | 用于创建去中心化标识的系统和方法 | |
US9736146B2 (en) | Embedded extrinsic source for digital certificate validation | |
CN110599213B (zh) | 一种基于区块链网络的物品管理方法、装置及电子设备 | |
CN108898389A (zh) | 基于区块链的内容验证方法及装置、电子设备 | |
WO2015116998A2 (en) | Electronic transfer and obligation enforcement system | |
CN112115205B (zh) | 基于数字证书认证的跨链信任方法、装置、设备以及介质 | |
CN110674531B (zh) | 基于区块链的居住信息管理方法、装置、服务器及介质 | |
TW201909072A (zh) | 電子帳戶的掛失、解掛、業務管理方法、裝置及設備 | |
CN112311779B (zh) | 应用于区块链系统的数据访问控制方法及装置 | |
CN114117264A (zh) | 基于区块链的非法网站识别方法、装置、设备及存储介质 | |
CN116975901A (zh) | 基于区块链的身份验证方法、装置、设备、介质及产品 | |
CN111178896B (zh) | 乘车支付方法、装置及存储介质 | |
WO2024021785A1 (zh) | 一种数字实体的处理方法、装置、设备、介质及程序产品 | |
WO2023233173A1 (en) | Implementing self-sovereign identity (ssi) based on configurable individual profiles generated real-time from private attributes stored in the personal secure elements of the users | |
TWI646480B (zh) | 結合區塊鏈的憑證發行與驗證之系統及其方法 | |
CN113904774A (zh) | 一种区块链地址认证方法、装置及计算机设备 | |
CN116980136A (zh) | 智能合约的接口处理方法、装置、设备、存储介质及产品 | |
CN113810426B (zh) | 即时通讯服务的接入系统及方法、装置 | |
CN117040930B (zh) | 区块链网络的资源处理方法、装置、产品、设备和介质 | |
CN117575788A (zh) | 交易处理方法、装置、设备及介质 | |
CN118037230A (zh) | 一种校服资金管理方法、装置、设备及介质 | |
CN118282711A (zh) | 跨系统自动登录方法、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |