CN115941200A - 在区块链中存储联盟信息的方法、系统和区块链节点 - Google Patents
在区块链中存储联盟信息的方法、系统和区块链节点 Download PDFInfo
- Publication number
- CN115941200A CN115941200A CN202211427283.9A CN202211427283A CN115941200A CN 115941200 A CN115941200 A CN 115941200A CN 202211427283 A CN202211427283 A CN 202211427283A CN 115941200 A CN115941200 A CN 115941200A
- Authority
- CN
- China
- Prior art keywords
- transaction
- enterprise
- information
- institution
- federation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
一种在区块链中存储联盟信息的方法、系统和区块链节点,所述方法包括:第一机构的机构设备向服务器发送用于加入机构联盟的请求;服务器根据请求向区块链发送调用智能合约的第一交易,用于请求将所述第一机构加入所述机构联盟;区块链中的节点根据第一交易在智能合约的合约状态中关联地存储第一机构的机构标识、第一公钥和机构信息;已加入机构联盟的第二机构的机构设备从区块链获取第一交易,根据第一交易向区块链发送调用智能合约的第二交易,第二交易用于指示允许所述第一机构加入所述机构联盟;区块链的节点根据第二交易,在智能合约的合约状态中的联盟信息中添加第一机构的机构标识、第一公钥和机构信息。
Description
技术领域
本说明书实施例属于计算机技术领域,尤其涉及一种在区块链中存储联盟信息的方法、系统和区块链节点。
背景技术
目前,监管部门对于涉及重大交易的机构通常要求其履行反非法资金转移的义务。即对大额交易和可疑交易的交易数据进行分析和报送。然而,机构之间的信息相互隔离形成信息孤岛,机构在信息不充分的情况下难以识别可疑用户。而在通过平台在多个机构之间共享风险数据或其他数据时,存在机构数据被窃取或篡改的风险。
发明内容
本发明的目的在于提供一种在区块链中存储联盟信息的方法、系统和区块链节点,通过区块链中的智能合约在区块链中存储可信的联盟信息,使得可信单元可基于可信的联盟信息在机构之间共享数据,提高了机构数据安全性。
本说明书第一方面提供一种在区块链中存储联盟信息的方法,包括:
第一机构的机构设备向服务器发送用于加入机构联盟的请求,所述请求中包括所述第一机构的第一公钥和所述第一机构的机构信息;
所述服务器根据所述请求向区块链发送调用智能合约的第一交易,所述第一交易中包括所述第一机构的机构标识、所述第一公钥和所述机构信息,用于请求将所述第一机构加入所述机构联盟;
所述区块链中的节点根据所述第一交易在所述智能合约的合约状态中关联地存储所述第一机构的机构标识、所述第一公钥和所述机构信息;
已加入所述机构联盟的第二机构的机构设备从所述区块链获取所述第一交易,根据所述第一交易向所述区块链发送调用所述智能合约的第二交易,所述第二交易包括所述第一机构的机构标识,用于指示允许所述第一机构加入所述机构联盟;
所述区块链的节点根据所述第二交易,在所述智能合约的合约状态中的联盟信息中添加所述第一机构的机构标识、所述第一公钥和所述机构信息。
本说明书第二方面提供一种在区块链中存储联盟信息的方法,由区块链节点执行,所述方法包括:
接收由服务器发送的调用智能合约的第一交易,所述第一交易中包括所述第一机构的机构标识、第一公钥和所述机构信息,用于请求将所述第一机构加入所述机构联盟;
根据所述第一交易在智能合约的合约状态中关联地存储所述第一机构的机构标识、所述第一公钥和所述机构信息;
接收由所述机构联盟包括的第二机构发送的第二交易,所述第二交易调用所述智能合约、包括所述第一机构的机构标识,用于指示允许所述第一机构加入所述机构联盟;
根据所述第二交易,在所述智能合约的合约状态中的联盟信息中添加所述第一机构的机构标识、所述第一公钥和所述机构信息。
本说明书第三方面提供一种在区块链中存储联盟信息的系统,包括第一机构的机构设备、服务器、区块链和第二机构的机构设备,所述第二机构为已加入机构联盟的机构,
所述第一机构的机构设备用于向所述服务器发送用于加入机构联盟的请求,所述请求中包括所述第一机构的第一公钥和所述第一机构的机构信息;
所述服务器用于根据所述请求向区块链发送调用智能合约的第一交易,所述第一交易中包括所述第一机构的机构标识、所述第一公钥和所述机构信息,用于请求将所述第一机构加入所述机构联盟;
所述区块链中的节点用于根据所述第一交易在所述智能合约的合约状态中关联地存储所述第一机构的机构标识、所述第一公钥和所述机构信息;
所述第二机构的机构设备用于从所述区块链获取所述第一交易,根据所述第一交易向所述区块链发送调用所述智能合约的第二交易,所述第二交易包括所述第一机构的机构标识,用于指示允许所述第一机构加入所述机构联盟;
所述区块链的节点还用于根据所述第二交易,在所述智能合约的合约状态中的联盟信息中添加所述第一机构的机构标识、所述第一公钥和所述机构信息。
本说明书第四方面提供一种区块链节点,包括:
接收单元,用于接收由服务器发送的调用智能合约的第一交易,所述第一交易中包括所述第一机构的机构标识、第一公钥和所述机构信息,用于请求将所述第一机构加入所述机构联盟;
存储单元,用于根据所述第一交易在智能合约的合约状态中关联地存储所述第一机构的机构标识、所述第一公钥和所述机构信息;
所述接收单元还用于接收由所述机构联盟包括的第二机构发送的第二交易,所述第二交易调用所述智能合约、包括所述第一机构的机构标识,用于指示允许所述第一机构加入所述机构联盟;
所述存储单元还用于根据所述第二交易,在所述智能合约的合约状态中的联盟信息中添加所述第一机构的机构标识、所述第一公钥和所述机构信息。
本说明书第五方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第二方面所述的方法。
本说明书第八方面提供一种区块链节点,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第二方面所述的方法。
在本说明书实施例中,通过区块链中的智能合约在区块链中存储可信的联盟信息,TEE可从区块链获取可信联盟信息,基于该可信联盟信息在多个机构之间共享风险数据,避免了服务器作恶的可能性,保护了用户隐私且满足业务中的合规要求。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例中的系统示意图;
图2为本说明书实施例中在区块链中创建联盟的方法流程图;
图3为本说明书实施例中在区块链中存储可信的联盟信息的方法流程图;
图4为本说明书实施例中的联盟机构之间共享数据的方法流程图;
图5为本说明书实施例中的生成风险并集文件的过程示意图;
图6为本说明书实施例中的区块链节点的架构图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
数据共享经常是机构处理业务的需求。单一机构往往无法获取足够的信息而无法处理业务,这就存在从其他机构获取信息的需求。例如,各国在反非法资金转移合规履职的要求中,很多都要求各个金融机构提供反非法资金转移审核结果。目前,很多国家央行、很多大的金融机构都有在反非法资金转移领域利用区块链来提升效率和准确性并满足监管的尝试。同时,数据作为一种资源,其流动性和可获取性是很多数据应用和产业发展的基础,但数据交换和共享过程中的隐私保护一直是产业发展的一大挑战。下面仍以上述的反非法资金转移为例加以说明。
反非法资金转移(Anti-Money Laundering,AML)是指预防通过各种方式掩饰、隐瞒毒品犯罪、黑社会性质的组织犯罪、恐怖活动犯罪、走私犯罪、贪污贿赂犯罪、破坏金融管理秩序犯罪等犯罪所得及其收益的来源和性质的非法资金转移活动的措施。常见的非法资金转移途径广泛涉及银行、保险、证券、房地产等各种领域。大多数反非法资金转移工作都包括三个核心的事项:
1、客户身份识别制度。反非法资金转移义务主体在与客户建立业务关系或者与其进行交易时,应当根据真实有效地身份证件,核实和记录其客户的身份,并在业务关系存续期间及时更新客户的身份信息资料。
2、大额和可疑交易报告(Suspicious Transaction Report,STR)制度。非法资金流动一般具有数额巨大、交易异常等特点,因此,法律规定了大额和可疑交易报告制度,要求金融机构对数额达到一定标准的交易和缺乏合法目的的异常交易应当及时向反非法资金转移行政主管部门报告,以作为追查违法犯罪行为的线索。
3、客户身份资料和交易记录保存制度客户身份资料和交易记录保存,是指金融机构依法采取必要措施将客户身份资料和交易信息保存一定期限,可以为追查违法犯罪行为提供证据支持。
客户身份识别制度也就是通常所说的“了解你的客户”(Know Your Customer,KYC),指的是获取客户相关识别信息,包括与客户建立业务时了解客户的身份、了解交易的目的、了解资金的来源和去向、以及了解客户的长经营活动和金融交易情况等,是反非法资金转移的基础。
不同金融机构都有审查可疑交易的义务。但是,不同金融机构之间具有的同一用户相关的交易的信息和该用户的信息往往是不同的,这样,不同金融机构对同一用户进行可疑交易分析后标引的风险标签也可能是不同的,风险标签为多个机构协商好的指示风险程度的标签。该风险标签例如包括预设的多个标签,每个标签用于指示用户的非法资金转移风险等级、用户的违法行为类型、或者用户其他非法资金转移风险相关的信息等。例如,风险标签可包括riskH、riskM、riskL等风险标签,riskH例如指示高风险,riskM例如指示中风险,riskL例如指示低风险。单个用户的风险标签可以包括多个风险标签,例如risk1、riskH,其中risk1例如指示特定类型的风险等。一个金融机构如果要更精确的给用户标引风险标签,一个较好的方式是能够获取另一个(或者更多的)金融机构对该同一用户标引的风险标签。因此,就产生了在不同金融机构间共享同一用户的风险标签的需求。
以客户非法资金转移风险等级为例,不同金融机构对同一用户进行可疑交易分析后标引的非法资金转移风险等级也可能是不同的,例如甲机构对用户U1标引的非法资金转移风险是高风险,而乙机构对同一用户U1标引的非法资金转移风险是中风险。一个金融机构如果要更精确的给用户标引非法资金转移风险等级标签,一个较好的方式是能够获取另一个(或者更多的)金融机构对该同一用户标引的非法资金转移风险等级标签。因此,就产生了在不同金融机构间共享同一用户的非法资金转移风险等级标签的需求。
图1为本说明书实施例中的系统架构图。如图1所示,机构设备100、机构设备200和机构设备300可以分别为例如机构A、机构B和机构C的计算设备,所述机构A、机构B和机构C例如可以为金融机构、保险机构、交易机构等机构中的任一机构。可以理解,图中示出三个机构设备作为示例,在实际中可包括其他数目的多个机构设备。机构设备中安装有反非法资金转移平台的客户端,各个机构设备可以直接接收用户的信息,从而客户端基于这些用户信息完成一定的处理工作,如上述审查可疑交易,从而可获得各个用户的风险标签。
以风险标签具体为非法资金转移风险等级为例,机构A和机构B可以分别基于自身的反非法资金转移审核能力对用户标引非法资金转移风险等级。从而,机构A和机构B分别对用户U1标引的非法资金转移风险等级可能不相同。例如,机构A为用户U1标引的非法资金转移风险等级标签为[高风险等级],机构B为用户U1标引的非法资金转移风险等级标签为[中风险等级]。为了获得更为准确的非法资金转移风险等级,多个机构之间可以通过反非法资金转移服务器(下文简称为服务器)400共享同一用户的非法资金转移风险等级标签。同时,在该风险数据共享的过程中,需要满足多个合规要求。例如,在风险数据共享中提供风险数据的机构不能获知查询其提供的数据的机构、查询风险数据的机构不能获知由哪个机构提供了风险数据、以及服务器不能获知机构查询哪个机构的数据、以及查询到的明文数据。这些合规要求增加了风险数据的共享及查询的难度。
服务器400中包括可信单元,所述可信单元可以为任何可以进行隐私数据或机密数据处理、保护数据不泄露的计算单元,所述可信单元例如包括可信执行环境(TrustedExecutionEnvironment,TEE)、可信机构中的计算设备等。图1中示出TEE40作为可信单元的示例,下文以TEE40作为可信单元的示例进行描述。各个机构设备可将经脱敏和加密的密文风险数据发送给服务器400,服务器400将各个机构的密文风险数据存储到本地或者文件存储服务器(图1中未示出)中。TEE40可从服务器400接收存储密文风险数据的地址,从该地址获取密文风险数据,对密文风险数据解密得到各个机构的风险数据,然后对多个机构的风险数据进行融合处理,并将经融合处理的数据返回给各个机构设备,从而在保护用户隐私的同时在各个机构之间共享数据。
在相关技术中,服务器400还将各个机构的公钥提供给TEE40,TEE40使用各个机构的公钥对待发送给各个机构的数据加密得到密文数据,并将各个密文数据发送给各个机构的机构设备。在该相关技术中,服务器400有可能将自己的公钥代替机构的公钥提供给TEE40,使得TEE40使用服务器的公钥对将发送给机构的数据加密得到密文数据,TEE40在将该密文数据发送给服务器之后,服务器可使用自己的私钥对该密文数据解密,从而窃取机构之间共享的数据。或者,服务器400有可能伪造机构的风险数据和机构公钥,以参与到机构数据共享中,从而可窃取到其他机构的风险数据,并向其他机构提供伪造的风险数据。因此,需要确保TEE能够获取到真实的机构或者特定范围(例如特定联盟)中的机构的公钥及数据,以保证机构数据共享过程中的数据安全性。
在本说明书实施例中,各个机构设备可与图1中的区块链500连接,具体是,与区块链中的一个节点连接,以通过向区块链中发送调用智能合约的交易而加入机构联盟,并在该智能合约的合约状态中存储机构加入联盟的信息。TEE40可与区块链500连接,或者TEE40可通过与预言机连接从而连接到区块链500,以从区块链500获取到可信的机构联盟的联盟信息,并基于该联盟信息进行机构间的数据共享,确保了数据的安全性。可以理解,图1中虽然示出可信单元位于服务器400内部,本说明书实施例不限于此,TEE也可以位于另一个计算设备中,服务器400可通过与该计算设备连接而连接到该TEE。
图2为本说明书实施例中在区块链中创建联盟的方法流程图。其中,图2中的机构设备可以为联盟创建机构的机构设备,其例如可以为图1中的机构设备200或机构设备300,下文中以机构设备200为例进行描述。
如图2所示,在步骤S201,机构设备200向服务器400发送联盟创建请求,该请求中包括机构B的公钥和机构信息。
其中,所示机构信息中例如包括机构B的资质信息、证件、执照等,以用于验证机构B的机构身份。
在步骤S203,服务器400向区块链发送调用智能合约(下文称为合约)C1的交易Tx1,交易Tx1中包括机构B的机构标识、公钥和机构信息。
交易Tx1中例如可调用和C1中的用于创建联盟的函数,以指示该交易Tx1用于创建联盟。
在一种实施方式中,服务器400可基于机构B的公钥生成机构B的DID(例如DIDb),并在交易Tx1中包括DIDb作为机构B的机构标识。服务器400在生成DIDb之后,可将DIDb返回给机构设备200,从而机构设备200可通过DIDb作为区块链账户向区块链发送交易。
可以理解,本说明书实施例中不限于由服务器生成DIDb,也可以由机构设备200基于机构B的公钥生成DIDb,并在联盟创建请求中包括DIDb。另外,机构B的机构标识不限于为机构B的DID,而可以为其他可唯一标识机构B的标识。
在步骤S205,区块链节点根据交易Tx1在合约C1的合约状态中存储联盟信息,在该联盟信息中添加机构B的机构标识、公钥和机构信息。
区块链中的节点在接收到交易Tx1之后,将交易Tx1广播到区块链中,从而区块链中的每个节点都可以执行交易Tx1。通常,区块链中的各个节点在对执行交易Tx1的共识达成之后,开始执行交易Tx1。区块链节点在合约C1的合约状态中创建联盟信息,在该联盟信息中包括机构B的机构标识、公钥和机构信息。区块链节点还可以在联盟信息中与DIDb关联地记录机构B为联盟创建机构。
机构设备200在确定交易Tx1执行完成之后,可通过向区块链发送调用合约C1的交易,查询机构B的DIDb对应的信息,以验证服务器是否向区块链存储了正确的信息。
图3为本说明书实施例中在区块链中存储可信的联盟信息的方法流程图。其中,假设机构设备100对应的机构A为待加入机构联盟的机构,机构设备200对应的机构B为已加入机构联盟的机构。其中,图3中的已加入联盟的机构不限于为机构B,例如也可以为机构C。
如图3所示,首先,在步骤S301,机构设备100向服务器发送联盟加入请求,请求中包括机构A的公钥和机构信息。
机构A在请求加入联盟之前,可首先通过向区块链中发送调用合约C1的交易,以查询已加入联盟的机构信息是否真实可信。例如,机构设备100在获取到机构200对应的公钥和机构信息之后,可向机构B请求验证该公钥是否为机构B的公钥。机构A可在验证通过之后向服务器发送联盟加入请求,该请求中可包括机构A的公钥和机构信息。
在步骤S303,服务器400向区块链发送调用合约的交易Tx2,交易Tx2中包括机构A的机构标识、公钥和机构信息。
服务器400可向区块链500中的任一节点发送交易Tx2。交易Tx2中例如可调用合约C1中的用于加入联盟的函数,以指示用于将机构A加入机构联盟。
在一种实施方式中,服务器400可基于机构A的公钥生成机构A的DID(例如DIDa),并在交易Tx2中包括DIDa作为机构A的机构标识。服务器400在生成DIDa之后,可将DIDa返回给机构设备100,从而机构设备100可通过DIDa作为区块链账户向区块链发送交易。
可以理解,服务器400不限于将机构的DID作为机构标识,也可以使用机构的其他用于唯一标识机构的机构标识,如机构名称、机构代号等,对此不作限定。
在步骤S305,区块链中的节点根据交易Tx2在合约C1的合约状态中存储机构A的机构标识、公钥和机构信息,并存储交易Tx2。
区块链中的节点在接收到交易Tx2之后,执行交易Tx2。根据交易Tx2的执行,在合约C1的合约状态中的例如待加入联盟机构的机构信息列表中存储机构A的机构标识、公钥和机构信息,以等待加入联盟。同时,区块链中的节点在执行完交易Tx2所在的区块之后,在区块数据库中存储该区块,该区块中包括交易Tx2的交易体和交易收据等数据。
在步骤S307,机构设备200从区块链中获取交易Tx2。
在第一种实施方式中,合约C1中预先设置由联盟创建机构(即机构B)进行对待加入机构的审批。根据该设置,创建机构(即机构B)对应的机构设备200可定期从区块链中拉块,在拉取到区块之后,确定该区块中是否包括请求将机构加入联盟的交易,并根据该交易进行对待加入联盟的机构的审批。具体是,机构设备200从拉取到的区块中获取交易Tx2,根据交易Tx2中包括的机构A的公钥和机构信息进行审批。机构设备200可首先向机构设备100验证交易Tx2中的公钥是否为机构A的公钥,在验证通过之后,根据机构信息确定机构A是否可加入联盟。
在第二种实施方式中,合约C1中预先设置了由已加入联盟的一个或多个机构进行对待加入机构的审批,并在审批结果为通过(即允许机构加入联盟)的机构数满足预设条件时确定待加入机构可加入联盟。所述预设条件可包括:审批结果为通过的机构数等于预设值、审批结果为通过的机构数与已加入联盟的机构数的比值等于预设值等等。
根据该设置,已加入联盟的各个机构(其中包括机构B)可定期从区块链中拉块,在拉取到区块之后,确定该区块中是否包括请求将机构加入联盟的交易,并根据该交易进行对待加入联盟的机构的审批。
在步骤S309,机构设备200向区块链发送调用合约C1的交易Tx3,交易Tx3中包括机构A的机构标识和审批通过信息。
在上述第一种实施方式中,机构设备200在上述对机构A的审批通过的情况下,向区块链中的任一节点发送调用合约C1的交易Tx3。交易Tx3中例如调用合约C1的审批结果函数。假设审批结果为通过,则机构设备200在交易Tx3中包括机构A的DIDa和指示审批通过的信息,以指示允许机构A加入联盟。
在上述第二种实施方式中,各个已加入联盟的机构的机构设备在上述对机构A的审批通过的情况下,向区块链中的任一节点发送调用合约C1的交易,以在该交易中包括对机构A的审批通过的审批结果。
在步骤S311,区块链的节点根据交易Tx3在合约C1的合约状态中更新联盟信息,存储交易Tx3的数据。
在上述第一种实施方式中,区块链中的节点在接收到交易Tx3之后执行交易Tx3。具体是,区块链的节点根据交易Tx3确定机构B对机构A的审批通过之后,在合约C1的合约状态中的联盟信息中加入机构A的机构标识、公钥和机构信息,以指示机构A已加入联盟。区块链节点还可以将上述待加入联盟的机构列表中的机构A的信息删除。同时,区块链中的节点在执行完交易Tx3所在的区块之后,在区块数据库中存储该区块,该区块中包括交易Tx3的交易体和交易收据等数据。其中,交易Tx3的交易收据中可包括交易Tx3的执行结果,该执行结果例如用于指示机构A加入联盟。
在上述第二种实施方式中,在合约C1的合约状态中设置有与机构A对应的参数N,该参数N用于记录对机构A审批通过的机构数目。区块链节点在每次从一个联盟机构接收到包含对机构A的审批结果的交易时,如果该交易中的审批结果为通过,则对参数N加1,并判断更新后的参数N是否满足上述预设条件,如果满足的话,则执行后续的步骤S311,如果不满足的话,则确定机构A还不能加入联盟。假设区块链节点在接收到由机构设备200发送的交易Tx3之后,更新参数N,并判断参数N已经满足上述预设条件,则在联盟信息中添加机构A的信息,以指示机构A已加入联盟,同时在交易Tx3的收据中包括该机构A加入联盟的信息作为交易Tx3的执行结果。
在步骤S313,服务器从区块链获取交易Tx3的数据,根据交易Tx3的数据获取机构A加入联盟的信息。
服务器在向区块链发送交易Tx2之后,可从区块链拉块,在拉取到区块之后,确定该区块中是否包括由已加入联盟的机构的机构设备发送的包括对机构A的审批结果的交易(例如交易Tx3)。服务器在从拉取的区块中获取到交易Tx3之后,根据交易Tx3的收据确定机构A已加入联盟。
在步骤S315,服务器将机构A加入联盟的信息返回给机构设备100。
在通过图3所示的方法在区块链中存储联盟信息之后,该联盟信息中包括的机构的信息都是真实可信的,因此,该联盟信息可用于机构数据共享的场景中,以避免数据泄露等风险。
图4为本说明书实施例中的联盟机构之间共享数据的方法流程图。图4中的机构设备可以是联盟中包括的任一机构的机构设备,下文中以机构设备100为例进行描述。
如图4所示,首先,在步骤S401,机构设备100将密文数据请求发送给服务器400。
该密文数据请求用于请求获取由联盟中的一个或多个机构提供(共享)的数据。该密文数据请求例如通过使用TEE的公钥对数据请求加密而生成。通过如此,使得服务器400的TEE外部不能获取到明文的数据请求,进一步保护了用户隐私。
在一种实施方式中,机构设备100可使用TEE的公钥对数据请求进行信封加密。具体是,机构设备100可使用对称密钥对数据请求进行加密,生成密文数据请求,使用TEE的公钥对该对称密钥加密生成密文密钥,并将该密文密钥与密文数据请求一起发送给服务器400。通过使用TEE公钥对数据请求进行信封加密,相比于使用TEE公钥直接对数据请求加密,由于对称加密相对于非对称加密的计算量更小、且对称密钥的数据量较小,因此减少了加解密时的计算量,缩短了加解密的时长。
可以理解,这里不限于使用TEE的公钥进行加密,例如TEE与机构设备之间可协商其他非对称密钥或对称密钥,以用于加密。
其中,TEE是基于CPU硬件的安全扩展,且与外部完全隔离的可信执行环境。目前工业界十分关注TEE的方案,几乎所有主流的芯片和软件联盟都有自己的TEE解决方案,比如软件方面的TPM(Trusted Platform Module,可信赖平台模块)以及硬件方面的Intel SGX(SoftwareGuard Extensions,软件保护扩展)、ARM Trustzone(信任区)和AMD PSP(Platform SecurityProcessor,平台安全处理器)等。TEE可以起到硬件黑箱作用,在TEE中执行的代码和数据即便是操作系统层都无法偷窥,只有通过代码中预先定义的接口才能对其进行操作。在效率方面,由于TEE的黑箱性质,在TEE中进行运算的是明文数据,而不是同态加密中复杂的密码学运算,计算过程效率几乎没有损失。
以Intel SGX(以下简称SGX)技术为例。区块链节点可以基于SGX技术创建enclave(围圈或飞地)作为TEE。其中,服务器可利用CPU中新增的处理器指令,在内存中可以分配一部分区域EPC(Enclave Page Cache,围圈页面缓存或飞地页面缓存),以用于驻留上述的enclave。上述EPC对应的内存区域被CPU内部的内存加密引擎MEE(Memory EncryptionEngine)加密,该内存区域中的内容(enclave中的代码和数据)只有在CPU内核中才能够被解密,且用于加解密的密钥只有在EPC启动时生成并存储在CPU中。可见,enclave的安全边界只包含其自身和CPU,无论是特权或非特权软件都无法访问enclave,即便是操作系统管理员和VMM(VirtualMachine Monitor,虚拟机监视器;或称为Hypervisor)也无法影响enclave中的代码和数据,因而具有极高的安全性,并且在上述安全性保障的前提下,CPU能够在enclave中对明文形式的数据进行处理,具有极高的运算效率,从而兼顾了数据安全性和计算效率。而对于进、出TEE的数据,可以是加密的,从而保障数据的隐私。
所述TEE在被使用前,可以向使用者证明自身是可信的。证明自身可信的过程可能涉及远程证明报告。远程证明报告产生于对TEE的远程证明过程中。远程证明报告可以由权威的认证服务器对TEE产生的自荐信息进行验证后生成。该远程证明报告可以用于表明TEE可信任。
例如,机构设备100在使用TEE的公钥对数据请求加密之前,可以首先验证TEE是否可信。具体的,机构设备100可以向TEE发起挑战,并接收TEE返回的远程证明报告。机构设备100在获取远程证明报告后,可以根据权威认证服务器的公钥对该远程证明报告的签名进行验证,如果验证通过则可以确认TEE是可信的。具体是,TEE在接收所述验证请求之后,基于其内部机制生成认证信息,并将该认证信息及TEE的硬件公钥发送给机构设备100。所述认证信息例如包括所述TEE的签名信息、硬件信息和软件信息等。其中,所述签名信息例如通过TEE的硬件密钥生成;所述硬件信息例如包括,各种硬件的指标,比如CPU主频,内存容量等等;所述软件信息包括各个程序的代码哈希值、代码名称、版本、运行日志等。如本领域技术人员所知,TEE可通过内存硬件执行对其中运行程序的“测量”,例如获取该程序的代码哈希值、该程序在特定执行点的内存占有的哈希值等等,并在所述认证信息中包括对所述程序的“测量”信息,由于该“测量”信息由该TEE自身实体(内存硬件)执行,而不涉及任何软件、操作系统,因此是真实可信的。机构设备100在接收到所述认证信息之后,可把所述认证信息发送给TEE的远程认证服务器,从而从所述服务器接收到对所述TEE的远程证明报告。所述远程证明报告包括所述TEE的身份验证、及对所述TEE内部执行程序的验证等等。从而,机构设备100基于该远程证明报告可确定TEE是可信的,通过该TEE的查询结果是可信的。同时,机构设备100可在本地保存TEE的硬件公钥,以用于后续对TEE的签名的验证。其中,TEE中存储一对公私钥,私钥妥善保管在TEE中。所述TEE传出的内容,可以用所述TEE内保存的私钥来签名,从而证明是由该TEE执行的结果。
具体是,该密文数据请求对应的数据请求(即明文数据请求)中可包括机构A中的风险数据,该风险数据包括机构A中多个用户的用户标识和风险标签,该数据请求用于通过与其他机构的风险数据进行融合,从而获取联盟中其他机构中的该多个用户的风险标签,以便更准确地判断用户的风险等级。
机构设备100可使用自己的私钥对密文数据请求签名,将机构设备100的DID(例如DIDa)、密文数据请求及签名发送给服务器400。
同时,联盟中的其他机构的机构设备可与机构设备100类似地向服务器发送密文数据请求,且该密文数据请求对应的数据请求中包括本机构的风险数据。
在步骤S403,服务器400向TEE提供机构标识和对应的密文数据请求。
服务器400在从各个机构设备接收到密文数据请求之后,可将该密文数据请求存储到服务器内或者服务器外的存储服务器中,并获取该密文数据请求的存储地址。
之后,服务器400可向TEE发送各个机构的DID列表、及各个DID对应的密文数据请求的文件地址。TEE可从各个DID对应的文件地址读取各个DID对应的密文数据请求。
在一种实施方式中,服务器还将机构A的DIDa的私钥对密文数据请求的签名提供给TEE。
在一种实施方式中,服务器还可以将预先获取的机构A的DIDa的公钥一起提供给TEE。
在步骤S405,TEE从区块链获取联盟信息。
具体是,TEE可通过预言机从区块链获取信息。TEE向预言机发送对区块链中的联盟信息的请求,预言机根据该请求向区块链发送调用合约C1的交易Tx4,以用于查询合约C1的合约状态中的联盟信息。区块链中的节点在执行交易Tx4之后,从合约C1的合约状态中获取联盟信息,将该联盟信息返回给预言机,从而预言机将联盟信息返回给TEE。
通过上述对图2和图3所示方法的描述可以看出,TEE从区块链中获取的联盟信息是真实可信的,如此TEE通过基于该联盟信息进行机构之间的数据共享,避免了如上文所述的由于服务器作恶而导致的数据泄漏或数据被篡改的风险。
在步骤S407,TEE根据联盟信息对机构标识进行验证,在验证通过之后,对密文数据请求解密,得到数据请求。
在一种实施方式中,TEE根据联盟信息中包括的各个机构的机构标识,验证发送密文数据请求的各个机构的机构标识是否被包括在联盟信息中。在验证通过的情况下,可证明发送密文数据请求的机构为联盟机构,因此可使用TEE的私钥对该密文数据请求解密,得到数据请求,以根据该数据请求对该机构提供由其他联盟机构提供的数据。
在一种实施方式中,TEE在对机构标识验证通过之后,TEE还可以使用联盟信息中包括的各个机构的公钥对接收的各个机构的签名进行验证,在验证通过的情况下才进行对密文数据请求的解密。
在一种实施方式中,TEE在对机构标识验证通过之后,可以使用联盟信息对接收的各个机构的公钥进行验证,在验证通过的情况下,才进行对各个机构的签名的验证。
在步骤S409,TEE根据数据请求获取数据,使用机构公钥对数据加密,得到密文数据。
具体是,在各个机构的数据请求中包括风险数据的情况下,TEE在获取到各个机构的数据请求之后,从数据请求中获取各个机构的风险数据文件。之后,TEE可基于各个机构的风险数据文件生成风险并集文件。该风险并集文件中包括多行,该多行与所述多个机构包括的全部风险用户分别对应,每行中包括用户ID、风险标签集合和机构集合,其中风险标签集合从多个风险数据文件中获取,机构集合包括提供风险标签的机构的机构标识。
图5为本说明书实施例中的生成风险并集文件F4的过程示意图。图5中上部示意示出各个机构的风险数据文件,其中,机构A的风险数据文件与机构A的机构标识DIDa对应,机构B的风险数据文件与机构B的机构标识DIDb对应,机构C的风险数据文件与机构C的机构标识DIDc对应。各个风险数据文件中示出了各个机构中的风险用户的用户ID及对应的风险标签,并且风险数据文件中的多行可以以用户ID的升序顺序排列。
TEE中在对多个风险数据文件进行合并处理时,如图5中所示,首先对各个风险数据文件以指针指示最小用户ID。在图5中的三个风险数据文件中的指针指示的用户ID中,机构A的用户ID为最小ID,因此,在图5下部示出的风险并集文件中的第1行中写入ID1{risk1}{DIDa},即,{risk1}为多个风险数据文件中的ID1的风险标签集合,{DIDa}为提供风险标签集合中的标签的机构标识的集合。
在风险并集文件中记下ID1对应的信息之后,在机构A的风险数据文件中将指针指向下一行,即ID3对应的行,并重复上述处理过程。具体是,TEE中在确定三个指针指示的最小ID为ID2之后,在风险并集文件中的第2行记下ID2对应的信息“ID2{risk2,riskL}{DIDb,DIDc}”。通过上述同样的过程,使用指针对各个风险数据文件中的全部行遍历了之后,可得到图5下部所示的风险并集文件。
在生成风险并集文件之后,TEE可基于风险并集文件生成待发送给各个机构的数据文件。以机构A为例,TEE中可遍历风险并集文件中的每行,当该行中的机构集合中包括“DIDa”时,则将该行中的用户ID和风险标签集合记录到机构A的数据文件中。如此,例如可得到如下表所示的数据文件:
ID1{risk1} |
ID3{risk3,riskM} |
ID5{risk3,riskH} |
ID6{riskH,riskM} |
… |
也就是说,待发送给机构A的数据文件(即数据)中包括机构A的风险数据文件中的全部用户的风险标签集合,该风险标签集合是基于各个机构的风险数据文件进行合并得到的,也即其他机构也将其风险数据共享到该待发送给机构A的数据文件中。
之后,TEE基于机构A的公钥对待发送给机构A的数据加密,得到密文数据,其中,该加密例如为直接使用机构A的公钥对数据进行加密,或者使用机构A的公钥和对称密钥对数据进行信封加密。
TEE通过使用机构A的公钥对如上述表格所示的数据加密,使得服务器400不能读取到该数据,从而进一步保护用户的隐私。
在该数据共享的场景中,TEE可类似地获取待发送给其他各个机构的数据,并类似地生成待发送给其他各个机构的密文数据。
在步骤S411,TEE将密文数据发送给服务器400。
具体是,TEE可将密文数据存储到TEE(即上述EPC)外部,并将存储地址发送给服务器,从而服务器400可读取到该密文数据。
在步骤S413,服务器将密文数据发送给机构设备。
在步骤S415,机构设备100使用机构A的私钥对密文数据解密,得到请求的数据。
在本说明书实施例中,TEE通过从区块链获取可信联盟信息,基于该可信联盟信息在多个机构之间共享风险数据,避免了服务器作恶的可能性,保护了用户隐私且满足业务中的合规要求。
图6为本说明书实施例中的一种区块链节点的结构图,包括:
接收单元61,用于接收由服务器发送的调用智能合约的第一交易,所述第一交易中包括所述第一机构的机构标识、第一公钥和所述机构信息,用于请求将所述第一机构加入所述机构联盟;
存储单元62,用于根据所述第一交易在智能合约的合约状态中关联地存储所述第一机构的机构标识、所述第一公钥和所述机构信息;
所述接收单元61还用于接收由所述机构联盟包括的第二机构发送的第二交易,所述第二交易调用所述智能合约、包括所述第一机构的机构标识,用于指示允许所述第一机构加入所述机构联盟;
所述存储单元62还用于根据所述第二交易,在所述智能合约的合约状态中的联盟信息中添加所述第一机构的机构标识、所述第一公钥和所述机构信息。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行如图2、图3或图4所示的方法。
本说明书实施例还提供一种区块链节点,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现如图2、图3或图4所示的方法。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field ProgrammableGateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(HardwareDescription Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(AdvancedBoolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware DescriptionLanguage)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby HardwareDescription Language)等,目前最普遍使用的是VHDL(Very-High-Speed IntegratedCircuit Hardware DescriptionLanguage)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为服务器系统。当然,本申请不排除随着未来计算机技术的发展,实现上述实施例功能的计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。
Claims (16)
1.一种在区块链中存储联盟信息的方法,包括:
第一机构的机构设备向服务器发送用于加入机构联盟的请求,所述请求中包括所述第一机构的第一公钥和所述第一机构的机构信息;
所述服务器根据所述请求向区块链发送调用智能合约的第一交易,所述第一交易中包括所述第一机构的机构标识、所述第一公钥和所述机构信息,用于请求将所述第一机构加入所述机构联盟;
所述区块链中的节点根据所述第一交易在所述智能合约的合约状态中关联地存储所述第一机构的机构标识、所述第一公钥和所述机构信息;
已加入所述机构联盟的第二机构的机构设备从所述区块链获取所述第一交易,根据所述第一交易向所述区块链发送调用所述智能合约的第二交易,所述第二交易包括所述第一机构的机构标识,用于指示允许所述第一机构加入所述机构联盟;
所述区块链的节点根据所述第二交易,在所述智能合约的合约状态中的联盟信息中添加所述第一机构的机构标识、所述第一公钥和所述机构信息。
2.根据权利要求1所述的方法,还包括:
第三机构的机构设备向服务器发送用于创建所述机构联盟的创建请求,所述请求中包括所述第三机构的第一公钥和所述第三机构的机构信息;
所述服务器根据所述创建请求向所述区块链发送调用所述智能合约的第三交易,所述第三交易中包括所述第三机构的机构标识、公钥和机构信息,用于请求创建所述机构联盟;
所述区块链的节点根据所述第三交易,在所述智能合约的合约状态中创建所述机构联盟的联盟信息,在所述联盟信息中添加所述第三机构的机构标识、公钥和机构信息。
3.根据权利要求1或2所述的方法,还包括:所述服务器从所述区块链获取用于指示所述第一机构成功加入联盟的信息,向所述第一机构的机构设备返回用于指示所述第一机构成功加入联盟的信息。
4.根据权利要求1或2所述的方法,所述方法包括:
所述第一机构的机构设备向服务器发送密文数据请求,所述密文数据请求通过对数据请求加密而生成,所述数据请求用于获取由机构联盟包括的一个或多个第四机构提供的第一数据;
服务器将所述第一机构的机构标识和所述密文数据请求提供给可信单元;
所述可信单元从区块链获取所述联盟信息,所述联盟信息通过向所述区块链发送调用所述智能合约的第四交易而获取;在根据所述联盟信息对所述第一机构的机构标识验证通过之后,对所述密文数据请求解密,获取数据请求,根据所述数据请求获取所述第一数据,基于所述第一公钥对所述第一数据加密,得到第一密文数据,将所述第一密文数据提供给所述服务器;
所述服务器将所述第一密文数据返回给所述机构设备;
所述机构设备对所述第一密文数据解密,得到所述第一数据。
5.根据权利要求1或2所述的方法,还包括:所述服务器根据所述第一公钥生成所述第一机构的机构标识,向所述第一机构的机构设备返回所述第一机构的机构标识。
6.根据权利要求1或2所述的方法,还包括:
已加入所述机构联盟的一个或多个第五机构的机构设备向所述区块链发送调用所述智能合约的第五交易,所述第五交易包括所述第一机构的机构标识,用于指示允许所述第一机构加入所述机构联盟;
所述区块链中的节点在执行每个所述第五交易时,根据所述第五交易将所述合约状态中记录的允许所述第一机构加入机构联盟的机构数目加1,在确定所述机构数目不符合预设条件时,不更新所述联盟信息;
所述区块链中的节点根据所述第二交易,在所述智能合约的合约状态中的联盟信息中添加所述第一机构的机构标识、所述第一公钥和所述机构信息包括:所述区块链中的节点根据所述第二交易将所述机构数目加1,在确定所述机构数目符合预设条件时,在所述联盟信息中添加所述第一机构的机构标识、所述第一公钥和所述机构信息。
7.根据权利要求4所述的方法,所述方法还包括:
所述第一机构的机构设备在向所述服务器发送所述密文数据请求时,还向所述服务器发送所述第一机构对所述密文数据请求的签名,所述签名基于与所述第一公钥对应的第一私钥生成;
所述服务器将所述签名提供给所述可信单元;
所述可信单元在对所述密文数据请求解密之前,使用所述第一公钥对所述签名进行验证,在验证通过的情况中,对所述密文数据请求解密。
8.根据权利要求4所述的方法,所述方法还包括:
所述服务器将预先获取所述第一机构的第一公钥与所述密文数据请求一起提供给所述可信单元,所述可信单元在从区块链获取所述联盟信息之后,基于所述联盟信息对由所述服务器提供的第一公钥进行验证。
9.根据权利要求4所述的方法,所述数据请求中包括所述第一机构的风险数据,所述风险数据中包括所述第一机构中的第一用户的用户标识和风险标签;所述第一数据中包括所述第一机构中的第一用户的用户标识和第一风险标签集合,所述第一风险标签集合由所述可信单元基于来自所述机构联盟中的多个机构的多个风险数据生成。
10.根据权利要求4所述的方法,所述密文数据请求使用对称密钥进行加密而生成,所述方法还包括:所述第一机构的机构设备使用所述可信单元的公钥对所述对称密钥加密,生成密文密钥,将所述密文密钥与所述密文数据请求一起发送给所述服务器,所述服务器将所述密文密钥与所述第一机构的机构标识和所述密文数据请求一起提供给所述可信单元。
11.根据权利要求3所述的方法,所述服务器从所述区块链获取用于指示所述第一机构成功加入联盟的信息包括:所述服务器从所述区块链获取在发送所述第一交易之后生成的一个或多个区块,从所述一个或多个区块中获取所述第二交易的执行结果,从所述第二交易的执行结果获取用于指示所述第一机构成功加入联盟的信息。
12.根据权利要求4所述的方法,所述可信单元从区块链获取所述机构联盟的联盟信息包括:所述可信单元指示预言机向所述区块链发送所述第四交易,以用于从所述区块链获取所述联盟信息。
13.一种在区块链中存储联盟信息的方法,由区块链节点执行,所述方法包括:
接收由服务器发送的调用智能合约的第一交易,所述第一交易中包括所述第一机构的机构标识、第一公钥和所述机构信息,用于请求将所述第一机构加入所述机构联盟;
根据所述第一交易在智能合约的合约状态中关联地存储所述第一机构的机构标识、所述第一公钥和所述机构信息;
接收由所述机构联盟包括的第二机构发送的第二交易,所述第二交易调用所述智能合约、包括所述第一机构的机构标识,用于指示允许所述第一机构加入所述机构联盟;
根据所述第二交易,在所述智能合约的合约状态中的联盟信息中添加所述第一机构的机构标识、所述第一公钥和所述机构信息。
14.一种在区块链中存储联盟信息的系统,包括第一机构的机构设备、服务器、区块链和第二机构的机构设备,所述第二机构为已加入机构联盟的机构,
所述第一机构的机构设备用于向所述服务器发送用于加入机构联盟的请求,所述请求中包括所述第一机构的第一公钥和所述第一机构的机构信息;
所述服务器用于根据所述请求向区块链发送调用智能合约的第一交易,所述第一交易中包括所述第一机构的机构标识、所述第一公钥和所述机构信息,用于请求将所述第一机构加入所述机构联盟;
所述区块链中的节点用于根据所述第一交易在所述智能合约的合约状态中关联地存储所述第一机构的机构标识、所述第一公钥和所述机构信息;
所述第二机构的机构设备用于从所述区块链获取所述第一交易,根据所述第一交易向所述区块链发送调用所述智能合约的第二交易,所述第二交易包括所述第一机构的机构标识,用于指示允许所述第一机构加入所述机构联盟;
所述区块链的节点还用于根据所述第二交易,在所述智能合约的合约状态中的联盟信息中添加所述第一机构的机构标识、所述第一公钥和所述机构信息。
15.一种区块链节点,包括:
接收单元,用于接收由服务器发送的调用智能合约的第一交易,所述第一交易中包括所述第一机构的机构标识、第一公钥和所述机构信息,用于请求将所述第一机构加入所述机构联盟;
存储单元,用于根据所述第一交易在智能合约的合约状态中关联地存储所述第一机构的机构标识、所述第一公钥和所述机构信息;
所述接收单元还用于接收由所述机构联盟包括的第二机构发送的第二交易,所述第二交易调用所述智能合约、包括所述第一机构的机构标识,用于指示允许所述第一机构加入所述机构联盟;
所述存储单元还用于根据所述第二交易,在所述智能合约的合约状态中的联盟信息中添加所述第一机构的机构标识、所述第一公钥和所述机构信息。
16.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求13所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211427283.9A CN115941200A (zh) | 2022-11-15 | 2022-11-15 | 在区块链中存储联盟信息的方法、系统和区块链节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211427283.9A CN115941200A (zh) | 2022-11-15 | 2022-11-15 | 在区块链中存储联盟信息的方法、系统和区块链节点 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115941200A true CN115941200A (zh) | 2023-04-07 |
Family
ID=86654833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211427283.9A Pending CN115941200A (zh) | 2022-11-15 | 2022-11-15 | 在区块链中存储联盟信息的方法、系统和区块链节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115941200A (zh) |
-
2022
- 2022-11-15 CN CN202211427283.9A patent/CN115941200A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111741036B (zh) | 一种可信数据传输方法、装置及设备 | |
US10776513B2 (en) | Device using secure storage and retrieval of data | |
EP3962020B1 (en) | Information sharing methods and systems | |
US10917394B2 (en) | Data operations using a proxy encryption key | |
US9213867B2 (en) | Secure cloud database platform with encrypted database queries | |
AU2016220152A1 (en) | Cloud encryption key broker apparatuses, methods and systems | |
JP2016062581A (ja) | 特定情報セキュリティ入力システムと方法 | |
CN111770199B (zh) | 一种信息共享方法、装置及设备 | |
US11720689B2 (en) | Data registration method, data decryption method, data structure, computer, and program | |
CN111818186B (zh) | 一种信息共享方法和系统 | |
US20220329599A1 (en) | Secure management and provisioning of interaction data using permissioned distributed ledgers | |
WO2021169767A1 (zh) | 一种数据处理方法、装置、设备及介质 | |
CN111814193B (zh) | 一种信息共享方法、装置及设备 | |
CN115941200A (zh) | 在区块链中存储联盟信息的方法、系统和区块链节点 | |
CN115422588A (zh) | 一种风险数据共享方法、系统、可信单元和服务器 | |
CN115442111A (zh) | 一种风险数据推送方法、系统和可信单元 | |
CA3057799A1 (en) | Secure management and provisioning of interaction data using permissioned distributed ledgers | |
CN115408713A (zh) | 一种风险数据查询方法、系统、可信单元和服务器 | |
CN115408716A (zh) | 一种风险数据查询方法、系统、可信单元和服务器 | |
CN115495774A (zh) | 一种风险数据查询方法、系统、可信单元和服务器 | |
CN115409265A (zh) | 一种用户风险等级确定方法、系统和可信单元 | |
CN115442115A (zh) | 一种风险数据推送方法、系统、服务器和可信单元 | |
CN115408714A (zh) | 一种用户数据查询方法、系统和可信单元 | |
CN117493335A (zh) | 报表处理方法、装置、设备、存储介质和计算机程序产品 | |
KR20210045636A (ko) | 블록체인 기반 사용자 주도의 신뢰된 대상 간 문서 유통 방법 및 시스템 |
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 |