CN111770112A - 一种信息共享方法、装置及设备 - Google Patents

一种信息共享方法、装置及设备 Download PDF

Info

Publication number
CN111770112A
CN111770112A CN202010898593.3A CN202010898593A CN111770112A CN 111770112 A CN111770112 A CN 111770112A CN 202010898593 A CN202010898593 A CN 202010898593A CN 111770112 A CN111770112 A CN 111770112A
Authority
CN
China
Prior art keywords
transaction
user
information
intelligent contract
target
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
CN202010898593.3A
Other languages
English (en)
Other versions
CN111770112B (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.)
Alipay Hangzhou Information Technology 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 CN202010898593.3A priority Critical patent/CN111770112B/zh
Publication of CN111770112A publication Critical patent/CN111770112A/zh
Application granted granted Critical
Publication of CN111770112B publication Critical patent/CN111770112B/zh
Priority to US17/364,612 priority patent/US11310244B2/en
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/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3239Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/133Protocols for remote procedure calls [RPC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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
    • 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/50Cryptographic 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • Bioethics (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本说明书实施例公开了一种信息共享方法、装置及设备。该方案可以包括:通过令隐私计算单元根据获取到的第一机构及第二机构发起的用于调用目标智能合约的交易的交易信息,去生成针对该目标智能合约的累计调用信息;并在该累计调用信息满足针对该目标智能合约的执行条件后,再去执行该目标智能合约对应的合约代码,以对第一机构发送的用户基础数据进行验证,而得到第二机构所请求获取的用户验证结果;使得第二机构可以获取到该用户验证结果。

Description

一种信息共享方法、装置及设备
技术领域
本申请涉及互联网技术领域,尤其涉及一种信息共享方法、装置及设备。
背景技术
数据共享经常是机构处理业务的需求,由于单一机构往往无法获取到足够的信息而无法处理业务,从而存在从其他机构获取信息的需求。由于各个机构处的信息作为一种资源,其流动性和可获取性是很多数据应用和产业发展的基础,但在信息交换和共享过程中如何保护信息的隐私性及可信性一直是产业发展的一大挑战。
基于此,如何提供一种安全可信的信息共享方法成为了一种亟需解决的问题。
发明内容
本说明书实施例提供一种信息共享方法、装置及设备,以提升信息共享过程中的数据的安全性及可信度。
为解决上述技术问题,本说明书实施例是这样实现的:
本说明书实施例提供的一种信息分享方法,应用于隐私计算单元,包括:
获取目标交易,所述目标交易为由第一机构发起的用于调用目标智能合约的第一交易或者由第二机构发起的用于调用所述目标智能合约的第二交易;所述第一交易的参数包括第一用户的第一用户标识信息及所述第一用户的经过加密的用户基础数据;所述第二交易的参数包括第二用户的第二用户标识信息;
根据所述目标交易的交易信息,更新针对所述目标智能合约的累计调用信息,得到第一更新后累计调用信息;
判断所述第一更新后累计调用信息是否满足针对所述目标智能合约的执行条件,得到第一判断结果;
若所述第一判断结果表示所述第一更新后累计调用信息满足所述执行条件,则执行所述目标智能合约对应的合约代码,得到用户验证结果;所述用户验证结果是对所述第二用户的用户基础数据进行验证而得到的验证结果;
发送所述用户验证结果至所述第二机构。
本说明书实施例提供的一种信息分享装置,应用于隐私计算单元,包括:
第一获取模块,用于获取目标交易,所述目标交易为由第一机构发起的用于调用目标智能合约的第一交易或者由第二机构发起的用于调用所述目标智能合约的第二交易;所述第一交易的参数包括第一用户的第一用户标识信息及所述第一用户的经过加密的用户基础数据;所述第二交易的参数包括第二用户的第二用户标识信息;
第一更新模块,用于根据所述目标交易的交易信息,更新针对所述目标智能合约的累计调用信息,得到第一更新后累计调用信息;
第一判断模块,用于判断所述第一更新后累计调用信息是否满足针对所述目标智能合约的执行条件,得到第一判断结果;
第一执行模块,用于若所述第一判断结果表示所述第一更新后累计调用信息满足所述执行条件,则执行所述目标智能合约对应的合约代码,得到用户验证结果;所述用户验证结果是对所述第二用户的用户基础数据进行验证而得到的验证结果;
第一发送模块,用于发送所述用户验证结果至所述第二机构。
本说明书实施例提供的一种信息共享设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取目标交易,所述目标交易为由第一机构发起的用于调用目标智能合约的第一交易或者由第二机构发起的用于调用所述目标智能合约的第二交易;所述第一交易的参数包括第一用户的第一用户标识信息及所述第一用户的经过加密的用户基础数据;所述第二交易的参数包括第二用户的第二用户标识信息;
根据所述目标交易的交易信息,更新针对所述目标智能合约的累计调用信息,得到第一更新后累计调用信息;
判断所述第一更新后累计调用信息是否满足针对所述目标智能合约的执行条件,得到第一判断结果;
若所述第一判断结果表示所述第一更新后累计调用信息满足所述执行条件,则执行所述目标智能合约对应的合约代码,得到用户验证结果;所述用户验证结果是对所述第二用户的用户基础数据进行验证而得到的验证结果;
发送所述用户验证结果至所述第二机构。
本说明书中提供的至少一个实施例能够实现以下有益效果:
通过令隐私计算单元根据获取到的第一机构及第二机构发起的用于调用目标智能合约的交易的交易信息,去生成针对该目标智能合约的累计调用信息;并在该累计调用信息满足针对该目标智能合约的执行条件后,再去执行该目标智能合约对应的合约代码,以对第一机构发送的用户基础数据进行验证,而得到第二机构所请求生成的用户的用户验证结果;使得第二机构可以无需从第一机构处去获取用户基础数据,也能获取到该用户验证结果。且由于隐私计算单元生成的用户的验证结果是使用目标智能合约对第一机构发送的用户基础数据进行验证得到的,从而可以确保该用户验证结果的可信度。同时,第一机构向隐私计算单元发送的用户基础数据是经过加密的,从而可以避免数据传输过程中导致的用户基础数据泄露,保证用户基础数据的隐私性。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例提供的一种信息分享方法的应用场景示意图;
图2为本说明书实施例提供的一种信息共享方法的流程示意图;
图3为本说明书实施例提供的一种隐私计算单元验证金融机构的身份的方法的流程示意图;
图4为本说明书实施例提供的对应于图2的一种信息共享装置的结构示意图;
图5为本说明书实施例提供的对应于图2的一种信息共享设备的结构示意图。
具体实施方式
为使本说明书一个或多个实施例的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书一个或多个实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书一个或多个实施例保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
现有技术中,数据共享经常是机构处理业务的需求。但单一机构往往无法获取足够的信息而无法处理业务,这就存在从其他机构获取信息的需求。但在信息交换和共享过程中如何保护信息的隐私性及可信性逐渐成为了亟需解决的问题。
为便于理解,以反洗钱场景为例加以说明。
反洗钱(Anti-Money Laundering,AML)是指预防通过各种方式掩饰、隐瞒毒品犯罪、黑社会性质的组织犯罪、恐怖活动犯罪、走私犯罪、贪污贿赂犯罪、破坏金融管理秩序犯罪等犯罪所得及其收益的来源和性质的洗钱活动的措施。常见的洗钱途径广泛涉及银行、保险、证券、房地产等领域。
由于大多数反洗钱工作都存在对客户身份识别的需求,因此,客户身份识别制度也应运而生。客户身份识别制度也就是通常所说的“了解你的客户”(Know Your Customer,KYC),指的是获取客户相关识别信息,包括与客户建立业务关系时了解客户的身份、了解交易的目的、了解资金的来源和去向、以及了解客户的日常经营活动和金融交易情况等,客户身份识别制度是反洗钱的基础。
目前,一些金融机构和代销机构之间有合作关系,金融机构可以通过代销机构去销售该金融机构的金融产品,例如,网络平台可以代销基金公司提供的理财产品。这种情况下,购买金融产品的客户往往直接是代销机构的客户。按照监管要求,销售金融产品需要具有对客户进行KYC的核验结果。如上所述,购买金融产品的客户直接是代销机构的客户,代销机构一般能直接获取用户的基本信息,从而具有KYC能力。而根据数据隐私保护的要求,代销机构通常不能将KYC的基础数据和KYC验证结果直接转给提供金融产品的金融机构。且金融机构处也没有在代销机构处购买金融产品的用户的基础数据,因此,无法进行独立的KYC验证,使得金融机构无法获取到用户的KYC核验结果,不能满足监管的要求。从而产生了对用户基础数据及用户验证结果等信息进行分享的需求。
智能合约(Smart contract )是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约既可以部署于区块链上的节点处,也可以部署于区块链外的设备中,从而可以满足用户的不同需求。由于智能合约能够准确执行且能够降低人为干预的风险,使得人们开始逐渐基于智能合约技术去进行信息共享。
目前,相关技术中的智能合约默认由一个合约调用方发起调用。然而,在实际应用中,可能存在只有多方共同调用同一智能合约才能执行该智能合约的需求。例如,当金融机构及代销机构均对同一智能合约发起调用,并各自提供满足一定条件的入参数据,如,待获取验证结果的用户的标识信息以及用户基础数据等,才能触发执行该智能合约去生成可信的用户验证结果,以令不具有用户基础数据的一方可以从隐私计算单元处获取到用户验证结果。
基于此,本说明书实施例旨在提供一种满足上述多方调用同一智能合约以进行信息分享需求的方案。
为了解决现有技术中的缺陷,本方案给出了以下实施例:
图1为本说明书实施例提供的一种信息分享方法的应用场景示意图。如图1所示,第一机构可以与第二机构直接相连,同时,第一机构和第二机构都与隐私计算平台相连。第一机构、第二机构及隐私计算平台还可以都与区块链平台相连。
其中,第一机构可以直接接收到用户提交的基础数据,从而基于这些用户基础数据完成一定的处理工作,如KYC场景中提到的KYC核验。另外,第一机构还可以通过发起调用该隐私计算平台处部署的目标智能合约的第一交易,以向隐私计算平台提供用户所提交的基础数据,从而可以通过隐私计算平台,在可信的安全计算环境中执行预定的规则,去完成例如KYC核验之类的任务。
而第二机构则可以从第一机构处获取用户标识信息,并通过发起调用该隐私计算平台处部署的该目标智能合约的第二交易,以向隐私计算平台提交该第二机构所需获取的用户验证结果对应的用户标识信息,从而令隐私计算平台可以根据获取到第一交易及第二交易的交易信息,去生成针对目标智能合约的累计调用信息,若该累计调用信息满足针对该目标智能合约的执行条件,则执行该目标智能合约去生成第二机构所请求获取的用户验证结果。
可见,该方案可以满足令多方共同调用同一智能合约才能执行该智能合约的需求。且可以令第二机构从隐私计算平台处获取到用户的诸如KYC的验证结果,而无需第二机构去从第一机构处获取用户提交的基础数据,使得第二机构可以满足对用户的KYC的监管要求。
接下来,将针对说明书实施例提供的一种信息共享方法结合附图进行具体说明。
图2为本说明书实施例提供的一种信息共享方法的流程示意图。从程序角度而言,流程的执行主体可以为部署有目标智能合约的隐私计算单元。该隐私计算单元既可以部署于区块链上,也可以部署于区块链外,即该目标智能合约既可以为链上智能合约,也可以为链下智能合约。
为便于理解,对此对在隐私计算单元中部署、调用目标智能合约的实现方式进行解释说明。
在本说明书实施例中,区块链技术从以太坊开始支持用户在区块链网络中创建并调用一些复杂的逻辑,这是以太坊相对于比特币技术的最大进步之一。以太坊作为一个可编程区块链的核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,这意味着可以通过它实现各种复杂的逻辑。用户在以太坊中部署和调用智能合约可以通过EVM执行。实际上,虚拟机直接运行的是虚拟机代码(虚拟机字节码,下简称“字节码”)。智能合约分为部署和调用两个阶段。
在部署阶段,用户可以将一个包含创建目标智能合约的交易发送至以太坊网络,该交易的data字段可以包含目标智能合约的代码(如字节码),该交易的to字段为空。经过交易的扩散和共识后,以太坊网络中的各个区块链节点可以分别通过EVM执行这个交易,并生成对应的合约实例,从而完成对于目标智能合约的部署。这时,区块链上可以具有一个与该目标智能合约对应的合约账户,该合约账户拥有一个特定的合约地址。合约代码(即部署的目标智能合约的代码)或合约代码的哈希值可以保存在该合约账户中,该合约代码用于控制相应的目标智能合约的行为。
在调用阶段,用户(可以与部署目标智能合约的用户相同或不同)将一个用于调用目标智能合约的交易发送到以太坊网络,该交易的from字段是该用户对应的区块链账户的地址,to字段是所需调用的目标智能合约的合约地址,data字段包含调用目标智能合约的方法和参数。在节点间通过共识机制达成一致后,上述交易声明调用的目标智能合约以规定的方式在以太坊网络的每个节点上独立执行,所有执行记录和数据都保存在区块链上,所以当交易完成后,区块链上就保存了无法篡改、不会丢失的交易凭证。随着区块链技术的发展,除了EVM,还产生了很多其他类型的虚拟机,比如WASM(WebAssembly)虚拟机。
每个区块链节点都可以通过虚拟机执行智能合约的创建和调用。包含目标智能合约的交易和交易的执行结果都存储在区块链账本上,或者是区块链中每个全量节点存储全部账本的方式,对于隐私保护来说是一个挑战。隐私保护可以通过多种技术来实现,例如密码学技术(如同态加密Homomorphic encryption,或零知识证明Zero-knowledge proof),再如硬件隐私技术和网络隔离技术等。其中硬件隐私保护技术典型的包括可信执行环境(Trusted Execution Environment, TEE)。
例如,区块链节点均可以通过TEE实现区块链交易的安全执行环境。TEE是基于CPU硬件的安全扩展,且与外部完全隔离的可信执行环境。目前工业界十分关注TEE的方案,几乎所有主流的芯片和软件联盟都有自己的TEE解决方案,比如软件方面的TPM(TrustedPlatform Module,可信赖平台模块)以及硬件方面的Intel SGX(Software GuardExtensions, 软件保护扩展)、ARM Trustzone(信任区)和AMD PSP(Platform SecurityProcessor,平台安全处理器)等。TEE可以起到硬件黑箱作用,在TEE中执行的代码和数据即便是操作系统层都无法偷窥,只有通过代码中预先定义的接口才能对其进行操作。在效率方面,由于TEE的黑箱性质,在TEE中进行运算的是明文数据,而不是同态加密中复杂的密码学运算,计算过程效率几乎没有损失。因此,通过在区块链节点上部署TEE环境,可以在性能损失相对较小的前提下很大程度上满足区块链场景下的隐私需求。
以Intel SGX(以下简称SGX)技术为例。区块链节点可以基于SGX技术创建enclave(围圈或飞地),以作为用于执行区块链交易的TEE。其中,区块链节点利用CPU中新增的处理器指令,在内存中可以分配一部分区域 EPC(Enclave Page Cache,围圈页面缓存或飞地页面缓存),以用于驻留上述的enclave。上述EPC对应的内存区域被CPU内部的内存加密引擎MEE(Memory Encryption Engine)加密,该内存区域中的内容(enclave中的代码和数据)只有在CPU内核中才能够被解密,且用于加解密的密钥只有在EPC启动时生成并存储在CPU中。可见,enclave的安全边界只包含其自身和CPU,无论是特权或非特权软件都无法访问enclave,即便是操作系统管理员和VMM(Virtual Machine Monitor,虚拟机监视器;或称为Hypervisor)也无法影响enclave中的代码和数据,因而具有极高的安全性,并且在上述安全性保障的前提下,CPU能够在enclave中对明文形式的区块链交易进行处理,具有极高的运算效率,从而兼顾了数据安全性和计算效率。而对于进、出TEE的数据,可以是加密的,从而保障数据的隐私。
在本说明书实施例中,部署于区块链上的隐私计算单元,例如,可以是由区块链节点基于SGX技术创建的可信执行环境TEE,以用于可信并隐秘的执行调用该TEE中部署的目标智能合约的交易。具体的,TEE中可以运行虚拟机,从而通过虚拟机部署并执行目标智能合约。这样,对于传入区块链节点中的隐私计算单元处的调用目标智能合约的加密交易,可以由隐私计算单元解密后在该隐私计算单元中加载的虚拟机内执行,并可以将执行结果加密输出。SGX中通过远程证明的技术可以证明自身是合法的SGX,并且其中所执行的程序(如虚拟机代码)与预期是一致的。
由于每个区块链节点都通过虚拟机执行隐私计算单元处部署的目标智能合约的创建和调用,会耗费相对较多的资源。除了通过区块链上部署的隐私计算单元去执行目标智能合约,以保护信息分享过程中的数据的隐私性及可信度外,还可以在区块链网络之外(或称为“链下”)部署隐私计算节点(即链下隐私计算节点),并在该链下隐私计算单元处部署目标智能合约,从而将原本需要在所有区块链节点上执行的计算操作转移至链下隐私计算节点处执行。
链下隐私计算节点上创建的链下TEE,与前文所述的区块链节点上创建的链上TEE相似,均可以是基于CPU硬件实现的与外部完全隔离的可信执行环境。链下隐私计算节点创建链下TEE后,可以通过该链下TEE实现对链下目标智能合约的部署操作以及部署后的调用合约的操作,并确保操作过程中的数据安全。
所述隐私计算节点在被使用前,可以向使用者证明自身是可信的。证明自身可信的过程可能涉及远程证明报告。链上和链下的隐私计算节点证明自身可信的过程类似。以链下为例,远程证明报告产生于针对链下隐私计算节点上的链下TEE的远程证明过程。远程证明报告可以由权威的认证服务器对链下隐私计算节点产生的自荐信息进行验证后生成,该自荐信息与链下隐私计算节点上创建的链下TEE相关。链下隐私计算节点通过产生与链下TEE相关的自荐信息,并由所述权威认证服务器对该自荐信息进行验证后产生远程证明报告,使得远程证明报告可以用于表明链下隐私计算节点上的链下TEE可信任。挑战者在获取远程证明报告后,可以根据权威认证服务器的公钥对该远程证明报告的签名进行验证,如果验证通过则可以确认链下隐私计算节点是可信的。
链下隐私计算单元可以在TEE中存储一对公私钥。公钥可以在远程证明过程之类的过程中发送至对方,而私钥则妥善保管在TEE中。因此,合约部署方(例如,需要获取用户验证结果的一方,即第二机构)在根据所述远程证明报告确定所述链下隐私计算节点可信的情况下,可以发送用于部署链下目标智能合约的交易至隐私计算单元;该交易的交易信息中可以包括:目标智能合约的合约代码(例如,字节码)、目标智能合约的描述信息、目标智能合约的执行引擎(例如,TEE中的虚拟机)等。链下隐私计算单元在接收到该交易后,可以存储并部署该目标智能合约,并计算该目标智能合约的hash值。该目标智能合约的hash值可以反馈至合约部署方,合约部署方对于部署的目标智能合约可以在本地产生一个hash值,从而合约部署方可以比对部署的目标智能合约的hash值与本地生成的hash值是否相同,如果相同,则说明链下隐私计算节点处部署的目标智能合约是自己部署的合约。
实际上,一个TEE内可以部署有多个智能合约,TEE可以为每个智能合约生成一个单独的公私钥对,从而,每个部署的智能合约可以具有一个ID(如该智能合约对应的公钥或基于该公钥生成的字符串),且每个智能合约执行的结果也都可以用该智能合约对应的在TEE妥善保管的私钥来签名,这样,可以证明一个结果是由一个链下隐私计算节点中的特定的合约执行的结果。这样,不同合约的执行结果可以由不同的私钥来签名,只有对应的公钥才能验证该签名,或者说不能由对应公钥验证签名的无法证明该结果是对应合约的执行结果,因此相当于通过公私钥对为链下隐私计算节点中部署的合约赋予了身份。上述以链下隐私合约为例,链上隐私合约也是类似的,也可以具有身份,即具有公私钥对。
后续,链下隐私计算节点可以提供对部署的所述链下目标智能合约的调用。具体的,用户可以发送调用该链下目标智能合约的交易至链下隐私计算节点,该交易的from字段可以是该用户对应的用户识别信息,to字段是所需调用的链下目标智能合约的hash值,data字段包含调用链下目标智能合约的方法和参数。链下隐私计算单元中的TEE环境内可以加载部署的该链下目标智能合约的字节码并执行,且执行结果可反馈至所述合约的调用者,或者反馈至合约中指定的接收者或调用该合约的交易中指定的接收者,再或者通过预言机机制反馈至区块链节点。通过预言机机制反馈至所述区块链节点的,可以经由链上合约的设置,进一步反馈至链上合约中指定的接收者或调用链上合约的交易中指定的接收者。对此不作具体限定。
如图2所示,该流程可以包括以下步骤:
步骤202:获取目标交易,所述目标交易为由第一机构发起的用于调用目标智能合约的第一交易或者由第二机构发起的用于调用所述目标智能合约的第二交易;所述第一交易的参数包括第一用户的第一用户标识信息及所述第一用户的经过加密的用户基础数据;所述第二交易的参数包括第二用户的第二用户标识信息。
在本说明书实施例中,目标智能合约需要通过多个机构发起的用于调用该目标智能合约的多个交易进行触发调用,而不同机构发送的用于调用该目标智能合约的参数可以是不同的。例如,当第一机构处具有用户提交的用户基础数据,而第二机构需获取对第一机构处的用户基础数据进行检验而得到的验证结果时,第一机构所发送用于调用目标智能合约的第一交易的交易参数应包含第一用户的用户基础数据及用户标识信息,而第二机构所发送的用于调用目标智能合约的第二交易的交易参数则可以包含该第二机构所需获取用户验证结果的第二用户的标识信息。从而便于目标智能合约执行时,可以对第一交易的交易参数中的用户基础数据进行验证,得到用户验证结果,并根据第二交易的交易参数确定需反馈至第二机构的用户验证结果。
在实际应用中,为了防止数据传输过程中被非法篡改,第一机构发送的第一交易的参数还包括所述第一机构的签名,第二机构发送的第二交易的参数还包括所述第二机构的签名。例如,第二机构可以对发送的第二用户的用户标识信息用自身的私钥进行数字签名,相应的,接收者(如这里的隐私计算单元)可以用第二机构的公钥对所述签名进行签名验证,若验证通过,则接收者可以确认接收的第二交易是由所述金融机构发送的,并且接收的内容是完整的,没有被篡改。
步骤204:根据所述目标交易的交易信息,更新针对所述目标智能合约的累计调用信息,得到第一更新后累计调用信息。
在本说明书实施例中,由于需要根据多个用于调用目标智能合约的交易才能触发该目标智能合约的执行,因此,在获取触发目标智能合约所需的全部交易中的各笔交易的过程中,获取到的每笔交易的交易信息将累积形成针对目标智能合约的累积调用信息。从而每当接收到一笔用于调用目标智能合约的交易时,需要根据该交易的交易信息来更新累积调用信息。
在本说明书实施例中,目标交易可以表示当前接收到的用于调用目标智能合约的交易。目标交易的交易信息可以包括:交易发起方的身份识别信息、交易携带的参数数据等。在实际应用中,交易发起方的身份识别信息可以根据交易中的from字段确定。而交易携带的参数数据可以根据交易中的data字段确定等。
在本说明书实施例中,根据获取到的一笔或多笔用于调用目标智能合约的交易的交易信息生成的累计调用信息可以包括:上述一笔或多笔交易中包含的参数数据、上述一笔或多笔交易的交易发起方的身份识别信息、上述一笔或多笔交易对目标智能合约的调用顺序、上述一笔或多笔交易中的第一交易及第二交易的交易数量等。
步骤206:判断所述第一更新后累计调用信息是否满足针对所述目标智能合约的执行条件,得到第一判断结果。
在本说明书实施例中,可以针对目标智能合约设定执行条件,该执行条件可以理解为隐私计算单元执行目标智能合约的前提。换言之,在根据获取到的多笔用于调用目标智能合约的交易的交易信息得到的累计调用信息满足该执行条件时,隐私计算单元可响应于所述多笔交易,执行目标智能合约。而若根据获取到的一笔或多笔用于调用目标智能合约的交易的交易信息得到的累计调用信息未满足该执行条件时,隐私计算单元可继续等待接收用于调用目标智能合约的交易,并根据后续接收到的用于调用目标智能合约的交易的交易信息,去更新针对目标智能合约的累计调用信息,以判断更新后的累计调用信息是否满足该执行条件,若是,则执行该目标智能合约。
在本说明书实施例中,针对该目标智能合约的执行条件可根据实际需求去灵活设定。例如,该执行条件可以包括:交易参数的数据种类条件、交易参数的数量条件、合约调用方的身份条件、合约调用方之间发起的交易顺序条件、合约调用方发起的交易数量条件等。
为便于理解,对于步骤206的实现方式进行解释说明。
具体的,步骤206可以包括:判断所述第一更新后累计调用信息中的交易数量是否满足所述执行条件中定义的交易数量条件。
其中,所述交易数量条件为第一交易数量条件及第二交易数量条件同时成立;所述第一交易数量条件为所述第一交易的交易数量达到第三阈值;所述第二交易数量条件为所述第二交易的交易数量达到第四阈值。
在本说明书实施例中,第三阈值及第四阈值可以根据实际需求而设置,例如,第三阈值设置为3,第四阈值设置为4。若假定,在获取目标交易前已经获取到了3条第一交易以及3条第二交易,若本次获取到的目标交易为第二交易,则根据目标交易的交易信息生成的第一更新后累计调用信息可以表示已获取到3条第一交易以及4条第二交易,符合执行条件,可以执行目标智能合约。而若目标交易为第一合约,则该第一更新后累计调用信息可以表示已获取到4条第一交易以及3条第二交易,不符合执行条件,需继续获取用于调用目标智能合约的交易,直至再获取到一条第二交易,才能执行目标智能合约。
通过令隐私计算单元在接收到多条用于调用目标智能合约的交易后,再执行目标智能合约去生成用户验证结果,可以降低高频执行目标智能合约所消耗的资源,有利于提升隐私计算单元的资源利用率。
当然,所述第三阈值及第四阈值也可以均设置为1,则在分别获取到1条第一交易及1条第二交易后,即可以调用目标智能合约。该实现方式,有利于提升利用目标智能合约生成用户验证结果的实时性,进而令隐私计算单元可以较为快速的向第二机构反馈用户验证结果。
步骤206还可以包括:判断第一更新后累计调用信息中的合约调用方之间发起的交易顺序信息是否满足所述执行条件中定义的交易顺序条件。
例如,假定交易顺序条件为依次接收第二交易及第一交易,则若在目标交易前接收到的用于调用目标智能合约的交易为一笔第一交易,则本次接收到的目标交易应为第二交易,才能触发目标智能合约的执行。
步骤206还可以包括:判断所述第一更新后累计调用信息中的交易发起方身份识别信息是否均满足所述执行条件中定义的针对所述目标智能合约的调用方的身份条件。
例如,针对所述目标智能合约的调用方的身份条件为合约调用方包含第一机构及第二机构。
则若在目标交易之前接收到的用于调用目标智能合约的交易中包含由除了第一机构及第二机构以外的第三机构发起的交易,则即使已经接收到了第一机构及第二机构发送的用于调用目标智能合约的交易,也可以拒绝执行目标智能合约。从而避免不法分子调用目标智能合约。或者,也可以基于该针对目标智能合约的调用方的身份条件,去筛选第一机构及第二机构发起的用于调用目标智能合约的交易,剔除除了第一机构及第二机构以外的机构发起的用于调用目标智能合约的交易,若筛选出的交易对应的合约调用方既包含第一机构又包含第二机构,则可以确定符合执行条件,可以根据筛选出的交易的交易参数去执行目标智能合约。
步骤206还可以包括:判断所述第一更新后累计调用信息中包含的交易参数是否满足所述执行条件中定义的交易参数条件。
其中,所述交易参数条件可以包括:第一交易参数条件及第二交易参数条件中的至少一项条件成立;所述第一交易参数条件为所述第一用户的经过加密的用户基础数据的数量达到第一阈值;所述第二交易参数条件为所述第二用户的第二用户标识信息的数量达到第二阈值。
例如,假定,第一阈值为100,第二阈值为200。若在目标交易之前,接收到3条第一交易,共累计获取到了110条第一用户的用户基础数据,以及接收到4条第一交易,共累计获取到了180条第二用户的用户ID,则若目标交易为携带了至少20条第二用户的用户ID的第二交易,则该累计调用信息符合针对目标智能合约的执行条件,从而可以执行目标智能合约。
通过令隐私计算单元在接收到较多数量的待验证用户的用户基础数据及用户标识信息后,再执行目标智能合约去生成用户验证数据,可以降低执行目标智能合约的频率,从而有利于提升隐私计算单元的资源利用率。
在本说明实施例中,针对该目标智能合约的执行条件可以记录于目标智能合约的合约代码中,或者,记录于隐私计算单元内的代码中的除了目标智能合约以外的程序代码中,对此不作具体限定。
步骤208:若所述第一判断结果表示所述第一更新后累计调用信息满足所述执行条件,则执行所述目标智能合约对应的合约代码,得到用户验证结果;所述用户验证结果是对所述第二用户的用户基础数据进行验证而得到的验证结果。
在本说明书实施例中,目标智能合约可以根据第一机构发送的用户基础数据,去生成第二机构发送的用户标识信息所对应的用户验证结果。
为便于理解,仍旧以KYC验证场景为例,进行解释说明。
假定,目标智能合约用于生成用户的KCY验证结果。则在执行目标智能合约时,该目标智能合约可以获取第二机构发送的第二用户的用户标识信息,并确定第一机构是否发送了与第二用户的用户标识信息对应的用户基础数据,若是,则可以对该用户基础数据进行KYC验证,从而得到第二的KYC检验结果。
其中,第一用户或第二用户既可以是个人用户,也可以是企业用户之类。对于个人用户,这些用户的基础数据可以包括个人的姓名、性别、国籍、证件类型、证件号码、年龄、职业、手机号码、联系地址等信息中的部分或者全部。对于企业用户,这些用户的基础数据可以包括企业的名称、营业执照编号、营业场所地址、法定代表人的姓名、证件类型、证件号码和有效期限等信息中的部分或者全部。对此不作具体限定。
为便于理解,对于属于个人用户的第二用户的KYC验证的过程进行举例说明,例如,可以验证:姓名格式是否正确,如是否是由2-5位的汉字组成;性别格式是否正确,如是否是男或女;手机号码是否正确,如是否是11位数字,且开头是13、15、17、18、19等字段;联系地址是否正确,如是否是一串包含省/自治区/直辖市直到街道门牌号码的文字等。从而,可以得到第二用户的KYC检验结果。所述KYC检验结果具体可以例如:{用户标识信息,KYC检验结果}。其中KYC检验结果例如为通过或不通过。
步骤210:发送所述用户验证结果至所述第二机构。
在本说明书实施例中,隐私计算单元既可以直接将用户验证结果发送至第二机构,此外也可以包括发送至一个指定的存储服务介质中,后续由第二机构从该存储服务介质中拉取。对此不作具体限定。
可见,通过隐私计算单元将用户验证结果分享至向第二机构,从而令第二机构在未获取到用户在第一机构处提交的用户基础数据的情况下,也能获取到用户的验证结果,以符合监管或业务需求。
在实际应用中,为了防止数据传输过程中被非法篡改,步骤210具体可以包括:发送利用所述隐私计算单元中的TEE中存储的私钥数字签名后的所述用户验证结果至所述第二机构;或者,发送利用所述目标智能合约的对应的私钥数字签名后的所述用户验证结果至所述第二机构。从而第二机构可以在对该用户验证结果签名验证通过后,确认接收的用户验证结果是由所述隐私计算单元发送的,并且接收的内容是完整的,没有被篡改。
应当理解,本说明书一个或多个实施例所述的方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。
图2中的方法,隐私计算单元需根据第一机构及第二机构发起的用于调用目标智能合约的多个交易去触发执行目标智能合约,满足了多方共同调用同一智能合约才能执行该智能合约的需求。由于隐私计算单元生成的用户的验证结果是使用目标智能合约对第一机构发送的用户基础数据进行验证得到的,从而可以确保该用户验证结果的可信度,进而可以保证第二机构从隐私计算单元处获取到的所需的用户验证结果的可信度。
图2中的方法,可以令第二机构无需从第一机构处去获取用户基础数据,即能获取到该用户验证结果,从而实现了对用户基础数据及用户验证结果的分享。同时,由于第一机构向隐私计算单元发送的用户基础数据是经过加密的,从而可以避免数据分享过程中导致的用户基础数据泄露,保证用户基础数据的隐私性。
基于图2的方法,本说明书实施例还提供了该方法的一些具体实施方案,下面进行说明。
在本说明书实施例中,如果根据获取到的目标交易生成的第一更新后累计调用信息不满足针对所述目标智能合约的执行条件,则隐私计算单元可以继续获取用于调用目标智能合的交易,并在根据获取到的多笔用于调用目标智能合的交易的交易信息生成的累计调用信息满足该执行条件后,再执行目标智能合约。
因此,图2中的方法在步骤206得到第一判断结果之后,还可以包括:
步骤212:若所述第一判断结果表示所述第一更新后累计调用信息不满足所述执行条件,则继续获取用于调用目标智能合约的交易。
具体的,若所述第一判断结果表示所述第一更新后累计调用信息不满足所述执行条件,则可以获取指定交易;该指定交易为由所述第一机构或者所述第二机构在所述目标交易之后发起的用于调用所述目标智能合约的交易。
根据所述指定交易的交易信息,更新所述第一更新后累计调用信息,得到第二更新后累计调用信息。
判断所述第二更新后累计调用信息是否满足针对所述目标智能合约的执行条件,得到第二判断结果。
若所述第二判断结果表示所述第二更新后累计调用信息满足所述执行条件,则执行所述目标智能合约对应的合约代码,得到所述用户验证结果。
在本说明书实施例中,根据指定交易的交易信息更新所述第一更新后累计调用信息的实现方式,与根据目标交易的交易信息更新针对目标智能合约的累计调用信息的实现方式可以是相同的。判断第二更新后累计调用信息是否满足针对目标智能合约的执行条件的实现方式,与判断第一更新后累计调用信息是否满足针对目标智能合约的执行条件的实现方式也可以是相同的。对此不再赘述。
可选的,图2中的方法,所述第一机构可以为代为销售金融机构提供的金融产品的代销机构,而所述第二机构可以为金融机构。
为便于理解,以图2中的方法应用于反洗钱中的KYC业务场景进行解释说明。
在本说明书实施例中,代销机构可以利用自身的平台或者自身的直接面向客户的能力去销售金融机构提供的金融产品。例如,银行可以代基金公司销售基金产品,或者代保险机构销售保险产品等。再例如,支付平台可以代基金公司销售基金产品,或者代保险机构销售保险产品等。由于用户可以通过代销机构购买金融机构提供的金融产品,因此,代销机构可以要求用户提供基础数据以用于KYC核验,从而令代销机构可以获取到用户提交的基础数据。在实际应用中,代销机构既可以在用户注册时提示用户提供基础数据,也可以在用户通过代销机构平台发起购买金融产品时要求用户提供基础数据,对此不作具体限定。
在本说明书实施例中,由于用户基础数据大多是比较敏感的,不希望输出到代销机构之外,使得金融机构无法获得用户所提交的用户基础数据,而无法自行进行KYC核验。因此,金融机构存在直接获取用户KYC验证结果的需求,而代销机构则可以提供KYC验证所需的用户基础数据。从而第一机构可以为代销机构。对应的,第二机构可以为金融机构。
在本说明书实施例中,第一机构可以为该第一机构处的用户分配具有唯一性的用户标识信息,即用户ID (Identity document)。例如,该用户ID可以是用户在第一机构处注册的账号;或者,用户在第一机构处发起购买操作时由该第一机构的系统为该用户分配的账号。这类账号例如可以是一串字符。用户ID应当可以唯一的标识一位用户。
对于个人用户来说,如果证件类型统一采用身份证的话,用户ID也可以是身份证号码。但是身份证号码实际上也是属于个人的隐私数据,因此,考虑到避免泄露个人隐私数据,可以对身份证号码进行hash处理。由于hash计算具有单向的特点和隐匿原始信息的特点,并且好的hash函数具有防碰撞能力,即不同的输入得到的hash值极大概率也不同,因此可以采用hash计算结果(或者称摘要值)作为用户ID。手机号码也是相同的原理。即用户ID可以为对用户的一项或多项信息经哈希计算得到的摘要值。
类似的,还可以是对一组用户的数据顺序拼接后进行hash计算,得到的摘要值作为用户ID,例如hash(姓名+证件类型+证件号码)所得到的摘要值作为用户ID,其中的“+”可以表示前后字符的顺序拼接。反洗钱KYC中对于数据的安全性一般具有较高的要求,为了进一步加强数据安全防护,还可以在hash计算中采取加盐操作,例如hash(姓名+证件类型+证件号码+salt),salt为按照预定规则生成的一个值。可见,用户ID还可以为对用户的一项或多项信息经加盐哈希计算得到的摘要值。
在本说明书实施例中,第一机构(如,代销机构)在获取到用户的基础数据后,可以将该用户的用户ID发送至第二机构(如,金融机构),以便于第二机构去隐私计算单元处请求获取该用户ID对应的KYC验证结果。可见,第二机构发送的第二交易中携带的第二用户的用户标识信息可以是第一机构为该第二用户分配的用户ID。即第一用户的用户标识信息及第二用户的用户标识信息均可以是采用上述用户ID的实现方式而实现的,对此不再赘述。
在本说明书实施例中,第一机构既可以直接向第二机构发送第二用户的用户标识信息,或者,也可以通过隐私计算单元去将第二用户的用户标识信息发送至第二机构,对此不作具体限定。在实际应用中,为保护用户标识信息的传输过程中的安全性及隐私性,可以由第一机构采用对称加密或非对称加密的方式将所述用户ID加密后发送至第二机构。如果采用对称加密,即加密秘钥和解密秘钥是同一把秘钥的情形,则可以由第一机构和第二机构之间通过秘钥协商过程得到这把秘钥;对于采用非对称加密,即加密秘钥和解密秘钥是两把不同但是相对应的秘钥的情形,其中一把为公钥,用于加密,另一把为私钥,用于解密,一般第一机构可以采用第二机构的公钥将用户ID加密后发送至所述金融机构,进而由第二机构采用对应的私钥解密,恢复得到用户ID。
同理,第一机构及第二机构通过目标交易发送至隐私计算单元处的第一用户的第一标识信息及第二用户的第二标识信息也可以是经过加密的。第一机构及第二机构对第一标识信息及第二标识信息的加密原理与上述第一机构对发送至第二机构的用户ID的加密原理可以是相同的。对此再赘述。
在本说明书实施例中,由于需要根据多个机构发起的多笔交易共同完成对目标智能合约的调用,因此,可以针对目标智能合约配置相应的状态机,该状态机的终态可以与针对目标智能合约的执行条件相对应,从而在针对目标智能合约的累计调用信息符合执行条件时,将状态机切换至终态,以自动触发目标智能合约的执行。
其中,对应于目标智能合约的状态机可以配置于隐私计算单元所处区块链节点的链代码中,或者配置于目标智能合约的合约代码中,或者配置于目标智能合约的合约账户中,或者配置于隐私计算单元中的除了目标智能合约的合约代码以外的程序代码中,对此不作具体限定。
具体的,图2中的方法,还可以包括:
若所述第一判断结果表示所述第一更新后累计调用信息满足所述执行条件,将对应于所述目标智能合约的状态机切换至终态,所述终态用于指示执行所述目标智能合约的合约代码。
在实际应用中,当所述第一判断结果表示所述第一更新后累计调用信息不满足所述执行条件时,还可以根据所述第一更新后累计调用信息,确定对应于所述目标智能合约的状态机所处的中间状态。该中间状态可以指示接续接收用于调用目标智能合约的交易,从而根据后续接收到的交易去判定是否执行目标智能合约。
在实际应用中,状态机可以包含一个或多个中间状态,并且不同的中间状态设置有对应的不同的中间状态条件,从而可以根据确定出的所述第一更新后累计调用信息所符合的中间状态条件,去确定对应于所述目标智能合约的状态机所需切换至的中间状态。
为了便于理解,仍旧以KYC验证场景为例,对本说明书实施例提供的信息分享方案进行解释说明。
例如,假定,针对目标智能合约的状态机设置两个中间状态及一个终态。下表示出了针对状态机的中间状态及终态设置的对应的预设状态条件。其中,针对终态设置的预设状态条件即为针对该目标智能合约的执行条件。
预设状态条件 状态机所处状态
第一机构提交第一用户的ID及第一用户的用户基础数据。 中间状态1
第二机构提交第二用户的ID。 中间状态2
第一机构提交第一用户的ID及第一用户的用户基础数据。且第二机构提交第二用户的ID。 终态
假定,当前接收到第二机构提交的包含第二用户的ID的用于调用目标智能合约的交易,那么,可以将针对目标智能合约的累积调用信息更新为“第二机构提交第二用户的ID”。此时,可以将对应于目标智能合约的状态机由初态切换至中间状态2。
然后,继续接收到第一机构提交的包含第一用户的ID及第一用户的用户基础数据的用于调用目标智能合约的交易;那么,可将累积调用信息更新为“第二机构提交第二用户的ID;第一机构提交第一用户的ID及第一用户的用户基础数据”。此时,可以将对应于目标智能合约的状态机由中间状态2切换至终态,从而可以执行目标智能合约对与第二用户的ID对应的用户基础数据进行KYC验证,得到用户验证结果。
在实际应用中,当根据接收到的用于调用目标智能合约的交易的交易信息生成的累计调用信息不满足针对状态机的任意一个预设状态条件时,可以说明接收到的用于调用目标智能合约的交易存在问题,例如,交易是除了第一机构及第二机构以外的其他机构发送的交易,即非法机构对目标智能合约进行了调用,因此,可以去输出报错信息。以便于隐私计算单元的管理者对于目标智能合约的使用过程进行监管。此时,还可以将对应于目标智能合约的状态机重置到初始状态,从而有利于提升目标智能合约使用过程的安全性。
在本说明书实施例中,为了进一步提升数据传输的安全性,即尽管传输的是加密数据,也不希望错误的接收方接收到,因此,第一机构及第二机构在向隐私计算单元发送目标交易之前,所述隐私计算单元还需向所述第二机构证明所述隐私计算单元的身份。而隐私计算单元在发送用户验证结果至第二机构之前,还可以先确认对方——第二机构的身份。即确定所述第二机构为符合预设条件的机构。
在本说明书实施例中,确认对方身份的方式有若干种,这里列举一种采用结合了区块链的分布式数字身份技术的实现方式。区块链可以提供去中心化(或弱中心化)的、不可篡改(或难以篡改)的、可信的分布式账本,并可以提供安全、稳定、透明、可审计且高效的记录交易以及数据信息交互的方式。区块链网络可以包括多个节点。一般来说区块链的一个或多个节点归属于一个参与方。笼统的说,区块链网络的参与方越多,参与方越权威,区块链网络的可信程度越高。这里称多个参与方构成的区块链网络为区块链平台。借助区块链平台,可以帮助验证各个机构的身份。
由于隐私计算单元与第一机构及第二机构之间的身份验证过程采用的原理可以是相同的,因此,为便于理解,在此以隐私计算单元验证第二机构(即金融机构)的身份的过程为例,进行举例说明。
为了使用区块链平台提供的分布式数字身份服务,金融机构可以将自身的身份在区块链平台中登记。例如,金融机构可以创建一对公钥和私钥,私钥保密存储,并可以创建一个分布式数字身份(也称为去中心化标识符,Decentralized Identitfiers,DID)。在实际应用中,可以由金融机构自己创建DID,也可以请求分布式身份服务(DecentralizedIdentity Service,DIS)系统来创建DID,对此不作具体限定。DIS是一种基于区块链的身份管理方案,可以提供数字身份的创建、验证和管理等功能,从而实现规范化地管理和保护实体数据,同时保证信息流转的真实性和效率,并可以解决跨机构的身份认证和数据合作等难题。DIS系统可以与区块链平台相连。通过DIS系统可以为金融机构创建一个DID,并将该DID和所述公钥发送至区块链平台保存,还将该创建的DID返回给金融机构。所述公钥可以包含到DIDdoc中,所述DIDdoc可以存储于区块链平台中。DIS为金融机构创建DID,可以基于金融机构发来的公钥创建,例如采用Hash函数对所述金融机构的公钥进行计算后创建,也可以根据金融机构的其它信息(可以包括所述公钥或不包括所述公钥)创建。后者可能需要金融机构提供一些公钥之外的信息。之后,金融机构可以提供验证功能,从而向其它方证明自身是金融机构。
图3为本说明书实施例提供的一种隐私计算单元验证金融机构的身份的方法的流程示意图,如图3所示:
步骤302:金融机构向DIS发起DID创建请求,所述请求中包括所述金融机构的公钥。
步骤304:响应于所述创建请求,所述DIS为所述金融机构创建DID及对应的DIDdoc,并将该DID及对应的DIDdoc发送至区块链平台保存,所述DIDdoc中包括所述金融机构的公钥。
步骤306:区块链平台接收隐私计算单元发来的验证请求,所述验证请求中包括所述金融机构的DID;区块链平台从自身存储中取出金融机构的DID对应的DIDdoc并返回至所述隐私计算单元。
步骤308:所述隐私计算单元生成一个字符串,并将所述字符串发送至所述金融机构。
步骤310:所述金融机构用其私钥对所述字符串签名并返回至所述隐私计算单元。
步骤312:所述隐私计算单元用前述接收到的所述DIDdoc中的公钥验证所述返回的签名是否正确,如果正确,则确认所述金融机构的身份。从而可以确定该金融机构是否为符合预设规定的机构。
可见,图3中的流程令隐私计算单元可以验证金融机构的身份。其中,S306与S308、S310没有严格的先后顺序,对此不作具体限定。
在本说明书实施例中,隐私计算单元还可以将用户验证结果的证明发送至区块链,以便于后续使用。
因此,图2中的方法,还可以包括:将所述用户验证结果的证明发送至区块链网络。存储用户验证结果的证明的区块链网络与部署有隐私计算平台的区块链网络既可以是同一个区块链网络,也可以为不同的区块链网络,对此不作具体限定。
所述用户验证结果的证明,可以包括由所述隐私计算单元签名的可验证声明(Verifiable Claim,VC)。VC也是DID中的一项重要应用。所述VC可以存储于区块链平台。例如,VC的内容包括某个/某些用户ID对应的用户基础数据已经过隐私计算单元按照预定的规则进行验证,并由所述隐私计算单元签名;或者包括所述用户验证结果的hash值,并由所述隐私计算单元签名。即所述验证结果的证明可以包括:由所述隐私计算单元签名的可验证声明,或者,由所述隐私计算单元签名的哈希值,所述哈希值为对所述用户验证结果进行哈希计算而得到的哈希值。
当图2中的方法应用于KYC验证场景时,监管机构在检查第二机构对用户的诸如KYC的验证结果时,除了从第二机构处获得用户的KYC验证结果,还可以通过区块链来验证VC。具体的,监管机构可以从区块链上获取所述隐私计算单元的DIDdoc中的公钥,验证所述第二机构的所述用户ID的KYC验证结果时,还采用所述隐私计算单元的公钥验证所述VC的签名,从而确认所述VC是由所述隐私计算单元颁发的,且是完整的,即没有经过篡改。这样,基于区块链平台的不可篡改特性以及签名机构的可信,可以提升对第二机构提供的KYC验证结果的真实性认可。所述签名机构的可信,即所述隐私计算单元或者目标智能合约的可信,可以通过审计所述隐私计算单元的身份和其内部署的合约代码来实现。审计所述隐私计算单元的身份,具体例如前述所述的发起挑战的过程,可以验证其身份可信。
这样,通过上述实施例中的方案,可以为本来没有能力做反洗钱工作的机构赋能,使得这样的机构(例如,第二机构,即金融机构)能够具有购买其金融产品的用户的KYC验证结果,从而满足规定的反洗钱审核义务,提升行业整体的KYC核验能力。
基于同样的思路,本说明书实施例还提供了上述方法对应的装置。图4为本说明书实施例提供的对应于图2的一种信息共享装置的结构示意图。该装置可以应用于隐私计算单元,如图4所示,该装置可以包括:
第一获取模块402,用于获取目标交易,所述目标交易为由第一机构发起的用于调用目标智能合约的第一交易或者由第二机构发起的用于调用所述目标智能合约的第二交易;所述第一交易的参数包括第一用户的第一用户标识信息及所述第一用户的经过加密的用户基础数据;所述第二交易的参数包括第二用户的第二用户标识信息。
第一更新模块404,用于根据所述目标交易的交易信息,更新针对所述目标智能合约的累计调用信息,得到第一更新后累计调用信息。
第一判断模块406,用于判断所述第一更新后累计调用信息是否满足针对所述目标智能合约的执行条件,得到第一判断结果。
第一执行模块408,用于若所述第一判断结果表示所述第一更新后累计调用信息满足所述执行条件,则执行所述目标智能合约对应的合约代码,得到用户验证结果;所述用户验证结果是对所述第二用户的用户基础数据进行验证而得到的验证结果。
第一发送模块410,用于发送所述用户验证结果至所述第二机构。
可选的,所述第一机构为代销机构,所述第二机构为金融机构。
可选的,所述第一用户标识信息包括: 所述第一用户在所述第一机构处注册的账号,或者,所述第一用户在所述第一机构处发起购买操作时由所述第一机构的系统为所述第一用户分配的账号。
所述第二用户标识信息包括: 所述第二用户在所述第一机构处注册的账号,或者,所述第二用户在所述第一机构处发起购买操作时由所述第一机构的系统为所述第二用户分配的账号。
可选的,所述第二用户标识信息为所述第一机构在获取到所述第二用户的用户基础数据后,向所述第二机构发送的所述第二用户的用户标识信息。
可选的,所述第一用户标识信息包括:对所述第一用户的一项或多项信息经哈希计算得到的摘要值;所述第二用户标识信息包括:对所述第二用户的一项或多项信息经哈希计算得到的摘要值。
可选的,所述第一用户标识信息包括:对所述第一用户的一项或多项信息经加盐哈希计算得到的摘要值;所述第二用户标识信息包括:对所述第二用户的一项或多项信息经加盐哈希计算得到的摘要值。
可选的,所述第一获取模块402,具体可以用于:
利用部署于区块链上的所述隐私计算单元获取目标交易。
或者,利用部署于区块链下的所述隐私计算单元获取目标交易。
可选的,图4中的装置,还可以包括:
第一证明模块,用于所述隐私计算单元向所述第一机构证明所述隐私计算单元的身份。
第二证明模块,用于所述隐私计算单元向所述第二机构证明所述隐私计算单元的身份。
可选的,所述第一交易的参数还包括所述第一机构的签名;所述第二交易的参数还包括所述第二机构的签名。
可选的,所述第一交易的参数中包括的所述第一用户标识信息是经过加密的;所述第二交易的参数中包括的所述第二用户标识信息是经过加密的。
可选的,所述第一判断模块406,具体可以用于:
判断所述第一更新后累计调用信息中包含的交易参数是否满足所述执行条件中定义的交易参数条件。
可选的,所述交易参数条件包括:第一交易参数条件及第二交易参数条件中的至少一项条件成立。
所述第一交易参数条件为所述第一用户的经过加密的用户基础数据的数量达到第一阈值;所述第二交易参数条件为所述第二用户的第二用户标识信息的数量达到第二阈值。
可选的,所述第一判断模块406,具体可以用于:
判断第一更新后累计调用信息中的交易发起方身份识别信息是否均满足所述执行条件中定义的针对所述目标智能合约的调用方的身份条件。
可选的,所述第一判断模块406,具体可以用于:
判断所述第一更新后累计调用信息中的交易数量是否满足所述执行条件中定义的交易数量条件。
可选的,所述交易数量条件为第一交易数量条件及第二交易数量条件同时成立;所述第一交易数量条件为所述第一交易的交易数量达到第三阈值;所述第二交易数量条件为所述第二交易的交易数量达到第四阈值。
可选的,所述第三阈值等于1;所述第四阈值等于1。
可选的,图4中的装置,还可以包括:
第二获取模块,用于若所述第一判断结果表示所述第一更新后累计调用信息不满足所述执行条件,则获取指定交易;所述指定交易为由所述第一机构或者所述第二机构在所述目标交易之后发起的用于调用所述目标智能合约的交易。
第二更新模块,用于根据所述指定交易的交易信息,更新所述第一更新后累计调用信息,得到第二更新后累计调用信息。
第二判断模块,用于判断所述第二更新后累计调用信息是否满足针对所述目标智能合约的执行条件,得到第二判断结果。
第二执行模块,用于若所述第二判断结果表示所述第二更新后累计调用信息满足所述执行条件,则执行所述目标智能合约对应的合约代码,得到所述用户验证结果。
可选的,所述第一发送模块410,具体可以用于:
发送利用所述隐私计算单元数字签名后的所述用户验证结果至所述第二机构。或者,发送利用所述目标智能合约数字签名后的所述用户验证结果至所述第二机构。
可选的,图4中的装置,还可以包括:
确定模块,用于确定所述第二机构为符合预设条件的机构。
可选的,图4中的装置,还可以包括:
第二发送模块,用于将所述用户验证结果的证明发送至区块链网络。
可选的,所述用户验证结果的证明包括:由所述隐私计算单元签名的可验证声明;或者,由所述隐私计算单元签名的哈希值,所述哈希值为对所述用户验证结果进行哈希计算而得到的哈希值。
可选的,图4中的装置,还可以包括:
状态切换模块,用于若所述第一判断结果表示所述第一更新后累计调用信息满足所述执行条件,将对应于所述目标智能合约的状态机切换至终态,所述终态用于指示执行所述目标智能合约的合约代码。
状态确定模块,用于若所述第一判断结果表示所述第一更新后累计调用信息不满足所述执行条件,根据所述第一更新后累计调用信息,确定对应于所述目标智能合约的状态机所处的中间状态。
基于同样的思路,本说明书实施例还提供了上述方法对应的设备。
图5为本说明书实施例提供的对应于图2的一种信息共享设备的结构示意图。如图5所示,设备500可以包括:
至少一个处理器510;以及,
与所述至少一个处理器通信连接的存储器530;其中,
所述存储器530存储有可被所述至少一个处理器510执行的指令520,所述指令520可以为隐私计算单元中的指令,所述指令520被所述至少一个处理器510执行,以使所述至少一个处理器510能够:
获取目标交易,所述目标交易为由第一机构发起的用于调用目标智能合约的第一交易或者由第二机构发起的用于调用所述目标智能合约的第二交易;所述第一交易的参数包括第一用户的第一用户标识信息及所述第一用户的经过加密的用户基础数据;所述第二交易的参数包括第二用户的第二用户标识信息。
根据所述目标交易的交易信息,更新针对所述目标智能合约的累计调用信息,得到第一更新后累计调用信息。
判断所述第一更新后累计调用信息是否满足针对所述目标智能合约的执行条件,得到第一判断结果。
若所述第一判断结果表示所述第一更新后累计调用信息满足所述执行条件,则执行所述目标智能合约对应的合约代码,得到用户验证结果;所述用户验证结果是对所述第二用户的用户基础数据进行验证而得到的验证结果;
发送所述用户验证结果至所述第二机构。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于图5所示的设备而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字符系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字符助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字符多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (45)

1.一种信息分享方法,应用于隐私计算单元,包括:
获取目标交易,所述目标交易为由第一机构发起的用于调用目标智能合约的第一交易或者由第二机构发起的用于调用所述目标智能合约的第二交易;所述第一交易的参数包括第一用户的第一用户标识信息及所述第一用户的经过加密的用户基础数据;所述第二交易的参数包括第二用户的第二用户标识信息;
根据所述目标交易的交易信息,更新针对所述目标智能合约的累计调用信息,得到第一更新后累计调用信息;
判断所述第一更新后累计调用信息是否满足针对所述目标智能合约的执行条件,得到第一判断结果;
若所述第一判断结果表示所述第一更新后累计调用信息满足所述执行条件,则执行所述目标智能合约对应的合约代码,得到用户验证结果;所述用户验证结果是对所述第二用户的用户基础数据进行验证而得到的验证结果;
发送所述用户验证结果至所述第二机构。
2.如权利要求1所述的方法,所述第一机构为代销机构,所述第二机构为金融机构。
3.如权利要求2所述的方法,所述第一用户标识信息包括: 所述第一用户在所述第一机构处注册的账号,或者,所述第一用户在所述第一机构处发起购买操作时由所述第一机构的系统为所述第一用户分配的账号;
所述第二用户标识信息包括: 所述第二用户在所述第一机构处注册的账号,或者,所述第二用户在所述第一机构处发起购买操作时由所述第一机构的系统为所述第二用户分配的账号。
4.如权利要求3所述的方法,所述第二用户标识信息为所述第一机构在获取到所述第二用户的用户基础数据后,向所述第二机构发送的所述第二用户的用户标识信息。
5.如权利要求3所述的方法,所述第一用户标识信息包括:对所述第一用户的一项或多项信息经哈希计算得到的摘要值;
所述第二用户标识信息包括:对所述第二用户的一项或多项信息经哈希计算得到的摘要值。
6.如权利要求5所述的方法,所述第一用户标识信息包括:对所述第一用户的一项或多项信息经加盐哈希计算得到的摘要值;
所述第二用户标识信息包括:对所述第二用户的一项或多项信息经加盐哈希计算得到的摘要值。
7.如权利要求1或2所述的方法,所述获取目标交易,具体包括:
利用部署于区块链上的所述隐私计算单元获取目标交易;
或者,利用部署于区块链下的所述隐私计算单元获取目标交易。
8.如权利要求7所述的方法,所述获取目标交易之前,还包括:
所述隐私计算单元向所述第一机构证明所述隐私计算单元的身份;
所述隐私计算单元向所述第二机构证明所述隐私计算单元的身份。
9.如权利要求7所述的方法,所述第一交易的参数还包括所述第一机构的签名;所述第二交易的参数还包括所述第二机构的签名。
10.如权利要求7所述的方法,所述第一交易的参数中包括的所述第一用户标识信息是经过加密的;所述第二交易的参数中包括的所述第二用户标识信息是经过加密的。
11.如权利要求1或2所述的方法,所述判断所述第一更新后累计调用信息是否满足针对所述目标智能合约的执行条件,具体包括:
判断所述第一更新后累计调用信息中包含的交易参数是否满足所述执行条件中定义的交易参数条件。
12.如权利要求11所述的方法,所述交易参数条件包括:第一交易参数条件及第二交易参数条件中的至少一项条件成立;
所述第一交易参数条件为所述第一用户的经过加密的用户基础数据的数量达到第一阈值;所述第二交易参数条件为所述第二用户的第二用户标识信息的数量达到第二阈值。
13.如权利要求1或2所述的方法,所述判断所述第一更新后累计调用信息是否满足针对所述目标智能合约的执行条件,具体包括:
判断所述第一更新后累计调用信息中的交易发起方身份识别信息是否均满足所述执行条件中定义的针对所述目标智能合约的调用方的身份条件。
14.如权利要求1或2所述的方法,所述判断所述第一更新后累计调用信息是否满足针对所述目标智能合约的执行条件,包括:
判断所述第一更新后累计调用信息中的交易数量是否满足所述执行条件中定义的交易数量条件。
15.如权利要求14所述的方法,所述交易数量条件为第一交易数量条件及第二交易数量条件同时成立;
所述第一交易数量条件为所述第一交易的交易数量达到第三阈值;所述第二交易数量条件为所述第二交易的交易数量达到第四阈值。
16.如权利要求15所述的方法,所述第三阈值等于1;所述第四阈值等于1。
17.如权利要求1或2所述的方法,所述判断所述第一更新后累计调用信息是否满足针对所述目标智能合约的执行条件,得到第一判断结果之后,还包括:
若所述第一判断结果表示所述第一更新后累计调用信息不满足所述执行条件,则获取指定交易;所述指定交易为由所述第一机构或者所述第二机构在所述目标交易之后发起的用于调用所述目标智能合约的交易;
根据所述指定交易的交易信息,更新所述第一更新后累计调用信息,得到第二更新后累计调用信息;
判断所述第二更新后累计调用信息是否满足针对所述目标智能合约的执行条件,得到第二判断结果;
若所述第二判断结果表示所述第二更新后累计调用信息满足所述执行条件,则执行所述目标智能合约对应的合约代码,得到所述用户验证结果。
18.如权利要求1或2所述的方法,所述发送所述用户验证结果至所述第二机构,具体包括:
发送利用所述隐私计算单元数字签名后的所述用户验证结果至所述第二机构;
或者,发送利用所述目标智能合约数字签名后的所述用户验证结果至所述第二机构。
19.如权利要求1或2所述的方法,所述发送所述用户验证结果至所述第二机构之前,还包括:
确定所述第二机构为符合预设条件的机构。
20.如权利要求1或2所述的方法,所述方法还包括:
将所述用户验证结果的证明发送至区块链网络。
21.如权利要求20所述的方法,所述用户验证结果的证明包括:
由所述隐私计算单元签名的可验证声明;
或者,由所述隐私计算单元签名的哈希值,所述哈希值为对所述用户验证结果进行哈希计算而得到的哈希值。
22.如权利要求1或2所述的方法,还包括:
若所述第一判断结果表示所述第一更新后累计调用信息满足所述执行条件,将对应于所述目标智能合约的状态机切换至终态,所述终态用于指示执行所述目标智能合约的合约代码;
若所述第一判断结果表示所述第一更新后累计调用信息不满足所述执行条件,根据所述第一更新后累计调用信息,确定对应于所述目标智能合约的状态机所处的中间状态。
23.一种信息分享装置,应用于隐私计算单元,包括:
第一获取模块,用于获取目标交易,所述目标交易为由第一机构发起的用于调用目标智能合约的第一交易或者由第二机构发起的用于调用所述目标智能合约的第二交易;所述第一交易的参数包括第一用户的第一用户标识信息及所述第一用户的经过加密的用户基础数据;所述第二交易的参数包括第二用户的第二用户标识信息;
第一更新模块,用于根据所述目标交易的交易信息,更新针对所述目标智能合约的累计调用信息,得到第一更新后累计调用信息;
第一判断模块,用于判断所述第一更新后累计调用信息是否满足针对所述目标智能合约的执行条件,得到第一判断结果;
第一执行模块,用于若所述第一判断结果表示所述第一更新后累计调用信息满足所述执行条件,则执行所述目标智能合约对应的合约代码,得到用户验证结果;所述用户验证结果是对所述第二用户的用户基础数据进行验证而得到的验证结果;
第一发送模块,用于发送所述用户验证结果至所述第二机构。
24.如权利要求23所述的装置,所述第一机构为代销机构,所述第二机构为金融机构。
25.如权利要求24所述的装置,所述第一用户标识信息包括: 所述第一用户在所述第一机构处注册的账号,或者,所述第一用户在所述第一机构处发起购买操作时由所述第一机构的系统为所述第一用户分配的账号;
所述第二用户标识信息包括: 所述第二用户在所述第一机构处注册的账号,或者,所述第二用户在所述第一机构处发起购买操作时由所述第一机构的系统为所述第二用户分配的账号。
26.如权利要求25所述的装置,所述第二用户标识信息为所述第一机构在获取到所述第二用户的用户基础数据后,向所述第二机构发送的所述第二用户的用户标识信息。
27.如权利要求25所述的装置,所述第一用户标识信息包括:对所述第一用户的一项或多项信息经哈希计算得到的摘要值;
所述第二用户标识信息包括:对所述第二用户的一项或多项信息经哈希计算得到的摘要值。
28.如权利要求27所述的装置,所述第一用户标识信息包括:对所述第一用户的一项或多项信息经加盐哈希计算得到的摘要值;
所述第二用户标识信息包括:对所述第二用户的一项或多项信息经加盐哈希计算得到的摘要值。
29.如权利要求23或24所述的装置,所述第一获取模块,具体用于:
利用部署于区块链上的所述隐私计算单元获取目标交易;
或者,利用部署于区块链下的所述隐私计算单元获取目标交易。
30.如权利要求29所述的装置,还包括:
第一证明模块,用于所述隐私计算单元向所述第一机构证明所述隐私计算单元的身份;
第二证明模块,用于所述隐私计算单元向所述第二机构证明所述隐私计算单元的身份。
31.如权利要求29所述的装置,所述第一交易的参数还包括所述第一机构的签名;所述第二交易的参数还包括所述第二机构的签名。
32.如权利要求29所述的装置,所述第一交易的参数中包括的所述第一用户标识信息是经过加密的;所述第二交易的参数中包括的所述第二用户标识信息是经过加密的。
33.如权利要求23或24所述的装置,所述第一判断模块,具体用于:
判断所述第一更新后累计调用信息中包含的交易参数是否满足所述执行条件中定义的交易参数条件。
34.如权利要求33所述的装置,所述交易参数条件包括:第一交易参数条件及第二交易参数条件中的至少一项条件成立;
所述第一交易参数条件为所述第一用户的经过加密的用户基础数据的数量达到第一阈值;所述第二交易参数条件为所述第二用户的第二用户标识信息的数量达到第二阈值。
35.如权利要求23或24所述的装置,所述第一判断模块,具体用于:
判断所述第一更新后累计调用信息中的交易发起方身份识别信息是否均满足所述执行条件中定义的针对所述目标智能合约的调用方的身份条件。
36.如权利要求23或24所述的装置,所述第一判断模块,具体用于:
判断所述第一更新后累计调用信息中的交易数量是否满足所述执行条件中定义的交易数量条件。
37.如权利要求36所述的装置,所述交易数量条件为第一交易数量条件及第二交易数量条件同时成立;
所述第一交易数量条件为所述第一交易的交易数量达到第三阈值;所述第二交易数量条件为所述第二交易的交易数量达到第四阈值。
38.如权利要求37所述的装置,所述第三阈值等于1;所述第四阈值等于1。
39.如权利要求23或24所述的装置,还包括:
第二获取模块,用于若所述第一判断结果表示所述第一更新后累计调用信息不满足所述执行条件,则获取指定交易;所述指定交易为由所述第一机构或者所述第二机构在所述目标交易之后发起的用于调用所述目标智能合约的交易;
第二更新模块,用于根据所述指定交易的交易信息,更新所述第一更新后累计调用信息,得到第二更新后累计调用信息;
第二判断模块,用于判断所述第二更新后累计调用信息是否满足针对所述目标智能合约的执行条件,得到第二判断结果;
第二执行模块,用于若所述第二判断结果表示所述第二更新后累计调用信息满足所述执行条件,则执行所述目标智能合约对应的合约代码,得到所述用户验证结果。
40.如权利要求23或24所述的装置,所述第一发送模块,具体用于:
发送利用所述隐私计算单元数字签名后的所述用户验证结果至所述第二机构;
或者,发送利用所述目标智能合约数字签名后的所述用户验证结果至所述第二机构。
41.如权利要求23或24所述的装置,还包括:
确定模块,用于确定所述第二机构为符合预设条件的机构。
42.如权利要求23或24所述的装置,还包括:
第二发送模块,用于将所述用户验证结果的证明发送至区块链网络。
43.如权利要求42所述的装置,所述用户验证结果的证明包括:
由所述隐私计算单元签名的可验证声明;
或者,由所述隐私计算单元签名的哈希值,所述哈希值为对所述用户验证结果进行哈希计算而得到的哈希值。
44.如权利要求23或24所述的装置,还包括:
状态切换模块,用于若所述第一判断结果表示所述第一更新后累计调用信息满足所述执行条件,将对应于所述目标智能合约的状态机切换至终态,所述终态用于指示执行所述目标智能合约的合约代码;
状态确定模块,用于若所述第一判断结果表示所述第一更新后累计调用信息不满足所述执行条件,根据所述第一更新后累计调用信息,确定对应于所述目标智能合约的状态机所处的中间状态。
45.一种信息共享设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取目标交易,所述目标交易为由第一机构发起的用于调用目标智能合约的第一交易或者由第二机构发起的用于调用所述目标智能合约的第二交易;所述第一交易的参数包括第一用户的第一用户标识信息及所述第一用户的经过加密的用户基础数据;所述第二交易的参数包括第二用户的第二用户标识信息;
根据所述目标交易的交易信息,更新针对所述目标智能合约的累计调用信息,得到第一更新后累计调用信息;
判断所述第一更新后累计调用信息是否满足针对所述目标智能合约的执行条件,得到第一判断结果;
若所述第一判断结果表示所述第一更新后累计调用信息满足所述执行条件,则执行所述目标智能合约对应的合约代码,得到用户验证结果;所述用户验证结果是对所述第二用户的用户基础数据进行验证而得到的验证结果;
发送所述用户验证结果至所述第二机构。
CN202010898593.3A 2020-08-31 2020-08-31 一种信息共享方法、装置及设备 Active CN111770112B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010898593.3A CN111770112B (zh) 2020-08-31 2020-08-31 一种信息共享方法、装置及设备
US17/364,612 US11310244B2 (en) 2020-08-31 2021-06-30 Information sharing methods, apparatuses, and devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010898593.3A CN111770112B (zh) 2020-08-31 2020-08-31 一种信息共享方法、装置及设备

Publications (2)

Publication Number Publication Date
CN111770112A true CN111770112A (zh) 2020-10-13
CN111770112B CN111770112B (zh) 2020-11-17

Family

ID=72729731

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010898593.3A Active CN111770112B (zh) 2020-08-31 2020-08-31 一种信息共享方法、装置及设备

Country Status (2)

Country Link
US (1) US11310244B2 (zh)
CN (1) CN111770112B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113285954A (zh) * 2021-06-02 2021-08-20 网易(杭州)网络有限公司 可验证声明验证方法、系统、电子设备及存储介质
CN113765875A (zh) * 2020-11-17 2021-12-07 北京京东乾石科技有限公司 一种数据验证信息的反馈方法和装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210314293A1 (en) * 2020-04-02 2021-10-07 Hewlett Packard Enterprise Development Lp Method and system for using tunnel extensible authentication protocol (teap) for self-sovereign identity based authentication
KR102610011B1 (ko) * 2021-10-21 2023-12-04 고려대학교 산학협력단 DApp의 스마트 컨트랙트 수수료 감소 방법, 이를 수행하기 위한 기록 매체 및 연산 서버

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI629658B (zh) * 2017-05-08 2018-07-11 富邦金融控股股份有限公司 基於區塊鏈智能合約的kyc資料共享系統及其方法
CN108494090A (zh) * 2018-04-16 2018-09-04 华东师范大学 一种基于区块链的能源网联智能装置及系统
CN109615386A (zh) * 2018-11-28 2019-04-12 优钱付(浙江)信息科技有限公司 循环写入区块链的kyc反洗钱方法、装置、设备及介质
US20190228393A1 (en) * 2018-01-19 2019-07-25 Alibaba Group Holding Limited Fund flow processing method and device
US20190236598A1 (en) * 2018-01-31 2019-08-01 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing machine learning models for smart contracts using distributed ledger technologies in a cloud based computing environment
CN111147432A (zh) * 2018-11-06 2020-05-12 富邦金融控股股份有限公司 具隐密性的kyc数据共享系统及其方法
CN111368340A (zh) * 2020-01-04 2020-07-03 链农(深圳)信息科技有限公司 基于区块链的通证安全校验方法、装置及硬件设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2016235539B2 (en) * 2015-03-20 2019-01-24 Rivetz Corp. Automated attestation of device integrity using the block chain
CN106651346A (zh) 2016-11-28 2017-05-10 上海凯岸信息科技有限公司 基于区块链的征信数据共享与交易系统
WO2018209222A1 (en) * 2017-05-12 2018-11-15 Massachusetts Institute Of Technology Systems and methods for crowdsourcing, analyzing, and/or matching personal data
US20190095879A1 (en) * 2017-09-26 2019-03-28 Cornell University Blockchain payment channels with trusted execution environments
US10839107B2 (en) * 2019-05-30 2020-11-17 Advanced New Technologies Co., Ltd. Managing a smart contract on a blockchain
US10790979B1 (en) * 2019-08-29 2020-09-29 Alibaba Group Holding Limited Providing high availability computing service by issuing a certificate

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI629658B (zh) * 2017-05-08 2018-07-11 富邦金融控股股份有限公司 基於區塊鏈智能合約的kyc資料共享系統及其方法
US20190228393A1 (en) * 2018-01-19 2019-07-25 Alibaba Group Holding Limited Fund flow processing method and device
US20190236598A1 (en) * 2018-01-31 2019-08-01 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing machine learning models for smart contracts using distributed ledger technologies in a cloud based computing environment
CN108494090A (zh) * 2018-04-16 2018-09-04 华东师范大学 一种基于区块链的能源网联智能装置及系统
CN111147432A (zh) * 2018-11-06 2020-05-12 富邦金融控股股份有限公司 具隐密性的kyc数据共享系统及其方法
CN109615386A (zh) * 2018-11-28 2019-04-12 优钱付(浙江)信息科技有限公司 循环写入区块链的kyc反洗钱方法、装置、设备及介质
CN111368340A (zh) * 2020-01-04 2020-07-03 链农(深圳)信息科技有限公司 基于区块链的通证安全校验方法、装置及硬件设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113765875A (zh) * 2020-11-17 2021-12-07 北京京东乾石科技有限公司 一种数据验证信息的反馈方法和装置
CN113765875B (zh) * 2020-11-17 2023-09-26 北京京东振世信息技术有限公司 一种数据验证信息的反馈方法和装置
CN113285954A (zh) * 2021-06-02 2021-08-20 网易(杭州)网络有限公司 可验证声明验证方法、系统、电子设备及存储介质
CN113285954B (zh) * 2021-06-02 2022-12-06 网易(杭州)网络有限公司 可验证声明验证方法、系统、电子设备及存储介质

Also Published As

Publication number Publication date
US20210329009A1 (en) 2021-10-21
CN111770112B (zh) 2020-11-17
US11310244B2 (en) 2022-04-19

Similar Documents

Publication Publication Date Title
CN111770200B (zh) 一种信息共享方法和系统
CN111770201B (zh) 一种数据验证方法、装置及设备
CN111770199B (zh) 一种信息共享方法、装置及设备
CN111770112B (zh) 一种信息共享方法、装置及设备
CN111767578B (zh) 一种数据检验方法、装置及设备
EP3073670B1 (en) A system and a method for personal identification and verification
CN111770198B (zh) 一种信息共享方法、装置及设备
US20210314164A1 (en) Block content editing methods and apparatuses
US11954686B2 (en) Information sharing methods and systems
CN112785202A (zh) 资产管理方法、装置及系统
CN111814172A (zh) 一种数据授权信息的获取方法、装置及设备
CN113704775A (zh) 一种基于分布式数字身份的业务处理方法及相关装置
US11514445B2 (en) Information sharing methods, apparatuses, and devices
CN111818094B (zh) 一种身份注册方法、装置及设备
CN114372280A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40039460

Country of ref document: HK