CN111241557A - 基于区块链的服务请求方法及装置 - Google Patents

基于区块链的服务请求方法及装置 Download PDF

Info

Publication number
CN111241557A
CN111241557A CN201911421280.2A CN201911421280A CN111241557A CN 111241557 A CN111241557 A CN 111241557A CN 201911421280 A CN201911421280 A CN 201911421280A CN 111241557 A CN111241557 A CN 111241557A
Authority
CN
China
Prior art keywords
access key
key
contract
service
logic
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
Application number
CN201911421280.2A
Other languages
English (en)
Other versions
CN111241557B (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.)
Ant Blockchain Technology Shanghai Co Ltd
Original Assignee
Alipay Hangzhou Information Technology 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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN201911421280.2A priority Critical patent/CN111241557B/zh
Publication of CN111241557A publication Critical patent/CN111241557A/zh
Application granted granted Critical
Publication of CN111241557B publication Critical patent/CN111241557B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Automation & Control Theory (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本说明书提供了一种基于区块链的服务请求方法和装置,所述区块链存储有由服务调用方生成的安全访问密钥和对应的访问密钥ID;所述安全访问密钥预先基于服务提供方的公钥进行了加密处理;所述方法包括:服务提供方接收所述服务调用方发送的服务请求;所述服务请求包括请求参数、访问密钥ID、以及基于安全访问密钥对请求参数进行数字签名得到的第一数字签名;确认所述访问密钥ID是否为未使用状态;如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥;解密所述安全访问密钥,并基于所述安全访问密钥对所述第一数字签名进行验证;当所述验证通过时,基于所述请求参数执行所述服务请求,并将所述访问密钥ID标记为已使用状态。

Description

基于区块链的服务请求方法及装置
技术领域
本说明书一个或多个实施方式涉及区块链技术领域,尤其涉及一种基于区块链的服务请求方法及装置。
背景技术
区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用。
发明内容
有鉴于此,本说明书一个或多个实施方式提供一种基于区块链的服务请求方法、装置、计算机设备和计算机可读存储介质。
为实现上述目的,本说明书一个或多个实施方式提供了一种基于区块链的服务请求方法,所述区块链存储有由服务调用方生成的安全访问密钥和对应的访问密钥ID;其中所述区块链存储的所述安全访问密钥预先基于服务提供方的公钥进行了加密处理;所述方法包括:
所述服务提供方接收所述服务调用方发送的服务请求;所述服务请求包括请求参数、所述访问密钥ID、以及基于所述安全访问密钥对所述请求参数进行数字签名处理得到的第一数字签名;
确认所述访问密钥ID是否为未使用状态;
如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥;
基于所述服务调用方的私钥解密所述安全访问密钥;并基于解密后的所述安全访问密钥对所述第一数字签名进行验证;当所述第一数字签名被验证通过时,基于所述请求参数执行所述服务请求,并将所述访问密钥ID标记为已使用状态。
在又一示出的实施方式中,所述服务请求还包括与所述安全访问密钥生成时间对应的时间戳,所述方法还包括:
检验所述时间戳是否处于当前时间的预设差值范围内;
如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥。
在又一示出的实施方式中,所述区块链上部署有用于管理安全访问密钥的智能合约;所述安全访问密钥和对应的访问密钥ID被存储在所述智能合约对应的合约账户的账户存储空间;所述智能合约中的合约代码对应的处理逻辑包括密钥查询逻辑;
所述确认所述访问密钥ID是否为未使用状态,如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥,包括:
构建智能合约调用交易,其中,所述智能合约调用交易包含所述访问密钥ID;
将所述智能合约调用交易发布至区块链网络,以由所述区块链网络中的节点设备响应于所述智能合约调用交易,调用所述智能合约中的所述密钥查询逻辑,确认所述访问密钥ID是否为未使用状态,如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥。
在又一示出的实施方式中,所述智能合约调用交易还包括与所述安全访问密钥生成时间对应的时间戳;
所述密钥查询逻辑还包括:
在基于所述访问密钥ID查询对应的被加密处理的安全访问密钥之前,确认所述时间戳是否处于当前时间的预设差值范围内;
如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥。
在又一示出的实施方式中,所述智能合约中的合约代码对应的处理逻辑还包括数字签名验证逻辑;
所述基于所述服务调用方的私钥解密所述安全访问密钥,并基于解密后的所述安全访问密钥对所述第一数字签名进行验证,包括:
当基于所述访问密钥ID查询到对应的被加密处理的安全访问密钥后,进一步调用所述智能合约中的所述数字签名验证逻辑,基于所述服务调用方的私钥解密所述安全访问密钥,并基于解密后的所述安全访问密钥对所述第一数字签名进行验证。
在又一示出的实施方式中,所述智能合约中的合约代码对应的处理逻辑还包括访问密钥ID状态变更逻辑;
当所述第一数字签名被验证通过后,进一步调用所述智能合约中的所述访问密钥ID状态变更逻辑,将所述访问密钥ID标记为已使用状态。
在又一示出的实施方式中,在调用所述智能合约中的所述密钥查询逻辑之前,还包括:
验证所述智能合约调用交易的发送者是否为服务提供方;如果是,进一步调用所述智能合约中的所述密钥查询逻辑。
在又一示出的实施方式中,在调用所述智能合约中的所述访问密钥ID状态变更逻辑之前,还包括:
验证所述智能合约调用交易的发送者是否为服务提供方;如果是,进一步调用所述智能合约中的所述访问密钥ID无效逻辑。
在又一示出的实施方式中,所述智能合约调用交易还包括所述服务提供方的识别ID;所述验证所述智能合约调用交易的发送者是否为所述服务提供方,包括:
查询所述服务提供方的识别ID是否属于所述智能合约存储的权限白名单;
如果是,所述智能合约调用交易的发送者为所述服务提供方。
本说明书中的一个或多个实施方式还提供了一种基于区块链的服务请求方法,用于服务调用方向服务提供方发送服务请求,包括:
所述服务调用方生成安全访问密钥和对应的访问密钥ID,并基于所述服务提供方的公钥对所述安全访问密钥进行了加密处理;
将被加密处理的安全访问密钥和所述访问密钥ID发送至所述区块链,以使所述被加密处理的安全访问密钥和所述访问密钥ID被所述区块链的节点设备共识验证后存储于所述区块链;
向所述服务提供方发送服务请求;所述服务请求包括请求参数、所述访问密钥ID、以及基于所述安全访问密钥对所述请求参数进行数字签名处理得到的第一数字签名。
在又一示出的实施方式中,所述区块链上部署有用于管理安全访问密钥的智能合约;所述智能合约中的合约代码对应的处理逻辑包括密钥发布逻辑;
所述将被加密处理的安全访问密钥和所述访问密钥ID发送至所述区块链,以使所述被加密处理的安全访问密钥和所述访问密钥ID被所述区块链的节点设备共识验证后存储于所述区块链,包括:
构建密钥发布调用交易,所述密钥发布调用交易包含所述被加密处理的安全访问密钥和所述访问密钥ID;
将所述密钥发布调用交易发布至区块链网络,以由所述区块链网络中的节点设备响应于所述密钥发布调用交易,调用所述智能合约中的所述密钥发布逻辑,将被加密处理的安全访问密钥和对应的访问密钥ID存储在所述智能合约对应的合约账户的账户存储空间。
在又一示出的实施方式中,所述将被加密处理的和对应的访问密钥ID存储在所述智能合约对应的合约账户的账户存储空间,包括:
查询所述访问密钥ID是否与已存储在所述账户存储空间的已有访问密钥ID匹配;
如果否,将所述安全访问密钥和对应的访问密钥ID存储在所述智能合约对应的合约账户的账户存储空间。
相应地,本说明书还提供了一种基于区块链的服务请求装置,所述区块链存储有由服务调用方生成的安全访问密钥和对应的访问密钥ID;其中所述区块链存储的所述安全访问密钥预先基于服务提供方的公钥进行了加密处理;所述装置应用于所述服务提供方端,包括:
接收单元,接收所述服务调用方发送的服务请求;所述服务请求包括请求参数、所述访问密钥ID、以及基于所述安全访问密钥对所述请求参数进行数字签名处理得到的第一数字签名;
查询单元,确认所述访问密钥ID是否为未使用状态;如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥;
验证单元,基于所述服务调用方的私钥解密所述安全访问密钥;并基于解密后的所述安全访问密钥对所述第一数字签名进行验证;
执行单元,当所述第一数字签名被验证通过时,基于所述请求参数执行所述服务请求;
状态变更单元,将所述访问密钥ID标记为已使用状态。
在又一示出的实施方式中,所述服务请求还包括与所述安全访问密钥生成时间对应的时间戳,所述查询单元,进一步用于:
检验所述时间戳是否处于当前时间的预设差值范围内;
如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥。
在又一示出的实施方式中,所述区块链上部署有用于管理安全访问密钥的智能合约;所述安全访问密钥和对应的访问密钥ID被存储在所述智能合约对应的合约账户的账户存储空间;所述智能合约中的合约代码对应的处理逻辑包括密钥查询逻辑;
所述查询单元,进一步用于:
构建智能合约调用交易,其中,所述智能合约调用交易包含所述访问密钥ID;
将所述智能合约调用交易发布至区块链网络,以由所述区块链网络中的节点设备响应于所述智能合约调用交易,调用所述智能合约中的所述密钥查询逻辑,确认所述访问密钥ID是否为未使用状态,如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥。
在又一示出的实施方式中,所述智能合约调用交易还包括与所述安全访问密钥生成时间对应的时间戳;
所述密钥查询逻辑还包括:
在基于所述访问密钥ID查询对应的被加密处理的安全访问密钥之前,检验所述时间戳是否处于当前时间的预设差值范围内;
如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥。
在又一示出的实施方式中,所述智能合约中的合约代码对应的处理逻辑还包括数字签名验证逻辑;
所述验证单元,进一步用于:
调用所述智能合约中的所述数字签名验证逻辑,基于所述服务调用方的私钥解密所述安全访问密钥,并基于解密后的所述安全访问密钥对所述第一数字签名进行验证。
在又一示出的实施方式中,所述智能合约中的合约代码对应的处理逻辑还包括访问密钥ID状态变更逻辑;
当所述第一数字签名被验证通过后,进一步调用所述智能合约中的所述访问密钥ID状态变更逻辑,将所述访问密钥ID标记为已使用状态。
相应地,本说明书还提供了一种基于区块链的服务请求装置,用于服务调用方向服务提供方发送服务请求,所述装置应用于服务调用方端,包括:
生成单元,生成安全访问密钥和对应的访问密钥ID,并基于所述服务提供方的公钥对所述安全访问密钥进行了加密处理;
发送单元,将被加密处理的安全访问密钥和所述访问密钥ID发送至所述区块链,以使所述被加密处理的安全访问密钥和所述访问密钥ID被所述区块链的节点设备共识验证后存储于所述区块链;
所述发送单元,进一步用于向所述服务提供方发送服务请求;所述服务请求包括请求参数、所述访问密钥ID、以及基于所述安全访问密钥对所述请求参数进行数字签名处理得到的第一数字签名。
在又一示出的实施方式中,所述区块链上部署有用于管理安全访问密钥的智能合约;所述智能合约中的合约代码对应的处理逻辑包括密钥发布逻辑;
所述发送单元,进一步用于:
构建密钥发布调用交易,所述密钥发布调用交易包含所述被加密处理的安全访问密钥和所述访问密钥ID;
将所述密钥发布调用交易发布至区块链网络,以由所述区块链网络中的节点设备响应于所述密钥发布调用交易,调用所述智能合约中的所述密钥发布逻辑,将被加密处理的安全访问密钥和对应的访问密钥ID存储在所述智能合约对应的合约账户的账户存储空间。
在又一示出的实施方式中,所述将被加密处理的和对应的访问密钥ID存储在所述智能合约对应的合约账户的账户存储空间,包括:
查询所述访问密钥ID是否与已存储在所述账户存储空间的已有访问密钥ID匹配;
如果否,将所述安全访问密钥和对应的访问密钥ID存储在所述智能合约对应的合约账户的账户存储空间。
相应地,本说明书还提供了一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由所述处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行如上述各实施方式所述的、服务提供方所执行的基于区块链的服务请求方法。
本说明书还提供了一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由所述处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行如上述各实施方式所述的、服务调用方所执行的基于区块链的服务请求方法。
相应地,本说明书还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行如上述各实施方式所述的、服务提供方所执行的基于区块链的服务请求方法。
本说明书还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行如上述各实施方式所述的、服务调用方所执行的基于区块链的服务请求方法。
本说明书各个实施方式提供的基于区块链的服务请求方法、装置、计算机设备或计算机可读存储介质,将与服务调用方对应的安全访问密钥和访问密钥ID存储于区块链中,基于区块链的防篡改机制,有效防止安全访问密钥被篡改,保证了安全访问密钥的安全性;而且,由于上述被区块链存储的安全访问密钥预先基于所述服务提供方的公钥进行了加密处理,仅有服务提供方持私钥方可解密上述安全访问密钥,从而保证了上述与服务调用方对应的安全访问密钥的隐私性。
附图说明
图1是一示例性实施方式提供的创建智能合约的示意图;
图2是一示例性实施方式提供的一种调用智能合约的示意图;
图3是一示例性实施方式提供的创建智能合约和调用智能合约的示意图;
图4是一示例性实施方式提供的基于区块链的服务请求方法的流程示意图;
图5是一示例性实施方式提供的应用于服务提供方的基于区块链的服务请求装置的示意图;
图6是一示例性实施方式提供的应用于服务调用方的基于区块链的服务请求装置的示意图;
图7是运行本说明书所提供的基于区块链的服务请求装置实施方式的一种硬件结构图。
具体实施方式
这里将详细地对示例性实施方式进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施方式中所描述的实施方式并不代表与本说明书一个或多个实施方式相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施方式的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施方式中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施方式中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施方式中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施方式中也可能被合并为单个步骤进行描述。
服务提供方是为服务调用方提供具体服务内容的运营方,服务调用方是基于自身需求向服务提供方提出服务请求的客户方。服务提供方在接收到服务调用方发送的某项具体服务调用请求时,需对服务调用方的身份进行验证。
基于访问密钥ID及访问密钥对(一般称为AK/SK对)对服务调用方发送的服务请求进行身份验证,是公有云上常见的API验证方式之一。与服务调用方对应的访问密钥ID及访问密钥对通常是由服务提供方生成且分发的,一方面,服务提供方需要一个中心化的数据库***来存储维护访问密钥ID及访问密钥对,中心化的数据库***可能被恶意修改,这将导致服务调用方无法通过身份验证;另一方面,上述访问密钥ID及访问密钥对是由服务提供方生成的,通常需要通过https等方式在网络中将其传输给服务调用方,在传输过程中上述访问密钥ID及访问密钥对可能被截获,为服务调用方的身份验证带来风险。
鉴于以上的问题,本说明书的一个或多个实施方式提供了基于区块链的服务请求方法,用于服务调用方向服务提供方发送服务请求。
本说明书一个或多个实施方式所述的区块链网络,具体可指一个各节点设备通过共识机制达成的、具有分布式数据存储结构的P2P网络***,该区块链内的数据分布在时间上相连的一个个“区块(block)”之内,后一区块可包含前一区块的数据摘要,且根据具体的共识机制(如POW、POS、DPOS或PBFT等)的不同,达成全部或部分节点的数据全备份。
对于物理世界产生的真实数据,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链中的节点设备对收到的交易进行共识处理,并在达成共识后,由区块链中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。
其中,区块链中支持的共识算法可以包括:
第一类共识算法,即节点设备需要争夺每一轮的记账周期的记账权的共识算法;例如,工作量证明(Proof of Work,POW)、股权证明(Proof of Stake,POS)、委任权益证明(Delegated Proof of Stake,DPOS)等共识算法;
第二类共识算法,即预先为每一轮记账周期选举记账节点(不需要争夺记账权)的共识算法;例如,实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)等共识算法。
在采用第一类共识算法的区块链网络中,争夺记账权的节点设备,都可以在接收到交易后执行该笔交易。争夺记账权的节点设备中可能有一个节点设备在本轮争夺记账权的过程中胜出,成为记账节点。记账节点可以将收到的交易与其它交易一起打包以生成最新区块,并将生成的最新区块或者该最新区块的区块头发送至其它节点设备进行共识。
在采用第二类共识算法的区块链网络中,具有记账权的节点设备在本轮记账前已经商定好。因此,节点设备在接收到交易后,如果自身不是本轮的记账节点,则可以将该交易发送至记账节点。对于本轮的记账节点,在将该交易与其它交易一起打包以生成最新区块的过程中或者之前,可以执行该交易。记账节点在生成最新区块后,可以将该最新区块或者该最新区块的区块头发送至其它节点设备进行共识。
如上所述,无论区块链采用以上示出的哪种共识算法,本轮的记账节点均可以将接收到的交易打包以生成最新区块,并将生成的最新区块或者该最新区块的区块头发送至其它节点设备进行共识验证。如果其它节点设备接收到最新区块或者该最新区块的区块头后,经验证没有问题,可以将该最新区块追加到原有的区块链末尾,从而完成区块链的记账过程。其它节点验证记账节点发来的新的区块或区块头的过程中,也可以执行该区块中的包含的交易。
本领域的技术人员熟知,由于区块链网络***在相应共识机制下运行,已收录至区块链数据库内的数据很难被任意的节点篡改,例如采用Pow共识的区块链,至少需要全网51%算力的攻击才有可能篡改已有数据,因此区块链***有着其他中心化数据库***所无法比拟的保证数据安全、防攻击篡改的特性。由此可知,被收录至区块链的分布式数据库中的数据不会被攻击或篡改,从而保证了存证入区块链的分布式数据库的数据信息的真实可靠性。
区块链网络的示例类型可以包括公有区块链网络、私有区块链网络和联盟区块链网络。尽管术语区块链通常与比特币加密货币网络相关联,但是本文使用的区块链可指代不参考任何特定用例的DLS(分布式账本***)。
在公有区块链网络中,共识过程由共识网络的节点控制。例如,数百、数千、甚至数百万个实体可以在公有区块链网络中协作,每个实体在公有区块链网络中操作至少一个节点。因此,公有区块链网络可以被认为是相对于参与实体的公有网络。示例公有区块链网络包括比特币网络,比特币网络是对等支付网络。比特币网络利用分布式账本,被称为区块链。然而如上所述,术语区块链通常用于指代不特别参考比特币网络的分布式账本。
通常,公有区块链网络支持公有交易。公有交易与公有区块链网络内的所有节点共享,并存储在全局区块链中。全局区块链是跨所有节点复制的区块链。也就是说,对于全局区块链,所有节点处于完全一致的状态。为了达成共识(例如,同意向区块链添加块),在公有区块链网络内实施共识协议。示例共识协议包括但不限于,在比特币网络中实施的工作量证明(proof-of-work,POW)。
通常,私有区块链网络提供给特定实体,特定实体集中控制读取和写入权限。该实体控制哪些节点能够参与区块链网络。因此,私有区块链网络通常被称为许可网络,其对允许谁参与网络及其参与水平(例如,仅在某些交易中)施加限制。可以使用各种类型的访问控制机制(例如,现有参与者投票添加新实体,监管机构可以控制准入)。
通常,联盟区块链网络在参与实体中是私有的。在联盟区块链网络中,共识过程由授权的一组节点(联盟成员节点)控制,一个或多个节点由相应的实体(例如,企业)操作。例如,由十(10)个实体(例如,企业)组成的联盟可以操作联盟区块链网络,每个实体在该联盟区块链网络中操作至少一个节点。因此,就参与实体而言,联盟区块链网络可以被认为是私有网络。在一些示例中,每个实体(节点)必须对每个块进行签名,以使该块有效并将有效的块添加到区块链。在一些示例中,至少实体(节点)的子集(例如,至少7个实体)必须对每个块进行签名以使该块有效,并且将有效的块添加到区块链。
可以预期,本说明书所提供的实施方式能够在任何合适类型的区块链网络中实现。
在实际应用中,不论是公有链、私有链还是联盟链,都可能提供智能合约(Smartcontract)的功能。区块链上的智能合约是在区块链上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。
以以太坊为例,支持用户在以太坊网络中创建并调用一些复杂的逻辑。以太坊作为一个可编程区块链,其核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,通过它可以实现各种复杂的逻辑。用户在以太坊中发布和调用智能合约就是在EVM上运行的。实际上,EVM直接运行的是虚拟机代码(虚拟机字节码,下简称“字节码”),所以部署在区块链上的智能合约可以是字节码。
如图1所示,Bob将一笔包含创建智能合约信息的交易(Transaction)发送到以太坊网络后,各节点均可以在EVM中执行这笔交易。其中,图中交易的From字段用于记录发起创建智能合约的账户的地址,交易的Data字段的字段值保存的合约代码可以是字节码,交易的To字段的字段值为一个null(空)的账户。当节点间通过共识机制达成一致后,这个智能合约成功创建,后续用户可以调用这个智能合约。
智能合约创建后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的地址;比如,图1中各节点中的“0x68e12cf284…”就代表了创建的这个合约账户的地址;合约代码(Code)和账户存储(Storage)将保存在该合约账户的账户存储中。智能合约的行为由合约代码控制,而智能合约的账户存储则保存了合约的状态。换句话说,智能合约使得区块链上产生包含合约代码和账户存储的虚拟账户。
前述提到,包含创建智能合约的交易的Data字段保存的可以是该智能合约的字节码。字节码由一连串的字节组成,每一字节可以标识一个操作。基于开发效率、可读性等多方面考虑,开发者可以不直接书写字节码,而是选择一门高级语言编写智能合约代码。例如,高级语言可以采用诸如Solidity、Serpent、LLL语言等。对于采用高级语言编写的智能合约代码,可以经过编译器编译,生成可以部署到区块链上的字节码。
以Solidity语言为例,用其编写的合约代码与面向对象编程语言中的类(Class)很相似,在一个合约中可以声明多种成员,包括状态变量、函数、函数修改器、事件等。状态变量是永久存储在智能合约的账户存储(Storage)字段中的值,用于保存合约的状态。
如图2所示,仍以以太坊为例,Bob将一笔包含调用智能合约信息的交易发送到以太坊网络后,各节点均可以在EVM中执行这笔交易。其中,图中交易的From字段用于记录发起调用智能合约的账户的地址,To字段用于记录被调用的智能合约的地址,交易的Data字段用于记录调用智能合约的方法和参数。调用智能合约后,合约账户的账户状态可能改变。后续,某个客户端可以通过接入的区块链节点查看合约账户的账户状态。
智能合约可以以规定的方式在区块链网络中每个节点独立的执行,所有执行记录和数据都保存在区块链上,所以当这样的交易执行完毕后,区块链上就保存了无法篡改、不会丢失的交易凭证。
创建智能合约和调用智能合约的示意图如图3所示。以太坊中要创建一个智能合约,需要经过编写智能合约、变成字节码、部署到区块链等过程。以太坊中调用智能合约,是发起一笔指向智能合约地址的交易,各个节点的EVM可以分别执行该交易,将智能合约代码分布式的运行在以太坊网络中每个节点的虚拟机中。
在本说明书提供的一个或多个实施方式中,上述服务调用方或服务提供方对应的终端设备,可以作为各实施方式所述的区块链网络的节点设备;也可以为与上述区块链网络中的节点设备连接的区块链客户端,还可以为与区块链网络中的节点设备连接的、链下终端设备或服务器,通过与区块链网络中的节点设备数据通信传输以向区块链上发布数据或从区块链上获取数据。为简洁起见,本说明书以下以“服务调用方”代表服务调用方使用的线下终端,或服务调用方节点设备或服务调用方区块链客户端等终端设备,以“服务提供方”代表服务提供方使用的线下服务器终端,或服务提供方节点设备或服务提供方区块链客户端等终端设备,执行各实施方式所述的基于区块链的服务请求方法。
图4示意了本说明书一示例性实施方式提供的基于区块链的服务请求方法的流程步骤,包括:
步骤402,服务调用方生成安全访问密钥和对应的访问密钥ID。
在本实施方式中,访问密钥ID和安全访问密钥对(即AK/SK对)可由服务调用方本地生成,避免了传统方式中,访问密钥ID和安全访问密钥对(即AK/SK对)由服务提供方生成并传输带来的安全访问密钥被泄露或被篡改风险。
步骤404,服务调用方基于服务提供方的公钥对所述安全访问密钥进行了加密处理。
服务提供方可基于非对称加密算法生成公钥-私钥对(PublicKey-SecretKey对),并将其公钥进行公开,具体的公开方式不限于在各个服务调用方运行服务注册程序时接收服务提供方传输的身份证书,或将其公钥作为***息进行公示发布,等等。服务调用方可使用服务提供方的公钥将其生成的安全访问密钥SK进行加密,如生成Encrypt_SK。
本说明书的各个实施方式中并不限定服务提供方生成公钥-私钥对所使用的非对称加密算法,例如可使用RSA算法、ECC算法等等。
步骤406,服务调用方将所述被加密处理的安全访问密钥和所述访问密钥ID发送至所述区块链,以使所述被加密处理的安全访问密钥和所述访问密钥ID被所述区块链的节点设备共识验证后存储于所述区块链。
当服务调用方直接作为上述区块链***的节点设备时,服务调用方可将上述被加密处理的安全访问密钥(Encrypt_SK)和对应的访问密钥ID(AK)打包成交易格式,再将该交易广播至区块链的节点设备,以使所述交易被所述区块链的节点设备共识验证后存储于所述区块链。当服务调用方不直接作为上述区块链***的节点设备、而作为与节点设备通信连接的终端设备时,可将上述被加密处理的安全访问密钥(Encrypt_SK)和对应的访问密钥ID(AK)传输至上述区块链***的节点设备,再由该节点设备将上述Encrypt_SK和AK打包为交易格式上传区块链。本说明书如前已简述了区块链中常用的共识算法,在此对上述区块链网络的共识算法不作限定。
在本实施方式中,由服务调用方将上述被加密处理的安全访问密钥(Encrypt_SK)和对应的访问密钥ID(AK)存储于区块链中,基于区块链的防篡改机制,可有效防止Encrypt_SK和对应的AK被篡改;而且服务调用方的安全访问密钥SK是以加密状态存储于区块链中的,更加保护了上述安全访问密钥SK的隐私性,提高了服务调用方调用服务的安全性。
在账户模式的区块链网络***(如以太坊区块链、hyper-ledger等)中,区块链的存储空间除了包括区块(BLOCKS)外,还包括用户账户及智能合约账户等账户模型对应的存储空间。因此,本实施方式所述的将Encrypt_SK和对应的访问密钥ID存储于区块链,既可以包括将Encrypt_SK和对应的访问密钥ID存储于区块链的区块(BLOCKS)内,还可以包括将Encrypt_SK和对应的访问密钥ID存储于账户模型对应的存储空间,例如,智能合约账户的存储空间。
在又一示出的实施方式中,上述区块链上部署有用于管理安全访问密钥的智能合约;所述智能合约中的合约代码对应的处理逻辑包括密钥发布逻辑;上述将所述被加密处理的安全访问密钥和所述访问密钥ID发送至所述区块链,以使所述被加密处理的安全访问密钥和所述访问密钥ID被所述区块链的节点设备共识验证后存储于所述区块链的过程,可具体包括如下步骤:
服务调用方构建密钥发布调用交易,所述密钥发布调用交易包含所述被加密处理的安全访问密钥(Encrypt_SK)和所述访问密钥ID(AK);
将所述密钥发布调用交易发布至区块链网络,以由所述区块链网络中的节点设备响应于所述密钥发布调用交易,调用所述智能合约中的所述密钥发布逻辑,将所述安全访问密钥(Encrypt_SK)和对应的访问密钥ID(AK)存储在所述智能合约对应的合约账户的账户存储空间。
上述密钥发布调用交易还可包括上述智能合约的区块链地址、密钥发布逻辑的函数名称、接口信息等等;本说明书之前已详细论述了智能合约的调用过程,在此不再赘述。相较于仅通过以交易的形式在区块(BLOCKS)在存储Encrypt_SK和对应的AK的实现方式,通过智能合约在合约账户的存储空间存储Encrypt_SK和对应的AK,更加方便了服务提供方对多个服务调用方的安全访问密钥进行管理。服务提供方可作为上述智能合约的发布部署方,通过为上述智能合约设置相应的密钥发布逻辑,完成相应的密钥管理方式。
在又一示出的实施方式中,上述密钥发布逻辑声明的将所述安全访问密钥和对应的访问密钥ID存储在所述智能合约对应的合约账户的账户存储空间的具体过程,可包括:
查询所述访问密钥ID是否与已存储在所述账户存储空间的已有访问密钥ID匹配;
如果是,发出密钥发布失败提示;
如果否,将所述安全访问密钥和对应的访问密钥ID存储在所述智能合约对应的合约账户的账户存储空间。
基于账户模型的区块链网络***中,如以太坊区块链***,在节点设备本地维护有与区块对应的交易树及收据树(以太坊区块链***中,在节点设备本地还维护有与账户全局状态对应的状态树)。上述智能合约运行密钥发布逻辑的结果(包括密钥发布失败提示、或密钥存储成功提示、或密钥存储地址等)会写入区块链的交易日志,上述交易日志或交易日志的编码值可被收录至区块链的收据树(recipes tree)中。服务调用方通过监听区块链的收据树,可获取到交易日志中记录的密钥发布逻辑的结果。
通过上述处理过程,可有效防止服务调用方生成的访问密钥ID(AK)对撞重复,如多个服务调用方生成同样的访问密钥ID、或一个服务调用方多次生成的访问密钥ID相同,保证每个访问密钥ID仅唯一对应一个服务调用方,从而方便密钥管理及身份验证。
步骤408,所述服务调用方向所述服务提供方发送服务请求;所述服务请求包括请求参数、所述访问密钥ID、以及基于所述安全访问密钥对所述请求参数进行数字签名处理得到的第一数字签名。
服务调用方发送的请求参数可包括请求服务内容参数、或服务类型参数、或调用入参、或调用接口等参数中的一项或多项,以方便服务提供方基于上述请求参数执行服务请求。
值得注意的是,上述第一数字签名是服务调用方基于其安全访问密钥至少对上述请求参数进行数字签名而得到的,本领域的技术人员从技术或业务需求出发,还可在上述过程中,对上述请求参数及其他技术或业务参数进行数字签名而得到第一数字签名,在此不做限定。
步骤410,所述服务提供方接收所述服务调用方发送的上述服务请求。
步骤412,所述服务提供方确认所述访问密钥ID是否为未使用状态;
在一示出的实施方式中,服务提供方可以在本地记录与服务调用方对应的访问密钥ID状态,在每执行一次服务调用方发送的服务请求后,将该服务请求包含的访问密钥ID标记为已使用状态;对于包含已使用状态的访问密钥ID的服务请求,提供方将不再执行其服务请求内容,如直接向其发送拒绝服务通知。
通过标记访问密钥ID的使用状态、仅执行未使用状态的安全访问密钥(与访问密钥ID一一对应)数字签名加密的服务请求(或仅查询未使用状态的安全访问密钥)的实施方式,可以使服务调用方每次发送服务请求时都应使用新的访问密钥ID及安全访问密钥,防止其他方在拦截服务请求后仿冒服务调用方身份发送虚假服务请求,从而进一步提升了服务***的安全性;而且,上述一次一密的服务方式,可有效阻击服务调用方发送的服务请求在被恶意拦截后可能发起的恶意重放攻击,提升***的稳定性。
服务调用方在采用上述一次一密的方式加密请求参数以提起服务请求,通常会在提起请求参数时生成访问密钥ID及安全访问密钥对(AK/SK对),在又一示出的实施方式中,上述服务请求还包括与所述安全访问密钥(或访问密钥ID)生成时间对应的时间戳,在服务提供方接收到服务请求后、如在基于访问密钥ID查询对应的被加密处理的安全访问密钥之前,除了验证上述访问密钥ID是否处于未使用状态,还要验证上述访问密钥ID及安全访问密钥对(AK/SK对)的生成时间与当前时间的差值是否处于预设的差值范围内,从而进一步保证服务调动方与服务提供方时钟的同步性;或者将生成后长时间未被服务请求消费的AK/SK对失效处理,进一步提升***的安全性。
步骤414,如果所述访问密钥ID为未使用状态,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥。
基于上述访问密钥ID和被加密处理的安全访问密钥被存储的空间不同,上述服务提供方基于所述访问密钥ID查询对应的被加密处理的安全访问密钥的具体过程有所不同。
在一示出的实施方式中,当上述访问密钥ID和被加密处理的安全访问密钥被存储于区块链(包括BLOCKS或节点设备本地维护的账户存储空间)时,服务提供方可作为上述区块链的节点设备或与上述区块链的节点设备连接,基于上述访问密钥ID和被加密处理的安全访问密钥的地址(如Txhash)可查询上述访问密钥ID和被加密处理的安全访问密钥对。
在又一示出的实施方式中,当上述区块链网络部署有用于管理安全访问密钥的智能合约时,上述访问密钥ID和被加密处理的安全访问密钥通过上述实施方式所述的密钥发布调用交易对智能合约的调用而被存储于上述智能合约的账户空间,上述智能合约中的合约代码对应的处理逻辑可包括密钥查询逻辑;相应地,上述所述确认所述访问密钥ID是否为未使用状态,如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥的具体过程,包括:
构建智能合约调用交易,其中,所述智能合约调用交易包含所述访问密钥ID;
将所述智能合约调用交易发布至区块链网络,以由所述区块链网络中的节点设备响应于所述智能合约调用交易,调用所述智能合约中的所述密钥查询逻辑,确认所述访问密钥ID是否为未使用状态,如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥。
具体地,在上述智能合约的账户空间存储上述访问密钥ID及被加密的安全访问密钥对时,可为访问密钥ID或和被加密的安全访问密钥设置一对应的状态位,例如当该状态位为“T”时,标识上述访问密钥ID为未使用状态,当该状态位为“F”时,标识上述访问密钥ID为已使用状态。
基于账户模型的区块链网络***中,如以太坊区块链***,在节点设备本地维护有与区块对应的交易树及收据树(以太坊区块链***中,在节点设备本地还维护有与账户全局状态对应的状态树)。上述智能合约执行密钥查询逻辑的结果会存储于与上述智能合约调用交易对应的交易日志中,上述交易日志(可经过预设的编码,如rlp编码)以交易收据的形式被保存于收据树(recipes tree)中。服务提供方可通过监听本地维护的收据树,获取到上述智能合约基于上述访问密钥ID查询对应的被加密处理的安全访问密钥的结果。
上述智能合约调用交易可包括与密钥查询逻辑对应的函数名称及接口地址,以完成对上述密钥查询逻辑的调用。
步骤416,所述服务提供方基于所述服务调用方的私钥解密所述安全访问密钥,并基于解密后的所述安全访问密钥对所述第一数字签名进行验证。
上述服务提供方在获取到与服务调用方对应的安全访问密钥后,可以在其终端本地基于服务提供方的私钥对服务调用方对应的安全访问密钥进行解密,并基于解密后的安全访问密钥对第一数字签名进行验签。对第一数字签名进行验证的方法可以有多种,在一种示出的实施方式中,上述基于解密后的安全访问密钥对第一数字签名进行验证的过程可具体包括以下步骤:
基于解密后的所述安全访问密钥对所述请求参数进行数字签名得到第二数字签名;
确定第一数字签名和第二数字签名是否匹配;如果是,确定所述第一数字签名被验证通过。
上述基于所述服务调用方的私钥解密所述安全访问密钥,并基于解密后的所述安全访问密钥对所述第一数字签名进行验证的过程,还可以通过由智能合约调用交易进一步调用上述智能合约的数字签名验证逻辑来执行。具体地,上述智能合约中的合约代码对应的处理逻辑还包括数字签名验证逻辑;上述智能合约调用交易可进一步包括与数字签名验证逻辑对应的函数名称及接口地址,以完成对上述数字签名验证逻辑的调用。
所述基于所述服务调用方的私钥解密所述安全访问密钥,并基于解密后的所述安全访问密钥对所述第一数字签名进行验证,包括:当基于所述访问密钥ID查询到对应的被加密处理的安全访问密钥后,进一步调用所述智能合约中的所述数字签名验证逻辑,基于所述服务调用方的私钥解密所述安全访问密钥,并基于解密后的所述安全访问密钥对所述第一数字签名进行验证。
值得注意的是,由于服务提供方的私钥是涉及到服务提供方隐私、及服务信息安全的重要数据,通常要求智能合约在安全运算环境中执行上述基于所述服务调用方的私钥解密所述安全访问密钥,并基于解密后的所述安全访问密钥对所述第一数字签名进行验证的过程。将服务提供方的私钥及智能合约的逻辑代码部署于可信执行环境(TEE)中,可实现安全隐私地解密安全访问密钥并验证第一数字签名。
步骤418,当所述第一数字签名被验证通过时,服务提供方基于所述请求参数执行所述服务请求,并将所述访问密钥ID标记为已使用状态。
如上所述,当上述智能合约的账户空间为上述访问密钥ID(/及被加密的安全访问密钥)设置有标识其使用状态的状态位时,所述智能合约中的合约代码对应的处理逻辑还包括访问密钥ID状态变更逻辑;当所述第一数字签名被验证通过后,进一步调用所述智能合约中的所述访问密钥ID状态变更逻辑,将所述访问密钥ID标记为已使用状态。
由于区块链上的节点设备均可向部署于区块链上的智能合约发起调用交易,进一步地,为规范服务调用方的安全访问密钥管理,防止对智能合约的恶意攻击,上述智能合约还可设置权限控制逻辑,限制仅由服务提供方的调用方可执行上述密钥查询逻辑。在一示出的实施方式中,在进一步调用所述智能合约中的所述密钥查询逻辑之前,或者,在进一步调用所述智能合约中的所述访问密钥ID状态变更逻辑之前,智能合约可执行的处理逻辑还包括的:验证智能合约调用交易的发送者是否为上述服务提供方;如果是,进一步调用所述智能合约中的所述密钥查询逻辑。
验证智能合约调用交易的发送者是否为上述服务提供方的具体方式可以有多种,在一示出的实施方式中,上述智能合约调用交易还包括所述服务提供方的识别ID;所述验证所述智能合约调用交易的发送者是否为所述服务提供方,包括:查询所述服务提供方的识别ID是否属于所述智能合约存储的密钥查询权限白名单;如果是,所述验证交易的发送者为所述服务提供方。
智能合约声明有一系列可执行程序代码,可在区块链节点设备的EVM上执行。由于智能合约在被部署到区块链后,智能合约的任何变动或更改都在区块链上有迹可循,因此有着较低的人为干预风险和去中心化权威特性,区块链网络的节点设备均可准确执行且达成共识的执行结果,相比于可能受人为干预的服务提供方提供的中心化可执行程序,通过调用智能合约执行的密钥查询、或电子签名验证可获得更加公平、公正、准确的执行结果。
与上述流程实现对应,本说明书的实施方式还提供了基于区块链的服务请求装置50和60。装置50和60可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过所在设备的CPU(Central Process Unit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图7所示的CPU、内存以及存储器之外,上述装置所在的设备通常还包括用于进行无线信号收发的芯片等其他硬件,和/或用于实现网络通信功能的板卡等其他硬件。
如图5所示,本说明书还提供了一种基于区块链的服务请求装置50,所述区块链存储有由服务调用方生成的安全访问密钥和对应的访问密钥ID;其中所述区块链存储的所述安全访问密钥预先基于服务提供方的公钥进行了加密处理;所述装置50应用于所述服务提供方端,包括:
接收单元502,接收所述服务调用方发送的服务请求;所述服务请求包括请求参数、所述访问密钥ID、以及基于所述安全访问密钥至少对所述请求参数进行数字签名处理得到的第一数字签名;
查询单元504,确认所述访问密钥ID是否为未使用状态;如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥;
验证单元506,基于所述服务调用方的私钥解密所述安全访问密钥;并基于解密后的所述安全访问密钥对所述第一数字签名进行验证;
执行单元508,当所述第一数字签名被验证通过时,基于所述请求参数执行所述服务请求;
状态变更单元510,将所述访问密钥ID标记为已使用状态。
在又一示出的实施方式中,所述服务请求还包括与所述安全访问密钥生成时间对应的时间戳,所述查询单元504,进一步用于:
检验所述时间戳是否处于当前时间的预设差值范围内;
如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥。
在又一示出的实施方式中,所述区块链上部署有用于管理安全访问密钥的智能合约;所述安全访问密钥和对应的访问密钥ID被存储在所述智能合约对应的合约账户的账户存储空间;所述智能合约中的合约代码对应的处理逻辑包括密钥查询逻辑;
所述查询单元504,进一步用于:
构建智能合约调用交易,其中,所述智能合约调用交易包含所述访问密钥ID;
将所述智能合约调用交易发布至区块链网络,以由所述区块链网络中的节点设备响应于所述智能合约调用交易,调用所述智能合约中的所述密钥查询逻辑,确认所述访问密钥ID是否为未使用状态,如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥。
在又一示出的实施方式中,所述智能合约调用交易还包括与所述安全访问密钥生成时间对应的时间戳;
所述密钥查询逻辑还包括:
在基于所述访问密钥ID查询对应的被加密处理的安全访问密钥之前,检验所述时间戳是否处于当前时间的预设差值范围内;
如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥。
在又一示出的实施方式中,所述智能合约中的合约代码对应的处理逻辑还包括数字签名验证逻辑;
所述验证单元506,进一步用于:
调用所述智能合约中的所述数字签名验证逻辑,基于所述服务调用方的私钥解密所述安全访问密钥,并基于解密后的所述安全访问密钥对所述第一数字签名进行验证。
在又一示出的实施方式中,所述智能合约中的合约代码对应的处理逻辑还包括访问密钥ID状态变更逻辑;
当所述第一数字签名被验证通过后,进一步调用所述智能合约中的所述访问密钥ID状态变更逻辑,将所述访问密钥ID标记为已使用状态。
上述装置50中各个单元的功能和作用的实现过程具体详见上述区块链的服务提供方所执行的基于区块链的服务请求方法中对应步骤的实现过程,相关之处参见方法实施方式的部分说明即可,在此不再赘述。
如图6所示,本说明书还提供了一种基于区块链的服务请求装置60,用于服务调用方向服务提供方发送服务请求,所述装置60应用于服务调用方端,包括:
生成单元602,生成安全访问密钥和对应的访问密钥ID,并基于所述服务提供方的公钥对所述安全访问密钥进行了加密处理;
发送单元604,将被加密处理的安全访问密钥和所述访问密钥ID发送至所述区块链,以使所述被加密处理的安全访问密钥和所述访问密钥ID被所述区块链的节点设备共识验证后存储于所述区块链;
所述发送单元604,进一步用于向所述服务提供方发送服务请求;所述服务请求包括请求参数、所述访问密钥ID、以及基于所述安全访问密钥对所述请求参数进行数字签名处理得到的第一数字签名。
在又一示出的实施方式中,所述区块链上部署有用于管理安全访问密钥的智能合约;所述智能合约中的合约代码对应的处理逻辑包括密钥发布逻辑;
所述发送单元604,进一步用于:
构建密钥发布调用交易,所述密钥发布调用交易包含所述被加密处理的安全访问密钥和所述访问密钥ID;
将所述密钥发布调用交易发布至区块链网络,以由所述区块链网络中的节点设备响应于所述密钥发布调用交易,调用所述智能合约中的所述密钥发布逻辑,将被加密处理的安全访问密钥和对应的访问密钥ID存储在所述智能合约对应的合约账户的账户存储空间。
在又一示出的实施方式中,所述将被加密处理的和对应的访问密钥ID存储在所述智能合约对应的合约账户的账户存储空间,包括:
查询所述访问密钥ID是否与已存储在所述账户存储空间的已有访问密钥ID匹配;
如果否,将所述安全访问密钥和对应的访问密钥ID存储在所述智能合约对应的合约账户的账户存储空间。
上述装置60中各个单元的功能和作用的实现过程具体详见上述区块链的服务调用方所执行的基于区块链的服务请求方法中对应步骤的实现过程,相关之处参见方法实施方式的部分说明即可,在此不再赘述。
以上所描述的装置实施方式仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部单元或模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施方式阐明的装置、单元、模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与上述方法实施方式相对应,本说明书的实施方式还提供了一种计算机设备,如图7所示,该计算机设备包括存储器和处理器。其中,存储器上存储有能够由处理器运行的计算机程序;处理器在运行存储的计算机程序时,执行本说明书实施方式中上述服务提供方所执行的基于区块链的服务请求方法的各个步骤。对上述服务提供方所执行的基于区块链的服务请求方法的各个步骤的详细描述请参见之前的内容,不再重复。
与上述方法实施方式相对应,本说明书的实施方式还提供了一种计算机设备,如图7所示,该计算机设备包括存储器和处理器。其中,存储器上存储有能够由处理器运行的计算机程序;处理器在运行存储的计算机程序时,执行本说明书实施方式中上述服务调用方所执行的基于区块链的服务请求方法的各个步骤。对上述服务调用方所执行的基于区块链的服务请求方法的各个步骤的详细描述请参见之前的内容,不再重复。
与上述方法实施方式相对应,本说明书的实施方式还提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,这些计算机程序在被处理器运行时,执行本说明书实施方式中服务提供方所执行的基于区块链的服务请求方法的各个步骤。对上述服务提供方所执行的基于区块链的服务请求方法的各个步骤的详细描述请参见之前的内容,不再重复。
与上述方法实施方式相对应,本说明书的实施方式还提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,这些计算机程序在被处理器运行时,执行本说明书实施方式中服务调用方所执行的基于区块链的服务请求方法的各个步骤。对上述服务调用方所执行的基于区块链的服务请求方法的各个步骤的详细描述请参见之前的内容,不再重复。
以上所述仅为本说明书的较佳实施方式而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(trans itory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施方式可提供为方法、***或计算机程序产品。因此,本说明书的实施方式可采用完全硬件实施方式、完全软件实施方式或结合软件和硬件方面的实施方式的形式。而且,本说明书的实施方式可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

Claims (25)

1.一种基于区块链的服务请求方法,所述区块链存储有由服务调用方生成的安全访问密钥和对应的访问密钥ID;其中所述区块链存储的所述安全访问密钥预先基于服务提供方的公钥进行了加密处理;所述方法包括:
所述服务提供方接收所述服务调用方发送的服务请求;所述服务请求包括请求参数、所述访问密钥ID、以及基于所述安全访问密钥对所述请求参数进行数字签名处理得到的第一数字签名;
确认所述访问密钥ID是否为未使用状态;
如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥;
基于所述服务调用方的私钥解密所述安全访问密钥;并基于解密后的所述安全访问密钥对所述第一数字签名进行验证;当所述第一数字签名被验证通过时,基于所述请求参数执行所述服务请求,并将所述访问密钥ID标记为已使用状态。
2.根据权利要求1所述的方法,所述服务请求还包括与所述安全访问密钥生成时间对应的时间戳,所述方法还包括:
检验所述时间戳是否处于当前时间的预设差值范围内;
如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥。
3.根据权利要求1或2所述的方法,所述区块链上部署有用于管理安全访问密钥的智能合约;所述安全访问密钥和对应的访问密钥ID被存储在所述智能合约对应的合约账户的账户存储空间;所述智能合约中的合约代码对应的处理逻辑包括密钥查询逻辑;
所述确认所述访问密钥ID是否为未使用状态,如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥,包括:
构建智能合约调用交易,其中,所述智能合约调用交易包含所述访问密钥ID;
将所述智能合约调用交易发布至区块链网络,以由所述区块链网络中的节点设备响应于所述智能合约调用交易,调用所述智能合约中的所述密钥查询逻辑,确认所述访问密钥ID是否为未使用状态,如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥。
4.根据权利要求3所述的方法,所述智能合约调用交易还包括与所述安全访问密钥生成时间对应的时间戳;
所述密钥查询逻辑还包括:
在基于所述访问密钥ID查询对应的被加密处理的安全访问密钥之前,确认所述时间戳是否处于当前时间的预设差值范围内;
如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥。
5.根据权利要求3所述的方法,所述智能合约中的合约代码对应的处理逻辑还包括数字签名验证逻辑;
所述基于所述服务调用方的私钥解密所述安全访问密钥,并基于解密后的所述安全访问密钥对所述第一数字签名进行验证,包括:
当基于所述访问密钥ID查询到对应的被加密处理的安全访问密钥后,进一步调用所述智能合约中的所述数字签名验证逻辑,基于所述服务调用方的私钥解密所述安全访问密钥,并基于解密后的所述安全访问密钥对所述第一数字签名进行验证。
6.根据权利要求3所述的方法,所述智能合约中的合约代码对应的处理逻辑还包括访问密钥ID状态变更逻辑;
当所述第一数字签名被验证通过后,进一步调用所述智能合约中的所述访问密钥ID状态变更逻辑,将所述访问密钥ID标记为已使用状态。
7.根据权利要求3所述的方法,在调用所述智能合约中的所述密钥查询逻辑之前,还包括:
验证所述智能合约调用交易的发送者是否为服务提供方;如果是,进一步调用所述智能合约中的所述密钥查询逻辑。
8.根据权利要求6所述的方法,在调用所述智能合约中的所述访问密钥ID状态变更逻辑之前,还包括:
验证所述智能合约调用交易的发送者是否为服务提供方;如果是,进一步调用所述智能合约中的所述访问密钥ID无效逻辑。
9.根据权利要求7或8所述的方法,所述智能合约调用交易还包括所述服务提供方的识别ID;所述验证所述智能合约调用交易的发送者是否为所述服务提供方,包括:
查询所述服务提供方的识别ID是否属于所述智能合约存储的权限白名单;
如果是,所述智能合约调用交易的发送者为所述服务提供方。
10.一种基于区块链的服务请求方法,用于服务调用方向服务提供方发送服务请求,包括:
所述服务调用方生成安全访问密钥和对应的访问密钥ID,并基于所述服务提供方的公钥对所述安全访问密钥进行了加密处理;
将被加密处理的安全访问密钥和所述访问密钥ID发送至所述区块链,以使所述被加密处理的安全访问密钥和所述访问密钥ID被所述区块链的节点设备共识验证后存储于所述区块链;
向所述服务提供方发送服务请求;所述服务请求包括请求参数、所述访问密钥ID、以及基于所述安全访问密钥对所述请求参数进行数字签名处理得到的第一数字签名。
11.根据权利要求10所述的方法,所述区块链上部署有用于管理安全访问密钥的智能合约;所述智能合约中的合约代码对应的处理逻辑包括密钥发布逻辑;
所述将被加密处理的安全访问密钥和所述访问密钥ID发送至所述区块链,以使所述被加密处理的安全访问密钥和所述访问密钥ID被所述区块链的节点设备共识验证后存储于所述区块链,包括:
构建密钥发布调用交易,所述密钥发布调用交易包含所述被加密处理的安全访问密钥和所述访问密钥ID;
将所述密钥发布调用交易发布至区块链网络,以由所述区块链网络中的节点设备响应于所述密钥发布调用交易,调用所述智能合约中的所述密钥发布逻辑,将被加密处理的安全访问密钥和对应的访问密钥ID存储在所述智能合约对应的合约账户的账户存储空间。
12.根据权利要求11所述的方法,所述将被加密处理的和对应的访问密钥ID存储在所述智能合约对应的合约账户的账户存储空间,包括:
查询所述访问密钥ID是否与已存储在所述账户存储空间的已有访问密钥ID匹配;
如果否,将所述安全访问密钥和对应的访问密钥ID存储在所述智能合约对应的合约账户的账户存储空间。
13.一种基于区块链的服务请求装置,所述区块链存储有由服务调用方生成的安全访问密钥和对应的访问密钥ID;其中所述区块链存储的所述安全访问密钥预先基于服务提供方的公钥进行了加密处理;所述装置应用于所述服务提供方端,包括:
接收单元,接收所述服务调用方发送的服务请求;所述服务请求包括请求参数、所述访问密钥ID、以及基于所述安全访问密钥对所述请求参数进行数字签名处理得到的第一数字签名;
查询单元,确认所述访问密钥ID是否为未使用状态;如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥;
验证单元,基于所述服务调用方的私钥解密所述安全访问密钥;并基于解密后的所述安全访问密钥对所述第一数字签名进行验证;
执行单元,当所述第一数字签名被验证通过时,基于所述请求参数执行所述服务请求;
状态变更单元,将所述访问密钥ID标记为已使用状态。
14.根据权利要求13所述的装置,所述服务请求还包括与所述安全访问密钥生成时间对应的时间戳,所述查询单元,进一步用于:
检验所述时间戳是否处于当前时间的预设差值范围内;
如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥。
15.根据权利要求13或14所述的装置,所述区块链上部署有用于管理安全访问密钥的智能合约;所述安全访问密钥和对应的访问密钥ID被存储在所述智能合约对应的合约账户的账户存储空间;所述智能合约中的合约代码对应的处理逻辑包括密钥查询逻辑;
所述查询单元,进一步用于:
构建智能合约调用交易,其中,所述智能合约调用交易包含所述访问密钥ID;
将所述智能合约调用交易发布至区块链网络,以由所述区块链网络中的节点设备响应于所述智能合约调用交易,调用所述智能合约中的所述密钥查询逻辑,确认所述访问密钥ID是否为未使用状态,如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥。
16.根据权利要求15所述的装置,所述智能合约调用交易还包括与所述安全访问密钥生成时间对应的时间戳;
所述密钥查询逻辑还包括:
在基于所述访问密钥ID查询对应的被加密处理的安全访问密钥之前,检验所述时间戳是否处于当前时间的预设差值范围内;
如果是,基于所述访问密钥ID查询对应的被加密处理的安全访问密钥。
17.根据权利要求15所述的装置,所述智能合约中的合约代码对应的处理逻辑还包括数字签名验证逻辑;
所述验证单元,进一步用于:
调用所述智能合约中的所述数字签名验证逻辑,基于所述服务调用方的私钥解密所述安全访问密钥,并基于解密后的所述安全访问密钥对所述第一数字签名进行验证。
18.根据权利要求15所述的装置,所述智能合约中的合约代码对应的处理逻辑还包括访问密钥ID状态变更逻辑;
当所述第一数字签名被验证通过后,进一步调用所述智能合约中的所述访问密钥ID状态变更逻辑,将所述访问密钥ID标记为已使用状态。
19.一种基于区块链的服务请求装置,用于服务调用方向服务提供方发送服务请求,所述装置应用于服务调用方端,包括:
生成单元,生成安全访问密钥和对应的访问密钥ID,并基于所述服务提供方的公钥对所述安全访问密钥进行了加密处理;
发送单元,将被加密处理的安全访问密钥和所述访问密钥ID发送至所述区块链,以使所述被加密处理的安全访问密钥和所述访问密钥ID被所述区块链的节点设备共识验证后存储于所述区块链;
所述发送单元,进一步用于向所述服务提供方发送服务请求;所述服务请求包括请求参数、所述访问密钥ID、以及基于所述安全访问密钥对所述请求参数进行数字签名处理得到的第一数字签名。
20.根据权利要求19所述的装置,所述区块链上部署有用于管理安全访问密钥的智能合约;所述智能合约中的合约代码对应的处理逻辑包括密钥发布逻辑;
所述发送单元,进一步用于:
构建密钥发布调用交易,所述密钥发布调用交易包含所述被加密处理的安全访问密钥和所述访问密钥ID;
将所述密钥发布调用交易发布至区块链网络,以由所述区块链网络中的节点设备响应于所述密钥发布调用交易,调用所述智能合约中的所述密钥发布逻辑,将被加密处理的安全访问密钥和对应的访问密钥ID存储在所述智能合约对应的合约账户的账户存储空间。
21.根据权利要求20所述的装置,所述将被加密处理的和对应的访问密钥ID存储在所述智能合约对应的合约账户的账户存储空间,包括:
查询所述访问密钥ID是否与已存储在所述账户存储空间的已有访问密钥ID匹配;
如果否,将所述安全访问密钥和对应的访问密钥ID存储在所述智能合约对应的合约账户的账户存储空间。
22.一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由所述处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行如权利要求1至9任意一项所述的方法。
23.一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由所述处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行如权利要求10至12任意一项所述的方法。
24.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述方法的步骤。
25.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求10至12中任一项所述方法的步骤。
CN201911421280.2A 2019-12-31 2019-12-31 基于区块链的服务请求方法及装置 Active CN111241557B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911421280.2A CN111241557B (zh) 2019-12-31 2019-12-31 基于区块链的服务请求方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911421280.2A CN111241557B (zh) 2019-12-31 2019-12-31 基于区块链的服务请求方法及装置

Publications (2)

Publication Number Publication Date
CN111241557A true CN111241557A (zh) 2020-06-05
CN111241557B CN111241557B (zh) 2023-04-07

Family

ID=70872362

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911421280.2A Active CN111241557B (zh) 2019-12-31 2019-12-31 基于区块链的服务请求方法及装置

Country Status (1)

Country Link
CN (1) CN111241557B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111475521A (zh) * 2020-06-24 2020-07-31 支付宝(杭州)信息技术有限公司 基于区块链的货物管理方法及装置和电子设备
CN112435028A (zh) * 2020-12-11 2021-03-02 军工保密资格审查认证中心 一种基于区块链的物联网数据共享方法及装置
CN112988412A (zh) * 2021-02-07 2021-06-18 中国联合网络通信集团有限公司 基于区块链网络的边缘缓存方法、基站和***
CN114021172A (zh) * 2021-11-10 2022-02-08 苏州同济区块链研究院有限公司 一种基于联盟链的多方联合安全计算方法和装置
CN115396209A (zh) * 2022-08-26 2022-11-25 中国联合网络通信集团有限公司 访问授权方法、装置、电子设备及可读存储介质
CN116226938A (zh) * 2023-05-10 2023-06-06 飞天诚信科技股份有限公司 一种通过智能合约管理事务的实现方法及***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109194633A (zh) * 2018-08-21 2019-01-11 山东智慧云链网络科技有限公司 通讯录备份方法及***
CN109660485A (zh) * 2017-10-10 2019-04-19 中兴通讯股份有限公司 一种基于区块链交易的权限控制方法及***
US10505916B2 (en) * 2017-10-19 2019-12-10 T-Mobile Usa, Inc. Authentication token with client key
CN110599137A (zh) * 2019-09-16 2019-12-20 腾讯科技(深圳)有限公司 电子票据数据处理方法、装置和计算机设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109660485A (zh) * 2017-10-10 2019-04-19 中兴通讯股份有限公司 一种基于区块链交易的权限控制方法及***
US10505916B2 (en) * 2017-10-19 2019-12-10 T-Mobile Usa, Inc. Authentication token with client key
CN109194633A (zh) * 2018-08-21 2019-01-11 山东智慧云链网络科技有限公司 通讯录备份方法及***
CN110599137A (zh) * 2019-09-16 2019-12-20 腾讯科技(深圳)有限公司 电子票据数据处理方法、装置和计算机设备

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111475521A (zh) * 2020-06-24 2020-07-31 支付宝(杭州)信息技术有限公司 基于区块链的货物管理方法及装置和电子设备
CN112435028A (zh) * 2020-12-11 2021-03-02 军工保密资格审查认证中心 一种基于区块链的物联网数据共享方法及装置
CN112435028B (zh) * 2020-12-11 2024-03-08 军工保密资格审查认证中心 一种基于区块链的物联网数据共享方法及装置
CN112988412A (zh) * 2021-02-07 2021-06-18 中国联合网络通信集团有限公司 基于区块链网络的边缘缓存方法、基站和***
CN112988412B (zh) * 2021-02-07 2023-06-27 中国联合网络通信集团有限公司 基于区块链网络的边缘缓存方法、基站和***
CN114021172A (zh) * 2021-11-10 2022-02-08 苏州同济区块链研究院有限公司 一种基于联盟链的多方联合安全计算方法和装置
CN115396209A (zh) * 2022-08-26 2022-11-25 中国联合网络通信集团有限公司 访问授权方法、装置、电子设备及可读存储介质
CN115396209B (zh) * 2022-08-26 2024-03-08 中国联合网络通信集团有限公司 访问授权方法、装置、电子设备及可读存储介质
CN116226938A (zh) * 2023-05-10 2023-06-06 飞天诚信科技股份有限公司 一种通过智能合约管理事务的实现方法及***
CN116226938B (zh) * 2023-05-10 2023-08-08 飞天诚信科技股份有限公司 一种通过智能合约管理事务的实现方法及***

Also Published As

Publication number Publication date
CN111241557B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
CN111475849B (zh) 基于区块链账户的隐私数据查询方法及装置
CN111241557B (zh) 基于区块链的服务请求方法及装置
CN110580414B (zh) 基于区块链账户的隐私数据查询方法及装置
CN110245506B (zh) 基于区块链的智能合约管理方法及装置、电子设备
CN110580413B (zh) 基于链下授权的隐私数据查询方法及装置
CN110580262B (zh) 基于智能合约的隐私数据查询方法及装置
CN111127021B (zh) 基于区块链的服务请求方法及装置
EP3961455B1 (en) Data verification methods, apparatuses, and devices
CN111523110B (zh) 基于链代码的权限查询配置方法及装置
Tosh et al. Data provenance in the cloud: A blockchain-based approach
CN110580245B (zh) 隐私数据的共享方法及装置
WO2020147489A1 (zh) 区块链交易的生成方法和装置
CN113114476B (zh) 基于合约的隐私存证方法及装置
CN111475850B (zh) 基于智能合约的隐私数据查询方法及装置
CN110580411B (zh) 基于智能合约的权限查询配置方法及装置
CN109614813B (zh) 基于区块链的隐私交易方法、装置及其应用方法、装置
CN110264192B (zh) 基于交易类型的收据存储方法和节点
CN110458541B (zh) 基于区块链的对象置换方法及装置
CN113869901B (zh) 密钥生成方法、装置、计算机可读存储介质及计算机设备
CN113536384B (zh) 基于区块链的隐私数据映射方法、装置、介质和电子设备
CN115131029A (zh) 基于区块链的数字文件签署方法及装置
CN115048672A (zh) 基于区块链的数据审计方法和装置、处理器及电子设备
CN116308314A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200703

Address after: Unit 02, 20 / F, block a, building 4, Lane 838, Huangpi South Road, Huangpu District, Shanghai 200025

Applicant after: Ant blockchain Technology (Shanghai) Co.,Ltd.

Address before: 801-11, Section B, 8th floor, No. 556, Xixi Road, Xihu District, Hangzhou City, Zhejiang Province

Applicant before: Alipay (Hangzhou) Information Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant