CN111770201A - 一种数据验证方法、装置及设备 - Google Patents
一种数据验证方法、装置及设备 Download PDFInfo
- Publication number
- CN111770201A CN111770201A CN202010898940.2A CN202010898940A CN111770201A CN 111770201 A CN111770201 A CN 111770201A CN 202010898940 A CN202010898940 A CN 202010898940A CN 111770201 A CN111770201 A CN 111770201A
- Authority
- CN
- China
- Prior art keywords
- data
- user
- intelligent contract
- contract
- chain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/3236—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 using cryptographic hash functions
- H04L9/3242—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 using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- 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/3236—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 using cryptographic hash functions
- H04L9/3239—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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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/602—Providing cryptographic facilities or services
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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
- G06F21/645—Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4014—Identity check for transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4016—Transaction verification involving fraud or risk level assessment in transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0407—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
-
- 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/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, 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
-
- 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/3218—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 using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- 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/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/3297—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 time stamps, e.g. generation of time stamps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2220/00—Business processing using cryptography
-
- 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)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Finance (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Marketing (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Power Engineering (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书实施例公开了一种数据验证方法、装置及设备。所述方法应用于隐私计算单元,所述方法包括:接收区块链平台基于链代码中定义的定时启动逻辑发送的触发指令;基于所述触发指令,对用户基础数据进行验证处理,得到验证结果;所述用户基础数据为对第一机构发送的第一加密数据解密后得到的,所述用户基础数据为基于第二机构发送的数据共享请求中包含的用户ID获取的用户基础数据;将所述验证结果发送至所述第二机构。
Description
技术领域
本说明书实施例涉及区块链技术领域,尤其涉及一种数据验证方法、装置及设备。
背景技术
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。
发明内容
第一方面,本说明书实施例提供的一种数据验证方法,所述方法应用于隐私计算单元,包括:
接收区块链平台基于链代码中定义的定时启动逻辑发送的触发指令;
基于所述触发指令,对用户基础数据进行验证处理,得到验证结果;所述用户基础数据为对第一机构发送的第一加密数据解密后得到的,所述用户基础数据为基于第二机构发送的数据共享请求中包含的用户ID获取的用户基础数据;
将所述验证结果发送至所述第二机构。
第二方面,本说明书实施例提供的一种智能合约启动方法,所述方法包括:
运行链代码中定义的定时启动逻辑;
基于所述定时启动逻辑,判断当前时刻是否到达定时启动时刻,得到第一判断结果;
若所述第一判断结果为是,发送用于启动第一智能合约的指令,所述第一智能合约用于对加密的用户基础数据进行验证处理,并将验证结果发送至设定的地址。
第三方面,本说明书实施例提供的一种数据验证装置,所述装置应用于隐私计算单元,包括:
触发指令接收模块,用于接收区块链平台基于链代码中定义的定时启动逻辑发送的触发指令;
数据验证模块,用于基于所述触发指令,对用户基础数据进行验证处理,得到验证结果;所述用户基础数据为对第一机构发送的第一加密数据解密后得到的,所述用户基础数据为基于第二机构发送的数据共享请求中包含的用户ID获取的用户基础数据;
验证结果发送模块,用于将所述验证结果发送至所述第二机构。
第四方面,本说明书实施例提供的一种智能合约启动装置,包括:
代码运行模块,用于运行链代码中定义的定时启动逻辑;
结果判断模块,用于基于所述定时启动逻辑,判断当前时刻是否到达定时启动时刻,得到第一判断结果;
指令发送模块,用于若所述第一判断结果为是,发送用于启动第一智能合约的指令,所述第一智能合约用于对加密的用户基础数据进行验证处理,并将验证结果发送至设定的地址。
第五方面,本说明书实施例提供的一种数据验证设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
接收区块链平台基于链代码中定义的定时启动逻辑发送的触发指令;
基于所述触发指令,对用户基础数据进行验证处理,得到验证结果;所述用户基础数据为对第一机构发送的第一加密数据解密后得到的,所述用户基础数据为基于第二机构发送的数据共享请求中包含的用户ID获取的用户基础数据;
将所述验证结果发送至所述第二机构。
第六方面,本说明书实施例提供的一种智能合约启动设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
运行链代码中定义的定时启动逻辑;
基于所述定时启动逻辑,判断当前时刻是否到达定时启动时刻,得到第一判断结果;
若所述第一判断结果为是,发送用于启动第一智能合约的指令,所述第一智能合约用于对加密的用户基础数据进行验证处理,并将验证结果发送至设定的地址。
本说明书实施例提供的一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现一种数据验证方法或者智能合约启动方法。
本说明书一个实施例实现了能够达到以下有益效果:
通过上述实施例中的方案,可以为本来没有能力做反洗钱工作的机构赋能,使得这样的机构能够具有购买其金融产品的用户的KYC结果,从而满足规定的反洗钱审核义务,提升行业整体的KYC核验能力。而且,由区块链节点主动地定时启动智能合约来完成定时任务,使得定时任务的发起方无需定时向区块链网络提交区块链交易来调用智能合约。一方面,区块链节点无需接收调用该智能合约的区块链交易,可减少区块链节点处理调用目标智能合约的区块链交易的相关操作,不仅可降低区块链节点的资源消耗,还可提高完成定时任务的效率。另一方面,区块链网络自动启动智能合约来完成定时任务,可简化定时任务的发起方的操作,有利于提升用户体验。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一实施例中的系统架构示意图;
图2为本说明书一实施例中的一种数据验证方法的流程示意图;
图3为本说明书一实施例中金融机构通过DIS提供验证功能的架构图;
图4为本说明书一实施例中的金融机构提供验证功能的流程图;
图5为本说明书一实施例中的包含可信机构的系统架构示意图;
图6为本说明书一实施例中的一种智能合约启动方法的流程示意图;
图7为本说明书一实施例中的一种启动链上合约的方法的流程图;
图8为本说明书一实施例中对应于图2的一种数据验证装置的结构示意图;
图9为本说明书一实施例中对应于图2的一种数据验证设备的结构示意图。
具体实施方式
为使本说明书一个或多个实施例的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书一个或多个实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书一个或多个实施例保护的范围。
数据共享经常是机构处理业务的需求。单一机构往往无法获取足够的信息而无法处理业务,这就存在从其他机构获取信息的需求。例如,各国在反洗钱合规履职的要求中,很多都要求各个金融机构提供反洗钱审核结果。目前,很多国家央行、很多大的金融机构都有在反洗钱领域利用区块链来提升效率和准确性并满足监管的尝试。同时,数据作为一种资源,其流动性和可获取性是很多数据应用和产业发展的基础,但数据交换和共享过程中的隐私保护一直是产业发展的一大挑战。下面仍以上述的反洗钱为例加以说明。
反洗钱(Anti-Money Laundering,AML)是指预防通过各种方式掩饰、隐瞒毒品犯罪、黑社会性质的组织犯罪、恐怖活动犯罪、走私犯罪、贪污贿赂犯罪、破坏金融管理秩序犯罪等犯罪所得及其收益的来源和性质的洗钱活动的措施。常见的洗钱途径广泛涉及银行、保险、证券、房地产等各种领域。大多数反洗钱工作都包括三个核心的事项:
1、客户身份识别制度。反洗钱义务主体在与客户建立业务关系或者与其进行交易时,应当根据真实有效地身份证件,核实和记录其客户的身份,并在业务关系存续期间及时更新客户的身份信息资料。
2、大额和可疑交易报告(Suspicious Transaction Report,STR)制度。非法资金流动一般具有数额巨大、交易异常等特点,因此,法律规定了大额和可疑交易报告制度,要求金融机构对数额达到一定标准的交易和缺乏合法目的的异常交易应当及时向反洗钱行政主管部门报告,以作为追查违法犯罪行为的线索。
3、客户身份资料和交易记录保存制度。客户身份资料和交易记录保存,是指金融机构依法采取必要措施将客户身份资料和交易信息保存一定期限,可以为追查违法犯罪行为提供证据支持。
客户身份识别制度也就是通常所说的“了解你的客户”(Know Your Customer,KYC),指的是获取客户相关识别信息,包括与客户建立业务关系时了解客户的身份、了解交易的目的、了解资金的来源和去向、以及了解客户的日常经营活动和金融交易情况等,是反洗钱的基础。
现有的实现中,一些金融产品的销售机构和代销机构之间有合作关系,金融机构通过代销机构来代销金融机构的金融产品,例如网络平台代销基金公司的理财产品。这种情况下,购买金融产品的客户往往直接是代销机构的客户。按照监管要求,销售金融产品需要具有对客户进行KYC的核验结果。如上所述,购买金融产品的客户直接是代销机构的客户,代销机构一般能直接获取用户的基本信息,从而具有KYC能力。根据数据隐私保护的要求,代销机构通常不能将KYC的基础数据和KYC结果直接转给销售机构。销售机构没有KYC的基础数据,无法进行独立的KYC,而根据监管要求,销售机构也需要具有KYC核验结果。这样,销售机构无法进行KYC,KYC履职不到位,不能满足监管的要求。
图1为本说明书一实施例中的系统架构示意图,如图1所示,第一机构可以直接接收用户的信息,从而基于这些用户信息完成一定的处理工作,如KYC场景中提到的KYC核验。另一方面,第一机构可以对外提供KYC核验结果,也可以对外提供KYC核验所需的基础数据。第二机构可以与第一机构直接相连,同时,第一机构和第二机构可以都与区块链系统相连,且可以都与隐私计算平台相连。通过隐私计算平台,可以在可信的安全计算环境中执行预定的规则,从而完成例如KYC核验之类的任务。
区块链网络一般被划分为三种类型:公有链(Public Blockchain),私有链(Private Blockchain)和联盟链(Consortium Blockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。其中去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者可以读取链上的数据记录、参与交易以及竞争新区块的记账权等。而且,各参与者(即区块链节点)可自由加入以及退出网络,并进行相关操作。私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,参与节点具有严格限制且少。这种类型的区块链更适合于特定机构内部使用。联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;参与者通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
在相关技术中,不论是公有链、私有链还是联盟链,都可能提供智能合约的功能。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。
以账户模型(比如以太坊)为例,区块链账户可以包括外部账户和合约账户等。外部账户通常为用户(个人或机构)所有,而合约账户则对应于部署在区块链中的智能合约。各类账户的结构都类似,可以包括Balance,Nonce,Code和Storage等字段。
其中:
Balance字段,用于维护账户目前的账户余额;
Nonce字段,用于维护该账户的交易次数;它是用于保障每笔交易能且只能被处理一次的计数器,有效避免重放攻击;
Code字段,用于维护该账户的合约代码(因而外部账户的Code字段通常为空);在实际应用中,Code字段中通常仅维护合约代码的hash值;因而,Code字段通常也称之为Codehash字段。
Storage字段,用于维护该账户的存储内容(默认字段值为空);对于合约账户而言,通常会分配一个独立的存储空间,用以存储该合约账户的存储内容;该独立的存储空间通常称之为该合约账户的账户存储。合约账户的存储内容通常会构建成MPT(MerklePatricia Trie)树的数据结构存储在上述独立的存储空间之中;其中,基于合约账户的存储内容构建成的MPT树,通常也称之为Storage树。而Storage字段通常仅维护该Storage树的根节点;因此,Storage字段通常也称之为StorageRoot字段。
以太坊作为一个可编程区块链的核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,这意味着可以通过它实现各种复杂的逻辑。用户在以太坊中发布和调用智能合约就是在EVM上运行的。实际上,虚拟机直接运行的是虚拟机代码(虚拟机字节码,下简称“字节码”)。智能合约分为部署和调用两个阶段。
在部署阶段,用户将一个包含创建智能合约信息的交易发送至以太坊网络,该交易的data字段包含智能合约的代码(如字节码),该交易的to字段为空。以太坊网络中的各个节点分别通过EVM执行这个交易,并生成对应的合约实例。在节点间通过共识机制达成一致后,上述交易对应的智能合约创建成功,区块链上出现一个与该智能合约对应的合约账户,该合约账户拥有一个特定的合约地址,合约代码(即智能合约的代码)或合约代码的哈希值保存在该合约账户中,该合约代码用于控制相应的智能合约的行为。
在调用阶段,用户(可以与部署智能合约的用户相同或不同)将一个用于调用智能合约的交易发送到以太坊网络,该交易的from字段是该用户对应的外部账户的地址,to字段是所需调用的智能合约的合约地址,data字段包含调用智能合约的方法和入参数据。在节点间通过共识机制达成一致后,上述交易声明调用的智能合约以规定的方式在以太坊网络的每个节点上独立执行,所有执行记录和数据都保存在区块链上,所以当交易完成后,区块链上就保存了无法篡改、不会丢失的交易凭证。
如果隐私计算平台通过运行智能合约完成KYC校验,由于相关技术中区块链网络上的智能合约只有在被合约调用方发起对其的调用的情况下才会被执行,即相关技术中均是通过交易来触发区块链节点执行智能合约的,区块链节点无法主动启动对智能合约的执行。然而,在实际应用中,对于KYC的校验有很多,不可能针对每个用户都通过交易来触发智能合约进行校验。而且,也是比较浪费资源的。较优的解决办法是,定时对多个用户的用户信息进行校验,例如每天早上的10点,或者晚上的10点。因此,就出现了定时启动智能合约的需求。例如,区块链网络中的区块链节点可主动地定时启动智能合约,从而通过定时主动执行智能合约来完成定时任务。为此,说明书旨在提供一种通过区块链平安台定时启动智能合约,以进行KYC校验的方法,以满足主动启动智能合约的需求。
图2为本说明书一实施例中的一种数据验证方法的流程示意图。所述方法应用于隐私计算单元,其中,隐私计算单元可以是部署于区块链平台上的节上的,也可以是部署于区块链平台下的节点。其中,无论隐私计算单元是部署于链上还是链下,都可以通过链上的定时启动逻辑的启动隐私计算单元中的智能合约。
如图2所示,该流程可以包括以下步骤:
步骤210:接收区块链平台基于链代码中定义的定时启动逻辑发送的触发指令。
其中,所述定时启动逻辑用于确定目标智能合约的启动时刻,并在当前时刻到达所述启动时刻的情况下,启动所述目标智能合约。
在本实施例中,在构建区块链网络时,可在节点设备中配置区块链网络的链代码,使得该节点设备通过运行链代码来作为区块链网络中的区块链节点。为了使得区块链节点可以主动启动部署于区块链网络上的智能合约,而无需通过响应接收到的用于调用智能合约的区块链交易来执行智能合约,可预先在区块链网络的链代码中定义定时启动逻辑,那么区块链节点在执行链代码时,可通过该定时启动逻辑来完成上述主动定时启动智能合约的操作。
具体而言,定时启动逻辑可用于确定目标智能合约的启动时刻,并在当前时刻到达该启动时刻的情况下,启动目标智能合约。其中,目标智能合约可理解为区块链节点可主动定时启动的智能合约,该智能合约中定义有用于完成定时任务的合约代码。比如,该定时任务可以是定时汇款、定时向指定用户发放虚拟权益、定时提醒等操作。以定时转账为例,可在目标智能合约的合约代码中定义汇出方区块链账户的账户地址、汇入方区块链账户的账户地址以及每次汇款的汇款额。需要说明的是,目标智能合约仍可通过上述相关技术中的方式来部署至区块链网络。
可见,由区块链节点主动地定时启动智能合约来完成定时任务,使得定时任务的发起方无需定时向区块链网络提交区块链交易来调用智能合约。一方面,区块链节点无需接收调用该智能合约的区块链交易,可减少区块链节点处理调用目标智能合约的区块链交易的相关操作(比如,共识、防重放检查、防双花检查等),不仅可降低区块链节点的资源消耗,还可提高完成定时任务的效率。另一方面,区块链网络自动启动智能合约来完成定时任务,可简化定时任务的发起方的操作,有利于提升用户体验。
在本实施例中,由区块链节点运行链代码来确定需要主动定时启动的智能合约,也即目标智能合约。
在一种情况下,可将目标智能合约的信息记录在链代码中,即在开发链代码时将目标智能合约的信息写入链代码中。比如,可将目标智能合约的合约地址写入链代码中。基于链代码中记录有目标智能合约的信息,区块链节点可通过运行链代码来确定出目标智能合约。通过将目标智能合约的信息记录在链代码中,可有效防止目标智能合约的信息被恶意篡改。
在另一种情况下,可通过特定的预设区块链账户来统一记录目标智能合约(可存在多个)的信息,并将该预设区块链账户的信息记录于链代码中,即在开发链代码时将预设区块链账户的信息写入链代码中。比如,可将目标智能合约的合约地址记录于预设区块链账户中,并将预设区块链账户的账户地址写入链代码中。基于链代码中记录有预设区块链账户的信息,区块链节点可通过运行链代码来确定出该区块链账户,从而从该区块链账户中读取目标智能合约的合约地址。通过上述由区块链账户来记录目标智能合约的方式,可便于对需要主动定时启动的智能合约的列表进行更新,使得控制区块链网络完成定时任务更为灵活。
具体而言,可向区块链网络提交用于对上述预设区块链账户中记录的目标智能合约的信息进行更新的信息更新交易,该信息更新交易中包含合约更新信息(比如更新需主动定时启动的智能合约的合约地址)。那么,区块链网络中的区块链节点在接收到该信息更新交易后,可响应于该信息更新交易,根据该信息更新交易中包含的合约更新信息,对预设区块链账户中记录的目标智能合约的信息进行更新。
在本实施例中,对于记录目标智能合约的启动时刻的方式,同样可参考上述记录目标智能合约的信息的方式。也即,由区块链节点运行链代码来确定目标智能合约的启动时刻,下面进行详细描述。
在一种情况下,可将目标智能合约的启动时刻记录在链代码中,即在开发链代码时将目标智能合约的启动时刻写入链代码中。基于链代码中记录有目标智能合约的启动时刻,区块链节点可通过运行链代码来确定出目标智能合约的启动时刻,进而在当前时刻到达启动时刻的情况下,启动目标智能合约。通过将目标智能合约的启动时刻记录在链代码中,可有效防止目标智能合约的启动时刻被恶意篡改。
在另一种情况下,可通过特定的预设区块链账户来记录启动时刻,并将该预设区块链账户的信息记录于链代码中,即在开发链代码时将预设区块链账户的信息写入链代码中。基于链代码中记录有预设区块链账户的信息,区块链节点可通过运行链代码来确定出该区块链账户,从而从该区块链账户中读取目标智能合约的启动时刻。通过上述由区块链账户来记录启动时刻的方式,可便于对需要主动定时启动的智能合约的启动时刻进行更新,使得控制区块链网络完成定时任务更为灵活。
具体而言,可向区块链网络提交用于对上述预设区块链账户中记录的启动时刻进行更新的时刻更新交易,该时刻更新交易中包含时刻更新信息(比如,用于指示如何对启动时刻进行更新的内容)。那么,区块链网络中的区块链节点在接收到该时刻更新交易后,可响应于该时刻更新交易,根据该时刻更新交易中包含的合约更新信息,对预设区块链账户中记录的目标智能合约的启动时刻进行更新。
进一步的,为了防止区块链账户中目标智能合约的启动时刻被恶意篡改,可对上述更新启动时刻的操作实施权限管理。比如,可在该预设区块链账户中存储用于实施权限管理的依据。例如,该依据可以白名单、黑名单等形式存储于预设区块链账户中。举例而言,可在白名单中记录区块链网络的管理员的账户地址。那么,区块链节点在接收到时刻更新交易后,可先读取该时刻更新交易to字段中记录的账户地址(即提交该时刻更新交易的用户的账户地址),然后确定预设区块链账户中白名单是否记录有该账户地址;若存在,则进一步执行上述更新操作,否则禁止执行上述更新操作。
需要说明的是,在区块链网络中,区块链账户可以包括外部账户和合约账户等。外部账户通常为用户(个人或机构)所有,而合约账户则对应于部署在区块链中的智能合约。各类账户的结构都类似,例如可以包含Nonce字段、Balance字段、Code字段和Storage字段等。每个账户的Nonce字段的取值从0开始,且Nonce字段的取值随相应账户所发起的交易而依次递增,使得该账户发起的每一交易所含Nonce取值均不相同,从而可避免重放攻击。Balance字段用于存放余额。Code字段用于存放智能合约的代码,因而外部账户的Code字段通常为空。Storage字段用于存放账户的存储内容。因此,上述目标智能合约的信息、权限管理的依据和启动时刻等数据,均可通过外部账户或者合约账户来记录和维护。
在一种情况下,可在区块链网络中预先部署一智能合约,该智能合约对应的合约账户用于记录和维护目标智能合约的信息。比如,可将目标智能合约的信息存放在合约账户的Storage字段中。在另一种情况下,可在区块链网络中创建一外部账户,该外部账户用于记录和维护目标智能合约的信息。比如,可将目标智能合约的信息存放在该外部账户的Storage字段中。当然,本说明书并不对合约账户和合约账户存放目标智能合约的信息的字段进行限制。比如,还可采用其他任意字段、增加字段、改进字段的方式来存放目标智能合约的信息,本说明书并不对此进行限制。
需要说明的是,上述记录目标智能合约的信息的预设区块链账户,和记录启动时刻的预设区块链账户可以为同一区块链账户,也可以是不同的区块链账户,本说明书并不对此进行限制。
在本实施例中,区块链节点通过运行链代码中定义的定时启动逻辑来完成主动定时启动目标智能合约的过程。
如果隐私计算单元为链上部署,即智能合约为链上部署,那么可以通过在链代码上直接注明目标智能合约的信息,因此,在运行链代码中定义的定时启动逻辑时,可以根据记录的目标智能合约的信息,去寻找目标智能合约的合约代码,从而执行该合约代码,即触发目标智能合约。如果隐私计算单元为链下部署的时,可以采用预言机机制将运行目标智能合约的触发指令转发至隐私计算单元。
步骤220:基于所述触发指令,对用户基础数据进行验证处理,得到验证结果;所述用户基础数据为对第一机构发送的第一加密数据解密后得到的,所述用户基础数据为基于第二机构发送的数据共享请求中包含的用户ID获取的用户基础数据。
需要说明的是,第一机构可以指代销机构,第二机构可以指金融机构。
隐私计算单元可以采用智能合约对用户基础数据进行KYC验证,其中的用户基数数据可以是预先存储的,预先储存的是加密的用户基础数据,即第一加密数据,由第一机构发送至隐私计算单元。其中,触发第一机构发送第一加密数据,可以是由第二机构发送的数据共享请求,其中,数据共享请求中包含了需要获取的KYC验证机构的用户ID,该数据共享请求可以直接发送至第一机构,也可以通过隐私计算单元进行传送,两种情况下,数据共享请求在进行传输的过程中可以对用户ID进行加密。
其中,用户ID可以是代销机构发送至金融机构,具体的,代销机构接收用户的基础数据,并将所述用户的ID发送至金融机构。
用户通过代销机构购买金融机构的金融产品,代销机构可以要求用户提供基础数据以用于KYC核验。这样的用户可以是个人用户,也可以是企业用户之类。对于个人用户,这些基础数据可以包括个人的姓名、性别、国籍、证件类型、证件号码、年龄、职业、手机号码、联系地址等信息中的部分或者全部。对于企业用户,这些基础数据可以包括企业的名称、营业执照编号、营业场所地址、法定代表人的姓名、证件类型、证件号码和有效期限等信息中的部分或者全部。这些信息大多是比较敏感的,不希望输出到代销机构之外。
用户ID可以是用户在代销机构注册的账号,或者是用户在代销机构发起购买操作时由代销机构的系统为该用户分配的账号。这类账号例如可以是一串字符。用户ID应当可以唯一的标识一位用户。对应字段如上所述的个人用户或企业用户的信息。
对于个人用户来说,如果证件类型统一采用身份证的话,用户ID也可以是身份证号码。但是身份证号码实际上也是属于个人的隐私数据,因此,考虑到避免泄露个人隐私数据,可以对身份证号码进行hash处理。由于hash计算具有单向的特点和隐匿原始信息的特点,并且好的hash函数具有防碰撞能力,即不同的输入得到的hash值极大概率也不同,因此可以采用hash计算结果(或者称摘要值)作为用户ID。手机号码也是相同的原理。
类似的,还可以是对一组用户的数据顺序拼接后进行hash计算,得到的摘要值作为用户ID,例如hash(姓名+证件类型+证件号码)所得到的摘要值作为用户ID,其中的“+”可以表示前后字符的顺序拼接。反洗钱KYC中对于数据的安全性一般具有较高的要求,为了进一步加强数据安全防护,还可以在hash计算中采取加盐操作,例如hash(姓名+证件类型+证件号码+salt),salt为按照预定规则生成的一个值。
代销机构可以是在用户注册时提示用户提供基础数据,也可以是用户在代销机构平台上发起购买金融产品时要求用户提供基础数据。
代销机构可以将用户ID发送至金融机构,例如,可以是将金融产品的订单信息传送至金融机构的过程中将用户ID发送至金融机构。具体的,代销机构可以直接将用户ID发送至所述金融机构,例如将经过hash处理得到的摘要值发送至金融机构,也可以为了提升数据传输的安全性而将所述的用户ID加密后发送至所述金融机构,例如将作为用户ID的身份证号码/手机号码之类经过加密后发送至金融机构,后者将上述经过hash处理得到的摘要值经过加密后发送至金融机构。对于加密后发送至金融机构,可以由代销机构采用对称加密或非对称加密的方式将所述用户ID加密后发送至所述金融机构。如果采用对称加密,即加密秘钥和解密秘钥是同一把秘钥的情形,可以由代销机构和金融机构之间通过秘钥协商过程得到这把秘钥;对于采用非对称加密,即加密秘钥和解密秘钥是两把不同但是相对应的秘钥的情形,其中一把为公钥,用于加密,另一把为私钥,用于解密,一般代销机构可以采用金融机构的公钥将所述核验结果中的用户ID加密后发送至所述金融机构,进而由金融机构采用对应的私钥解密,恢复得到用户ID。
为了进一步提升数据传输的安全性,即尽管传输的是加密数据,也不希望错误的接收方接收到,因此,代销机构在将用户ID发送至所述金融机构前,还可以先确认对方——金融机构的身份。确认对方身份的方式有若干种,这里列举一种采用结合了区块链的分布式数字身份技术的实现方式。区块链可以提供去中心化(或弱中心化)的、不可篡改(或难以篡改)的、可信的分布式账本,并可以提供安全、稳定、透明、可审计且高效的记录交易以及数据信息交互的方式。区块链网络可以包括多个节点。一般来说区块链的一个或多个节点归属于一个参与方。这里称多个参与方构成的区块链网络为区块链平台。借助区块链平台,可以帮助验证金融机构的身份。
为了使用区块链平台提供的分布式数字身份服务,金融机构可以将自身的身份在区块链平台中登记。例如,金融机构可以创建一对公钥和私钥,私钥保密存储,并可以创建一个分布式数字身份(也称为去中心化标识符,Decentralized Identitfiers,DID)。可以由金融机构自己创建DID,也可以请求分布式身份服务(Decentralized IdentityService,DIS)系统来创建DID。DIS是一种基于区块链的身份管理方案,可以提供数字身份的创建、验证和管理等功能,从而实现规范化地管理和保护实体数据,同时保证信息流转的真实性和效率,并可以解决跨机构的身份认证和数据合作等难题。DIS系统可以与区块链平台相连。通过DIS系统可以为金融机构创建一个DID,并将该DID和所述公钥发送至区块链平台保存,还将该创建的DID返回给金融机构。所述公钥可以包含到DIDdoc中,所述DIDdoc可以存储于区块链平台中。DIS为金融机构创建DID,可以基于金融机构发来的公钥创建,例如采用Hash函数对所述金融机构的公钥进行计算后创建,也可以根据金融机构的其它信息(可以包括所述公钥或不包括所述公钥)创建。后者可能需要金融机构提供一些公钥之外的信息。之后,金融机构可以提供验证功能,从而向其它方证明自身是金融机构。具体的一个例子可以结合图3所示,并如图4所示,包括:
S410:金融机构向DIS发起DID创建请求,所述请求中包括所述金融机构的公钥。
S420:响应于所述创建请求,所述DIS为所述金融机构创建DID及对应的DIDdoc,并将该DID及对应的DIDdoc发送至区块链平台保存,所述DIDdoc中包括所述金融机构的公钥。
S430:区块链平台接收代销机构发来的验证请求,所述验证请求中包括所述金融机构的DID;区块链平台从自身存储中取出所述DID对应的DIDdoc并返回至所述代销机构。
S440:所述代销机构生成一个字符串,并将所述字符串发送至所述金融机构。
S450:所述金融机构用其私钥对所述字符串签名并返回至所述代销机构。
S460:所述代销机构用前述接收到的所述DIDdoc中的公钥验证所述返回的签名是否正确,如果正确,则确认所述金融机构的身份。
代销机构通过上述方式确认金融机构的身份后,如前所述,可以将用户的ID发送至金融机构。
此外,代销机构获得用户的基础数据后,还可以基于该基础数据进行KYC核验,得到核验结果,所述核验结果例如可以包括用户ID及对应的基础数据。例如对于个人用户,核验具体例如包括:
姓名格式是否正确,如是否是由2-5位的汉字组成;
性别格式是否正确,如是否是男或女;
手机号码是否正确,如是否是11位数字,且开头是13、15、17、18、19等字段;
联系地址是否正确,如是否是一串包含省/自治区/直辖市直到街道门牌号码的文字;
等。
从而,可以得到KYC的核验结果。
金融机构发送数据共享请求至代销机构,所述数据共享请求中包含指明了期望获得共享的用户基础数据所对应的用户ID。
所述金融机构,可以通过隐私计算单元发送数据共享请求至代销机构。这样的数据共享请求可以是加密的,从而保障数据传输过程中的安全性。此外,所述金融机构也可以不通过隐私计算单元发送数据共享请求至代销机构,例如所述金融机构直接发送数据共享请求至代销机构。具体的,例如,所述金融机构可以用所述代销机构的公钥对待传输的数据共享请求中的所述用户ID加密,这样,只能由代销机构解密得到数据共享请求中的用户ID,因为只有所述代销机构具有与所述公钥对应的私钥。所述金融机构也可以对发送的数据共享请求用自身的私钥进行签名,相应的,接收者(如这里的代销机构)可以用所述金融机构的公钥对所述签名进行验证,从而接收者可以确认接收的数据共享请求是由所述金融机构发送的,并且接收的内容是完整的,没有被篡改。类似的,所述金融机构发送数据共享请求至代销机构之前,还可以确认所述代销机构的身份,例如通过类似上述步骤S410~S460的过程来验证,不再赘述。
对于所述金融机构通过隐私计算单元将发送数据共享请求至代销机构的情形,可以是通过发起调用合约的交易的方式发送至所述隐私计算单元,再由所述隐私计算单元发送数据共享请求至代销机构。
区块链技术从以太坊开始支持用户在区块链网络中创建并调用一些复杂的逻辑,这是以太坊相对于比特币技术的最大进步之一。以太坊作为一个可编程区块链的核心是以太坊虚拟机(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的数据,可以是加密的,从而保障数据的隐私。
本申请实施例中,区块链节点可以接收数据共享请求,具体的,可以是区块链节点中的隐私计算单元接收所述数据共享请求,所述数据共享请求中可以包含经过加密的指明期望获得共享的用户基础数据所对应的用户ID。如前所述,区块链节点中的隐私计算单元,例如可以是由区块链节点基于SGX技术创建的可信执行环境TEE,以用于可信并隐秘的执行区块链交易。TEE中可以运行虚拟机,从而通过虚拟机执行合约。这样,对于传入区块链节点的隐私计算单元的调用合约的加密交易,可以由隐私计算单元解密后在隐私计算单元中加载的虚拟机内执行,并可以将执行结果加密输出。SGX中通过远程证明的技术可以证明自身是合法的SGX,并且其中所执行的程序(如虚拟机代码)与预期是一致的。所调用的合约,如前所述,可以事先部署于区块链上。部署的合约,通过其中代码的设置,在执行的过程中可以发起对区块链外的数据的访问请求。具体的,数据共享请求可以由区块链节点中的TEE通过预言机(Oracle)机制传输至链下代销机构。这样,所述金融机构可以通过发起调用合约的交易的方式发送所述数据共享请求至所述隐私计算单元,再由所述隐私计算单元发送数据共享请求至所述代销机构。
每个区块链节点都通过虚拟机执行智能合约的创建和调用,会耗费相对较多的资源。相对于在区块链网络的各节点上采用TEE技术保护隐私,还可以在区块链网络之外(或称为“链下”)部署隐私计算节点(即链下隐私计算节点,也属于本发明实施例中所称的“隐私计算单元”),从而将原本需要在所有区块链节点上执行的计算操作转移至链下隐私计算节点处执行。基于可验证计算(Verifiable Computation)技术可以证明上述的计算结果确实是在可信执行环境内按照预期执行,从而在确保可靠性的同时,降低链上的资源消耗。
链下隐私计算节点上创建的链下TEE,与前文所述的区块链节点上创建的链上TEE相似,可以都是基于CPU硬件实现的与外部完全隔离的可信执行环境。链下隐私计算节点创建链下TEE后,可以通过该链下TEE实现对链下合约的部署操作以及部署后的调用合约的操作,并确保操作过程中的数据安全。
所述隐私计算节点在被使用前,可以向使用者证明自身是可信的。证明自身可信的过程可能涉及远程证明报告。链上和链下的隐私计算节点证明自身可信的过程类似。以链下为例,远程证明报告产生于针对链下隐私计算节点上的链下TEE的远程证明过程。远程证明报告可以由权威的认证服务器对链下隐私计算节点产生的自荐信息进行验证后生成,该自荐信息与链下隐私计算节点上创建的链下TEE相关。链下隐私计算节点通过产生与链下TEE相关的自荐信息,并由所述权威认证服务器对该自荐信息进行验证后产生远程证明报告,使得远程证明报告可以用于表明链下隐私计算节点上的链下TEE可信任。
例如,金融机构通过区块链下的隐私计算单元发送所述数据共享请求至代销机构,可以首先验证所述隐私计算单元是否可信。具体的,代销机构和金融机构可以向链下隐私计算节点发起挑战,并接收链下隐私计算节点返回的远程证明报告。例如,所述金融机构可以向链下隐私计算节点发起链下挑战,即发起挑战的过程可以与区块链网络无关,这样可以跳过区块链节点之间的共识过程,并减少链上链下的交互操作,使得所述金融机构向链下隐私计算节点的挑战具有更高的操作效率。再例如,所述金融机构可以采用链上挑战的形式,比如所述金融机构可以向区块链节点提交挑战交易,该挑战交易所含的挑战信息可由区块链节点通过预言机机制传输至链下隐私计算节点,且该挑战信息用于向链下隐私计算节点发起挑战。无论上述链上挑战还是链下挑战的形式,挑战者(如所述金融机构)在获取远程证明报告后,可以根据权威认证服务器的公钥对该远程证明报告的签名进行验证,如果验证通过则可以确认链下隐私计算节点是可信的。
链下隐私计算平台可以在TEE中存储一对公私钥。公钥可以在远程证明过程之类的过程中发送至对方,而私钥则妥善保管在TEE中。所述金融机构在根据所述远程证明报告确定所述链下隐私计算节点可信的情况下,可以将链下合约的字节码加密传输至所述链下隐私计算节点,由所述链下隐私计算节点在所述链下可信执行环境中解密得到所述字节码并部署。上述加密,即可以采用所述公钥加密。上述过程中,链下隐私计算节点部署合约后,可以存储该合约,并计算该合约的hash值。该合约的hash值可以反馈至合约的部署方,部署方对于部署的合约可以在本地产生一个hash值,从而部署方可以比对部署的合约的hash值与本地的合约hash值是否相同,如果相同则说明链下隐私计算节点上部署的合约是自己部署的合约。所述链下隐私计算节点传出的内容,可以用所述TEE内保存的私钥来签名,从而证明是由该TEE执行的结果。实际上,一个TEE内可以部署有多个智能合约,TEE可以为每个智能合约生成一个单独的公私钥对,从而,每个部署的智能合约可以具有一个ID(如该智能合约对应的公钥或基于该公钥生成的字符串),且每个智能合约执行的结果也都可以用该智能合约对应的在TEE妥善保管的私钥来签名,这样,可以证明一个结果是由一个链下隐私计算节点中的特定的合约执行的结果。这样,不同合约的执行结果可以由不同的私钥来签名,只有对应的公钥才能验证该签名,或者说不能由对应公钥验证签名的无法证明该结果是对应合约的执行结果,因此相当于通过公私钥对为链下隐私计算节点中部署的合约赋予了身份。上述以链下隐私合约为例,链上隐私合约也是类似的,也可以具有身份,即具有公私钥对。
后续,链下隐私计算节点可以提供对部署的所述链下合约的调用。具体的,链下部署的合约被调用时,所述链下可信执行环境中可以加载所述部署的合约的字节码并执行,且执行结果可反馈至所述合约的调用者,或者反馈至合约中指定的接收者或调用该合约的交易中指定的接收者,再或者通过所述预言机机制反馈至所述区块链节点。通过所述预言机机制反馈至所述区块链节点的,可以经由链上合约的设置,进一步反馈至链上合约中指定的接收者或调用链上合约的交易中指定的接收者。
此外,所述链下隐私计算节点的执行结果,可以用秘钥进行加密后输出。例如采用非对称加密方式,加密所使用的公钥,可以是在上述挑战过程中协商的公私钥对中的公钥,也可以是挑战者通过前述的DIS服务生成之后发送至链下隐私计算节点的。这里的挑战者可以是本申请实施例中的金融机构,也可以是所述代销机构。从而,通过上述方式,可以保障出、入链下隐私计算节点的都是经过加密的,以确保数据传输过程中的安全。类似的,进入链下隐私计算节点的数据,可以由发送方用自身的秘钥签名。后续类似环节中的原理也相同。
这样,通过所述隐私计算单元部署的第二智能合约,可以接收所述金融机构发来的调用请求,并响应该调用请求,发送数据共享请求至所述代销机构。所述数据共享请求由所述隐私计算单元/第二智能合约签名,相应的,所述代销机构可以采用所述隐私计算单元/第二智能合约的公钥验证所述签名。
代销机构可以在本地查找所述发来的数据共享请求中的用户ID对应的用户基础数据。进而,隐私计算单元可以从所述代销机构获取所述用户ID对应的经过加密的所述用户基础数据并解密。
区块链平台发出触发指令可以调用第一智能合约,来执行对用户基础数据的验证处理。其中,调用指令中可以注明用户基础数据的存储地址,存储地址可以是链上的地址,也可以是链下的地址。当执行第一智能合约的时候,可以从该存储位置中获取加密后的用户基础数据。当用户基础数据存储在链下时,可以是隐私计算单元的某个安全的地址。另外,当用户基础数据存储在链下时,还可以通过预言机机制获取第二机构发送的包含用户ID的数据共享请求和第一机构发送的第一加密数据。具体的,可以从代销机构和金融机构分别去获取数据共享请求和用户基础数据。
所述用户基础数据可以是经过加密的。如前所述,加密秘钥可以采用所述第一智能合约的公钥。进而,所述隐私计算单元可以获取所述用户ID对应的经过加密的所述用户基础数据并解密,从而基于获取的参数执行所述第一智能合约,对解密的所述用户基础数据进行匹配。如前所述,传入的用户ID也可以是加密的,相应的,第一智能合约也可以对其解密得到用户ID的明文。
为了提升数据传输过程中的安全性,区块链平台在向隐私计算单元发起调用部署的第一智能合约的交易前,可以对所述隐私计算单元发起挑战,从而可以确认所述隐私计算单元的身份是可信的。或者,第一智能合约也可以通过前述的DIS系统创建一个DID,DIS系统可以将该DID和所述第一智能合约的公钥发送至区块链平台保存。多数公钥可以包含到DIDdoc中,所述DIDdoc可以存储于区块链平台中。DIS为金融机构创建DID,可以基于第一智能合约发来的公钥创建,例如采用Hash函数对所述金融机构的公钥进行计算后创建,也可以根据第一智能合约的其它信息(可以包括所述公钥或不包括所述公钥)创建。后者可能需要第一智能合约提供一些公钥之外的信息。之后,第一智能合约可以提供验证功能,从而向其它方证明自身是第一智能合约。具体过程与前述类似,不再赘述。另外,可以理解的,第一智能合约与第二智能合约可以是同一个合约。这样,第一智能合约和第二智能合约的公私钥对可以相同,也可以在所述隐私计算单元仅包括该一个智能合约的情况下即等同于该隐私计算单元的公私钥对。
所述第一智能合约获得所述用户的基础数据后,可以执行第一智能合约,以基于该基础数据进行KYC核验,例如对解密的所述用户数据进行匹配,从而得到核验结果。例如对于个人用户,核验具体例如:
姓名格式是否正确,如是否是由2-5位的汉字组成;
性别格式是否正确,如是否是男或女;
手机号码是否正确,如是否是11位数字,且开头是13、15、17、18、19等字段;
联系地址是否正确,如是否是一串包含省/自治区/直辖市直到街道门牌号码的文字;
等。
从而,可以得到KYC的验证结果。所述验证结果具体例如:{用户ID,KYC结果}。其中KYC结果例如为通过或不通过。
另外,上述验证过程只是对用户基础数据的格式进行了验证,即数据格式是否匹配,另外,还可以对用户基础数据的真实性进行验证。基于图5的结构,可以采用以下方法进行真实性验证:
获取可信机构发送的对所述用户ID对应的可信数据进行加密后的第二加密数据;
采用所述可信机构的公钥对所述第二加密数据进行解密,得到所述可信数据;
基于所述可信数据对所述用户基础信息进行验证。
在实际应用中,可信机构可以是公安机关,公安机关存储了每个公民的身份信息,如姓名、性别、民族、身份证号码、地址和出生日期。这些身份信息可以认为是真实的,可以称为可信数据。因此,在用户基础数据符合相应的格式规定的情况下,可以基于可信数据对代销机构提交的用户基础数据进行真实性核验。
具体的,可以由隐私计算单元向可信机构发起可信数据获取请求,所述可信数据获取请求可以包含需要获取的可信数据对应的用户ID。然后,可信机构为了验证隐私计算单元的身份,可以发起链上或者链下挑战,具体详见,代销机构或金融机构向隐私计算单元发起挑战的具体步骤,不再赘述。另外,隐私计算单元还可以向可信机构主动证明自己的身份,例如,在可信数据获取请求中包括隐私计算单元的自荐信息和权威机构的验证信息,可信性机构通过上述信息判断隐私计算单元是否可信,如果可信,则将用户ID对应的可信数据发送至隐私计算单元。另外,还可以采用第三智能合约获取可信机构发送的对所述用户ID对应的可信数据进行加密后的第二加密数据。
第三智能合约也可以通过前述的DIS系统创建一个DID,DIS系统可以将该DID和所述第三智能合约的公钥发送至区块链平台保存。多数公钥可以包含到DIDdoc中,所述DIDdoc可以存储于区块链平台中。DIS为可信机构创建DID,可以基于第三智能合约发来的公钥创建,例如采用Hash函数对所述可信机构的公钥进行计算后创建,也可以根据第三智能合约的其它信息(可以包括所述公钥或不包括所述公钥)创建。后者可能需要第三智能合约提供一些公钥之外的信息。之后,第三智能合约可以提供验证功能,从而向其它方证明自身是第三智能合约。具体过程与前述类似,不再赘述。另外,可以理解的,第三智能合约与第二智能合约或第一智能合约可以是同一个合约。这样,第三智能合约和第二智能合约或第一智能合约的公私钥对可以相同,也可以在所述隐私计算单元仅包括该一个智能合约的情况下即等同于该隐私计算单元的公私钥对。
步骤230:将所述验证结果发送至所述第二机构。
如前所述,匹配结果例如为{用户ID,KYC结果},其中KYC结果例如为通过或不通过。所述隐私计算平台将所述验证结果发送至所述金融机构,包括直接发送至所述金融机构,此外也可以包括发送至一个指定的存储服务介质中,后续由所述金融机构从该存储服务介质中拉取。
此外,隐私计算单元还可以将所述匹配结果的证明发送至区块链。所述匹配结果的证明,可以包括由所述隐私计算单元签名的可验证声明(Verifiable Claim,VC)。VC也是DID中的一项重要应用。所述VC可以存储于区块链平台。例如,VC的内容包括某个/某些用户ID对应的用户基础数据已经过隐私计算单元按照预定的规则进行匹配,并由所述隐私计算单元签名;或者包括所述匹配结果的hash值,并由所述隐私计算单元签名。经过类似S410~S430的过程,隐私计算单元可以将自身的DIDdoc存储于区块链上。
第三机构,例如监管机构在检查所述金融机构对用户的KYC的验证结果时,除了从金融机构获得所述匹配结果,还可以通过区块链来验证VC。具体的,监管机构可以从区块链上获取所述隐私计算单元的DIDdoc中的公钥,验证所述金融机构的所述用户ID的匹配结果时,还采用所述隐私计算单元的公钥验证所述VC的签名,从而确认所述VC是由所述隐私计算单元颁发的,且是完整的,即没有经过篡改。这样,基于区块链平台的不可篡改特性以及签名机构的可信,可以提升对金融机构提供的KYC验证结果的真实性认可。所述签名机构的可信,即所述隐私计算单元/第一智能合约的可信,可以通过审计所述隐私计算单元的身份和其内部署的合约代码来实现。审计所述隐私计算单元的身份,具体例如前述所述的发起挑战的过程,可以验证其身份可信。
应当理解,本说明书一个或多个实施例所述的方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。
图2中的方法,通过上述实施例中的方案,可以为本来没有能力做反洗钱工作的机构赋能,使得这样的机构能够具有购买其金融产品的用户的KYC结果,从而满足规定的反洗钱审核义务,提升行业整体的KYC核验能力。而且,由区块链节点主动地定时启动智能合约来完成定时任务,使得定时任务的发起方无需定时向区块链网络提交区块链交易来调用智能合约。一方面,区块链节点无需接收调用该智能合约的区块链交易,可减少区块链节点处理调用目标智能合约的区块链交易的相关操作(比如,共识、防重放检查、防双花检查等),不仅可降低区块链节点的资源消耗,还可提高完成定时任务的效率。另一方面,区块链网络自动启动智能合约来完成定时任务,可简化定时任务的发起方的操作,有利于提升用户体验。
另一个实施例中,提供了一种通过链代码定时启动智能合约的方法。如图6所示,所示方法包括:
步骤610:运行链代码中定义的定时启动逻辑。
步骤620:基于所述定时启动逻辑,判断当前时刻是否到达定时启动时刻,得到第一判断结果。
步骤630:若所述第一判断结果为是,发送用于启动第一智能合约的指令,所述第一智能合约用于对加密的用户基础数据进行验证处理,并将验证结果发送至设定的地址。
在本实施例中,在构建区块链网络时,可在节点设备中配置区块链网络的链代码,使得该节点设备通过运行链代码来作为区块链网络中的区块链节点。为了使得区块链节点可以主动启动部署于区块链网络上的智能合约,而无需通过响应接收到的用于调用智能合约的区块链交易来执行智能合约,可预先在区块链网络的链代码中定义定时启动逻辑,那么区块链节点在执行链代码时,可通过该定时启动逻辑来完成上述主动定时启动智能合约的操作。
具体而言,定时启动逻辑可用于确定目标智能合约的启动时刻,并在当前时刻到达该启动时刻的情况下,启动目标智能合约。其中,目标智能合约可理解为区块链节点可主动定时启动的智能合约,该智能合约中定义有用于完成定时任务的合约代码。需要说明的是,目标智能合约仍可通过上述相关技术中的方式来部署至区块链网络。
可见,由区块链节点主动地定时启动智能合约来完成定时任务,使得定时任务的发起方无需定时向区块链网络提交区块链交易来调用智能合约。一方面,区块链节点无需接收调用该智能合约的区块链交易,可减少区块链节点处理调用目标智能合约的区块链交易的相关操作(比如,共识、防重放检查、防双花检查等),不仅可降低区块链节点的资源消耗,还可提高完成定时任务的效率。另一方面,区块链网络自动启动智能合约来完成定时任务,可简化定时任务的发起方的操作,有利于提升用户体验。
在本实施例中,由区块链节点运行链代码来确定需要主动定时启动的智能合约,也即目标智能合约。
在一种情况下,可将目标智能合约的信息记录在链代码中,即在开发链代码时将目标智能合约的信息写入链代码中。比如,可将目标智能合约的合约地址写入链代码中。基于链代码中记录有目标智能合约的信息,区块链节点可通过运行链代码来确定出目标智能合约。通过将目标智能合约的信息记录在链代码中,可有效防止目标智能合约的信息被恶意篡改。
在另一种情况下,可通过特定的预设区块链账户来统一记录目标智能合约(可存在多个)的信息,并将该预设区块链账户的信息记录于链代码中,即在开发链代码时将预设区块链账户的信息写入链代码中。比如,可将目标智能合约的合约地址记录于预设区块链账户中,并将预设区块链账户的账户地址写入链代码中。基于链代码中记录有预设区块链账户的信息,区块链节点可通过运行链代码来确定出该区块链账户,从而从该区块链账户中读取目标智能合约的合约地址。通过上述由区块链账户来记录目标智能合约的方式,可便于对需要主动定时启动的智能合约的列表进行更新,使得控制区块链网络完成定时任务更为灵活。
图6的方法,由区块链节点主动地定时启动智能合约来完成定时任务,使得定时任务的发起方无需定时向区块链网络提交区块链交易来调用智能合约。一方面,区块链节点无需接收调用该智能合约的区块链交易,可减少区块链节点处理调用目标智能合约的区块链交易的相关操作(比如,共识、防重放检查、防双花检查等),不仅可降低区块链节点的资源消耗,还可提高完成定时任务的效率。另一方面,区块链网络自动启动智能合约来完成定时任务,可简化定时任务的发起方的操作,有利于提升用户体验。
具体的,发送用于启动第一智能合约的指令,具体可以包括:
获取第一智能合约的合约信息;
基于所述合约信息判断所述第一智能合约是否为链上合约,得到第二判断结果;
若所述第二判断结果为是,发送用于启动部署于区块链上的所述第一智能合约的指令。
若所述第二判断结果为否,发送启动部署于链下节点的所述第一智能合约的指令,其中,所述指令通过预言机机制调用部署于所述链下节点中的所述第一智能合约。
在判断是否为链上合约的时候,可以根据第一智能合约的信息去存储第一智能合约的预设区块上或者预设的智能合约中获取合约代码,如果如何获取合约代码,则说明第一智能合约为链下合约。
具体的,在区块链网络中,区块链账户可以包括外部账户和合约账户等。外部账户通常为用户(个人或机构)所有,而合约账户则对应于部署在区块链中的智能合约。各类账户的结构都类似,例如可以包含Nonce字段、Balance字段、Code字段和Storage字段等。每个账户的Nonce字段的取值从0开始,且Nonce字段的取值随相应账户所发起的交易而依次递增,使得该账户发起的每一交易所含Nonce取值均不相同,从而可避免重放攻击。Balance字段用于存放余额。Storage字段用于存放账户的存储内容。Code字段用于存放智能合约的代码,因而外部账户的Code字段通常为空。即,如果找不到第一智能合约的代码就说明是链下合约。
在本实施例中,第一智能合约可以部署在区块链网络上,即属于链上合约;也可部署在区别于区块链节点的链下节点(不属于区块链网络,为链下设备)中,即属于链下合约。下面分别针对上述两种情况下启动目标智能合约的过程进行说明。
针对第一智能合约为链上合约的情况,区块链节点在判断出需要启动目标智能合约后,可读取目标智能合约的合约代码,从而执行读取到的合约代码。上述过程可参考上述图2所示实施例的相关部分,在此不再赘述。
进一步的,不同于相关技术中由调用智能合约的区块链交易来指示该智能合约需要进行处理的待处理数据,本说明书中启动智能合约的过程中不存在调用目标智能合约的区块链交易,即无需由区块链交易来指示目标智能合约的待处理数据。在一种情况下,目标智能合约的待处理数据为链下数据,因此区块链节点可通过预言机机制来获取链下数据,从而执行合约代码以对获取到的链下数据进行处理。在另一种情况下,目标智能合约的待处理数据为自身的状态数据,因此区块链节点可获取目标智能合约的合约账户中存储的状态数据,从而执行合约代码以对获取到的状态数据进行处理。
针对目标智能合约为链下合约的情况,区块链节点在判断出需要启动第一智能合约后,可通过预言机机制调用部署于链下节点中的第一智能合约,从而指示链下节点执行第一智能合约,并通过预言机机制将执行第一智能合约得到的执行结果反馈至区块链节点。
当定时启动的第一智能合约用于实现相对复杂的逻辑时,由于定时启动的频率相对较高,区块链节点通过虚拟机执行目标智能合约的合约代码的过程会消耗相对较多的计算资源,并且由于区块链网络内的所有节点都需要执行目标智能合约的合约代码,随着节点数量的增加会导致计算资源的消耗量成倍增长。针对上述问题,将需定时启动的第一智能合约部署于链下节点中,可避免需要所有区块链节点均执行目标智能合约的合约代码的情况,区块链节点从链下节点处获取执行结果即可,从而有效降低了链上的资源消耗。
可选的,所述判断当前时刻是否到达定时启动时刻,具体可以包括:
实时监测区块链上生成的新的区块;
当检测到所述区块之后,获取所述区块的时间戳信息;
基于所述时间戳信息确定当前时刻;
判断当前时刻是否到达定时启动时刻。
作为一示例性实施例,可将区块链中产生新区块的时刻(即产生最新区块的时刻)作为依据来判断当前时刻是否到达第一智能合约的启动时刻。具体而言,当区块链产生新区块时,会将产生该区块的时刻作为时间戳记录在该区块的区块头中。那么,每当检测到区块链中产生新区块的情况下,可根据新区块所含的时间戳和启动时刻之间的关系,判断当前时刻是否到达启动时刻。比如,可从新区块的区块头中读取时间戳,进而将读取到的时间戳与启动时刻进行比较,确定两者之间的关系。例如,当时间戳与启动时刻相同时,判断需要启动第一智能合约(理解为判断出当前时刻到达启动时刻)。或者,当时间戳与启动时刻之间的差值在预设时长阈值之内时,判断需要启动目标智能合约。当然,通过将时间戳与启动时刻进行比较以判断当前时刻是否到达启动时刻的具体实现方式,可根据实际情况灵活设定,本说明书并不对此进行限制。需要说明的是,可将上述判断当前时刻是否到达启动时刻的逻辑写入链代码中;例如,写入链代码的定时启动逻辑中。
在本实施例中,区块链节点通过运行定时启动逻辑来执行判断当前时刻是否到达启动时刻的操作,可“实时”进行。具体而言,可配置设置有预设时长的定时器,那么定时启动逻辑可用于启动该定时器,在该定时器超时后即启动第一智能合约,同时重置定时器。这种方案适合每间隔固定时间主动启动第一整智能合约进行KYC验证的方案,如定时器定时为4个小时、12个小时或者24个小时。则,每间隔4个小时、12个小时或者24个小时,启动一次第一智能合约。
在一实施例中,区块链节点可直接获取自身记录的时间来确定当前时刻(与其他区块链节点记录的时间同步),或者从网络获取当前时刻,从而将确定出的当前时刻与启动时刻进行比较,以在当前时刻到达启动时刻时启动链上合约。
在另一实施例中,第一智能合约的启动时刻可以依据区块高度(区块的区块号)来设定。例如,将预设区块高度的区块的生成时刻作为启动时刻,也即在区块链网络生成预设区块高度的区块的情况下,判断到达启动时刻,需启动目标智能合约。其中,该预设区块高度可以具体设定为一个或多个具体数值的区块高度(比如,区块号50、区块号99等),也可以设定满足一定条件的区块高度(比如,100的整数倍、50的整数倍等),本说明书并不对此进行限制。
请参见图7,图7为本说明书一实施例中的一种启动链上合约的方法的流程图。如图7所示,该方法应用于区块链节点,可以包括以下步骤:
步骤710,确定链上合约和启动时刻。
在本实施例中,确定需要主动定时启动的链上合约和启动时刻的具体实现过程,可参考上述图2和图6所示实施例的相关部分,在此不再赘述。
步骤720,判断当前时刻是否到达启动时刻;若到达,则转入步骤730,否则继续执行步骤720。
在本实施例中,每当区块链产生新区块时,可将新区块的时间戳作为依据来判断当前时刻是否到达链上合约的启动时刻。比如,每当检测到区块链中产生新区块的情况下,可从该新区块的区块头中读取时间戳,进而将读取到的时间戳与启动时刻进行比较,确定两者之间的关系。例如,当时间戳与启动时刻相同时,判断需要启动链上合约(理解为判断出当前时刻到达启动时刻)。或者,当时间戳与启动时刻之间的差值在预设时长阈值之内时,判断需要启动链上合约。当然,通过将时间戳与启动时刻进行比较以判断当前时刻是否到达启动时刻的具体实现方式,可根据实际情况灵活设定,本说明书并不对此进行限制
在本实施例中,区块链节点可“实时”执行步骤720。
步骤730,读取链上合约的合约代码。
在本实施例中,由于链上合约部署于区块链网络中,区块链节点直接读取链上合约的合约代码即可。
步骤740,获取待处理数据。
步骤750,执行合约代码以处理待处理数据。
在本实施例中,不同于相关技术中由调用智能合约的区块链交易来指示该智能合约需要进行处理的待处理数据,本说明书中启动链上合约的过程中不存在调用链上合约的区块链交易,即无需由区块链交易来指示链上合约的待处理数据。在一种情况下,链上合约的待处理数据为链下数据,因此区块链节点可通过预言机机制来获取链下数据,从而执行合约代码以对获取到的链下数据进行处理。在另一种情况下,链上合约的待处理数据为自身的状态数据,因此区块链节点可获取链上合约的合约账户中存储的状态数据,从而执行合约代码以对获取到的状态数据进行处理。
基于同样的思路,本说明书实施例还提供了上述方法对应的装置。图8为本说明书一实施例中对应于图2的一种数据验证装置的结构示意图。所述装置应用于隐私计算单元。如图8所示,该装置可以包括:
触发指令接收模块810,用于接收区块链平台基于链代码中定义的定时启动逻辑发送的触发指令;
数据验证模块820,用于基于所述触发指令,对用户基础数据进行验证处理,得到验证结果;所述用户基础数据为对第一机构发送的第一加密数据解密后得到的,所述用户基础数据为基于第二机构发送的数据共享请求中包含的用户ID获取的用户基础数据;
验证结果发送模块830,用于将所述验证结果发送至所述第二机构。
可选的,所述隐私计算单元部署在所述区块链平台上的节点,或者所述隐私计算单元部署在所述区块链平台下的节点。
可选的,所述触发指令被所述区块链平台上的节点通过预言机机制发送至所述区块链平台下的节点的隐私计算单元,用于启动调用部署于所述隐私计算单元的第一智能合约。
可选的,所述触发指令用于启动调用部署于所述区块链平台上的第一智能合约。
可选的,所述第一机构为代销机构,所述第二机构为金融机构。
可选的,所述用户ID可以包括:
用户在所述第一机构注册的账号;或,
用户在所述第一机构发起购买操作时由所述第一机构的系统为该用户分配的账号。
可选的,所述用户ID可以包括:
对所述用户基础数据中的一项或多项信息经hash计算得到的摘要值。
可选的,所述对所述用户基础数据中的一项或多项信息经hash计算得到的摘要值,还包括加盐操作得到的摘要值。
可选的,所述装置还可以包括:
数据获取模块,用于通过预言机机制获取第二机构发送的包含用户ID的数据共享请求和第一机构发送的第一加密数据,所述第一加密数据为经过加密的所述用户ID对应的用户基础数据。
可选的,所述装置还可以包括:
数据共享请求获取模块,用于获取第二机构发送的包含用户ID的数据共享请求;
第一加密数据获取模块,用于基于所述数据共享请求,获取第一机构发送的第一加密数据,所述第一加密数据为经过加密的所述用户ID对应的用户基础数据;
解密模块,用于调用第一智能合约对所述第一加密数据进行解密。
可选的,所述第一加密数据获取模块,具体可以包括:
数据共享请求发送单元,用于调用第二智能合约,将所述数据共享请求发送至第一机构;
用户基础数据获取单元,用于获取所述第一机构发送的经过加密的所述用户ID对应的用户基础数据。
可选的,所述第一加密数据获取模块,还可以包括:
身份证明单元,用于在获取所述第一机构发送的经过加密的所述用户ID对应的用户基础数据之前,向所述第一机构证明所述隐私计算单元的身份。
可选的,所述身份证明单元,具体用于向所述第一机构发送远程证明报告,所述远程证明报告包括所述隐私计算单元的关于TEE描述的自荐信息和权威机构对所述自荐信息的验证信息。
可选的,所述数据共享请求发送单元,具体可以用于:
调用第二智能合约发送利用所述隐私计算单元签名后的所述数据共享请求至所述第一机构;
或者,调用第二智能合约发送利用所述第二智能合约签名后的所述数据共享请求至所述第一机构。
可选的,所述数据共享请求中包含的用户ID由所述第一机构发送至所述第二机构。
可选的,所述数据验证模块820,具体可以用于调用所述第一智能合约,对用户基础数据进行验证处理。
可选的,所述数据验证模块820,具体可以包括:
第二加密数据获取单元,用于获取可信机构发送的对所述用户ID对应的可信数据进行加密后的第二加密数据;
第二加密数据解密单元,用于采用所述可信机构的公钥对所述第二加密数据进行解密,得到所述可信数据;
验证单元,用于基于所述可信数据对所述用户基础信息进行验证。
可选的,所述装置还可以包括:
验证结果的证明发送模块,用于将所述验证结果的证明发送至区块链。
可选的,所述验证结果的证明发送模块,具体用于通过预言机机制将所述验证结果的证明发送至区块链。
可选的,所述验证结果的证明包括由所述隐私计算单元或所述第一智能合约进行签名的可验证声明。
可选的,第三机构验证所述验证结果时,采用所述隐私计算单元或所述第一智能合约的公钥验证所述可验证声明的签名。
基于同样的思路,本说明书实施例还提供了对应于图6的一种启动智能合约装置的结构示意图。所述装置应用于隐私计算单元。所述装置包括:
代码运行模块,用于运行链代码中定义的定时启动逻辑;
结果判断模块,用于基于所述定时启动逻辑,判断当前时刻是否到达定时启动时刻,得到第一判断结果;
指令发送模块,用于若所述第一判断结果为是,发送用于启动第一智能合约的指令,所述第一智能合约用于对加密的用户基础数据进行验证处理,并将验证结果发送至设定的地址。
可选的,所述指令发送模块,具体可以包括:
合约信息获取单元,用于获取第一智能合约的合约信息;
结果判断单元,用于基于所述合约信息判断所述第一智能合约是否为链上合约,得到第二判断结果;
第一指令发送判断单元,用于若所述第二判断结果为是,发送用于启动部署于区块链上的所述第一智能合约的指令。
可选的,所述指令发送模块还可以包括:
第二指令发送单元,用于若所述第二判断结果为否,发送启动部署于链下节点的所述第一智能合约的指令,其中,所述指令通过预言机机制调用部署于所述链下节点中的所述第一智能合约。
可选的,所述判断当前时刻是否到达定时启动时刻,具体可以包括:
实时监测区块链上生成的新的区块;
当检测到所述区块之后,获取所述区块的时间戳信息;
基于所述时间戳信息确定当前时刻;
判断当前时刻是否到达定时启动时刻。
可选的,所述链下节点执行所述第一智能合约得到的验证结果,由所述链下节点通过预言机机制反馈至所述区块链。
基于同样的思路,本说明书实施例还提供了上述方法对应的设备。
图9为本说明书一实施例中对应于图2的一种数据验证设备的结构示意图。如图9所示,设备900可以包括:
至少一个处理器910;以及,
与所述至少一个处理器通信连接的存储器930;其中,
所述存储器930存储有可被所述至少一个处理器910执行的指令920,所述指令被所述至少一个处理器910执行,以使所述至少一个处理器910能够:
接收区块链平台基于链代码中定义的定时启动逻辑发送的触发指令;
基于所述触发指令,对用户基础数据进行验证处理,得到验证结果;所述用户基础数据为对第一机构发送的第一加密数据解密后得到的,所述用户基础数据为基于第二机构发送的数据共享请求中包含的用户ID获取的用户基础数据;
将所述验证结果发送至所述第二机构。
本说明书实施例提供的一种启动智能合约设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
运行链代码中定义的定时启动逻辑;
基于所述定时启动逻辑,判断当前时刻是否到达定时启动时刻,得到第一判断结果;
若所述第一判断结果为是,发送用于启动第一智能合约的指令,所述第一智能合约用于对加密的用户基础数据进行验证处理,并将验证结果发送至设定的地址。
基于同样的思路,本说明书实施例还提供了上述方法对应的计算机可读介质。计算机可读介质上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现以下方法:
接收区块链平台基于链代码中定义的定时启动逻辑发送的触发指令;
基于所述触发指令,对用户基础数据进行验证处理,得到验证结果;所述用户基础数据为对第一机构发送的第一加密数据解密后得到的,所述用户基础数据为基于第二机构发送的数据共享请求中包含的用户ID获取的用户基础数据;
将所述验证结果发送至所述第二机构。
或者,所述计算机可读指令可被处理器执行以实现以下方法:
运行链代码中定义的定时启动逻辑;
基于所述定时启动逻辑,判断当前时刻是否到达定时启动时刻,得到第一判断结果;
若所述第一判断结果为是,发送用于启动第一智能合约的指令,所述第一智能合约用于对加密的用户基础数据进行验证处理,并将验证结果发送至设定的地址。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
在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 (55)
1.一种数据验证方法,所述方法应用于隐私计算单元,包括:
接收区块链平台基于链代码中定义的定时启动逻辑发送的触发指令;
基于所述触发指令,对用户基础数据进行验证处理,得到验证结果;所述用户基础数据为对第一机构发送的第一加密数据解密后得到的,所述用户基础数据为基于第二机构发送的数据共享请求中包含的用户ID获取的用户基础数据;
将所述验证结果发送至所述第二机构。
2.如权利要求1所述的方法,所述隐私计算单元部署在所述区块链平台上的节点,或者所述隐私计算单元部署在所述区块链平台下的节点。
3.如权利要求1所述的方法,所述触发指令被所述区块链平台上的节点通过预言机机制发送至所述区块链平台下的节点的隐私计算单元,用于启动调用部署于所述隐私计算单元的第一智能合约。
4.如权利要求1所述的方法,所述触发指令用于启动调用部署于所述区块链平台上的第一智能合约。
5.如权利要求1所述的方法,所述第一机构为代销机构,所述第二机构为金融机构。
6.如权利要求1所述的方法,所述用户ID包括:
用户在所述第一机构注册的账号;或,
用户在所述第一机构发起购买操作时由所述第一机构的系统为该用户分配的账号。
7.如权利要求1所述的方法,所述用户ID包括:
对所述用户基础数据中的一项或多项信息经hash计算得到的摘要值。
8.如权利要求7所述的方法,所述对所述用户基础数据中的一项或多项信息经hash计算得到的摘要值,还包括加盐操作得到的摘要值。
9.如权利要求1所述的方法,在对用户基础数据进行验证处理之前,还包括:
通过预言机机制获取第二机构发送的包含用户ID的数据共享请求和第一机构发送的第一加密数据,所述第一加密数据为经过加密的所述用户ID对应的用户基础数据。
10.如权利要求1所述的方法,在对用户基础数据进行验证处理之前,所述方法还包括:
获取第二机构发送的包含用户ID的数据共享请求;
基于所述数据共享请求,获取第一机构发送的第一加密数据,所述第一加密数据为经过加密的所述用户ID对应的用户基础数据;
调用第一智能合约对所述第一加密数据进行解密。
11.如权利要求10所述的方法,基于所述数据共享请求,获取第一机构发送的第一加密数据,具体包括:
调用第二智能合约,将所述数据共享请求发送至第一机构;
获取所述第一机构发送的经过加密的所述用户ID对应的用户基础数据。
12.如权利要求11所述的方法,在获取所述第一机构发送的经过加密的所述用户ID对应的用户基础数据之前,所述方法还包括:
向所述第一机构证明所述隐私计算单元的身份。
13.如权利要求12所述的方法,向所述第一机构证明所述隐私计算单元的身份,具体包括:
向所述第一机构发送远程证明报告,所述远程证明报告包括所述隐私计算单元的关于TEE描述的自荐信息和权威机构对所述自荐信息的验证信息。
14.如权利要求11所述的方法,调用第二智能合约,将所述数据共享请求发送至第一机构,具体包括:
调用第二智能合约发送利用所述隐私计算单元签名后的所述数据共享请求至所述第一机构;
或者,调用第二智能合约发送利用所述第二智能合约签名后的所述数据共享请求至所述第一机构。
15.如权利要求1所述的方法,所述数据共享请求中包含的用户ID由所述第一机构发送至所述第二机构。
16.如权利要求10所述的方法,对用户基础数据进行验证处理,具体包括:
调用所述第一智能合约,对用户基础数据进行验证处理。
17.如权利要求1所述的方法,对用户基础数据进行验证处理,具体包括:
获取可信机构发送的对所述用户ID对应的可信数据进行加密后的第二加密数据;
采用所述可信机构的公钥对所述第二加密数据进行解密,得到所述可信数据;
基于所述可信数据对所述用户基础信息进行验证。
18.如权利要求16所述的方法,所述方法还包括:将所述验证结果的证明发送至区块链。
19.如权利要求18所述的方法,将所述验证结果的证明发送至区块链,具体包括:
通过预言机机制将所述验证结果的证明发送至区块链。
20.如权利要求18所述的方法,所述验证结果的证明包括由所述隐私计算单元或所述第一智能合约进行签名的可验证声明。
21.如权利要求20所述的方法,第三机构验证所述验证结果时,采用所述隐私计算单元或所述第一智能合约的公钥验证所述可验证声明的签名。
22.一种智能合约启动方法,所述方法包括:
运行链代码中定义的定时启动逻辑;
基于所述定时启动逻辑,判断当前时刻是否到达定时启动时刻,得到第一判断结果;
若所述第一判断结果为是,发送用于启动第一智能合约的指令,所述第一智能合约用于对加密的用户基础数据进行验证处理,并将验证结果发送至设定的地址。
23.根据权利要求22所述的方法,所述发送用于启动第一智能合约的指令,具体包括:
获取第一智能合约的合约信息;
基于所述合约信息判断所述第一智能合约是否为链上合约,得到第二判断结果;
若所述第二判断结果为是,发送用于启动部署于区块链上的所述第一智能合约的指令。
24.如权利要求23所述的方法,所述方法还包括:
若所述第二判断结果为否,发送启动部署于链下节点的所述第一智能合约的指令,其中,所述指令通过预言机机制调用部署于所述链下节点中的所述第一智能合约。
25.根据权利要求22所述的方法,所述判断当前时刻是否到达定时启动时刻,具体包括:
实时监测区块链上生成的新的区块;
当检测到所述区块之后,获取所述区块的时间戳信息;
基于所述时间戳信息确定当前时刻;
判断当前时刻是否到达定时启动时刻。
26.根据权利要求24所述的方法,所述链下节点执行所述第一智能合约得到的验证结果,由所述链下节点通过预言机机制反馈至所述区块链。
27.一种数据验证装置,所述装置应用于隐私计算单元,包括:
触发指令接收模块,用于接收区块链平台基于链代码中定义的定时启动逻辑发送的触发指令;
数据验证模块,用于基于所述触发指令,对用户基础数据进行验证处理,得到验证结果;所述用户基础数据为对第一机构发送的第一加密数据解密后得到的,所述用户基础数据为基于第二机构发送的数据共享请求中包含的用户ID获取的用户基础数据;
验证结果发送模块,用于将所述验证结果发送至所述第二机构。
28.如权利要求27所述的装置,所述隐私计算单元部署在所述区块链平台上的节点,或者所述隐私计算单元部署在所述区块链平台下的节点。
29.如权利要求27所述的装置,所述触发指令被所述区块链平台上的节点通过预言机机制发送至所述区块链平台下的节点的隐私计算单元,用于启动调用部署于所述隐私计算单元的第一智能合约。
30.如权利要求27所述的装置,所述触发指令用于启动调用部署于所述区块链平台上的第一智能合约。
31.如权利要求27所述的装置,所述第一机构为代销机构,所述第二机构为金融机构。
32.如权利要求27所述的装置,所述用户ID包括:
用户在所述第一机构注册的账号;或,
用户在所述第一机构发起购买操作时由所述第一机构的系统为该用户分配的账号。
33.如权利要求27所述的装置,所述用户ID包括:
对所述用户基础数据中的一项或多项信息经hash计算得到的摘要值。
34.如权利要求33所述的装置,所述对所述用户基础数据中的一项或多项信息经hash计算得到的摘要值,还包括加盐操作得到的摘要值。
35.如权利要求27所述的装置,所述装置还包括:
数据获取模块,用于通过预言机机制获取第二机构发送的包含用户ID的数据共享请求和第一机构发送的第一加密数据,所述第一加密数据为经过加密的所述用户ID对应的用户基础数据。
36.如权利要求27所述的装置,所述装置还包括:
数据共享请求获取模块,用于获取第二机构发送的包含用户ID的数据共享请求;
第一加密数据获取模块,用于基于所述数据共享请求,获取第一机构发送的第一加密数据,所述第一加密数据为经过加密的所述用户ID对应的用户基础数据;
解密模块,用于调用第一智能合约对所述第一加密数据进行解密。
37.如权利要求36所述的装置,所述第一加密数据获取模块,具体包括:
数据共享请求发送单元,用于调用第二智能合约,将所述数据共享请求发送至第一机构;
用户基础数据获取单元,用于获取所述第一机构发送的经过加密的所述用户ID对应的用户基础数据。
38.如权利要求37所述的装置,所述第一加密数据获取模块,还包括:
身份证明单元,用于在获取所述第一机构发送的经过加密的所述用户ID对应的用户基础数据之前,向所述第一机构证明所述隐私计算单元的身份。
39.如权利要求38所述的装置,所述身份证明单元,具体用于向所述第一机构发送远程证明报告,所述远程证明报告包括所述隐私计算单元的关于TEE描述的自荐信息和权威机构对所述自荐信息的验证信息。
40.如权利要求37所述的装置,所述数据共享请求发送单元,具体用于:
调用第二智能合约发送利用所述隐私计算单元签名后的所述数据共享请求至所述第一机构;
或者,调用第二智能合约发送利用所述第二智能合约签名后的所述数据共享请求至所述第一机构。
41.如权利要求27所述的装置,所述数据共享请求中包含的用户ID由所述第一机构发送至所述第二机构。
42.如权利要求36所述的装置,所述数据验证模块,具体用于调用所述第一智能合约,对用户基础数据进行验证处理。
43.如权利要求27所述的装置,所述数据验证模块,具体包括:
第二加密数据获取单元,用于获取可信机构发送的对所述用户ID对应的可信数据进行加密后的第二加密数据;
第二加密数据解密单元,用于采用所述可信机构的公钥对所述第二加密数据进行解密,得到所述可信数据;
验证单元,用于基于所述可信数据对所述用户基础信息进行验证。
44.如权利要求42所述的装置,所述装置还包括:
验证结果的证明发送模块,用于将所述验证结果的证明发送至区块链。
45.如权利要求44所述的装置,所述验证结果的证明发送模块,具体用于通过预言机机制将所述验证结果的证明发送至区块链。
46.如权利要求44所述的装置,所述验证结果的证明包括由所述隐私计算单元或所述第一智能合约进行签名的可验证声明。
47.如权利要求46所述的装置,第三机构验证所述验证结果时,采用所述隐私计算单元或所述第一智能合约的公钥验证所述可验证声明的签名。
48.一种智能合约启动装置,所述装置包括:
代码运行模块,用于运行链代码中定义的定时启动逻辑;
结果判断模块,用于基于所述定时启动逻辑,判断当前时刻是否到达定时启动时刻,得到第一判断结果;
指令发送模块,用于若所述第一判断结果为是,发送用于启动第一智能合约的指令,所述第一智能合约用于对加密的用户基础数据进行验证处理,并将验证结果发送至设定的地址。
49.根据权利要求48所述的装置,所述指令发送模块,具体包括:
合约信息获取单元,用于获取第一智能合约的合约信息;
结果判断单元,用于基于所述合约信息判断所述第一智能合约是否为链上合约,得到第二判断结果;
第一指令发送判断单元,用于若所述第二判断结果为是,发送用于启动部署于区块链上的所述第一智能合约的指令。
50.如权利要求49所述的装置,所述指令发送模块还包括:
第二指令发送单元,用于若所述第二判断结果为否,发送启动部署于链下节点的所述第一智能合约的指令,其中,所述指令通过预言机机制调用部署于所述链下节点中的所述第一智能合约。
51.根据权利要求48所述的装置,所述判断当前时刻是否到达定时启动时刻,具体包括:
实时监测区块链上生成的新的区块;
当检测到所述区块之后,获取所述区块的时间戳信息;
基于所述时间戳信息确定当前时刻;
判断当前时刻是否到达定时启动时刻。
52.根据权利要求50所述的装置,所述链下节点执行所述第一智能合约得到的验证结果,由所述链下节点通过预言机机制反馈至所述区块链。
53.一种数据验证设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
接收区块链平台基于链代码中定义的定时启动逻辑发送的触发指令;
基于所述触发指令,对用户基础数据进行验证处理,得到验证结果;所述用户基础数据为对第一机构发送的第一加密数据解密后得到的,所述用户基础数据为基于第二机构发送的数据共享请求中包含的用户ID获取的用户基础数据;
将所述验证结果发送至所述第二机构。
54.一种智能合约启动设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
运行链代码中定义的定时启动逻辑;
基于所述定时启动逻辑,判断当前时刻是否到达定时启动时刻,得到第一判断结果;
若所述第一判断结果为是,发送用于启动第一智能合约的指令,所述第一智能合约用于对加密的用户基础数据进行验证处理,并将验证结果发送至设定的地址。
55.一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现权利要求1至26中任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010898940.2A CN111770201B (zh) | 2020-08-31 | 2020-08-31 | 一种数据验证方法、装置及设备 |
EP21181106.2A EP3961455B1 (en) | 2020-08-31 | 2021-06-23 | Data verification methods, apparatuses, and devices |
US17/364,579 US11233655B2 (en) | 2020-08-31 | 2021-06-30 | Data verification methods, apparatuses, and devices |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010898940.2A CN111770201B (zh) | 2020-08-31 | 2020-08-31 | 一种数据验证方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111770201A true CN111770201A (zh) | 2020-10-13 |
CN111770201B CN111770201B (zh) | 2020-12-04 |
Family
ID=72729632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010898940.2A Active CN111770201B (zh) | 2020-08-31 | 2020-08-31 | 一种数据验证方法、装置及设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11233655B2 (zh) |
EP (1) | EP3961455B1 (zh) |
CN (1) | CN111770201B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112070502A (zh) * | 2020-11-10 | 2020-12-11 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链的数据核验方法和系统 |
CN112711777A (zh) * | 2020-12-29 | 2021-04-27 | 杭州趣链科技有限公司 | 一种上链方法、上链装置及节点设备 |
CN113285954A (zh) * | 2021-06-02 | 2021-08-20 | 网易(杭州)网络有限公司 | 可验证声明验证方法、系统、电子设备及存储介质 |
CN113364763A (zh) * | 2021-06-02 | 2021-09-07 | 网易(杭州)网络有限公司 | 可验证声明生成方法、装置、电子设备及存储介质 |
CN113435910A (zh) * | 2021-06-28 | 2021-09-24 | 平安信托有限责任公司 | 代销售签约方法、装置、电子设备及存储介质 |
CN115525609A (zh) * | 2022-10-08 | 2022-12-27 | 广州明动软件股份有限公司 | 一种基于电子文件与电子档案的数据交换平台及方法 |
Families Citing this family (8)
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 |
KR20210142983A (ko) * | 2020-05-19 | 2021-11-26 | 삼성에스디에스 주식회사 | 오프-체인 데이터 공유 시스템 및 그 방법 |
CN111857892B (zh) * | 2020-09-22 | 2020-12-18 | 支付宝(杭州)信息技术有限公司 | 通过区块链进行业务处理的方法及装置 |
US11423154B2 (en) | 2020-10-26 | 2022-08-23 | Micron Technology, Inc. | Endpoint authentication based on boot-time binding of multiple components |
US11949773B2 (en) * | 2021-03-29 | 2024-04-02 | Collibra Belgium Bv | Systems and methods for secure key management using distributed ledger technology |
CN114465815B (zh) * | 2022-03-15 | 2022-11-08 | 浙江大学 | 一种基于区块链和sgx的访问权限控制系统及方法 |
CN114900318B (zh) * | 2022-06-02 | 2024-04-19 | 浙江工商大学 | 基于密钥协商协议以及可验证的一轮通信可搜索加密方法 |
CN116388921B (zh) * | 2023-06-02 | 2023-10-10 | 安徽中科晶格技术有限公司 | 基于预编译合约的链节点时间同步方法、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874087A (zh) * | 2017-01-25 | 2017-06-20 | 上海钜真金融信息服务有限公司 | 一种区块链智能合约定时任务调度方法 |
CN107886329A (zh) * | 2017-11-28 | 2018-04-06 | 无锡井通网络科技有限公司 | 基于区块链技术的系统合约的定时触发调用方法 |
CN110264190A (zh) * | 2019-05-07 | 2019-09-20 | 深圳壹账通智能科技有限公司 | 智能合约的触发方法、装置、设备及存储介质 |
CN110704490A (zh) * | 2019-10-15 | 2020-01-17 | 北京启迪区块链科技发展有限公司 | 一种基于智能合约的业务数据处理方法和装置 |
CN111147432A (zh) * | 2018-11-06 | 2020-05-12 | 富邦金融控股股份有限公司 | 具隐密性的kyc数据共享系统及其方法 |
CN111316303A (zh) * | 2019-07-02 | 2020-06-19 | 阿里巴巴集团控股有限公司 | 用于基于区块链的交叉实体认证的系统和方法 |
US10699269B1 (en) * | 2019-05-24 | 2020-06-30 | Blockstack Pbc | System and method for smart contract publishing |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9697371B1 (en) * | 2015-06-30 | 2017-07-04 | Google Inc. | Remote authorization of usage of protected data in trusted execution environments |
US11526938B2 (en) * | 2016-03-31 | 2022-12-13 | Refinitiv Us Organization Llc | Systems and methods for providing financial data to financial instruments in a distributed ledger system |
EP3477891A1 (en) * | 2017-10-26 | 2019-05-01 | Gemalto Sa | Methods for recording and sharing a digital identity of a user using distributed ledgers |
US11184175B2 (en) * | 2018-07-30 | 2021-11-23 | Hewlett Packard Enterprise Development Lp | Systems and methods for using secured representations of location and user distributed ledger addresses to prove user presence at a location and time |
US10819520B2 (en) * | 2018-10-01 | 2020-10-27 | Capital One Services, Llc | Identity proofing offering for customers and non-customers |
KR102212817B1 (ko) * | 2018-12-13 | 2021-02-08 | 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. | 신뢰할 수 있는 실행 환경을 기반으로 한 오프체인 스마트 계약 서비스 |
US11178151B2 (en) * | 2018-12-19 | 2021-11-16 | International Business Machines Corporation | Decentralized database identity management system |
WO2019228562A2 (en) * | 2019-09-11 | 2019-12-05 | Alibaba Group Holding Limited | Shared blockchain data storage based on error correction coding in trusted execution environments |
EP3682342B1 (en) * | 2019-09-11 | 2021-08-18 | Advanced New Technologies Co., Ltd. | Shared blockchain data storage based on error correction coding in trusted execution environments |
-
2020
- 2020-08-31 CN CN202010898940.2A patent/CN111770201B/zh active Active
-
2021
- 2021-06-23 EP EP21181106.2A patent/EP3961455B1/en active Active
- 2021-06-30 US US17/364,579 patent/US11233655B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874087A (zh) * | 2017-01-25 | 2017-06-20 | 上海钜真金融信息服务有限公司 | 一种区块链智能合约定时任务调度方法 |
CN107886329A (zh) * | 2017-11-28 | 2018-04-06 | 无锡井通网络科技有限公司 | 基于区块链技术的系统合约的定时触发调用方法 |
CN111147432A (zh) * | 2018-11-06 | 2020-05-12 | 富邦金融控股股份有限公司 | 具隐密性的kyc数据共享系统及其方法 |
CN110264190A (zh) * | 2019-05-07 | 2019-09-20 | 深圳壹账通智能科技有限公司 | 智能合约的触发方法、装置、设备及存储介质 |
US10699269B1 (en) * | 2019-05-24 | 2020-06-30 | Blockstack Pbc | System and method for smart contract publishing |
CN111316303A (zh) * | 2019-07-02 | 2020-06-19 | 阿里巴巴集团控股有限公司 | 用于基于区块链的交叉实体认证的系统和方法 |
CN110704490A (zh) * | 2019-10-15 | 2020-01-17 | 北京启迪区块链科技发展有限公司 | 一种基于智能合约的业务数据处理方法和装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112070502A (zh) * | 2020-11-10 | 2020-12-11 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链的数据核验方法和系统 |
CN112711777A (zh) * | 2020-12-29 | 2021-04-27 | 杭州趣链科技有限公司 | 一种上链方法、上链装置及节点设备 |
CN113285954A (zh) * | 2021-06-02 | 2021-08-20 | 网易(杭州)网络有限公司 | 可验证声明验证方法、系统、电子设备及存储介质 |
CN113364763A (zh) * | 2021-06-02 | 2021-09-07 | 网易(杭州)网络有限公司 | 可验证声明生成方法、装置、电子设备及存储介质 |
CN113435910A (zh) * | 2021-06-28 | 2021-09-24 | 平安信托有限责任公司 | 代销售签约方法、装置、电子设备及存储介质 |
CN115525609A (zh) * | 2022-10-08 | 2022-12-27 | 广州明动软件股份有限公司 | 一种基于电子文件与电子档案的数据交换平台及方法 |
CN115525609B (zh) * | 2022-10-08 | 2023-07-07 | 广州明动软件股份有限公司 | 一种基于电子文件与电子档案的数据交换平台及方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3961455B1 (en) | 2023-06-07 |
US20210328806A1 (en) | 2021-10-21 |
CN111770201B (zh) | 2020-12-04 |
EP3961455A1 (en) | 2022-03-02 |
US11233655B2 (en) | 2022-01-25 |
EP3961455C0 (en) | 2023-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111770201B (zh) | 一种数据验证方法、装置及设备 | |
CN111770200B (zh) | 一种信息共享方法和系统 | |
CN111770198B (zh) | 一种信息共享方法、装置及设备 | |
CN111770199B (zh) | 一种信息共享方法、装置及设备 | |
CN111654367B (zh) | 密码运算、创建工作密钥的方法、密码服务平台及设备 | |
CN111767578B (zh) | 一种数据检验方法、装置及设备 | |
US20160283941A1 (en) | Systems and methods for personal identification and verification | |
CN111475849A (zh) | 基于区块链账户的隐私数据查询方法及装置 | |
EP3780484B1 (en) | Cryptographic operation and working key creation method and cryptographic service platform and device | |
CN111770112B (zh) | 一种信息共享方法、装置及设备 | |
CN111523110A (zh) | 基于链代码的权限查询配置方法及装置 | |
CN111818186B (zh) | 一种信息共享方法和系统 | |
CN110580411A (zh) | 基于智能合约的权限查询配置方法及装置 | |
US11514445B2 (en) | Information sharing methods, apparatuses, and devices |
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: 40039459 Country of ref document: HK |