CN111770198B - 一种信息共享方法、装置及设备 - Google Patents
一种信息共享方法、装置及设备 Download PDFInfo
- Publication number
- CN111770198B CN111770198B CN202010898504.5A CN202010898504A CN111770198B CN 111770198 B CN111770198 B CN 111770198B CN 202010898504 A CN202010898504 A CN 202010898504A CN 111770198 B CN111770198 B CN 111770198B
- Authority
- CN
- China
- Prior art keywords
- risk information
- user
- aml risk
- information
- intelligent contract
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- 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/02—Banking, e.g. interest calculation or account maintenance
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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
-
- 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
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- 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/22—Payment schemes or models
- G06Q20/223—Payment schemes or models based on the use of peer-to-peer networks
-
- 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/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- 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
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
-
- 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/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
-
- 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/321—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 a third party or a trusted authority
-
- 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
-
- 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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Business, Economics & Management (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Marketing (AREA)
- Human Resources & Organizations (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Development Economics (AREA)
- Data Mining & Analysis (AREA)
- Technology Law (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本说明书实施例公开了一种信息共享方法、装置及设备,所述方法应用于隐私计算单元,所述方法包括:接收区块链平台基于链代码中定义的定时启动逻辑发送的触发指令;基于所述触发指令,对第一AML风险信息和第二AML风险信息进行合并,得到合并结果;所述第一AML风险信息为第一机构发送的针对第一用户ID的风险信息;所述第二AML风险信息为第二机构发送的针对第二用户ID的风险信息;其中,所述第一用户ID与所述第二用户ID对应同一个用户;将所述合并结果发送至所述第一机构。
Description
技术领域
本说明书实施例涉及区块链技术领域,尤其涉及一种信息共享方法、装置及设备。
背景技术
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。
发明内容
为解决上述技术问题,本说明书实施例是这样实现的:
第一方面,本说明书实施例提供的一种信息共享方法,所述方法应用于隐私计算单元,包括:
接收区块链平台基于链代码中定义的定时启动逻辑发送的触发指令;
基于所述触发指令,对第一AML风险信息和第二AML风险信息进行合并,得到合并结果;所述第一AML风险信息为第一机构发送的针对第一用户ID的风险信息;所述第二AML风险信息为第二机构发送的针对第二用户ID的风险信息;其中,所述第一用户ID与所述第二用户ID对应同一个用户;
将所述合并结果发送至所述第一机构。
第二方面,本说明书实施例提供的一种智能合约启动方法,所述方法包括:
运行链代码中定义的定时启动逻辑;
基于所述定时启动逻辑,判断当前时刻是否到达定时启动时刻,得到第一判断结果;
若所述第一判断结果为是,发送用于启动第一智能合约的指令,所述第一智能合约对第一AML风险信息和第二AML风险信息进行合并,得到合并结果,并将合并结果发送至设定的地址。
第三方面,本说明书实施例提供的一种信息共享装置,包括:
触发指令接收模块,用于接收区块链平台基于链代码中定义的定时启动逻辑发送的触发指令;
信息合并模块,用于基于所述触发指令,对第一AML风险信息和第二AML风险信息进行合并,得到合并结果;所述第一AML风险信息为第一机构发送的针对第一用户ID的风险信息;所述第二AML风险信息为第二机构发送的针对第二用户ID的风险信息;其中,所述第一用户ID与所述第二用户ID对应同一个用户;
第一合并结果发送模块,用于将所述合并结果发送至所述第一机构。
第四方面,本说明书实施例提供的一种智能合约启动装置,包括:
代码运行模块,用于运行链代码中定义的定时启动逻辑;
结果判断模块,用于基于所述定时启动逻辑,判断当前时刻是否到达定时启动时刻,得到第一判断结果;
指令发送模块,用于若所述第一判断结果为是,发送用于启动第一智能合约的指令,所述第一智能合约对第一AML风险信息和第二AML风险信息进行合并,得到合并结果,并将合并结果发送至设定的地址。
第五发明,本说明书实施例提供的一种信息共享设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
接收区块链平台基于链代码中定义的定时启动逻辑发送的触发指令;
基于所述触发指令,对第一AML风险信息和第二AML风险信息进行合并,得到合并结果;所述第一AML风险信息为第一机构发送的针对第一用户ID的风险信息;所述第二AML风险信息为第二机构发送的针对第二用户ID的风险信息;其中,所述第一用户ID与所述第二用户ID对应同一个用户;
将所述合并结果发送至所述第一机构。
第六方面,本说明书实施例提供的一种智能合约启动设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
运行链代码中定义的定时启动逻辑;
基于所述定时启动逻辑,判断当前时刻是否到达定时启动时刻,得到第一判断结果;
若所述第一判断结果为是,发送用于启动第一智能合约的指令,所述第一智能合约对第一AML风险信息和第二AML风险信息进行合并,得到合并结果,并将合并结果发送至设定的地址。
第七方面,本说明书实施例提供的一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现一种信息共享方法或智能合约启动方法。
本说明书一个实施例实现了能够达到以下有益效果:
通过上述实施例中的方案,可以使得反洗钱义务机构能够具有更多的AML风险结果,从而提升其更准确的进行反洗钱审核能力,从而也提升了行业整体的反洗钱审核能力。
而且,由区块链节点主动地定时启动智能合约来完成定时任务,使得定时任务的发起方无需定时向区块链网络提交区块链交易来调用智能合约。一方面,区块链节点无需接收调用该智能合约的区块链交易,可减少区块链节点处理调用目标智能合约的区块链交易的相关操作(比如,共识、防重放检查、防双花检查等),不仅可降低区块链节点的资源消耗,还可提高完成定时任务的效率。另一方面,区块链网络自动启动智能合约来完成定时任务,可简化定时任务的发起方的操作,有利于提升用户体验。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一实施例中的系统架构示意图;
图2为本说明书一实施例中的一种信息共享方法的流程示意图;
图3为本说明书一实施例中通过DIS和区块链提供验证功能的架构图;
图4为本说明书一实施例中通过DIS和区块链提供验证功能的流程图。
图5为本说明书一实施例中的一种智能合约启动方法的流程示意图;
图6为本说明书一实施例中的一种启动链上合约的方法的流程图;
图7为本说明书一实施例中对应于图2的一种信息共享装置的结构示意图;
图8为本说明书一实施例中对应于图2的一种信息共享设备的结构示意图。
具体实施方式
为使本说明书一个或多个实施例的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书一个或多个实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书一个或多个实施例保护的范围。
数据共享经常是机构处理业务的需求。单一机构往往无法获取足够的信息而无法处理业务,这就存在从其他机构获取信息的需求。例如,各国在反洗钱合规履职的要求中,很多都要求各个金融机构提供反洗钱审核结果。目前,很多国家央行、很多大的金融机构都有在反洗钱领域利用区块链来提升效率和准确性并满足监管的尝试。同时,数据作为一种资源,其流动性和可获取性是很多数据应用和产业发展的基础,但数据交换和共享过程中的隐私保护一直是产业发展的一大挑战。下面仍以上述的反洗钱为例加以说明。
反洗钱(Anti-Money Laundering,AML)是指预防通过各种方式掩饰、隐瞒毒品犯罪、黑社会性质的组织犯罪、恐怖活动犯罪、走私犯罪、贪污贿赂犯罪、破坏金融管理秩序犯罪等犯罪所得及其收益的来源和性质的洗钱活动的措施。常见的洗钱途径广泛涉及银行、保险、证券、房地产等各种领域。大多数反洗钱工作都包括三个核心的事项:
1、客户身份识别制度。反洗钱义务主体在与客户建立业务关系或者与其进行交易时,应当根据真实有效地身份证件,核实和记录其客户的身份,并在业务关系存续期间及时更新客户的身份信息资料。
2、大额和可疑交易报告(Suspicious Transaction Report,STR)制度。非法资金流动一般具有数额巨大、交易异常等特点,因此,法律规定了大额和可疑交易报告制度,要求金融机构对数额达到一定标准的交易和缺乏合法目的的异常交易应当及时向反洗钱行政主管部门报告,以作为追查违法犯罪行为的线索。
3、客户身份资料和交易记录保存制度客户身份资料和交易记录保存,是指金融机构依法采取必要措施将客户身份资料和交易信息保存一定期限,可以为追查违法犯罪行为提供证据支持。
客户身份识别制度也就是通常所说的“了解你的客户”(Know Your Customer,KYC),指的是获取客户相关识别信息,包括与客户建立业务时了解客户的身份、了解交易的目的、了解资金的来源和去向、以及了解客户的长经营活动和金融交易情况等,是反洗钱的基础。
STR制度,是指金融机构发现可疑交易后向人民银行或外汇局报告的制度,同时金融机构有义务对可疑交易进行审查,当发现涉嫌犯罪时,还需要及时向当地公安部门报告。针对一个用户,金融机构对其进行可疑交易审查后,如果认定该用户的交易风险较高,可以在STR中对该用户标引类罪标签。常见的STR类罪标签例如包括:毒品犯罪、黑社会性质的组织犯罪、恐怖活动犯罪、走私犯罪、贪污贿赂罪、破坏金融管理秩序犯罪、金融诈骗罪、洗钱罪等。
不同金融机构都有审查可疑交易的义务。但是,不同金融机构之间具有的同一用户相关的交易的信息和该用户的信息往往是不同的,这样,不同金融机构对同一用户进行可疑交易分析后标引的STR类罪标签也可能是不同的。一个金融机构如果要更精确的给用户标引STR类罪标签,一个较好的方式是能够获取另一个(或者更多的)金融机构对该同一用户标引的STR类罪标签。因此,就产生了在不同金融机构间共享同一用户的STR类罪标签的需求。
上述例子中,STR类罪标签信息的共享实际上也属于AML风险信息共享中的一种。AML风险信息共享,主要指将反洗钱政策和程序识别产生的与客户洗钱风险相关的信息进行共享,包括客户洗钱风险等级、客户STR类罪类型代码、客户可疑行为信息以及其他与洗钱风险相关的信息共享。以下以STR类罪类型代码为例,说明不同金融机构间共享同一用户的STR类罪标签的实现过程,其它AML风险信息共享的实现过程也是类似的。
再如,以客户洗钱风险等级为例,不同金融机构对同一用户进行可疑交易分析后标引的洗钱风险等级也可能是不同的,例如甲机构对用户A标引的洗钱风险是高风险,而乙机构对同一用户A标引的洗钱风险是中风险 。一个金融机构如果要更精确的给用户标引洗钱风险等级标签,一个较好的方式是能够获取另一个(或者更多的)金融机构对该同一用户标引的洗钱风险等级标签。因此,就产生了在不同金融机构间共享同一用户的洗钱风险等级标签的需求。
AML风险信息共享中的客户可疑行为信息也是类似。
如图1所示,本申请提供的一种信息共享方法实施例,可以包括图1中的角色。第一机构可以直接接收用户的信息,从而基于这些用户信息完成一定的处理工作,如上述审查可疑交易。另一方面,第一机构可以对外提供审查可疑交易的结果——STR类罪标签,也可以对外提供该STR类罪标签。第一机构和第二机构可以都与区块链系统相连,且可以都与隐私计算平台相连。通过隐私计算平台,可以在可信的安全计算环境中执行预定的规则,从而完成例如STR类罪标签之类的AML风险信息共享。
以下结合前述AML风险信息共享的例子来说明本申请的信息共享方法实施例。以风险信息具体为STR类罪标签为例,第一机构和第二机构可以分别基于自身的反洗钱审核能力对用户标引STR类罪标签。第一机构和第二机构反洗钱的能力可能不同,所依据的用户信息和历史交易的内容和质量可能也有差别。这样,可能导致第一机构和第二机构分别对用户A标引的STR类罪标签并不相同。例如,第一机构为用户A标引的STR类罪标签为[毒品犯罪、黑社会性质的组织犯罪],第二机构为用户A标引的STR类罪标签为[走私犯罪]。为了获得更为准确的STR类罪标签,第一机构和第二机构之间可以共享同一用户的STR类罪标签。以风险信息具体为洗钱风险等级为例,第一机构和第二机构可以分别基于自身的反洗钱审核能力对用户标引洗钱风险等级。类似的,第一机构和第二机构分别对用户A标引的洗钱风险等级并不相同。例如,第一机构为用户A标引的洗钱风险等级标签为[高风险等级],第二机构为用户A标引的洗钱风险等级标签为[中风险等级]。为了获得更为准确的洗钱风险等级,第一机构和第二机构之间可以共享同一用户的洗钱风险等级标签。
通过上述实施例中的方案,可以使得反洗钱义务机构能够具有更多的AML风险结果,从而提升其更准确的进行反洗钱审核能力,从而也提升了行业整体的反洗钱审核能力。
区块链网络一般被划分为三种类型:公有链(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点。因此,就出现了定时智能合约启动需求。例如,区块链网络中的区块链节点可主动地定时启动智能合约,从而通过定时主动执行智能合约来完成定时任务。为此,说明书旨在提供一种通过区块链平安台定时启动智能合约,以进行AML风险信息合并的方法,以满足主动智能合约启动需求。
图2为本说明书一实施例中的一种信息共享方法的流程示意图。所述方法应用于隐私计算单元,其中,隐私计算单元可以是部署于区块链平台上的节上的,也可以是部署于区块链平台下的节点。其中,无论隐私计算单元是部署于链上还是链下,都可以通过链上的定时启动逻辑的启动隐私计算单元中的智能合约。
如图2所示,该流程可以包括以下步骤:
步骤210:接收区块链平台基于链代码中定义的定时启动逻辑发送的触发指令。
其中,所述定时启动逻辑用于确定目标智能合约的启动时刻,并在当前时刻到达所述启动时刻的情况下,启动所述目标智能合约。
在本实施例中,在构建区块链网络时,可在节点设备中配置区块链网络的链代码,使得该节点设备通过运行链代码来作为区块链网络中的区块链节点。为了使得区块链节点可以主动启动部署于区块链网络上的智能合约,而无需通过响应接收到的用于调用智能合约的区块链交易来执行智能合约,可预先在区块链网络的链代码中定义定时启动逻辑,那么区块链节点在执行链代码时,可通过该定时启动逻辑来完成上述主动定时智能合约启动操作。
具体而言,定时启动逻辑可用于确定目标智能合约的启动时刻,并在当前时刻到达该启动时刻的情况下,启动目标智能合约。其中,目标智能合约可理解为区块链节点可主动定时启动的智能合约,该智能合约中定义有用于完成定时任务的合约代码。比如,该定时任务可以是定时汇款、定时向指定用户发放虚拟权益、定时提醒等操作。以定时转账为例,可在目标智能合约的合约代码中定义汇出方区块链账户的账户地址、汇入方区块链账户的账户地址以及每次汇款的汇款额。需要说明的是,目标智能合约仍可通过上述相关技术中的方式来部署至区块链网络。
可见,由区块链节点主动地定时启动智能合约来完成定时任务,使得定时任务的发起方无需定时向区块链网络提交区块链交易来调用智能合约。一方面,区块链节点无需接收调用该智能合约的区块链交易,可减少区块链节点处理调用目标智能合约的区块链交易的相关操作(比如,共识、防重放检查、防双花检查等),不仅可降低区块链节点的资源消耗,还可提高完成定时任务的效率。另一方面,区块链网络自动启动智能合约来完成定时任务,可简化定时任务的发起方的操作,有利于提升用户体验。
在本实施例中,由区块链节点运行链代码来确定需要主动定时启动的智能合约,也即目标智能合约。
在一种情况下,可将目标智能合约的信息记录在链代码中,即在开发链代码时将目标智能合约的信息写入链代码中。比如,可将目标智能合约的合约地址写入链代码中。基于链代码中记录有目标智能合约的信息,区块链节点可通过运行链代码来确定出目标智能合约。通过将目标智能合约的信息记录在链代码中,可有效防止目标智能合约的信息被恶意篡改。
在另一种情况下,可通过特定的预设区块链账户来统一记录目标智能合约(可存在多个)的信息,并将该预设区块链账户的信息记录于链代码中,即在开发链代码时将预设区块链账户的信息写入链代码中。比如,可将目标智能合约的合约地址记录于预设区块链账户中,并将预设区块链账户的账户地址写入链代码中。基于链代码中记录有预设区块链账户的信息,区块链节点可通过运行链代码来确定出该区块链账户,从而从该区块链账户中读取目标智能合约的合约地址。通过上述由区块链账户来记录目标智能合约的方式,可便于对需要主动定时启动的智能合约的列表进行更新,使得控制区块链网络完成定时任务更为灵活。
具体而言,可向区块链网络提交用于对上述预设区块链账户中记录的目标智能合约的信息进行更新的信息更新交易,该信息更新交易中包含合约更新信息(比如更新需主动定时启动的智能合约的合约地址)。那么,区块链网络中的区块链节点在接收到该信息更新交易后,可响应于该信息更新交易,根据该信息更新交易中包含的合约更新信息,对预设区块链账户中记录的目标智能合约的信息进行更新。
在本实施例中,对于记录目标智能合约的启动时刻的方式,同样可参考上述记录目标智能合约的信息的方式。也即,由区块链节点运行链代码来确定目标智能合约的启动时刻,下面进行详细描述。
在一种情况下,可将目标智能合约的启动时刻记录在链代码中,即在开发链代码时将目标智能合约的启动时刻写入链代码中。基于链代码中记录有目标智能合约的启动时刻,区块链节点可通过运行链代码来确定出目标智能合约的启动时刻,进而在当前时刻到达启动时刻的情况下,启动目标智能合约。通过将目标智能合约的启动时刻记录在链代码中,可有效防止目标智能合约的启动时刻被恶意篡改。
在另一种情况下,可通过特定的预设区块链账户来记录启动时刻,并将该预设区块链账户的信息记录于链代码中,即在开发链代码时将预设区块链账户的信息写入链代码中。基于链代码中记录有预设区块链账户的信息,区块链节点可通过运行链代码来确定出该区块链账户,从而从该区块链账户中读取目标智能合约的启动时刻。通过上述由区块链账户来记录启动时刻的方式,可便于对需要主动定时启动的智能合约的启动时刻进行更新,使得控制区块链网络完成定时任务更为灵活。
具体而言,可向区块链网络提交用于对上述预设区块链账户中记录的启动时刻进行更新的时刻更新交易,该时刻更新交易中包含时刻更新信息(比如,用于指示如何对启动时刻进行更新的内容)。那么,区块链网络中的区块链节点在接收到该时刻更新交易后,可响应于该时刻更新交易,根据该时刻更新交易中包含的合约更新信息,对预设区块链账户中记录的目标智能合约的启动时刻进行更新。
进一步的,为了防止区块链账户中目标智能合约的启动时刻被恶意篡改,可对上述更新启动时刻的操作实施权限管理。比如,可在该预设区块链账户中存储用于实施权限管理的依据。例如,该依据可以白名单、黑名单等形式存储于预设区块链账户中。举例而言,可在白名单中记录区块链网络的管理员的账户地址。那么,区块链节点在接收到时刻更新交易后,可先读取该时刻更新交易to字段中记录的账户地址(即提交该时刻更新交易的用户的账户地址),然后确定预设区块链账户中白名单是否记录有该账户地址;若存在,则进一步执行上述更新操作,否则禁止执行上述更新操作。
需要说明的是,在区块链网络中,区块链账户可以包括外部账户和合约账户等。外部账户通常为用户(个人或机构)所有,而合约账户则对应于部署在区块链中的智能合约。各类账户的结构都类似,例如可以包含Nonce字段、Balance字段、Code字段和Storage字段等。每个账户的Nonce字段的取值从0开始,且Nonce字段的取值随相应账户所发起的交易而依次递增,使得该账户发起的每一交易所含Nonce取值均不相同,从而可避免重放攻击。Balance字段用于存放余额。Code字段用于存放智能合约的代码,因而外部账户的Code字段通常为空。Storage字段用于存放账户的存储内容。因此,上述目标智能合约的信息、权限管理的依据和启动时刻等数据,均可通过外部账户或者合约账户来记录和维护。
在一种情况下,可在区块链网络中预先部署一智能合约,该智能合约对应的合约账户用于记录和维护目标智能合约的信息。比如,可将目标智能合约的信息存放在合约账户的Storage字段中。在另一种情况下,可在区块链网络中创建一外部账户,该外部账户用于记录和维护目标智能合约的信息。比如,可将目标智能合约的信息存放在该外部账户的Storage字段中。当然,本说明书并不对合约账户和合约账户存放目标智能合约的信息的字段进行限制。比如,还可采用其他任意字段、增加字段、改进字段的方式来存放目标智能合约的信息,本说明书并不对此进行限制。
需要说明的是,上述记录目标智能合约的信息的预设区块链账户,和记录启动时刻的预设区块链账户可以为同一区块链账户,也可以是不同的区块链账户,本说明书并不对此进行限制。
在本实施例中,区块链节点通过运行链代码中定义的定时启动逻辑来完成主动定时启动目标智能合约的过程。
如果隐私计算单元为链上部署,即智能合约为链上部署,那么可以通过在链代码上直接注明目标智能合约的信息,因此,在运行链代码中定义的定时启动逻辑时,可以根据记录的目标智能合约的信息,去寻找目标智能合约的合约代码,从而执行该合约代码,即触发目标智能合约。如果隐私计算单元为链下部署的时候,可以采用预言机机制将运行目标智能合约的触发指令转发至隐私计算单元。
步骤220:基于所述触发指令,对第一AML风险信息和第二AML风险信息进行合并,得到合并结果;所述第一AML风险信息为第一机构发送的针对第一用户ID的风险信息;所述第二AML风险信息为第二机构发送的针对第二用户ID的风险信息;其中,所述第一用户ID与所述第二用户ID对应同一个用户。
第一机构和第二机构的相关信息类似,下面与第一机构为主进行介绍。
第一机构可以是金融机构,用户可以通过金融机构发起交易,如转账、汇款或者购买第一机构发行的金融产品之类。第一用户可以是个人用户,也可以是企业用户之类。第一机构可以对第一用户进行反洗钱审查。例如,第一机构可以基于第一用户的基础数据以及历史交易等信息得到该第一用户的STR类罪标签或洗钱风险等级标签等。对于个人用户,这些基础数据可以包括个人的姓名、性别、国籍、证件类型、证件号码、年龄、职业、手机号码、联系地址等信息中的部分或者全部。对于企业用户,这些基础数据可以包括企业的名称、营业执照编号、营业场所地址、法定代表人的姓名、证件类型、证件号码和有效期限等信息中的部分或者全部。
第一用户ID可以是用户在第一机构注册的账号,或者是第一用户在第一机构发起操作(如发起转账、购买金融产品之类的操作)时由第一机构的系统为该用户分配的账号。这类账号例如可以是一串字符。用户ID应当可以唯一的标识一位用户。对应字段如上所述的个人用户或企业用户的信息。
对于个人用户来说,如果证件类型统一采用身份证的话,第一用户ID也可以是身份证号码。但是身份证号码实际上也是属于个人的隐私数据,因此,考虑到避免泄露个人隐私数据,可以对身份证号码进行hash处理。由于hash计算具有单向的特点和隐匿原始信息的特点,并且好的hash函数具有防碰撞能力,即不同的输入得到的hash值极大概率也不同,因此可以采用hash计算结果(或者称摘要值)作为用户ID。手机号码也是相同的原理。
类似的,还可以是对一组用户的数据顺序拼接后进行hash计算,得到的摘要值作为第一用户的ID,例如hash(姓名+证件类型+证件号码)所得到的摘要值作为用户ID,其中的“+”可以表示前后字符的顺序拼接。反洗钱中对于数据的安全性一般具有较高的要求,为了进一步加强数据安全防护,还可以在hash计算中采取加盐操作,例如hash(姓名+证件类型+证件号码+salt),salt为按照预定规则生成的一个值。
第一机构可以是在第一用户注册时提示用户提供基础数据,也可以是第一用户在第一机构平台上发起操作时要求第一用户提供基础数据。
第一用户的AML风险信息,如前所述,例如是第一机构为第一用户标引的STR类罪标签[毒品犯罪][黑社会性质的组织犯罪],或第一机构为第一用户标引的洗钱风险等级标签[高风险等级]之类。第一用户的ID和第一用户的AML风险信息具有对应关系。
第一机构可以将第一用户ID和第一用户的AML风险信息发送至隐私计算单元。第一用户的AML风险信息可以是加密的,从而保障数据传输过程中的安全性。同样,第一用户ID也可以是加密的,特别是对于采用身份证号码或手机号码之类作为第一用户ID的情况。此外,第一机构可以用自身的私钥对发送至隐私计算单元的内容签名,接收者采用第一机构的公钥验证签名后,可以确认该信息是由第一机构发出的,且内容是完整的,没有被篡改。
其中,第一AML风险信息可以是由第一机构发送至隐私计算单元的,具体的可以是,由第一机构发送第一共享请求至隐私计算单元,其中,所述第一共享请求包括第一用户ID和第一AML风险信息。
其中,第一共享数据可以是预先存储隐私计算单元或其他地址中的,可以上链上的地址,也可以是链下的地址。还可以是隐私计算单元获取了触发指令之后,调用相应的合约从第一机构或者预设地址中获取的。如果隐私计算单元部署在链上,而第一共享数据存储在链下,可以通过预言机机制获取第一共享数据。另外,如果隐私计算单元部署在链下,而第一共享数据存储在链上,也可以通过预言机机制获取第一共享数据。
不管是否采用预言机机制,都可能采用第二智能合约的方式,获取预设地址的第一共享数据。
区块链技术从以太坊开始支持用户在区块链网络中创建并调用一些复杂的逻辑,这是以太坊相对于比特币技术的最大进步之一。以太坊作为一个可编程区块链的核心是以太坊虚拟机(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中可以运行虚拟机,从而通过虚拟机执行合约。这样,对于传入区块链节点的隐私计算单元的调用合约的加密交易,可以由隐私计算单元解密后在隐私计算单元中加载的虚拟机内执行,并可以将执行结果加密输出。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服务生成之后发送至链下隐私计算节点的。这里的挑战者可以是本申请实施例中的第一机构。从而,通过上述方式,可以保障出、入链下隐私计算节点的都是经过加密的,以确保数据传输过程中的安全。类似的,进入链下隐私计算节点的数据,可以由发送方用自身的秘钥签名,从而通过验证签名的过程证明该数据是由发送方发送的,且内容是完整的,没有被篡改。后续类似环节中的原理也相同。
类似的,可以通过DIS结合区块链的方式为上述挑战者,或者第一机构创建一个身份。区块链可以提供去中心化(或弱中心化)的、不可篡改(或难以篡改)的、可信的分布式账本,并可以提供安全、稳定、透明、可审计且高效的记录交易以及数据信息交互的方式。区块链网络可以包括多个节点。一般来说区块链的一个或多个节点归属于一个参与方。笼统的说,区块链网络的参与方越多,参与方越权威,区块链网络的可信程度越高。这里称多个参与方构成的区块链网络为区块链平台。借助区块链平台,可以帮助第一机构验证身份。
为了使用区块链平台提供的分布式数字身份服务,第一机构可以将自身的身份在区块链平台中登记。例如,第一机构可以创建一对公钥和私钥,私钥保密存储,并可以创建一个分布式数字身份(也称为去中心化标识符,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及对应的第一AML风险信息,还可以包括第一机构的DID。所述第一机构发送的第一共享请求,可以由第一机构用自身的私钥签名。相应的,所述隐私计算单元收到所述共享请求后可以采用第一机构的公钥来验证所述签名。
需要说明的是,对于用户ID是用户在所述机构注册的账号的情况,同一用户在不同机构注册的账号是相同的。对于用户ID是用户在所述机构发起操作时由所述机构的系统为该用户分配的账号的情况,同一用户在第一机构和第二机构中分别由第一机构系统分配的和由第二机构系统分配的账号是相同的。这样,才能保证S220中基于用户ID进行合并。
对于用户ID包括对所述用户的一项或多项信息经hash计算得到的摘要值的情况,用户在第一机构的ID和在第二机构的ID应当是采用相同的hash函数以及输入,从而保证同一用户在第一机构的ID和在第二机构的ID是相同的。
对于采用加盐操作的,第一机构和第二机构可以事先协商而采用相同的salt。
隐私计算单元分别从第一机构和第二机构接收到第一共享请求和第二共享请求。第一共享请求包括第一用户的ID及对应的第一AML风险信息;第二共享请求包括第二用户的ID及对应的第二AML风险信息。其中,所述第一AML风险信息包括第一STR类罪标签,所述第二AML风险信息包括第二STR类罪标签,所述合并结果为所述第一STR类罪标签和所述第二STR类罪标签合并后的结果。
例如,第一共享请求包括{第一用户ID:第一用户的STR类罪标签[毒品犯罪][黑社会性质的组织犯罪]},第二共享请求包括{第二用户ID:第二用户的STR类罪标签[走私犯罪]}。对于传入的共享请求中的信息是加密的情况,可以先经过解密得到明文。
进而,隐私计算单元可以将不同共享请求中的第一用户ID与第二用户ID进行匹配,如果一致则为该ID合并第一AML风险信息和第二AML风险信息。如上述例子,如果第一共享请求中的第一用户ID与第二共享请求中的第二用户ID相匹配,例如是完全一致,则隐私计算单元可以合并第一AML风险信息和第二AML风险信息。合并结果例如为{第一用户ID/第二用户ID:第一用户/第二用户的STR类罪标签[毒品犯罪][黑社会性质的组织犯罪] [走私犯罪]}。
如前所述,所述第一共享请求中,还可以包括第一机构的DID;类似的,所述第二共享请求中,还可以包括第二机构的DID。进而,隐私计算单元可以将来自于不同机构的共享请求中的用户ID进行匹配,如果一致则为该ID合并AML风险信息。例如,第一共享请求包括{第一机构DID:第一用户ID:第一用户的STR类罪标签[毒品犯罪][黑社会性质的组织犯罪]},第二共享请求包括{第二机构DID:第二用户ID:第二用户的STR类罪标签[走私犯罪]}。如上述例子,如果第一共享请求中的第一用户ID与第二共享请求中的第二用户ID相匹配,例如是完全一致,则隐私计算单元可以合并第一AML风险信息和第二AML风险信息。合并结果例如为{第一机构DID;第二机构DID:第一用户ID/第二用户ID:第一用户/第二用户的STR类罪标签[毒品犯罪][黑社会性质的组织犯罪] [走私犯罪]}。
如前所述,所述隐私计算单元可以部署有智能合约,用于接收至少两个机构发来的所述数据共享请求,并响应该请求,将第一机构发来的第一共享请求中的第一用户ID与第二机构发来的第二共享请求中的第二用户ID进行匹配,如果一致则为该ID合并第一共享请求中的第一AML风险信息和第一共享请求中的第二AML风险信息;还用于发送合并的第一AML风险信息和第二AML风险信息发送至第一机构和第二机构。这样,S230以及后续的“将所述合并结果发送至所述第二机构”可以通过该部署的智能合约实现。
需要说明的是,隐私计算单元可以获取第一机构发送的针对多个用户的共享请求和第二机构发送的针对多个用户的共享请求,首先可以根据用户ID进行匹配,看是否存在同一用户在两个机构都存在AML风险信息,如果存在则进行合并操作,如果只有一个,则不进行合并操作。
步骤230:将所述合并结果发送至所述第一机构。
隐私计算单元将合并的第一AML风险信息和第二AML风险信息发送至第一机构和第二机构,即将合并的AML风险信息反馈至提供了AML风险信息的机构。
进一步的,对于第一机构和第二机构中的任一个仅提供用户ID,但并没有提供任何风险标签,所述隐私计算单元可以在对第一用户ID与第二用户ID进行匹配的步骤中,先检查对应的共享请求中是否包括AML风险信息,确认共享请求中包括AML风险信息后再将第一用户ID与第二用户ID进行匹配;进一步的,还可以检查存在的AML风险信息是否符合预定义规则,例如符合STR类罪标签的具体标签,这样,确认共享请求中存在的AML风险信息符合预定义规则后将第一用户ID与第二用户ID进行匹配。对于不包括AML风险信息的,或包括的AML风险信息不符合预定义规则的,可以不进行匹配,也就避免将存在的AML风险信息分享至没有提供任何AML风险信息或提供的是错误AML风险信息的机构。具体的,在对第一AML风险信息和第二AML风险信息进行合并之前,还可以包括:判断第一AML风险信息和第二AML风险信息是否符合STR类罪标签的格式要求;若否,不执行对第一AML风险信息和第二AML风险信息的合并操作。
隐私计算单元可以将合并的第一AML风险信息和第二AML风险信息根据匹配一致的第一机构DID和第二机构DID分别发送至第一机构和第二机构,发送的这些信息可以用接收方的公钥进行加密,从而只有接收方具有对应的私钥,才能用对应的私钥解密得到原文。隐私计算单元将合并的第一AML风险信息和第二AML风险信息发送至第一机构前,还可以先验证第一机构的身份,例如采用上述S410~S460的过程,不再赘述。类似的,隐私计算单元将合并的第一AML风险信息和第二AML风险信息发送至第二机构前,还可以先验证第二机构的身份。此外,隐私计算单元可以将合并的第一AML风险信息和第二AML风险信息根据匹配一致的第一机构DID和第二机构DID分别发送至第一机构和第二机构,发送的这些信息可以用隐私计算单元的私钥签名。
此外,隐私计算单元还可以将所述合并结果的证明发送至区块链。所述合并结果的证明,可以包括由所述隐私计算单元签名的可验证声明(Verifiable Claim,VC)。VC也是DID中的一项重要应用。所述VC可以存储于区块链平台。例如,VC的内容可以包括某个用户ID对应的合并后结果的hash值,并由所述隐私计算单元对该hash值签名。经过类似S410~S460的过程,隐私计算单元可以将自身的DIDdoc存储于区块链上。
监管机构在验证所述某机构对用户的AML风险信息时,除了从该机构获得所述匹配结果,还可以通过区块链来验证对应的VC。具体的,监管机构可以从区块链上获取所述隐私计算单元的DIDdoc中的公钥,验证所述机构的所述合并结果时,还采用所述隐私计算单元的公钥验证所述VC的签名,从而确认所述VC是由所述隐私计算单元颁发的,且是完整的,即没有经过篡改,而且hash值与合并结果是对应的。这样,基于区块链平台的不可篡改特性以及签名机构的可信,可以提升对金融机构提供的KYC验证结果的真实性认可。所述签名机构的可信,即所述隐私计算单元/第二智能合约的可信,可以通过审计所述隐私计算单元的身份和其内部署的合约代码来实现。审计所述隐私计算单元的身份,具体例如前述所述的发起挑战的过程,可以验证其身份可信。
另外,除了可以对两个机构的AML风险信息进行合并,还可以对多个机构的AML风险信息进行合并,其规则与两个机构类似。具体的,还可以获取第三机构发送的第三共享请求,所述第三共享请求包括第三用户ID,所述第三用户ID与所述第一用户ID对应同一个用户;判断所述第三共享请求是否包括AML风险信息;若否,不将所述合并结果发送至所述第三机构。
这样,通过上述实施例中的方案,可以使得反洗钱义务机构能够具有更多的AML风险结果,从而提升其更准确的进行反洗钱审核能力,从而也提升了行业整体的反洗钱审核能力。
而且,由区块链节点主动地定时启动智能合约来完成定时任务,使得定时任务的发起方无需定时向区块链网络提交区块链交易来调用智能合约。一方面,区块链节点无需接收调用该智能合约的区块链交易,可减少区块链节点处理调用目标智能合约的区块链交易的相关操作(比如,共识、防重放检查、防双花检查等),不仅可降低区块链节点的资源消耗,还可提高完成定时任务的效率。另一方面,区块链网络自动启动智能合约来完成定时任务,可简化定时任务的发起方的操作,有利于提升用户体验。
另一个实施例中,提供了一种通过链代码定时智能合约启动方法。如图5所示,所示方法包括:
步骤510:运行链代码中定义的定时启动逻辑;
步骤520:基于所述定时启动逻辑,判断当前时刻是否到达定时启动时刻,得到第一判断结果;
步骤530:若所述第一判断结果为是,发送用于启动第一智能合约的指令,所述第一智能合约对第一AML风险信息和第二AML风险信息进行合并,得到合并结果,并将合并结果发送至设定的地址。
在本实施例中,在构建区块链网络时,可在节点设备中配置区块链网络的链代码,使得该节点设备通过运行链代码来作为区块链网络中的区块链节点。为了使得区块链节点可以主动启动部署于区块链网络上的智能合约,而无需通过响应接收到的用于调用智能合约的区块链交易来执行智能合约,可预先在区块链网络的链代码中定义定时启动逻辑,那么区块链节点在执行链代码时,可通过该定时启动逻辑来完成上述主动定时智能合约启动操作。
具体而言,定时启动逻辑可用于确定目标智能合约的启动时刻,并在当前时刻到达该启动时刻的情况下,启动目标智能合约。其中,目标智能合约可理解为区块链节点可主动定时启动的智能合约,该智能合约中定义有用于完成定时任务的合约代码。需要说明的是,目标智能合约仍可通过上述相关技术中的方式来部署至区块链网络。
可见,由区块链节点主动地定时启动智能合约来完成定时任务,使得定时任务的发起方无需定时向区块链网络提交区块链交易来调用智能合约。一方面,区块链节点无需接收调用该智能合约的区块链交易,可减少区块链节点处理调用目标智能合约的区块链交易的相关操作(比如,共识、防重放检查、防双花检查等),不仅可降低区块链节点的资源消耗,还可提高完成定时任务的效率。另一方面,区块链网络自动启动智能合约来完成定时任务,可简化定时任务的发起方的操作,有利于提升用户体验。
在本实施例中,由区块链节点运行链代码来确定需要主动定时启动的智能合约,也即目标智能合约。
在一种情况下,可将目标智能合约的信息记录在链代码中,即在开发链代码时将目标智能合约的信息写入链代码中。比如,可将目标智能合约的合约地址写入链代码中。基于链代码中记录有目标智能合约的信息,区块链节点可通过运行链代码来确定出目标智能合约。通过将目标智能合约的信息记录在链代码中,可有效防止目标智能合约的信息被恶意篡改。
在另一种情况下,可通过特定的预设区块链账户来统一记录目标智能合约(可存在多个)的信息,并将该预设区块链账户的信息记录于链代码中,即在开发链代码时将预设区块链账户的信息写入链代码中。比如,可将目标智能合约的合约地址记录于预设区块链账户中,并将预设区块链账户的账户地址写入链代码中。基于链代码中记录有预设区块链账户的信息,区块链节点可通过运行链代码来确定出该区块链账户,从而从该区块链账户中读取目标智能合约的合约地址。通过上述由区块链账户来记录目标智能合约的方式,可便于对需要主动定时启动的智能合约的列表进行更新,使得控制区块链网络完成定时任务更为灵活。
图5的方法,由区块链节点主动地定时启动智能合约来完成定时任务,使得定时任务的发起方无需定时向区块链网络提交区块链交易来调用智能合约。一方面,区块链节点无需接收调用该智能合约的区块链交易,可减少区块链节点处理调用目标智能合约的区块链交易的相关操作(比如,共识、防重放检查、防双花检查等),不仅可降低区块链节点的资源消耗,还可提高完成定时任务的效率。另一方面,区块链网络自动启动智能合约来完成定时任务,可简化定时任务的发起方的操作,有利于提升用户体验。
可选的,发送用于启动第一智能合约的指令,具体可以包括:
获取第一智能合约的合约信息;
基于所述合约信息判断所述第一智能合约是否为链上合约,得到第二判断结果;
若所述第二判断结果为是,发送用于启动部署于区块链上的所述第一智能合约的指令;
若所述第二判断结果为否,发送启动部署于链下节点的所述第一智能合约的指令,其中,所述指令通过预言机机制调用部署于所述链下节点中的所述第一智能合约。
在判断是否为链上合约的时候,可以根据第一智能合约的信息去存储第一智能合约的预设区块上或者预设的智能合约中获取合约代码,如果如何获取合约代码,则说明第一智能合约为链下合约。
具体的,在区块链网络中,区块链账户可以包括外部账户和合约账户等。外部账户通常为用户(个人或机构)所有,而合约账户则对应于部署在区块链中的智能合约。各类账户的结构都类似,例如可以包含Nonce字段、Balance字段、Code字段和Storage字段等。每个账户的Nonce字段的取值从0开始,且Nonce字段的取值随相应账户所发起的交易而依次递增,使得该账户发起的每一交易所含Nonce取值均不相同,从而可避免重放攻击。Balance字段用于存放余额。Storage字段用于存放账户的存储内容。Code字段用于存放智能合约的代码,因而外部账户的Code字段通常为空。即,如果找不到第一智能合约的代码就说明是链下合约。
在本实施例中,第一智能合约可以部署在区块链网络上,即属于链上合约;也可部署在区别于区块链节点的链下节点(不属于区块链网络,为链下设备)中,即属于链下合约。下面分别针对上述两种情况下启动目标智能合约的过程进行说明。
针对第一智能合约为链上合约的情况,区块链节点在判断出需要启动目标智能合约后,可读取目标智能合约的合约代码,从而执行读取到的合约代码。上述过程可参考上述图2所示实施例的相关部分,在此不再赘述。
进一步的,不同于相关技术中由调用智能合约的区块链交易来指示该智能合约需要进行处理的待处理数据,本说明书中智能合约启动过程中不存在调用目标智能合约的区块链交易,即无需由区块链交易来指示目标智能合约的待处理数据。在一种情况下,目标智能合约的待处理数据为链下数据,因此区块链节点可通过预言机机制来获取链下数据,从而执行合约代码以对获取到的链下数据进行处理。在另一种情况下,目标智能合约的待处理数据为自身的状态数据,因此区块链节点可获取目标智能合约的合约账户中存储的状态数据,从而执行合约代码以对获取到的状态数据进行处理。
针对目标智能合约为链下合约的情况,区块链节点在判断出需要启动第一智能合约后,可通过预言机机制调用部署于链下节点中的第一智能合约,从而指示链下节点执行第一智能合约,并通过预言机机制将执行第一智能合约得到的执行结果反馈至区块链节点。
当定时启动的第一智能合约用于实现相对复杂的逻辑时,由于定时启动的频率相对较高,区块链节点通过虚拟机执行目标智能合约的合约代码的过程会消耗相对较多的计算资源,并且由于区块链网络内的所有节点都需要执行目标智能合约的合约代码,随着节点数量的增加会导致计算资源的消耗量成倍增长。针对上述问题,将需定时启动的第一智能合约部署于链下节点中,可避免需要所有区块链节点均执行目标智能合约的合约代码的情况,区块链节点从链下节点处获取执行结果即可,从而有效降低了链上的资源消耗。
可选的,所述判断当前时刻是否到达定时启动时刻,具体可以包括:
实时监测区块链上生成的新的区块;
当检测到所述区块之后,获取所述区块的时间戳信息;
基于所述时间戳信息确定当前时刻;
判断当前时刻是否到达定时启动时刻。
作为一示例性实施例,可将区块链中产生新区块的时刻(即产生最新区块的时刻)作为依据来判断当前时刻是否到达第一智能合约的启动时刻。具体而言,当区块链产生新区块时,会将产生该区块的时刻作为时间戳记录在该区块的区块头中。那么,每当检测到区块链中产生新区块的情况下,可根据新区块所含的时间戳和启动时刻之间的关系,判断当前时刻是否到达启动时刻。比如,可从新区块的区块头中读取时间戳,进而将读取到的时间戳与启动时刻进行比较,确定两者之间的关系。例如,当时间戳与启动时刻相同时,判断需要启动第一智能合约(理解为判断出当前时刻到达启动时刻)。或者,当时间戳与启动时刻之间的差值在预设时长阈值之内时,判断需要启动目标智能合约。当然,通过将时间戳与启动时刻进行比较以判断当前时刻是否到达启动时刻的具体实现方式,可根据实际情况灵活设定,本说明书并不对此进行限制。需要说明的是,可将上述判断当前时刻是否到达启动时刻的逻辑写入链代码中;例如,写入链代码的定时启动逻辑中。
在本实施例中,区块链节点通过运行定时启动逻辑来执行判断当前时刻是否到达启动时刻的操作,可“实时”进行。具体而言,可配置设置有预设时长的定时器,那么定时启动逻辑可用于启动该定时器,在该定时器超时后即启动第一智能合约,同时重置定时器。这种方案适合每间隔固定时间主动启动第一整智能合约进行KYC验证的方案,如定时器定时为4个小时、12个小时或者24个小时。则,每间隔4个小时、12个小时或者24个小时,启动一次第一智能合约。
在一实施例中,区块链节点可直接获取自身记录的时间来确定当前时刻(与其他区块链节点记录的时间同步),或者从网络获取当前时刻,从而将确定出的当前时刻与启动时刻进行比较,以在当前时刻到达启动时刻时启动链上合约。
在另一实施例中,第一智能合约的启动时刻可以依据区块高度(区块的区块号)来设定。例如,将预设区块高度的区块的生成时刻作为启动时刻,也即在区块链网络生成预设区块高度的区块的情况下,判断到达启动时刻,需启动目标智能合约。其中,该预设区块高度可以具体设定为一个或多个具体数值的区块高度(比如,区块号50、区块号99等),也可以设定满足一定条件的区块高度(比如,100的整数倍、50的整数倍等),本说明书并不对此进行限制。
请参见图6,图6为本说明书一实施例中的一种启动链上合约的方法的流程图。如图6所示,该方法应用于区块链,可以包括以下步骤:
步骤610,确定链上合约和启动时刻。
在本实施例中,确定需要主动定时启动的链上合约和启动时刻的具体实现过程,可参考上述图2和图5所示实施例的相关部分,在此不再赘述。
步骤620,判断当前时刻是否到达启动时刻;若到达,则转入步骤630,否则继续执行步骤620。
在本实施例中,每当区块链产生新区块时,可将新区块的时间戳作为依据来判断当前时刻是否到达链上合约的启动时刻。比如,每当检测到区块链中产生新区块的情况下,可从该新区块的区块头中读取时间戳,进而将读取到的时间戳与启动时刻进行比较,确定两者之间的关系。例如,当时间戳与启动时刻相同时,判断需要启动链上合约(理解为判断出当前时刻到达启动时刻)。或者,当时间戳与启动时刻之间的差值在预设时长阈值之内时,判断需要启动链上合约。当然,通过将时间戳与启动时刻进行比较以判断当前时刻是否到达启动时刻的具体实现方式,可根据实际情况灵活设定,本说明书并不对此进行限制。
在本实施例中,区块链节点可“实时”执行步骤620。
步骤630,读取链上合约的合约代码。
在本实施例中,由于链上合约部署于区块链网络中,区块链节点直接读取链上合约的合约代码即可。
步骤640,获取待处理数据。
步骤650,执行合约代码以处理待处理数据。
在本实施例中,不同于相关技术中由调用智能合约的区块链交易来指示该智能合约需要进行处理的待处理数据,本说明书中启动链上合约的过程中不存在调用链上合约的区块链交易,即无需由区块链交易来指示链上合约的待处理数据。在一种情况下,链上合约的待处理数据为链下数据,因此区块链节点可通过预言机机制来获取链下数据,从而执行合约代码以对获取到的链下数据进行处理。在另一种情况下,链上合约的待处理数据为自身的状态数据,因此区块链节点可获取链上合约的合约账户中存储的状态数据,从而执行合约代码以对获取到的状态数据进行处理。
基于同样的思路,本说明书实施例还提供了上述方法对应的装置。图7为本说明书一实施例中对应于图2的一种信息共享装置的结构示意图。所述装置应用于隐私计算单元,如图7所示,该装置可以包括:
触发指令接收模块710,用于接收区块链平台基于链代码中定义的定时启动逻辑发送的触发指令;
信息合并模块720,用于基于所述触发指令,对第一AML风险信息和第二AML风险信息进行合并,得到合并结果;所述第一AML风险信息为第一机构发送的针对第一用户ID的风险信息;所述第二AML风险信息为第二机构发送的针对第二用户ID的风险信息;其中,所述第一用户ID与所述第二用户ID对应同一个用户;
第一合并结果发送模块730,用于将所述合并结果发送至所述第一机构。
基于图7的装置,本说明书实施例还提供了该装置的一些具体实施方案,下面进行说明。
可选的,所述装置还可以包括:第二合并结果发送模块,用于将所述合并结果发送至所述第二机构。
可选的,所述隐私计算单元部署在所述区块链平台上的节点,或者所述隐私计算单元部署在所述区块链平台下的节点。
可选的,所述触发指令被所述区块链平台上的节点通过预言机机制发送至所述区块链平台下的节点的隐私计算单元,用于启动调用部署于所述隐私计算单元的第一智能合约,所述第一智能合约用于对所述第一AML风险信息和所述第二AML风险信息进行合并,得到合并结果。
可选的,所述触发指令用于启动调用部署于所述区块链平台上的第一智能合约,所述第一智能合约用于对所述第一AML风险信息和所述第二AML风险信息进行合并,得到合并结果。
可选的,所述第一用户ID包括:
用户在所述第一机构注册的账号;或,
用户在所述第一机构发起操作时由所述第一机构的系统为该用户分配的账号。
同理,所述第二用户ID包括:
用户在所述第二机构注册的账号;或,
用户在所述第二机构发起操作时由所述第二机构的系统为该用户分配的账号。
可选的,所述第一用户ID包括:对所述同一个用户的一项或多项信息经hash计算得到的摘要值。
同理,所述第二用户ID包括:对所述同一个用户的一项或多项信息经hash计算得到的摘要值。
可选的,所述对所述同一个用户的一项或多项信息经hash计算得到的摘要值,还包括加盐操作得到的摘要值。
可选的,当所述隐私计算单元部署在所述区块链平台上的节点时,所述装置还可以包括:
第一共享请求获取模块,用于通过预言机机制获取第一机构发送的第一共享请求,所述第一共享请求包括第一用户ID和第一AML风险信息,所述第一共享请求存储于所述区块链平台下的节点;
第二共享请求获取模块,用于通过预言机机制获取第二机构发送的第二共享请求,所述第二共享请求包括第二用户ID和第二AML风险信息,所述第二共享请求存储于所述区块链平台下的节点。
可选的,当所述隐私计算单元部署在所述区块链平台上的节点时,所述装置还可以包括:
智能合约调用模块,用于调用第二智能合约获取第一机构发送的第一共享请求和第二机构发送的第二共享请求;所述第一共享请求包括第一用户ID和第一AML风险信息;所述第二共享请求包括第二用户ID和第二AML风险信息,所述第一共享请求和所述第二共享请求存储于所述区块链平台上的节点。
可选的,所述装置还可以包括:
第一判断模块,用于判断第一AML风险信息和第二AML风险信息是否符合STR类罪标签的格式要求;若否,不执行对第一AML风险信息和第二AML风险信息的合并操作。
可选的,所述装置还可以包括:
第三共享请求获取模块,用于获取第三机构发送的第三共享请求,所述第三共享请求包括第三用户ID,所述第三用户ID与所述第一用户ID对应同一个用户;
第二判断模块,用于判断所述第三共享请求是否包括AML风险信息;若否,不将所述合并结果发送至所述第三机构。
可选的,所述第一AML风险信息包括第一STR类罪标签,所述第二AML风险信息包括第二STR类罪标签,所述合并结果为所述第一STR类罪标签和所述第二STR类罪标签合并后的结果。
可选的,所述装置还可以包括:
身份证明模块,用于在获取第一共享请求和第二共享请求之前,向所述第一机构和所述第二机构证明所述隐私计算单元的身份。
可选的,所述身份证明模块,具体可以用于向所述第一机构和所述第二机构发送远程证明报告,所述远程证明报告包括所述隐私计算单元关于链下TEE的自荐信息和权威机构对所述自荐信息的验证信息。
可选的,所述装置还可以包括:第一身份确认模块,用于确认所述第一机构的身份。
可选的,所述装置还可以包括:第二身份确认模块,用于确认所述第二机构的身份。
可选的,所述第一用户ID和第二用户ID是经过加密的。
可选的,所述第一AML风险信息和第二AML风险信息是经过加密的。
可选的,所述装置还可以包括:合并结果的证明发送模块,用于将所述合并结果的证明发送至区块链。
可选的,所述合并结果的证明发送模块,具体可以用于通过预言机机制将所述合并结果的证明发送至区块链。
可选的,所述合并结果的证明包括可以由所述隐私计算单元或所述第一智能合约进行签名的可验证声明。
可选的,监管机构验证所述第一机构/第二机构的所述合并结果时,还采用所述隐私计算单元或所述第一智能合约的公钥验证所述可验证声明的签名。
可选的,所所述第一共享请求中还包括第一机构的DID,所述第二共享请求中还包括第二机构的DID。
可选的,所述第一合并结果发送模块730,具体用于将合并的第一AML风险信息和第二AML风险信息根据合并一致的第一机构的DID和第二机构的DID发送至所述第一机构。
基于同样的思路,本说明书实施例还提供了对应于图5的一种智能合约启动装置的结构示意图。所述装置应用于隐私计算单元,所述装置可以包括:
代码运行模块,用于运行链代码中定义的定时启动逻辑;
结果判断模块,用于基于所述定时启动逻辑,判断当前时刻是否到达定时启动时刻,得到第一判断结果;
指令发送模块,用于若所述第一判断结果为是,发送用于启动第一智能合约的指令,所述第一智能合约对第一AML风险信息和第二AML风险信息进行合并,得到合并结果,并将合并结果发送至设定的地址。
可选的,所述指令发送模块,具体可以包括:
合约信息获取单元,用于获取第一智能合约的合约信息;
结果判断单元,用于基于所述合约信息判断所述第一智能合约是否为链上合约,得到第二判断结果;
第一指令发送判断单元,用于若所述第二判断结果为是,发送用于启动部署于区块链上的所述第一智能合约的指令。
可选的,所述指令发送模块还可以包括:
第二指令发送单元,用于若所述第二判断结果为否,发送启动部署于链下节点的所述第一智能合约的指令,其中,所述指令通过预言机机制调用部署于所述链下节点中的所述第一智能合约。
可选的,所述判断当前时刻是否到达定时启动时刻,具体可以包括:
实时监测区块链上生成的新的区块;
当检测到所述区块之后,获取所述区块的时间戳信息;
基于所述时间戳信息确定当前时刻;
判断当前时刻是否到达定时启动时刻。
可选的,所述链下节点执行所述第一智能合约得到的验证结果,由所述链下节点通过预言机机制反馈至所述区块链。
基于同样的思路,本说明书实施例还提供了上述方法对应的设备。
图8为本说明书一实施例中对应于图2的一种信息共享设备的结构示意图。如图8所示,设备800可以包括:
至少一个处理器810;以及,
与所述至少一个处理器通信连接的存储器830;其中,
所述存储器830存储有可被所述至少一个处理器810执行的指令820,所述指令被所述至少一个处理器810执行,以使所述至少一个处理器810能够:
接收区块链平台基于链代码中定义的定时启动逻辑发送的触发指令;
基于所述触发指令,对第一AML风险信息和第二AML风险信息进行合并,得到合并结果;所述第一AML风险信息为第一机构发送的针对第一用户ID的风险信息;所述第二AML风险信息为第二机构发送的针对第二用户ID的风险信息;其中,所述第一用户ID与所述第二用户ID对应同一个用户;
将所述合并结果发送至所述第一机构。
本说明书实施例提供的一种智能合约启动设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
运行链代码中定义的定时启动逻辑;
基于所述定时启动逻辑,判断当前时刻是否到达定时启动时刻,得到第一判断结果;
若所述第一判断结果为是,发送用于启动第一智能合约的指令,所述第一智能合约对第一AML风险信息和第二AML风险信息进行合并,得到合并结果,并将合并结果发送至设定的地址。
基于同样的思路,本说明书实施例还提供了上述方法对应的计算机可读介质。计算机可读介质上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现以下方法:
接收区块链平台基于链代码中定义的定时启动逻辑发送的触发指令;
基于所述触发指令,对第一AML风险信息和第二AML风险信息进行合并,得到合并结果;所述第一AML风险信息为第一机构发送的针对第一用户ID的风险信息;所述第二AML风险信息为第二机构发送的针对第二用户ID的风险信息;其中,所述第一用户ID与所述第二用户ID对应同一个用户;
将所述合并结果发送至所述第一机构。
或者,所述计算机可读指令可被处理器执行以实现以下方法:
运行链代码中定义的定时启动逻辑;
基于所述定时启动逻辑,判断当前时刻是否到达定时启动时刻,得到第一判断结果;
若所述第一判断结果为是,发送用于启动第一智能合约的指令,所述第一智能合约对第一AML风险信息和第二AML风险信息进行合并,得到合并结果,并将合并结果发送至设定的地址。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
在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 (57)
1.一种信息共享方法,所述方法应用于隐私计算单元,包括:
接收区块链平台基于链代码中定义的定时启动逻辑发送的触发指令;
基于所述触发指令,对第一AML风险信息和第二AML风险信息进行合并,得到合并结果;所述第一AML风险信息为第一机构发送的针对第一用户ID的风险信息;所述第二AML风险信息为第二机构发送的针对第二用户ID的风险信息;其中,所述第一用户ID与所述第二用户ID对应同一个用户;所述第一用户ID和第二用户ID是经过加密的,所述第一AML风险信息和第二AML风险信息是经过加密的;进行合并的所述第一AML风险信息和所述第二AML风险信息符合STR类罪标签的格式要求;
将所述合并结果发送至所述第一机构以及所述第二机构。
2.如权利要求1所述的方法,所述隐私计算单元部署在所述区块链平台上的节点,或者所述隐私计算单元部署在所述区块链平台下的节点。
3.如权利要求1所述的方法,所述触发指令被所述区块链平台上的节点通过预言机机制发送至所述区块链平台下的节点的隐私计算单元,用于启动调用部署于所述隐私计算单元的第一智能合约,所述第一智能合约用于对所述第一AML风险信息和所述第二AML风险信息进行合并,得到合并结果。
4.如权利要求1所述的方法,所述触发指令用于启动调用部署于所述区块链平台上的第一智能合约,所述第一智能合约用于对所述第一AML风险信息和所述第二AML风险信息进行合并,得到合并结果。
5.如权利要求1所述的方法,所述第一用户ID包括:
用户在所述第一机构注册的账号;或,
用户在所述第一机构发起操作时由所述第一机构的系统为该用户分配的账号。
6.如权利要求1所述的方法,所述第一用户ID或所述第二用户ID包括:
对所述同一个用户的一项或多项信息经hash计算得到的摘要值。
7.如权利要求6所述的方法,所述对所述同一个用户的一项或多项信息经hash计算得到的摘要值,还包括加盐操作得到的摘要值。
8.如权利要求1所述的方法,当所述隐私计算单元部署在所述区块链平台上的节点时,在对第一AML风险信息和第二AML风险信息进行合并之前,还包括:
通过预言机机制获取第一机构发送的第一共享请求,所述第一共享请求包括第一用户ID和第一AML风险信息,所述第一共享请求存储于所述区块链平台下的节点;
通过预言机机制获取第二机构发送的第二共享请求,所述第二共享请求包括第二用户ID和第二AML风险信息,所述第二共享请求存储于所述区块链平台下的节点。
9.如权利要求1所述的方法,当所述隐私计算单元部署在所述区块链平台上的节点时,在对第一AML风险信息和第二AML风险信息进行合并之前,所述方法还包括:
调用第二智能合约获取第一机构发送的第一共享请求和第二机构发送的第二共享请求;所述第一共享请求包括第一用户ID和第一AML风险信息;所述第二共享请求包括第二用户ID和第二AML风险信息,所述第一共享请求和所述第二共享请求存储于所述区块链平台上的节点。
10.如权利要求1所述的方法,在对第一AML风险信息和第二AML风险信息进行合并之前,还包括:
判断第一AML风险信息和第二AML风险信息是否符合STR类罪标签的格式要求;
若否,不执行对第一AML风险信息和第二AML风险信息的合并操作。
11.如权利要求8或9所述的方法,还包括:
获取第三机构发送的第三共享请求,所述第三共享请求包括第三用户ID,所述第三用户ID与所述第一用户ID对应同一个用户;
判断所述第三共享请求是否包括AML风险信息;
若否,不将所述合并结果发送至所述第三机构。
12.如权利要求1所述的方法,所述第一AML风险信息包括第一STR类罪标签,所述第二AML风险信息包括第二STR类罪标签,所述合并结果为所述第一STR类罪标签和所述第二STR类罪标签合并后的结果。
13.如权利要求8或9所述的方法,在获取第一共享请求和第二共享请求之前,向所述第一机构和所述第二机构证明所述隐私计算单元的身份。
14.如权利要求13所述的方法,向所述第一机构和所述第二机构证明所述隐私计算单元的身份,具体包括:
向所述第一机构和所述第二机构发送远程证明报告,所述远程证明报告包括所述隐私计算单元关于链下TEE的自荐信息和权威机构对所述自荐信息的验证信息。
15.如权利要求1所述的方法,在将所述合并结果发送至所述第一机构之前,所述方法还包括:
确认所述第一机构的身份。
16.如权利要求1所述的方法,在将所述合并结果发送至所述第二机构之前,所述方法还包括:
确认所述第二机构的身份。
17.如权利要求3或4所述的方法,所述方法还包括:将所述合并结果的证明发送至区块链。
18.如权利要求17所述的方法,将所述合并结果的证明发送至区块链,具体包括:通过预言机机制将所述合并结果的证明发送至区块链。
19.如权利要求17所述的方法,所述合并结果的证明包括由所述隐私计算单元或所述第一智能合约进行签名的可验证声明。
20.如权利要求19所述的方法,监管机构验证所述合并结果时,还采用所述隐私计算单元或所述第一智能合约的公钥验证所述可验证声明的签名。
21.如权利要求8或9所述的方法,所述第一共享请求中还包括第一机构的DID,所述第二共享请求中还包括第二机构的DID。
22.如权利要求21所述的方法,所述将所述合并结果发送至所述第一机构,具体包括:
将合并的第一AML风险信息和第二AML风险信息根据合并一致的第一机构的DID和第二机构的DID发送至所述第一机构。
23.一种智能合约启动方法,所述方法包括:
运行链代码中定义的定时启动逻辑;
基于所述定时启动逻辑,判断当前时刻是否到达定时启动时刻,得到第一判断结果;
若所述第一判断结果为是,发送用于启动第一智能合约的指令,所述第一智能合约对第一AML风险信息和第二AML风险信息进行合并,得到合并结果,并将合并结果发送至设定的地址;所述第一AML风险信息为第一机构发送的针对第一用户ID的风险信息;所述第二AML风险信息为第二机构发送的针对第二用户ID的风险信息;其中,所述第一用户ID与所述第二用户ID对应同一个用户;所述第一用户ID和第二用户ID是经过加密的,所述第一AML风险信息和第二AML风险信息是经过加密的;进行合并的所述第一AML风险信息和所述第二AML风险信息符合STR类罪标签的格式要求。
24.如权利要求23所述的方法,发送用于启动第一智能合约的指令,具体包括:
获取第一智能合约的合约信息;
基于所述合约信息判断所述第一智能合约是否为链上合约,得到第二判断结果;
若所述第二判断结果为是,发送用于启动部署于区块链上的所述第一智能合约的指令。
25.如权利要求24所述的方法,所述方法还包括:
若所述第二判断结果为否,发送启动部署于链下节点的所述第一智能合约的指令,其中,所述指令通过预言机机制调用部署于所述链下节点中的所述第一智能合约。
26.如权利要求23所述的方法,所述判断当前时刻是否到达定时启动时刻,具体包括:
实时监测区块链上生成的新的区块;
当检测到所述区块之后,获取所述区块的时间戳信息;
基于所述时间戳信息确定当前时刻;
判断当前时刻是否到达定时启动时刻。
27.如权利要求25所述的方法,所述链下节点执行所述第一智能合约得到的验证结果,由所述链下节点通过预言机机制反馈至所述区块链。
28.一种信息共享装置,所述装置应用于隐私计算单元,包括:
触发指令接收模块,用于接收区块链平台基于链代码中定义的定时启动逻辑发送的触发指令;
信息合并模块,用于基于所述触发指令,对第一AML风险信息和第二AML风险信息进行合并,得到合并结果;所述第一AML风险信息为第一机构发送的针对第一用户ID的风险信息;所述第二AML风险信息为第二机构发送的针对第二用户ID的风险信息;其中,所述第一用户ID与所述第二用户ID对应同一个用户;所述第一用户ID和第二用户ID是经过加密的,所述第一AML风险信息和第二AML风险信息是经过加密的;进行合并的所述第一AML风险信息和所述第二AML风险信息符合STR类罪标签的格式要求;
第一合并结果发送模块,用于将所述合并结果发送至所述第一机构;
第二合并结果发送模块,用于将所述合并结果发送至所述第二机构。
29.如权利要求28所述的装置,所述隐私计算单元部署在所述区块链平台上的节点,或者所述隐私计算单元部署在所述区块链平台下的节点。
30.如权利要求28所述的装置,所述触发指令被所述区块链平台上的节点通过预言机机制发送至所述区块链平台下的节点的隐私计算单元,用于启动调用部署于所述隐私计算单元的第一智能合约,所述第一智能合约用于对所述第一AML风险信息和所述第二AML风险信息进行合并,得到合并结果。
31.如权利要求28所述的装置,所述触发指令用于启动调用部署于所述区块链平台上的第一智能合约,所述第一智能合约用于对所述第一AML风险信息和所述第二AML风险信息进行合并,得到合并结果。
32.如权利要求28所述的装置,所述第一用户ID包括:
用户在所述第一机构注册的账号;或,
用户在所述第一机构发起操作时由所述第一机构的系统为该用户分配的账号。
33.如权利要求28所述的装置,所述第一用户ID包括:
对所述同一个用户的一项或多项信息经hash计算得到的摘要值。
34.如权利要求33所述的装置,所述对所述同一个用户的一项或多项信息经hash计算得到的摘要值,还包括加盐操作得到的摘要值。
35.如权利要求28所述的装置,当所述隐私计算单元部署在所述区块链平台上的节点时,所述装置还包括:
第一共享请求获取模块,用于通过预言机机制获取第一机构发送的第一共享请求,所述第一共享请求包括第一用户ID和第一AML风险信息,所述第一共享请求存储于所述区块链平台下的节点;
第二共享请求获取模块,用于通过预言机机制获取第二机构发送的第二共享请求,所述第二共享请求包括第二用户ID和第二AML风险信息,所述第二共享请求存储于所述区块链平台下的节点。
36.如权利要求28所述的装置,当所述隐私计算单元部署在所述区块链平台上的节点时,所述装置还包括:
智能合约调用模块,用于调用第二智能合约获取第一机构发送的第一共享请求和第二机构发送的第二共享请求;所述第一共享请求包括第一用户ID和第一AML风险信息;所述第二共享请求包括第二用户ID和第二AML风险信息,所述第一共享请求和所述第二共享请求存储于所述区块链平台上的节点。
37.如权利要求28所述的装置,所述装置还包括:
第一判断模块,用于判断第一AML风险信息和第二AML风险信息是否符合STR类罪标签的格式要求;若否,不执行对第一AML风险信息和第二AML风险信息的合并操作。
38.如权利要求35或36所述的装置,所述装置还包括:
第三共享请求获取模块,用于获取第三机构发送的第三共享请求,所述第三共享请求包括第三用户ID,所述第三用户ID与所述第一用户ID对应同一个用户;
第二判断模块,用于判断所述第三共享请求是否包括AML风险信息;若否,不将所述合并结果发送至所述第三机构。
39.如权利要求28所述的装置,所述第一AML风险信息包括第一STR类罪标签,所述第二AML风险信息包括第二STR类罪标签,所述合并结果为所述第一STR类罪标签和所述第二STR类罪标签合并后的结果。
40.如权利要求35或36所述的装置,所述装置还包括:
身份证明模块,用于在获取第一共享请求和第二共享请求之前,向所述第一机构和所述第二机构证明所述隐私计算单元的身份。
41.如权利要求40所述的装置,所述身份证明模块,具体用于向所述第一机构和所述第二机构发送远程证明报告,所述远程证明报告包括所述隐私计算单元关于链下TEE的自荐信息和权威机构对所述自荐信息的验证信息。
42.如权利要求28所述的装置,所述装置还包括:第一身份确认模块,用于确认所述第一机构的身份。
43.如权利要求28所述的装置,所述装置还包括:第二身份确认模块,用于确认所述第二机构的身份。
44.如权利要求30或31所述的装置,所述装置还包括:
合并结果的证明发送模块,用于将所述合并结果的证明发送至区块链。
45.如权利要求44所述的装置,所述合并结果的证明发送模块,具体用于通过预言机机制将所述合并结果的证明发送至区块链。
46.如权利要求44所述的装置,所述合并结果的证明包括由所述隐私计算单元或所述第一智能合约进行签名的可验证声明。
47.如权利要求46所述的装置,监管机构验证所述第一机构/第二机构的所述合并结果时,还采用所述隐私计算单元或所述第一智能合约的公钥验证所述可验证声明的签名。
48.如权利要求35或36所述的装置,所述第一共享请求中还包括第一机构的DID,所述第二共享请求中还包括第二机构的DID。
49.如权利要求48所述的装置,所述第一合并结果发送模块,具体用于将合并的第一AML风险信息和第二AML风险信息根据合并一致的第一机构的DID和第二机构的DID发送至所述第一机构。
50.一种智能合约启动装置,所述装置包括:
代码运行模块,用于运行链代码中定义的定时启动逻辑;
结果判断模块,用于基于所述定时启动逻辑,判断当前时刻是否到达定时启动时刻,得到第一判断结果;
指令发送模块,用于若所述第一判断结果为是,发送用于启动第一智能合约的指令,所述第一智能合约对第一AML风险信息和第二AML风险信息进行合并,得到合并结果,并将合并结果发送至设定的地址;所述第一AML风险信息为第一机构发送的针对第一用户ID的风险信息;所述第二AML风险信息为第二机构发送的针对第二用户ID的风险信息;其中,所述第一用户ID与所述第二用户ID对应同一个用户;所述第一用户ID和第二用户ID是经过加密的,所述第一AML风险信息和第二AML风险信息是经过加密的;进行合并的所述第一AML风险信息和所述第二AML风险信息符合STR类罪标签的格式要求。
51.如权利要求50所述的装置,所述指令发送模块,具体包括:
合约信息获取单元,用于获取第一智能合约的合约信息;
结果判断单元,用于基于所述合约信息判断所述第一智能合约是否为链上合约,得到第二判断结果;
第一指令发送判断单元,用于若所述第二判断结果为是,发送用于启动部署于区块链上的所述第一智能合约的指令。
52.如权利要求51所述的装置,所述指令发送模块还包括:
第二指令发送单元,用于若所述第二判断结果为否,发送启动部署于链下节点的所述第一智能合约的指令,其中,所述指令通过预言机机制调用部署于所述链下节点中的所述第一智能合约。
53.如权利要求50所述的装置,所述判断当前时刻是否到达定时启动时刻,具体包括:
实时监测区块链上生成的新的区块;
当检测到所述区块之后,获取所述区块的时间戳信息;
基于所述时间戳信息确定当前时刻;
判断当前时刻是否到达定时启动时刻。
54.如权利要求52所述的装置,所述链下节点执行所述第一智能合约得到的验证结果,由所述链下节点通过预言机机制反馈至所述区块链。
55.一种信息共享设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
接收区块链平台基于链代码中定义的定时启动逻辑发送的触发指令;
基于所述触发指令,对第一AML风险信息和第二AML风险信息进行合并,得到合并结果;所述第一AML风险信息为第一机构发送的针对第一用户ID的风险信息;所述第二AML风险信息为第二机构发送的针对第二用户ID的风险信息;其中,所述第一用户ID与所述第二用户ID对应同一个用户;所述第一用户ID和第二用户ID是经过加密的,所述第一AML风险信息和第二AML风险信息是经过加密的;进行合并的所述第一AML风险信息和所述第二AML风险信息符合STR类罪标签的格式要求;
将所述合并结果发送至所述第一机构以及所述第二机构。
56.一种智能合约启动设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
运行链代码中定义的定时启动逻辑;
基于所述定时启动逻辑,判断当前时刻是否到达定时启动时刻,得到第一判断结果;
若所述第一判断结果为是,发送用于启动第一智能合约的指令,所述第一智能合约对第一AML风险信息和第二AML风险信息进行合并,得到合并结果,并将合并结果发送至设定的地址;所述第一AML风险信息为第一机构发送的针对第一用户ID的风险信息;所述第二AML风险信息为第二机构发送的针对第二用户ID的风险信息;其中,所述第一用户ID与所述第二用户ID对应同一个用户;所述第一用户ID和第二用户ID是经过加密的,所述第一AML风险信息和第二AML风险信息是经过加密的;进行合并的所述第一AML风险信息和所述第二AML风险信息符合STR类罪标签的格式要求。
57.一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现权利要求1至27中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010898504.5A CN111770198B (zh) | 2020-08-31 | 2020-08-31 | 一种信息共享方法、装置及设备 |
US17/364,328 US20210342849A1 (en) | 2020-08-31 | 2021-06-30 | Information sharing methods, apparatuses, and devices |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010898504.5A CN111770198B (zh) | 2020-08-31 | 2020-08-31 | 一种信息共享方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111770198A CN111770198A (zh) | 2020-10-13 |
CN111770198B true CN111770198B (zh) | 2020-12-18 |
Family
ID=72729628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010898504.5A Active CN111770198B (zh) | 2020-08-31 | 2020-08-31 | 一种信息共享方法、装置及设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20210342849A1 (zh) |
CN (1) | CN111770198B (zh) |
Families Citing this family (7)
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 |
CN112769676B (zh) * | 2020-12-31 | 2022-12-30 | 上海掌门科技有限公司 | 一种用于提供群组内信息的方法与设备 |
CN113037497B (zh) * | 2021-03-15 | 2023-08-01 | 中国工商银行股份有限公司 | 一种基于区块链的风险数据共享方法及系统 |
CN113988845B (zh) * | 2021-08-12 | 2022-07-12 | 腾讯科技(深圳)有限公司 | 基于智能合约的数据处理方法、设备以及可读存储介质 |
US11954226B2 (en) * | 2021-08-17 | 2024-04-09 | International Business Machines Corporation | Verifiable privacy preserving computation |
CN114153630B (zh) * | 2021-11-23 | 2022-11-18 | 国网黑龙江省电力有限公司双鸭山供电公司 | 一种基于联盟链的电力信息共享方法 |
CN114760105B (zh) * | 2022-03-22 | 2023-06-06 | 杭州锘崴信息科技有限公司 | 一种安全防护系统以及安全防护方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108462724A (zh) * | 2018-05-17 | 2018-08-28 | 北京京东金融科技控股有限公司 | 数据共享方法、装置、系统、成员节点和可读存储介质 |
CN108537667A (zh) * | 2018-04-09 | 2018-09-14 | 深圳前海微众银行股份有限公司 | 基于区块链的金融资产反洗钱管控方法、设备及存储介质 |
CN108765240A (zh) * | 2018-07-16 | 2018-11-06 | 阿里巴巴集团控股有限公司 | 基于区块链的机构间客户验证方法、交易监管方法和装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10749681B2 (en) * | 2016-10-26 | 2020-08-18 | Black Gold Coin, Inc. | Systems and methods for providing a universal decentralized solution for verification of users with cross-verification features |
US10929936B1 (en) * | 2018-01-04 | 2021-02-23 | Jumio Corporation | Systems and methods to facilitate automated validation of anti-money laundering alerts |
US20200013025A1 (en) * | 2018-07-06 | 2020-01-09 | International Business Machines Corporation | Conditional deferred transactions for blockchain |
EP3617926B1 (de) * | 2018-08-31 | 2020-07-15 | Siemens Aktiengesellschaft | Blockbildungs-einrichtung und -verfahren, knoteneinrichtung und blockbestätigungs-verfahren |
US20200143337A1 (en) * | 2018-11-02 | 2020-05-07 | Figure Technologies, Inc. | Secure computer network-based platform |
US10936723B2 (en) * | 2019-03-27 | 2021-03-02 | Intel Corporation | Fast and secure protocol to bootstrap a blockchain by restoring the blockchain state using trusted execution environment |
CN110399184B (zh) * | 2019-07-31 | 2023-04-25 | 中国工商银行股份有限公司 | 区块链中智能合约的执行方法及装置 |
CN110457875B (zh) * | 2019-07-31 | 2021-04-27 | 创新先进技术有限公司 | 基于区块链的数据授权方法及装置 |
KR20210040569A (ko) * | 2019-10-04 | 2021-04-14 | 삼성에스디에스 주식회사 | 블록체인 기반 데이터 관리 시스템 및 그 방법 |
US20210182859A1 (en) * | 2019-12-17 | 2021-06-17 | Accenture Global Solutions Limited | System And Method For Modifying An Existing Anti-Money Laundering Rule By Reducing False Alerts |
CN111538794B (zh) * | 2020-04-24 | 2023-10-03 | 支付宝(杭州)信息技术有限公司 | 一种数据融合方法、装置及设备 |
-
2020
- 2020-08-31 CN CN202010898504.5A patent/CN111770198B/zh active Active
-
2021
- 2021-06-30 US US17/364,328 patent/US20210342849A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108537667A (zh) * | 2018-04-09 | 2018-09-14 | 深圳前海微众银行股份有限公司 | 基于区块链的金融资产反洗钱管控方法、设备及存储介质 |
CN108462724A (zh) * | 2018-05-17 | 2018-08-28 | 北京京东金融科技控股有限公司 | 数据共享方法、装置、系统、成员节点和可读存储介质 |
CN108765240A (zh) * | 2018-07-16 | 2018-11-06 | 阿里巴巴集团控股有限公司 | 基于区块链的机构间客户验证方法、交易监管方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20210342849A1 (en) | 2021-11-04 |
CN111770198A (zh) | 2020-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111770201B (zh) | 一种数据验证方法、装置及设备 | |
CN111770198B (zh) | 一种信息共享方法、装置及设备 | |
CN111770200B (zh) | 一种信息共享方法和系统 | |
US11205162B2 (en) | Composite keys for authorization policies | |
EP3073670B1 (en) | A system and a method for personal identification and verification | |
CN111767578B (zh) | 一种数据检验方法、装置及设备 | |
CN111770199B (zh) | 一种信息共享方法、装置及设备 | |
CN111818186B (zh) | 一种信息共享方法和系统 | |
CN111770112B (zh) | 一种信息共享方法、装置及设备 | |
CN111814193B (zh) | 一种信息共享方法、装置及设备 | |
Lin et al. | Runtime Hook on Blockchain and Smart Contract Systems | |
Srivastava et al. | Blockchain Risk and Uncertainty in Automated Applications |
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: 40039458 Country of ref document: HK |