CN113536384B - 基于区块链的隐私数据映射方法、装置、介质和电子设备 - Google Patents
基于区块链的隐私数据映射方法、装置、介质和电子设备 Download PDFInfo
- Publication number
- CN113536384B CN113536384B CN202111076130.XA CN202111076130A CN113536384B CN 113536384 B CN113536384 B CN 113536384B CN 202111076130 A CN202111076130 A CN 202111076130A CN 113536384 B CN113536384 B CN 113536384B
- Authority
- CN
- China
- Prior art keywords
- data
- applicant
- block chain
- private data
- private
- 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
- 238000000034 method Methods 0.000 title claims abstract description 95
- 238000013506 data mapping Methods 0.000 title claims abstract description 52
- 238000013507 mapping Methods 0.000 claims abstract description 114
- 238000012795 verification Methods 0.000 claims abstract description 93
- 238000004422 calculation algorithm Methods 0.000 claims description 42
- 230000004044 response Effects 0.000 claims description 16
- 230000003993 interaction Effects 0.000 claims description 13
- 230000000977 initiatory effect Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 6
- 241000251468 Actinopterygii Species 0.000 description 5
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004091 panning Methods 0.000 description 2
- 241000270295 Serpentes Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Medical Informatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供一种基于区块链的隐私数据映射方法,应用于隐私数据映射的发布方,该方法包括:基于持有的隐私数据生成与所述隐私数据对应的发布数据,并将所述发布数据发布至区块链进行存证;获取区块链中存证的由所述申请方发布至所述区块链的申请数据;响应于获取到的所述申请数据,对所述零知识证明进行零知识验证,并在验证通过时将用于指示所述零知识证明验证通过的指示信息发布至所述区块链进行存证。通过以上技术方案,一方面,可以有效保护映射双方所持有的隐私数据,提升映射双方进行映射时的数据安全;另一方面,可以使得具有相同隐私数据的多个服务提供方之间,能够更加便捷的建立映射关系,实现多方协作。
Description
技术领域
本申请一个或多个实施方式涉及区块链技术领域,尤其涉及一种基于区块链的隐私数据映射方法、装置、介质和电子设备。
背景技术
通常,用户在使用某一服务提供方提供的服务时,可以通过引入其他服务提供方,实现多个服务提供方共同服务于同一个用户。例如,用户在使用某个打车软件时,可以通过绑定该用户在某个支付软件的账号,从而无需在打车软件上绑定银行卡,实现使用打车软件出行,使用支付软件完成支付。可见,通过多个服务提供方的多方协作,可以提高用户体验,为用户带来更多的便利。
为实现上述多方协作,需要将用户在各个服务提供方注册的账户进行映射。然而,各个服务提供方持有的用户的账户信息属于隐私数据,不能随意公开,例如,这些隐私数据可以包括:用户的身份信息、手机号、银行卡号等。因此,各个服务提供方在进行隐私数据的映射时,需要对隐私数据的传递过程进行保护。
发明内容
有鉴于此,为解决发布方与申请发在对隐私数据进行映射时涉及的隐私数据泄露问题,本申请提供一种基于区块链的隐私数据映射方法及装置。
具体地,本申请是通过如下技术方案实现的:
第一方面,本申请提出一种基于区块链的隐私数据映射方法,应用于隐私数据映射的发布方,所述方法包括:
基于持有的隐私数据生成与所述隐私数据对应的发布数据,并将所述发布数据发布至区块链进行存证;其中,所述发布数据包括所述隐私数据的数据摘要,以使隐私数据映射的申请方在获取到所述区块链上存证的所述发布数据时,确定是否持有与所述数据摘要对应的隐私数据,并在确定持有与所述数据摘要对应的隐私数据时,生成持有与所述数据摘要对应的隐私数据对应的零知识证明;
获取区块链中存证的由所述申请方发布至所述区块链的申请数据;其中,所述申请数据包括所述零知识证明和所述申请方的标识信息;
响应于获取到的所述申请数据,对所述零知识证明进行零知识验证,并在验证通过时将用于指示所述零知识证明验证通过的指示信息发布至所述区块链进行存证,以使所述申请方在获取到所述指示信息时,保存所述隐私数据和所述申请方的标识信息的映射关系。
第二方面,本申请还提出一种基于区块链的隐私数据映射方法,应用于隐私数据映射的申请方,所述方法包括:
获取区块链中存证的发布数据,确定是否持有与所述数据摘要对应的隐私数据,并在确定持有与所述数据摘要对应的隐私数据时,生成持有与所述数据摘要对应的隐私数据对应的零知识证明;其中,所述发布数据由隐私数据映射的发布方基于持有的隐私数据生成,所述发布数据包括所述隐私数据的数据摘要;
将申请数据发布至所述区块链进行存证,以使所述发布方获取区块链中存证的所述申请数据;其中,所述申请数据包括所述零知识证明和所述申请方的标识信息;
获取所述区块链中存证的指示信息,保存所述隐私数据和所述申请方的标识信息的映射关系;其中,所述指示信息由所述发布方响应于获取到的所述申请数据,对所述零知识证明进行零知识验证,并在验证通过时将用于指示所述零知识证明验证通过的指示信息发布至所述区块链进行存证。
第三方面,本申请提出一种基于区块链的隐私数据映射装置,应用于隐私数据映射的发布方,所述装置包括:
发布单元,基于持有的隐私数据生成与所述隐私数据对应的发布数据,并将所述发布数据发布至区块链进行存证;其中,所述发布数据包括所述隐私数据的数据摘要,以使隐私数据映射的申请方在获取到所述区块链上存证的所述发布数据时,确定是否持有与所述数据摘要对应的隐私数据,并在确定持有与所述数据摘要对应的隐私数据时,生成持有与所述数据摘要对应的隐私数据对应的零知识证明;
获取单元,获取区块链中存证的由所述申请方发布至所述区块链的申请数据;其中,所述申请数据包括所述零知识证明和所述申请方的标识信息;
验证单元,响应于获取到的所述申请数据,对所述零知识证明进行零知识验证,并在验证通过时将用于指示所述零知识证明验证通过的指示信息发布至所述区块链进行存证,以使所述申请方在获取到所述指示信息时,保存所述隐私数据和所述申请方的标识信息的映射关系。
第四方面,本申请还提出一种基于区块链的隐私数据映射装置,应用于隐私数据映射的申请方,所述装置包括:
生成单元,获取区块链中存证的发布数据,确定是否持有与所述数据摘要对应的隐私数据,并在确定持有与所述数据摘要对应的隐私数据时,生成持有与所述数据摘要对应的隐私数据对应的零知识证明;其中,所述发布数据由隐私数据映射的发布方基于持有的隐私数据生成,所述发布数据包括所述隐私数据的数据摘要;
申请单元,将申请数据发布至所述区块链进行存证,以使所述发布方获取区块链中存证的所述申请数据;其中,所述申请数据包括所述零知识证明和所述申请方的标识信息;
保存单元,获取所述区块链中存证的指示信息,保存所述隐私数据和所述申请方的标识信息的映射关系;其中,所述指示信息由所述发布方响应于获取到的所述申请数据,对所述零知识证明进行零知识验证,并在验证通过时将用于指示所述零知识证明验证通过的指示信息发布至所述区块链进行存证。
本申请的实施例提供的技术方案可以包括以下有益效果:
一方面,由于映射双方都无需将自身持有的隐私数据发送出去,通过零知识证明即可验证申请方和发布方是否持有相同的隐私数据,如果任意一方没有隐私数据或两者持有的隐私数据不同,都无法完成零知识证明;因此可以确保只有映射双方隐私数据相同才能验证成功,可以有效保护映射双方所持有的隐私数据,以及提升映射双方进行映射时的数据安全。
另一方面,由于发布方和申请方无需通过预先约定密钥的方式将隐私数据进行加密传输,而是以发送零知识证明,并根据零知识证明的结果的方式建立映射,因此可以使得具有相同隐私数据的多个服务提供方之间,能够更加便捷的建立映射关系,实现多方协作,省去复杂的约定环节。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
图1是本申请一示例性实施例示出的创建智能合约的示意图;
图2是本申请一示例性实施例示出的一种调用智能合约的示意图;
图3是本申请一示例性实施例示出的创建智能合约和调用智能合约的示意图;
图4是本申请一示例性实施例示出的一种基于区块链的隐私数据映射的系统架构示意图;
图5是本申请一示例性实施例示出的一种基于区块链的隐私数据映射方法的流程图;
图6是本申请一示例性实施例示出的另一种基于区块链的隐私数据映射方法的流程图;
图7是本申请一示例性实施例示出的一种基于区块链的隐私数据映射方法的流程示意图;
图8是本申请一示例性实施例示出的一种基于区块链的隐私数据映射方法的应用场景流程图;
图9是本申请一示例性实施例示出的一种的基于区块链的隐私数据映射装置所在电子设备的硬件结构图;
图10是本申请一示例性实施例示出的一种基于区块链的隐私数据映射装置的框图;
图11是本申请一示例性实施例示出的另一种基于区块链的隐私数据映射装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施方式中并不一定按照本申请书示出和描述的顺序来执行相应方法的步骤。在一些其他实施方式中,其方法所包括的步骤可以比本申请所描述的更多或更少。此外,本申请中所描述的单个步骤,在其他实施方式中可能被分解为多个步骤进行描述;而本申请中所描述的多个步骤,在其他实施方式中也可能被合并为单个步骤进行描述。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
目前,各个服务提供方在进行隐私数据的映射时,可以使用任意形式的数据加密算法对隐私数据进行加密,并通过发送加密后的隐私数据实现隐私数据在传递过程中的安全性。
如果以服务提供方是企业,隐私数据是用户在企业注册的账户信息为例,那么将同一个用户的不同账户信息进行映射的过程,可以包括以下步骤:
企业B向企业A发起账户信息映射申请;
企业A通过RSA加密算法生成公私钥对,私钥由企业A保留,与私钥对应的公钥发送给企业B;
企业B基于接收到的公钥,将目标用户在企业B对应的账户信息进行加密,并将加密后的账户信息发送给企业A;
企业A基于持有的私钥,对加密后的账户信息进行解密,获得企业B持有的目标用户的账户信息;
企业A基于获取到的企业B持有的目标用户的账户信息,匹配自身的账户信息数据库,确定是否存在与企业B持有的目标用户的账户信息相匹配的账户信息;如果有,则建立目标用户在企业A对应的账户信息和企业B对应的账户信息之间的映射关系,并通知企业B完成账户信息映射申请。
然而,虽然在上述过程中,通过对账户信息进行加密,可以防止账户信息在传递过程中泄露,但仍存在以下问题:
首先,企业B持有的账户信息属于企业B的隐私数据,如果发送给企业A,就等于向企业A泄露了隐私数据;
其次,企业B无法确定企业A是否同样持有目标用户的隐私数据,企业B无法对此做验证,企业A存在骗取企业B的隐私数据的风险;
再者,上述过程通过双方约定RSA密钥的方式实现,无法加入第三方,如果需要和第三方进行映射,需要和第三方再次约定新的密钥,并重复上述过程。
综上所述,虽然通过使用密钥加密可以防止隐私数据在传递过程中泄露,但由于隐私数据映射的申请方仍需要通过将隐私数据发送给隐私数据的发布方,以由发布方基于接收到的隐私数据完成是否建立映射的判断,导致隐私数据泄露给发布方,损害了申请方的隐私,给申请方的隐私数据带来了风险。
有鉴于此,本申请提供了一种在隐私数据映射时,利用零知识证明提高隐私数据的安全性,以及实现多方协同的技术方案。
在实现时,由隐私数据映射的发布方基于持有的隐私数据生成与所述隐私数据对应的发布数据,并将所述发布数据发布至区块链进行存证;其中,所述发布数据包括所述隐私数据的数据摘要;
然后,由隐私数据映射的申请方获取区块链中存证的发布数据,确定是否持有与所述数据摘要对应的隐私数据,并在确定持有与所述数据摘要对应的隐私数据时,生成持有与所述数据摘要对应的隐私数据对应的零知识证明;其中,所述发布数据由隐私数据映射的发布方基于持有的隐私数据生成,所述发布数据包括所述隐私数据的数据摘要;
接着,由隐私数据映射的申请方将所述申请数据发布至所述区块链进行存证,所述申请数据包括所述零知识证明和所述申请方的标识信息;
再然后,由隐私数据映射的发布方获取区块链中存证的由所述申请方发布至所述区块链的申请数据,对所述零知识证明进行零知识验证,并在验证通过时将用于指示所述零知识证明验证通过的指示信息发布至所述区块链进行存证;
最后,由隐私数据映射的申请方获取所述区块链中存证的指示信息,保存所述隐私数据和所述申请方的标识信息的映射关系。
一方面,由于映射双方都无需将自身持有的隐私数据发送出去,通过零知识证明即可验证申请方和发布方是否持有相同的隐私数据,如果任意一方没有隐私数据或两者持有的隐私数据不同,都无法完成零知识证明;因此可以确保只有映射双方隐私数据相同才能验证成功,可以有效保护映射双方所持有的隐私数据,以及提升映射双方进行映射时的数据安全。
另一方面,由于发布方和申请方无需通过预先约定密钥的方式将隐私数据进行加密传输,而是以发送零知识证明,并根据零知识证明的结果的方式建立映射,因此可以使得具有相同隐私数据的多个服务提供方之间,能够更加便捷的建立映射关系,实现多方协作,省去复杂的约定环节。
本申请一个或多个实施例所述的区块链或区块链,具体可指一个各节点设备通过共识机制达成的、具有分布式数据存储结构的P2P网络系统,该区块链内的账本数据分布在时间上相连的一个个“区块(block)”之内,后一区块可包含前一区块的数据摘要,且根据具体的共识机制(如POW、POS、DPOS或PBFT等)的不同,达成全部或部分节点的数据全备份。
区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还可以有上述多种类型的结合,比如私有链+联盟链、联盟链+公有链等。可以预期,本说明书所提供的实施方式能够在合适类型的区块链中实现。
基于区块链的基本特性,区块链通常是由若干个区块构成。在这些区块中分别记录有与该区块的创建时刻对应的时间戳,所有的区块严格按照区块中记录的时间戳,构成一条在时间上有序的数据链条。
对于链外产生的数据,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链中的节点设备对该交易进行共识,并在达成共识后,由区块链中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。
其中,区块链中支持的共识算法可以包括:
第一类共识算法,即节点设备需要争夺每一轮的记账周期的记账权的共识算法;例如,工作量证明(Proof of Work, POW)、股权证明(Proof of Stake,POS)、委任权益证明(Delegated Proof of Stake,DPOS)等共识算法;
第二类共识算法,即预先为每一轮记账周期选举记账节点(不需要争夺记账权)的共识算法;例如,实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)等共识算法。
如上所述,无论区块链采用以上示出的哪种共识算法,本轮的记账节点都可以将接收到的交易打包以生成候选区块,并将生成的候选区块或者该候选区块的区块头发送至其它节点设备进行共识验证。如果其它节点设备接收到候选区块或者该候选区块的区块头后,经验证没有问题,可以将该候选区块作为最新区块追加到原有的区块链末尾,从而完成区块链的记账过程。其它节点验证记账节点发来的新的区块或区块头的过程中,也可以执行该区块中的包含的交易。
在区块链领域,有一个重要的概念就是账户(Account);以以太坊为例,以太坊通常将账户划分为外部账户和合约账户两类;外部账户就是由用户直接控制的账户,也称之为用户账户;而合约账户则是由用户通过外部账户创建的,包含合约代码的账户(即智能合约)。
当然,对于一些基于以太坊的架构而衍生出的区块链模型(比如蚂蚁区块链),还可以对区块链支持的账户类型,进行进一步的扩展,在本说明书中不进行特别限定。
对于区块链中的账户而言,通常会通过一个结构体,来维护账户的账户状态。当区块中的交易被执行后,区块链中与该交易相关的账户的状态通常也会发生变化。
在一个例子中,账户的结构体通常包括Balance,Nonce,Code和Storage等字段。其中:
Balance字段,用于维护账户目前的账户余额;
Nonce字段,用于维护该账户的交易次数;它是用于保障每笔交易能且只能被处理一次的计数器,有效避免重放攻击;
Code字段,用于维护该账户的合约代码;在实际应用中,Code字段中通常仅维护合约代码的hash值;因而,Code字段通常也称之为Codehash字段。
Storage字段,用于维护该账户的存储内容(默认字段值为空);对于合约账户而言,通常会分配一个独立的存储空间,用以存储该合约账户的存储内容;该独立的存储空间通常称之为该合约账户的账户存储。
合约账户的存储内容通常会构建成MPT(Merkle Patricia Trie)树的数据结构存储在上述独立的存储空间之中;其中,基于合约账户的存储内容构建成的MPT树,通常也称之为Storage树。而Storage字段通常仅维护该Storage树的根节点;因此,Storage字段通常也称之为StorageRoot字段。
其中,对于外部账户而言,以上示出的Code字段和Storage字段的字段值均为空值。
在可编程的区块链中,可以通过面向用户提供智能合约(Smart contract)的功能,以支持用户在区块链网络中创建并调用一些复杂的逻辑。所谓智能合约是在区块链上可以被交易触发执行的程序。
在可编程的区块链中,每一个节点设备都可以搭载一个图灵完备的虚拟机作为智能合约的执行环境,通过它可以实现各种复杂的逻辑。
用户在区块链中发布和调用智能合约就是在虚拟机上运行的。实际上,虚拟机直接运行的是虚拟机代码(虚拟机字节码,下简称“字节码”),所以部署在区块链上的智能合约可以是字节码。
如图1所示,Bob可以将一笔包含合约代码的智能合约创建交易发送到区块链网络后,各节点设备均可以在搭载的虚拟机中执行这笔交易。
其中,图中1中交易的From字段用于记录发起创建智能合约的账户的地址,交易的Data字段的字段值保存的合约代码可以是上述字节码,交易的To字段的字段值为一个null(空)的账户。当节点间通过共识机制达成一致后,这个智能合约成功创建,后续用户可以调用这个智能合约。
智能合约创建后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的地址;比如,图1中各节点中的“0x68e12cf284…”就代表了创建的这个合约账户的地址;合约代码(Code)和账户存储(Storage)将保存在该合约账户的账户存储中。智能合约的行为由合约代码控制,而智能合约的账户存储则保存了合约的状态。
前述提到,包含创建智能合约的交易的Data字段保存的可以是该智能合约的字节码。字节码由一连串的字节组成,每一字节可以标识一个操作。基于开发效率、可读性等多方面考虑,开发者可以不直接书写字节码,而是选择一门高级语言编写智能合约代码。例如,高级语言可以采用诸如Solidity、Serpent、LLL语言等。对于采用高级语言编写的智能合约代码,可以经过编译器编译,生成可以部署到区块链上的字节码。
以Solidity语言为例,用其编写的合约代码与面向对象编程语言中的类(Class)很相似,在一个合约中可以声明多种成员,包括状态变量、函数、函数修改器、事件等。状态变量是永久存储在智能合约的账户存储(Storage)字段中的值,用于保存合约的状态。
如图2所示,仍以以太坊为例,Bob将一笔智能合约调用交易发送到以太坊网络后,各节点设备均可以在搭载的虚拟机中执行这笔交易。
其中,图2中交易的From字段用于记录发起调用智能合约的账户的地址,To字段用于记录被调用的智能合约的地址,交易的Data字段用于记录调用智能合约的方法和参数。调用智能合约后,合约账户的账户状态可能改变。后续,某个客户端可以通过接入的区块链节点(例如图2中的节点1)查看合约账户的账户状态。
智能合约可以以规定的方式在区块链网络中每个节点独立的执行,所有执行记录和数据都保存在区块链上,所以当这样的交易执行完毕后,区块链上就保存了无法篡改、不会丢失的交易凭证。
创建智能合约和调用智能合约的示意图如图3所示。以太坊中要创建一个智能合约,需要经过编写智能合约、变成字节码、部署到区块链等过程。以太坊中调用智能合约,是发起一笔指向智能合约地址的交易,各个节点的EVM可以分别执行该交易,将智能合约代码分布式的运行在以太坊网络中每个节点的虚拟机中。
智能合约的事件机制,是智能合约与链外实体进行交互的一种方式。
对于区块链上部署的智能合约来说,通常无法直接与链外实体进行交互;例如,智能合约在调用完成后,通常无法将智能合约的调用结果,点对点的发送给智能合约的调用发起方。
智能合约在调用的过程中产生的调用结果(包括中间结果和最终的调用结果),通常都会以事件(Event)的形式,记录到调用该智能合约的那笔交易的交易日志(transaction logs),在节点设备的存储空间中进行存储。而需要与智能合约进行交互的链外实体,则可以通过监听节点设备的存储空间中存储的上述交易日志的方式,来获取智能合约的调用结果;
例如,以以太坊为例,交易日志最终会作为调用该智能合约的那笔交易笔交易的收据(receipt)的一部分内容,存储在以上描述的MPT收据树中。而与智能合约进行交互的链外实体,可以监听节点设备的存储空间中存储的MPT收据树上的交易收据,并从监听到的交易收据中,来获取智能合约生成的事件。
区块链上部署的智能合约,通常只能访问区块链上存储的数据内容;而在实际应用中,对于一些基于智能合约技术实现的复杂的业务场景,智能合约可能还需要访问链外的数据实体上存储的外部数据。
在这种场景下,区块链上部署的智能合约,可以通过Oracle预言机,来访问链外的数据实体上的数据,进而实现智能合约与真实世界的数据实体之间的数据交互。其中,链外的数据实体,可以包括诸如部署在链外的中心化的服务器或者数据中心,等等。
需要说明的是,跨链中继用于连接两个区块链,而Oracle预言机用于连接区块链与链外的数据实体,实现区块链与真实世界的数据交互。
在实际应用中,在为区块链上的智能合约部署预言机时,可以先在区块链上部署一个与预言机对应的预言机智能合约;其中,该预言机智能合约用于维护预言机发给区块链上的智能合约的外部数据;例如,预言机发给区块链上的智能合约的外部数据,可以存储在预言机智能合约的账户存储空间中。
当区块链上的目标智能合约被调用时,可以从该预言机智能合约的账户存储空间中,来读取该目标智能合约所需的外部数据,来完成智能合约的调用过程。
需要说明的是,预言机在向区块链上的智能合约发送外部数据时,可以采用主动发送的方式,也可以采用被动发送的方式。
在一种实现方式中,链外的数据实体可以将需要提供给目标智能合约的外部数据,利用预言机的私钥进行签名后,发送给上述预言机智能合约;例如,可以采用周期性发送的方式,将签名后的上述外部数据发送给上述预言机智能合约;
而在上述预言机智能合约可以维护预言机的CA证书,在收到链外的数据实体发送的外部数据后,可以使用该CA证书中维护的该预言机的公钥,对该外部数据的签名进行验证,并在验证通过后,将链外的数据实体发送的外部数据在该预言机智能合约的账户存储空间中进行存储。
在另一种实现方式中,当区块链上的目标智能合约被调用时,如果从该预言机智能合约的账户存储空间中,并未读取到该目标智能合约所需的外部数据,此时该预言机智能合约,可以利用智能合约的事件机制,与上述预言机进行交互,并由上述预言机将该目标智能合约所需的外部数据,发送至该预言机智能合约的账户存储空间中。
例如,当区块链上的目标智能合约被调用时,如果从该预言机智能合约的账户存储空间中,并未读取到该目标智能合约所需的外部数据,此时该预言机智能合约,可以生成一个外部数据获取事件,并将该外部数据获取事件记录到调用该智能合约的那笔交易的交易日志中,并将该交易日志存储到节点设备的存储空间;而上述预言机可以监听节点设备的存储空间中存储的该预言机智能合约产生的交易日志,并在监听到交易日志中的外部数据获取事件后,响应监听到的该外部数据获取事件,将上述目标智能合约所需的外部数据,发送给上述预言机智能合约。
请参见图4,图4是本申请一示例性实施例示出的一种基于区块链的隐私数据映射的系统架构示意图,包括:区块链40、包含隐私数据的隐私数据映射的发布方41和包含与发布方持有相同隐私数据的隐私数据映射的申请方42。
在图4中,包含隐私数据的隐私数据映射的发布方(以下可简称为“发布方”)41、包含与发布方持有相同隐私数据的隐私数据映射的申请方42(以下可简称为“申请方”)可分别与所述区块链中的节点设备43、44对接(或者发布方客户端41、申请方客户端42可分别被直接被部署在节点设备43、44上),或者,与同一节点设备对接(图4中未示意该种情况),从而实现与区块链上的数据信息交互。上述发布方终端或申请方终端可被配置为客户端、服务设备、或云端设备等。
在一个例子中,所述区块链上还可以部署有用于管理所述发布方和所述申请方之间的交互数据的智能合约。
由发布方41或申请方42向区块链40发起的交易,可以是由发布方41或申请方42基于区块链的预设交易格式,将待发布至区块链40的数据信息封装成交易并将封装成的交易发布至与其对应的节点设备43或44,从而使上述交易在区块链中广播、共识,并在共识验证通过后收录于区块链40。
由发布方41或申请方42向区块链40发起的交易,也可以是由与发布方41对应的节点设备43或与申请方对应的节点设备44,在接收到由发布方41或申请方42发送的待发布至区块链40的数据信息后,基于区块链的预设交易格式,将所述数据信息封装成交易,并将封装成的交易发布至与其对应的节点设备43或44,从而使上述交易在区块链中广播、共识,并在共识验证通过后收录于区块链40。本申请对此不做限定。
请参见图5,图5是本申请一示例性实施例示出的一种基于区块链的隐私数据映射方法的流程图,所述方法应用于隐私数据映射的发布方,如图5所示,包括以下步骤:
步骤501:基于持有的隐私数据生成与所述隐私数据对应的发布数据,并将所述发布数据发布至区块链进行存证;其中,所述发布数据包括所述隐私数据的数据摘要,以使隐私数据映射的申请方在获取到所述区块链上存证的所述发布数据时,确定是否持有与所述数据摘要对应的隐私数据,并在确定持有与所述数据摘要对应的隐私数据时,生成持有与所述数据摘要对应的隐私数据对应的零知识证明;
步骤502:获取区块链中存证的由所述申请方发布至所述区块链的申请数据;其中,所述申请数据包括所述零知识证明和所述申请方的标识信息;
步骤503:响应于获取到的所述申请数据,对所述零知识证明进行零知识验证,并在验证通过时将用于指示所述零知识证明验证通过的指示信息发布至所述区块链进行存证,以使所述申请方在获取到所述指示信息时,保存所述隐私数据和所述申请方的标识信息的映射关系。
请参见图6,图6是本申请一示例性实施例示出的另一种基于区块链的隐私数据映射方法的流程图,所述方法应用于隐私数据映射的申请方,如图6所示,包括以下步骤:
步骤601:获取区块链中存证的发布数据,确定是否持有与所述数据摘要对应的隐私数据,并在确定持有与所述数据摘要对应的隐私数据时,生成持有与所述数据摘要对应的隐私数据对应的零知识证明;其中,所述发布数据由隐私数据映射的发布方基于持有的隐私数据生成,所述发布数据包括所述隐私数据的数据摘要;
步骤602:将申请数据发布至所述区块链进行存证,以使所述发布方获取区块链中存证的所述申请数据;其中,所述申请数据包括所述零知识证明和所述申请方的标识信息;
步骤603:获取所述区块链中存证的指示信息,保存所述隐私数据和所述申请方的标识信息的映射关系;其中,所述指示信息由所述发布方响应于获取到的所述申请数据,对所述零知识证明进行零知识验证,并在验证通过时将用于指示所述零知识证明验证通过的指示信息发布至所述区块链进行存证。
结合上述图4中提供的一种基于区块链的隐私数据映射的系统架构示意图,和图5、图6提供的基于区块链的隐私数据映射方法的流程图,请参见图7,图7是本申请一示例性实施例示出的一种基于区块链的隐私数据映射方法的流程示意图,该方法可应用于上述图4中所述的基于区块链的隐私数据映射的系统架构中。
其中,区块链40可以支持并执行图7中所示的方法流程步骤S702、S707和S711,发布方41可以用于支持并执行图7中所示的方法流程步骤S701和S708-S710,申请方42可以用于支持并执行图7中所示的方法流程步骤S703-S706和S712-S713。下面将结合附图7从区块链40、发布方41和申请方42三端进行描述,该方法可以包括以下步骤S701-S713。
步骤S701:发布方基于持有的隐私数据生成与所述隐私数据对应的发布数据,并将所述发布数据发布至区块链;其中,所述发布数据包括所述隐私数据的数据摘要。
持有隐私数据的发布方,出于对隐私数据安全性的考虑,不希望将隐私数据发布至区块链,取而代之的是,发布方可以基于隐私数据生成与隐私数据对应的发布数据,并将发布数据发布至区块链。
具体的,上述发布数据可以是隐私数据的数据摘要。
例如,发布方可以基于特定的哈希算法计算隐私数据的hash值,并将该hash值添加到发布数据中,使得申请方在获得该发布数据时,可以根据申请方持有的隐私数据的hash值与发布数据中的hash值是否一致,判断发布方与申请方各自持有的隐私数据是否相同。对于具体使用何种哈希算法,本申请不做限定,本领域技术人员知晓发布方与申请方使用的哈希算法相一致即可。
进一步的,在示出的一种实施方式中,上述发布数据还可以包括所述隐私数据的数据标识。
例如,针对要建立映射的隐私数据,可以为该隐私数据生成一个数据标识,这个数据标识可以是隐私数据的哈希值,也可以是一个数字ID,本申请对数据标识的生成方法不做限定,通过该数据标识可以将该隐私数据和其他隐私数据区分开即可。
另外,隐私数据可以是发布方和申请方约定的数据,只要该隐私数据由双方分别持有,且双方持有的隐私数据相同,则该数据就可以作为隐私数据,具体使用何种数据作为隐私数据,本领域技术人员可以根据需要自行选择。
步骤S702:区块链对发布数据进行存证。
具体的,区块链可以响应于发布方发起的发布交易,将接收到的发布数据进行存证。
例如,将发布数据中的隐私数据的数据摘要和隐私数据的数据标识存储至区块链数据中。
在示出的一种实施方式中,所述区块链上还可以部署了智能合约,所述智能合约用于管理所述发布方和所述申请方之间的交互数据。
具体的,通过在智能合约中为映射双方设置映射流程涉及的业务逻辑,并将映射流程中产生的交互数据存储于区块链中,既提高了映射的可信性,又提高了映射的执行效率。
例如,区块链可以将发布数据存储至智能合约对应的合约账户中。
进一步的,在示出的一种实施方式中,区块链可以响应于发布方发起的发布交易,调用所述智能合约中的发布逻辑,将所述发布数据存证在所述区块链中。
具体的,发布方向区块链中的节点设备发起发布交易,以使节点设备响应于该发布交易,调用智能合约,执行智能合约声明的发布逻辑,将发布数据存储至发布交易对应的交易日志中。
在示出的另一种实施方式中,所述隐私数据的数据标识包括由所述智能合约基于所述隐私数据的数据摘要生成的标识。
例如,智能合约中还声明了隐私数据的数据标识生成逻辑,响应于发布交易,调用智能合约,执行智能合约声明的生成逻辑,为隐私数据的数据摘要生成数据标识,并将该数据标识存储至发布交易对应的交易日志中。
又如,智能合约声明的发布逻辑中可以包括为所述隐私数据的数据摘要生成数据标识,响应于发布交易,基于发布数据中的隐私数据的数据摘要生成数据标识,并将隐私数据的数据摘要和隐私数据的数据标识存储至发布交易对应的交易日志中。
步骤S703:申请方获取区块链中存证的发布数据。
申请方对应的节点设备在对区块链的区块链账本进行数据同步后,可以在区块链上存储的交易日志中检索与发布方对应的发布数据。
在示出的一种实施方式中,监听由所述智能合约生成的智能合约事件;响应于监听到的由所述智能合约在将所述发布方发布至所述区块链的发布数据存证后生成的发布事件,获取所述区块链中存证的由所述发布方发布至所述区块链的发布数据。
例如,申请方可以向对应的节点设备订阅与自身相关的区块链事件、或与隐私数据的映射相关的区块链事件,以使节点设备在区块中监听到上述智能合约生成的与申请方相关的发布事件时,将发布事件发送至申请方,以使申请方发送对发布数据的获取请求。
步骤S704:申请方确定是否持有与所述数据摘要对应的隐私数据。
在申请方获取到的发布数据中,包括了发布方持有的隐私数据的数据摘要,为建立隐私数据的映射关系,申请方需要确认自身是否存在相同的隐私数据。
在示出的一种实施方式中,基于获取到的所述发布数据中的所述隐私数据的数据摘要,与持有的隐私数据生成的数据摘要进行匹配,确定是否存在相同的数据摘要。
具体的,申请方可以基于发布方生成隐私数据的数据摘要时所使用的哈希算法,为自身持有的隐私数据生成数据摘要的集合,当获取到发布方持有的隐私数据的数据摘要时,通过在数据摘要的集合中进行检索,匹配是否存在相同的数据摘要,从而确定自身是否持有与发布方持有的隐私数据相同的隐私数据。
步骤S705:申请方在确定持有与所述数据摘要对应的隐私数据时,生成持有与所述数据摘要对应的隐私数据对应的零知识证明。
零知识证明(Zero-Knowledge Proof)是一种基于概率的验证方法,是指证明者让验证者相信某个断言为真,且整个过程不泄露“断言为真”之外的任何知识。
也就是说,零知识证明是指证明者能够在不向验证者提供任何有用的知识的情况下,通过提供可公开的信息使验证者相信某个论断是正确的。顾名思义,零知识证明,就是既可以证明论断正确,又不泄露任何知识,即提供给外界的知识为零。
在实际应用中,开发人员可以通过零知识证明开发工具,获得用于供证明者生成证明的证明生成程序,以及用于供验证者验证证明的证明验证程序。
具体的,申请方可以基于预设的零知识证明算法对应的证明生成程序,生成零知识证明;而发布方在获取到该零知识证明之后,再基于预设的零知识证明算法对应的证明验证程序,对该零知识证明进行验证。
例如,申请方作为证明者,发布方作为验证者,申请方提供可公开的信息,而不透露任何知识(比如隐私数据),使得发布方可以通过已有的信息验证零知识证明,从而相信申请方拥有隐私数据。
在示出的一种实施方式中,获取所述申请方持有的与所述数据摘要对应的隐私数据,以及所述申请方生成的随机数,并基于预设的零知识证明算法对应的生成算法,生成持有与所述数据摘要对应的隐私数据对应的零知识证明。
其中,随机数可以由申请方随机生成,每次生成的随机数并不重复,每个随机数只能使用一次,从而防止多次映射或多方映射时,出现证明混淆的情况。
在一个例子中,可以将申请方持有的隐私数据、申请方生成的随机数、对隐私数据和随机数进行哈希计算后的hash值,作为输入参数输入至零知识证明生成程序,生成零知识证明。本申请对使用何种零知识证明算法不做限定,但为了申请方和发布方能够证明自身持有相同隐私数据,需要将隐私数据作为零知识证明算法的输入,如果隐私数据不同,零知识证明必然无法验证通过。
值得说明的是,输入隐私数据作为零知识证明算法的输入,但在发送零知识证明时,并不携带隐私数据,因此并不会造成隐私数据的泄漏。
步骤S706:申请方将申请数据发布至所述区块链;其中,所述申请数据包括所述零知识证明和所述申请方的标识信息。
在生成上述零知识证明之后,可以将上述零知识证明添加至申请数据中,以使发布方对上述零知识证明进行验证。
进一步的,在示出的一种实施方式中,所述申请数据还包括由所述申请方生成的随机数,以使发布方可以基于自身持有的隐私数据和申请数据中的随机数,对申请数据中的零知识证明进行验证。
另外,为了防止多方映射时出现混淆,还可以在申请数据中携带申请方的标识信息;同样的,发布方的发布数据中也可以携带发布方的标识信息;
进一步的,申请方可以根据发布数据中的隐私数据的数据标识,将申请方的标识信息与隐私数据的数据标识进行绑定;同样的,发布方也可以在将发布数据发布之前,将发布方的标识信息与隐私数据的数据标识进行绑定。
例如,发布方将隐私数据的数据标识C与发布方的标识信息A进行绑定,申请方将隐私数据的数据标识C与申请方的标识信息B进行绑定,当零知识证明验证通过之后,就可以建立A和B关于C的映射关系。
其中,区块链可以对上述申请数据中的申请方的标识信息,和发布数据中的发布方的标识信息进行存证,以及在建立映射关系后,对申请方和发布方的映射关系进行存证。
在示出的一种实施方式中,向所述区块链发起申请交易,以使所述区块链响应于所述申请交易,调用所述智能合约中的申请逻辑,将所述申请数据存证在所述区块链中。
具体的,申请方向区块链中的节点设备发起申请交易,以使节点设备响应于该申请交易,调用智能合约,执行智能合约声明的申请逻辑,将申请数据存储至申请交易对应的交易日志中。
步骤S707:区块链对申请数据进行存证。
具体的,区块链可以响应于申请方发起的申请交易,将接收到的申请数据进行存证。该步骤类似于上述步骤S702,在此不再赘述。
步骤S708:发布方获取区块链中存证的申请数据。
发布方对应的节点设备在对区块链的区块链账本进行数据同步后,可以在区块链上存储的交易日志中检索与申请方对应的申请数据。
在示出的一种实施方式中,监听由所述智能合约生成的智能合约事件;响应于监听到的由所述智能合约在将所述申请方发布至所述区块链的申请数据存证后生成的申请事件,获取所述区块链中存证的由所述申请方发布至所述区块链的申请数据。
例如,发布方可以向对应的节点设备订阅与自身相关的区块链事件、或与隐私数据的映射相关的区块链事件,以使节点设备在区块中监听到上述智能合约生成的与发布方相关的申请事件时,将申请事件发送至发布方,以使发布方发送对申请数据的获取请求。
步骤S709:发布方响应于获取到的所述申请数据,对所述零知识证明进行零知识验证。
发布方基于申请数据中的零知识证明,基于预设的零知识证明算法对应的证明验证程序,对该零知识证明进行验证。
在示出的一种实施方式中,获取所述申请方生成的随机数,以及所述发布方持有的隐私数据,并基于预设的零知识证明算法对应的验证算法,对所述零知识证明进行零知识验证,确定所述申请方是否持有与所述数据摘要对应的隐私数据。
在一个例子中,可以将发布方持有的隐私数据、申请方生成的随机数、对隐私数据和随机数进行哈希计算后的hash值,作为输入参数输入至零知识证明验证程序,验证零知识证明。
在上述零知识证明验证过程中,输入的隐私数据为发布方持有的隐私数据,只有发布方与申请方各自持有的隐私数据相同,才可以通过零知识证明的验证,从而在发布方与申请方不进行隐私数据的传递的前提下,双方可以互证拥有相同的隐私数据。
其中,随机数可以由申请方随机生成,每次生成的随机数并不重复,每个随机数只能使用一次,从而防止多次映射或多方映射时,出现证明混淆的情况。
进一步的,在示出的一种实施方式中,响应于获取到的所述申请方生成的随机数,判断是否存在与所述随机数的数值相同的其他随机数;如果没有,则对所述零知识证明进行零知识验证。
值得说明的是,为了快速获取上述零知识证明对应的发布方持有的隐私数据,可以根据申请数据中携带的隐私数据的数据标识确定该隐私数据。
在示出的一种实施方式中,所述申请数据还包括所述隐私数据的数据标识;响应于获取到的所述申请数据,根据所述申请数据中的所述隐私数据的数据标识确定所述发布方持有的隐私数据。
例如,发布方可能持有多个隐私数据,为了快速确定目标隐私数据,可以为隐私数据生成不同的数据标识,并通过在申请数据中携带该目标隐私数据的数据标识,使得发布方可以根据申请数据中的数据标识确定目标隐私数据。
步骤S710:发布方在零知识证明验证通过时将用于指示所述零知识证明验证通过的指示信息发布至所述区块链进行存证。
发布方在上述零知识证明验证通过时,可以确定申请方持有与自身持有的隐私数据相同的隐私数据,并将用于指示所述零知识证明验证通过的指示信息发布至所述区块链进行存证。
其中,零知识证明验证通过,代表可以建立申请方与发布方的映射关系。
在示出的一种实施方式中,所述指示信息包括所述隐私数据和所述申请方的标识信息的映射关系,或者用于保存所述隐私数据和所述申请方的标识信息的映射关系的通知。
举例来说,发布方将隐私数据的数据标识C与发布方的标识信息A进行绑定,申请方将隐私数据的数据标识C与申请方的标识信息B进行绑定,当零知识证明验证通过之后,该指示信息可以是A和B关于C的映射关系,或者用于通知区块链存证A和B关于C的映射关系。
在示出的一种实施方式中,在验证通过时向所述区块链发起绑定交易,以由所述区块链调用所述智能合约中的映射完成逻辑,将用于指示所述零知识证明验证通过的指示信息进行存证。
具体的,发布方在验证通过时向区块链中的节点设备发起绑定交易,以使节点设备响应于该绑定交易,调用智能合约,执行智能合约声明的映射完成逻辑,将上述指示信息存储至绑定交易对应的交易日志中。
步骤S711:区块链对指示信息进行存证。
具体的,区块链可以响应于发布方发起的绑定交易,将接收到的指示信息进行存证。该步骤类似于上述步骤S702、S707,在此不再赘述。
步骤S712:申请方获取所述区块链中存证的指示信息。
在示出的一种实施方式中,监听由所述智能合约生成的智能合约事件;响应于监听到的由所述智能合约在将用于指示所述零知识证明验证通过的指示信息进行存证后生成的映射完成事件,获取所述区块链中存证的指示信息。
例如,申请方可以向对应的节点设备订阅与自身相关的区块链事件、或与隐私数据的映射相关的区块链事件,以使节点设备在区块中监听到上述智能合约生成的与申请方相关的映射完成事件时,将映射完成事件发送至申请方,以使申请方发送对指示信息的获取请求。
步骤S713:申请方保存所述隐私数据和所述申请方的标识信息的映射关系。
在示出的一种实施方式中,申请方可以保存所述隐私数据的数据标识和所述申请方的标识信息的映射关系。
继续举例,当申请方获取到上述指示信息时,可以根据指示信息确定发布方和申请方关于隐私数据的映射关系,即发布方的标识信息A和申请方的标识信息B关于隐私数据的数据标识C的映射关系。
在示出的一种实施方式中,所述发布方和所述申请方包括企业,所述发布方的标识信息和所述申请方的标识信息包括企业标识,所述隐私数据包括用户在所述发布方和所述申请方分别注册的用户账户信息。
例如,上述企业可以是闲鱼、支付宝和淘宝,上述三方可以对某个目标用户建立关于账户信息的映射关系,通过零知识证明验证用户的隐私数据,比如注册账户时所使用的的银行卡、身份证、手机号等,并在零知识证明验证通过时,将用户注册的闲鱼账户、支付宝账户和淘宝账户绑定,从而实现上述三方共同服务于同一个目标用户。其中,上述三方并不指定固定的发布方或申请方,任一一方都可以作为发布方或者申请方。
值得说明的是,假设闲鱼作为发布方,支付宝作为申请方,在建立闲鱼和支付宝关于目标用户账户信息的映射关系后,如果淘宝想要加入该映射关系中,则淘宝可以作为申请方执行上述步骤S703-S706和S712-S713,而闲鱼作为发布方执行上述步骤S708-S710,在此不再赘述。
在以上技术方案中,一方面,由于映射双方都无需将自身持有的隐私数据发送出去,通过零知识证明即可验证申请方和发布方是否持有相同的隐私数据,如果任意一方没有隐私数据或两者持有的隐私数据不同,都无法完成零知识证明;因此可以确保只有映射双方隐私数据相同才能验证成功,可以有效保护映射双方所持有的隐私数据,以及提升映射双方进行映射时的数据安全。
另一方面,由于发布方和申请方无需通过预先约定密钥的方式将隐私数据进行加密传输,而是以发送零知识证明,并根据零知识证明的结果的方式建立映射,因此可以使得具有相同隐私数据的多个服务提供方之间,能够更加便捷的建立映射关系,实现多方协作,省去复杂的约定环节。
请参见图8,图8是本申请一示例性实施例示出的一种基于区块链的隐私数据映射方法的应用场景流程图,其中,本申请中的发布方在本申请实施例中为企业A,本申请中的申请方在本申请实施例中为企业B,该方法可以包括以下步骤:
应用场景:企业A与企业B在部署了智能合约的区块链上进行数据交互,所述智能合约用于管理所述发布方和所述申请方之间的交互数据,企业A与B约定了用户账户信息作为隐私数据。
1、企业A确定目标用户在企业A注册的账户X对应的账户信息。
2、企业A基于预设的哈希算法生成账户X对应的账户信息的数据摘要。
3、企业B基于同样的哈希算法生成企业B持有的账户信息的数据摘要的集合。
4、企业A生成上述账户信息的数据摘要对应的数据标识C。
5、企业A记录企业A的标识信息与数据标识C的绑定关系。
6、企业A发起发布交易,将发布数据发布至区块链。
其中,发布数据可以包括账户信息的数据摘要、数据标识C、企业A的标识信息。
7、区块链响应于企业A发起的发布交易,调用智能合约中的发布逻辑,将发布数据存证在区块链中。
8、企业B监听由智能合约在将企业A发布至所述区块链的发布数据存证后生成的发布事件。
9、企业B获取区块链中存证的由企业A发布至区块链的发布数据。
10、企业B根据发布数据中的数据摘要,在上述数据摘要的集合中进行检索,匹配是否存在相同的数据摘要,从而确定自身是否持有与企业A持有的账户信息相同的账户信息;
如果存在相同的账户信息,说明该目标用户在企业B注册了账户,假设该账户为Y,则账户Y与账户X对应的账户信息相同,账户X与Y之间可以建立关于目标用户的映射关系。
11、企业B在确定持有相同的账户信息时,获取账户Y对应的账户信息、以及企业B生成的随机数,基于预设的零知识证明算法对应的生成算法,生成用于证明企业B持有该账户信息的零知识证明。
12、企业B记录企业B的标识信息与数据标识C的绑定关系。
13、企业B发起申请交易,将申请数据发布至区块链。
其中,申请数据可以包括零知识证明、数据标识C、企业B的标识信息以及随机数。
14、区块链响应于企业B发起的申请交易,调用智能合约中的申请逻辑,将申请数据存证在区块链中。
15、企业A监听由智能合约在将企业B发布至所述区块链的申请数据存证后生成的申请事件。
16、企业A获取区块链中存证的由企业B发布至区块链的申请数据。
17、企业A根据申请数据中的数据标识C,确定企业A持有的账户X对应的账户信息的数据摘要。
18、企业A根据自身持有的账户X对应的账户信息的数据摘要,以及申请数据中的随机数,基于预设的零知识证明算法对应的验证算法,对所述零知识证明进行零知识验证;
如果零知识证明验证通过,则企业A可以确定企业B持有与账户X对应的账户信息相同的账户信息。
19、企业A在零知识证明验证通过时,发起绑定交易,将企业A和企业B关于数据标识C的映射关系发布至区块链。
20、区块链响应于企业A发起的绑定交易,调用智能合约中的映射完成逻辑,将上述映射关系存证在区块链中。
21、企业B监听由智能合约在将企业A发布至所述区块链的映射关系存证后生成的映射完成事件。
22、企业B获取区块链中存证的由企业A发布至区块链的映射关系,完成与企业A建立映射关系的交互。
假设企业C想和企业A建立关于上述目标用户的账户信息的映射关系时,可以和企业A重复上述步骤8-22的交互过程。
与上述方法实施例相对应,本申请还提供了装置的实施例。
与上述方法实施例相对应,本申请还提供了一种基于区块链的隐私数据映射装置的实施例。本申请的基于区块链的隐私数据映射装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图9所示,为本申请一示例性实施例示出的一种的基于区块链的隐私数据映射装置所在电子设备的硬件结构图,除了图9所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
请参见图10,图10是本申请一示例性实施例示出的一种基于区块链的隐私数据映射装置的框图,如图10所示,所述基于区块链的隐私数据映射装置1000可以应用在前述图9所示的电子设备中,包括:
发布单元1001,基于持有的隐私数据生成与所述隐私数据对应的发布数据,并将所述发布数据发布至区块链进行存证;其中,所述发布数据包括所述隐私数据的数据摘要,以使隐私数据映射的申请方在获取到所述区块链上存证的所述发布数据时,确定是否持有与所述数据摘要对应的隐私数据,并在确定持有与所述数据摘要对应的隐私数据时,生成持有与所述数据摘要对应的隐私数据对应的零知识证明;
获取单元1002,获取区块链中存证的由所述申请方发布至所述区块链的申请数据;其中,所述申请数据包括所述零知识证明和所述申请方的标识信息;
验证单元1003,响应于获取到的所述申请数据,对所述零知识证明进行零知识验证,并在验证通过时将用于指示所述零知识证明验证通过的指示信息发布至所述区块链进行存证,以使所述申请方在获取到所述指示信息时,保存所述隐私数据和所述申请方的标识信息的映射关系。
在一实施例中,所述发布数据还包括所述隐私数据的数据标识。
在一实施例中,所述指示信息包括所述隐私数据和所述申请方的标识信息的映射关系,或者用于保存所述隐私数据和所述申请方的标识信息的映射关系的通知。
在一实施例中,所述区块链上还部署了智能合约,所述智能合约用于管理所述发布方和所述申请方之间的交互数据。
在一实施例中,所述发布单元1001,进一步:
向所述区块链发起发布交易,以使所述区块链响应于所述发布交易,调用所述智能合约中的发布逻辑,将所述发布数据存证在所述区块链中。
在一实施例中,所述隐私数据的数据标识包括由所述智能合约基于所述隐私数据的数据摘要生成的标识。
在一实施例中,所述获取单元1002,进一步:
监听由所述智能合约生成的智能合约事件;
响应于监听到的由所述智能合约在将所述申请方发布至所述区块链的申请数据存证后生成的申请事件,获取所述区块链中存证的由所述申请方发布至所述区块链的申请数据。
在一实施例中,所述申请数据还包括由所述申请方生成的随机数;
所述验证单元1003,进一步:
获取所述申请方生成的随机数,以及所述发布方持有的隐私数据,并基于预设的零知识证明算法对应的验证算法,对所述零知识证明进行零知识验证,确定所述申请方是否持有与所述数据摘要对应的隐私数据。
在一实施例中,所述装置1000还包括:
判断单元1004,响应于获取到的所述申请方生成的随机数,判断是否存在与所述随机数的数值相同的其他随机数;如果没有,则对所述零知识证明进行零知识验证。
在一实施例中,所述申请数据还包括所述隐私数据的数据标识;
所述验证单元1003,进一步:
响应于获取到的所述申请数据,根据所述申请数据中的所述隐私数据的数据标识确定所述发布方持有的隐私数据。
在一实施例中,所述验证单元1003,进一步:
在验证通过时向所述区块链发起绑定交易,以由所述区块链调用所述智能合约中的映射完成逻辑,将用于指示所述零知识证明验证通过的指示信息进行存证。
在一实施例中,所述发布方和所述申请方包括企业,所述发布方的标识信息和所述申请方的标识信息包括企业标识,所述隐私数据包括用户在所述发布方和所述申请方分别注册的用户账户信息。
请参见图11,图11是本申请一示例性实施例示出的另一种基于区块链的隐私数据映射装置的框图,如图11所示,所述基于区块链的隐私数据映射装置1100可以应用在前述图9所示的电子设备中,包括:
生成单元1101,获取区块链中存证的发布数据,确定是否持有与所述数据摘要对应的隐私数据,并在确定持有与所述数据摘要对应的隐私数据时,生成持有与所述数据摘要对应的隐私数据对应的零知识证明;其中,所述发布数据由隐私数据映射的发布方基于持有的隐私数据生成,所述发布数据包括所述隐私数据的数据摘要;
申请单元1102,将申请数据发布至所述区块链进行存证,以使所述发布方获取区块链中存证的所述申请数据;其中,所述申请数据包括所述零知识证明和所述申请方的标识信息;
保存单元1103,获取所述区块链中存证的指示信息,保存所述隐私数据和所述申请方的标识信息的映射关系;其中,所述指示信息由所述发布方响应于获取到的所述申请数据,对所述零知识证明进行零知识验证,并在验证通过时将用于指示所述零知识证明验证通过的指示信息发布至所述区块链进行存证。
在一实施例中,所述发布数据还包括所述隐私数据的数据标识;
所述保存单元1103,进一步:
保存所述隐私数据的数据标识和所述申请方的标识信息的映射关系。
在一实施例中,所述指示信息包括所述隐私数据和所述申请方的标识信息的映射关系,或者用于保存所述隐私数据和所述申请方的标识信息的映射关系的通知。
在一实施例中,所述区块链上还部署了智能合约,所述智能合约用于管理所述发布方和所述申请方之间的交互数据。
在一实施例中,所述生成单元1101,进一步:
监听由所述智能合约生成的智能合约事件;
响应于监听到的由所述智能合约在将所述发布方发布至所述区块链的发布数据存证后生成的发布事件,获取所述区块链中存证的由所述发布方发布至所述区块链的发布数据。
在一实施例中,所述隐私数据的数据标识包括由所述智能合约基于所述隐私数据的数据摘要生成的标识。
在一实施例中,所述申请单元1102,进一步:
向所述区块链发起申请交易,以使所述区块链响应于所述申请交易,调用所述智能合约中的申请逻辑,将所述申请数据存证在所述区块链中。
在一实施例中,所述生成单元1101,进一步:
基于获取到的所述发布数据中的所述隐私数据的数据摘要,与持有的隐私数据生成的数据摘要进行匹配,确定是否存在相同的数据摘要。
在一实施例中,所述申请数据还包括由所述申请方生成的随机数;
所述生成单元1101,进一步:
获取所述申请方持有的与所述数据摘要对应的隐私数据,以及所述申请方生成的随机数,并基于预设的零知识证明算法对应的生成算法,生成持有与所述数据摘要对应的隐私数据对应的零知识证明。
在一实施例中,所述申请数据还包括所述隐私数据的数据标识,以使所述发布方响应于获取到的所述申请数据,根据所述申请数据中的所述隐私数据的数据标识确定所述发布方持有的隐私数据。
在一实施例中,所述保存单元1103,进一步:
监听由所述智能合约生成的智能合约事件;
响应于监听到的由所述智能合约在将用于指示所述零知识证明验证通过的指示信息进行存证后生成的映射完成事件,获取所述区块链中存证的指示信息。
在一实施例中,所述发布方和所述申请方包括企业,所述发布方的标识信息和所述申请方的标识信息包括企业标识,所述隐私数据包括用户在所述发布方和所述申请方分别注册的用户账户信息。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同/相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于客户端设备实施例、装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的装置、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与上述方法实施例相对应,本说明书还提供了一种电子设备的实施例。该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与用户身份验证逻辑对应的机器可执行指令,所述处理器被促使:
基于持有的隐私数据生成与所述隐私数据对应的发布数据,并将所述发布数据发布至区块链进行存证;其中,所述发布数据包括所述隐私数据的数据摘要,以使隐私数据映射的申请方在获取到所述区块链上存证的所述发布数据时,确定是否持有与所述数据摘要对应的隐私数据,并在确定持有与所述数据摘要对应的隐私数据时,生成持有与所述数据摘要对应的隐私数据对应的零知识证明;
获取区块链中存证的由所述申请方发布至所述区块链的申请数据;其中,所述申请数据包括所述零知识证明和所述申请方的标识信息;
响应于获取到的所述申请数据,对所述零知识证明进行零知识验证,并在验证通过时将用于指示所述零知识证明验证通过的指示信息发布至所述区块链进行存证,以使所述申请方在获取到所述指示信息时,保存所述隐私数据和所述申请方的标识信息的映射关系。
与上述方法实施例相对应,本说明书还提供了另一种电子设备的实施例。该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与用户身份验证逻辑对应的机器可执行指令,所述处理器被促使:
获取区块链中存证的发布数据,确定是否持有与所述数据摘要对应的隐私数据,并在确定持有与所述数据摘要对应的隐私数据时,生成持有与所述数据摘要对应的隐私数据对应的零知识证明;其中,所述发布数据由隐私数据映射的发布方基于持有的隐私数据生成,所述发布数据包括所述隐私数据的数据摘要;
将申请数据发布至所述区块链进行存证,以使所述发布方获取区块链中存证的所述申请数据;其中,所述申请数据包括所述零知识证明和所述申请方的标识信息;
获取所述区块链中存证的指示信息,保存所述隐私数据和所述申请方的标识信息的映射关系;其中,所述指示信息由所述发布方响应于获取到的所述申请数据,对所述零知识证明进行零知识验证,并在验证通过时将用于指示所述零知识证明验证通过的指示信息发布至所述区块链进行存证。
与上述方法实施例相对应,本说明书的实施例还提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,这些计算机程序在被处理器运行时,执行本说明书实施例中基于区块链的隐私数据映射方法的各个步骤。对上述基于区块链的隐私数据映射方法的各个步骤的详细描述请参见之前的内容,不再重复。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书的实施方式可提供为方法、系统或计算机程序产品。因此,本说明书的实施方式可采用完全硬件实施方式、完全软件实施方式或结合软件和硬件方面的实施方式的形式。而且,本说明书的实施方式可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (28)
1.一种基于区块链的隐私数据映射方法,应用于隐私数据映射的发布方,所述方法包括:
基于持有的隐私数据生成与所述隐私数据对应的发布数据,并将所述发布数据发布至区块链进行存证;其中,所述发布数据包括所述隐私数据的数据摘要,以使隐私数据映射的申请方在获取到所述区块链上存证的所述发布数据时,确定是否持有与所述数据摘要对应的隐私数据,并在确定持有与所述数据摘要对应的隐私数据时,基于持有的隐私数据生成持有与所述数据摘要对应的隐私数据对应的零知识证明;
获取区块链中存证的由所述申请方发布至所述区块链的申请数据;其中,所述申请数据包括所述零知识证明和所述申请方的标识信息;
响应于获取到的所述申请数据,基于持有的隐私数据对所述零知识证明进行零知识验证,并在验证通过时将用于指示所述零知识证明验证通过的指示信息发布至所述区块链进行存证,以使所述申请方在获取到所述指示信息时,保存所述隐私数据和所述申请方的标识信息的映射关系。
2.根据权利要求1所述的方法,所述发布数据还包括所述隐私数据的数据标识;
所述保存所述隐私数据和所述申请方的标识信息的映射关系,包括:
保存所述隐私数据的数据标识和所述申请方的标识信息的映射关系。
3.根据权利要求1所述的方法,所述指示信息包括所述隐私数据和所述申请方的标识信息的映射关系,或者用于保存所述隐私数据和所述申请方的标识信息的映射关系的通知。
4.根据权利要求1所述的方法,所述区块链上还部署了智能合约,所述智能合约用于管理所述发布方和所述申请方之间的交互数据。
5.根据权利要求4所述的方法,所述将所述发布数据发布至区块链进行存证,包括:
向所述区块链发起发布交易,以使所述区块链响应于所述发布交易,调用所述智能合约中的发布逻辑,将所述发布数据存证在所述区块链中。
6.根据权利要求4所述的方法,所述隐私数据的数据标识包括由所述智能合约基于所述隐私数据的数据摘要生成的标识。
7.根据权利要求4所述的方法,所述获取区块链中存证的由所述申请方发布至所述区块链的申请数据,包括:
监听由所述智能合约生成的智能合约事件;
响应于监听到的由所述智能合约在将所述申请方发布至所述区块链的申请数据存证后生成的申请事件,获取所述区块链中存证的由所述申请方发布至所述区块链的申请数据。
8.根据权利要求1所述的方法,所述申请数据还包括由所述申请方生成的随机数;
所述基于持有的隐私数据生成持有与所述数据摘要对应的隐私数据对应的零知识证明,包括:
获取所述申请方持有的与所述数据摘要对应的隐私数据,以及所述申请方生成的随机数,并基于预设的零知识证明算法对应的生成算法,基于持有的隐私数据生成持有与所述数据摘要对应的隐私数据对应的零知识证明;
所述基于持有的隐私数据对所述零知识证明进行零知识验证,包括:
获取所述申请方生成的随机数,以及所述发布方持有的隐私数据,并基于预设的零知识证明算法对应的验证算法,基于持有的隐私数据对所述零知识证明进行零知识验证,确定所述申请方是否持有与所述数据摘要对应的隐私数据。
9.根据权利要求8所述的方法,所述方法还包括:
响应于获取到的所述申请方生成的随机数,判断是否存在与所述随机数的数值相同的其他随机数;如果没有,则对所述零知识证明进行零知识验证。
10.根据权利要求1所述的方法,所述申请数据还包括所述隐私数据的数据标识;
所述获取所述发布方持有的隐私数据,包括:
响应于获取到的所述申请数据,根据所述申请数据中的所述隐私数据的数据标识确定所述发布方持有的隐私数据。
11.根据权利要求4所述的方法,所述在验证通过时将用于指示所述零知识证明验证通过的指示信息发布至所述区块链进行存证,包括:
在验证通过时向所述区块链发起绑定交易,以由所述区块链调用所述智能合约中的映射完成逻辑,将用于指示所述零知识证明验证通过的指示信息进行存证。
12.根据权利要求1-11所述的任一方法,所述发布方和所述申请方包括企业,所述发布方的标识信息和所述申请方的标识信息包括企业标识,所述隐私数据包括用户在所述发布方和所述申请方分别注册的用户账户信息。
13.一种基于区块链的隐私数据映射方法,应用于隐私数据映射的申请方,所述方法包括:
获取区块链中存证的发布数据,确定是否持有与所述数据摘要对应的隐私数据,并在确定持有与所述数据摘要对应的隐私数据时,基于持有的隐私数据生成持有与所述数据摘要对应的隐私数据对应的零知识证明;其中,所述发布数据由隐私数据映射的发布方基于持有的隐私数据生成,所述发布数据包括所述隐私数据的数据摘要;
将申请数据发布至所述区块链进行存证,以使所述发布方获取区块链中存证的所述申请数据;其中,所述申请数据包括所述零知识证明和所述申请方的标识信息;
获取所述区块链中存证的指示信息,保存所述隐私数据和所述申请方的标识信息的映射关系;其中,所述指示信息由所述发布方响应于获取到的所述申请数据,基于持有的隐私数据对所述零知识证明进行零知识验证,并在验证通过时将用于指示所述零知识证明验证通过的指示信息发布至所述区块链进行存证。
14.根据权利要求13所述的方法,所述发布数据还包括所述隐私数据的数据标识;
所述保存所述隐私数据和所述申请方的标识信息的映射关系,包括:
保存所述隐私数据的数据标识和所述申请方的标识信息的映射关系。
15.根据权利要求13所述的方法,所述指示信息包括所述隐私数据和所述申请方的标识信息的映射关系,或者用于保存所述隐私数据和所述申请方的标识信息的映射关系的通知。
16.根据权利要求13所述的方法,所述区块链上还部署了智能合约,所述智能合约用于管理所述发布方和所述申请方之间的交互数据。
17.根据权利要求16所述的方法,所述获取区块链中存证的发布数据,包括:
监听由所述智能合约生成的智能合约事件;
响应于监听到的由所述智能合约在将所述发布方发布至所述区块链的发布数据存证后生成的发布事件,获取所述区块链中存证的由所述发布方发布至所述区块链的发布数据。
18.根据权利要求16所述的方法,所述隐私数据的数据标识包括由所述智能合约基于所述隐私数据的数据摘要生成的标识。
19.根据权利要求16所述的方法,所述将所述申请数据发布至所述区块链进行存证,包括:
向所述区块链发起申请交易,以使所述区块链响应于所述申请交易,调用所述智能合约中的申请逻辑,将所述申请数据存证在所述区块链中。
20.根据权利要求13所述的方法,所述确定是否持有与所述数据摘要对应的隐私数据,包括:
基于获取到的所述发布数据中的所述隐私数据的数据摘要,与持有的隐私数据生成的数据摘要进行匹配,确定是否存在相同的数据摘要。
21.根据权利要求13所述的方法,所述申请数据还包括由所述申请方生成的随机数;
所述基于持有的隐私数据生成持有与所述数据摘要对应的隐私数据对应的零知识证明,包括:
获取所述申请方持有的与所述数据摘要对应的隐私数据,以及所述申请方生成的随机数,并基于预设的零知识证明算法对应的生成算法,基于持有的隐私数据生成持有与所述数据摘要对应的隐私数据对应的零知识证明;
所述基于持有的隐私数据对所述零知识证明进行零知识验证,包括:
获取所述申请方生成的随机数,以及所述发布方持有的隐私数据,并基于预设的零知识证明算法对应的验证算法,基于持有的隐私数据对所述零知识证明进行零知识验证,确定所述申请方是否持有与所述数据摘要对应的隐私数据。
22.根据权利要求13所述的方法,所述申请数据还包括所述隐私数据的数据标识,以使所述发布方响应于获取到的所述申请数据,根据所述申请数据中的所述隐私数据的数据标识确定所述发布方持有的隐私数据。
23.根据权利要求16所述的方法,所述获取所述区块链中存证的指示信息,包括:
监听由所述智能合约生成的智能合约事件;
响应于监听到的由所述智能合约在将用于指示所述零知识证明验证通过的指示信息进行存证后生成的映射完成事件,获取所述区块链中存证的指示信息。
24.根据权利要求13-23所述的任一方法,所述发布方和所述申请方包括企业,所述发布方的标识信息和所述申请方的标识信息包括企业标识,所述隐私数据包括用户在所述发布方和所述申请方分别注册的用户账户信息。
25.一种基于区块链的隐私数据映射装置,应用于隐私数据映射的发布方,所述装置包括:
发布单元,基于持有的隐私数据生成与所述隐私数据对应的发布数据,并将所述发布数据发布至区块链进行存证;其中,所述发布数据包括所述隐私数据的数据摘要,以使隐私数据映射的申请方在获取到所述区块链上存证的所述发布数据时,确定是否持有与所述数据摘要对应的隐私数据,并在确定持有与所述数据摘要对应的隐私数据时,基于持有的隐私数据生成持有与所述数据摘要对应的隐私数据对应的零知识证明;
获取单元,获取区块链中存证的由所述申请方发布至所述区块链的申请数据;其中,所述申请数据包括所述零知识证明和所述申请方的标识信息;
验证单元,响应于获取到的所述申请数据,基于持有的隐私数据对所述零知识证明进行零知识验证,并在验证通过时将用于指示所述零知识证明验证通过的指示信息发布至所述区块链进行存证,以使所述申请方在获取到所述指示信息时,保存所述隐私数据和所述申请方的标识信息的映射关系。
26.一种基于区块链的隐私数据映射装置,应用于隐私数据映射的申请方,所述装置包括:
生成单元,获取区块链中存证的发布数据,确定是否持有与所述数据摘要对应的隐私数据,并在确定持有与所述数据摘要对应的隐私数据时,基于持有的隐私数据生成持有与所述数据摘要对应的隐私数据对应的零知识证明;其中,所述发布数据由隐私数据映射的发布方基于持有的隐私数据生成,所述发布数据包括所述隐私数据的数据摘要;
申请单元,将申请数据发布至所述区块链进行存证,以使所述发布方获取区块链中存证的所述申请数据;其中,所述申请数据包括所述零知识证明和所述申请方的标识信息;
保存单元,获取所述区块链中存证的指示信息,保存所述隐私数据和所述申请方的标识信息的映射关系;其中,所述指示信息由所述发布方响应于获取到的所述申请数据,基于持有的隐私数据对所述零知识证明进行零知识验证,并在验证通过时将用于指示所述零知识证明验证通过的指示信息发布至所述区块链进行存证。
27.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-24中任一项所述方法的步骤。
28.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-24中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111076130.XA CN113536384B (zh) | 2021-09-14 | 2021-09-14 | 基于区块链的隐私数据映射方法、装置、介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111076130.XA CN113536384B (zh) | 2021-09-14 | 2021-09-14 | 基于区块链的隐私数据映射方法、装置、介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113536384A CN113536384A (zh) | 2021-10-22 |
CN113536384B true CN113536384B (zh) | 2021-12-21 |
Family
ID=78092569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111076130.XA Active CN113536384B (zh) | 2021-09-14 | 2021-09-14 | 基于区块链的隐私数据映射方法、装置、介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113536384B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114785511A (zh) * | 2022-02-25 | 2022-07-22 | 蚂蚁区块链科技(上海)有限公司 | 证明生成方法及装置、电子设备、存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111091380B (zh) * | 2019-10-25 | 2023-05-09 | 趣派(海南)信息科技有限公司 | 一种基于好友隐蔽验证的区块链资产管理方法 |
CN112508722B (zh) * | 2021-01-29 | 2021-05-25 | 支付宝(杭州)信息技术有限公司 | 一种基于零知识证明的保单信息验证方法和装置 |
CN113326535B (zh) * | 2021-06-01 | 2022-05-17 | 支付宝(杭州)信息技术有限公司 | 一种信息验证方法及装置 |
-
2021
- 2021-09-14 CN CN202111076130.XA patent/CN113536384B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113536384A (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112101938B (zh) | 基于区块链的数字印章使用方法、装置及电子设备 | |
CN113114476B (zh) | 基于合约的隐私存证方法及装置 | |
CN111461723A (zh) | 基于区块链的数据处理系统及方法、装置 | |
CN112200571B (zh) | 基于区块链的资源发放方法、装置及电子设备 | |
EP3961974A1 (en) | Block content editing methods and apparatuses | |
CN110580418A (zh) | 基于区块链账户的隐私数据查询方法及装置 | |
CN111026789A (zh) | 基于区块链的电子票据查询方法及装置、电子设备 | |
CN113037817B (zh) | 启动智能合约的方法及装置、电子设备、存储介质 | |
CN110580245B (zh) | 隐私数据的共享方法及装置 | |
CN111770198B (zh) | 一种信息共享方法、装置及设备 | |
CN111767555A (zh) | 区块链中实现隐私保护的方法及节点、存储介质 | |
CN111241557B (zh) | 基于区块链的服务请求方法及装置 | |
CN110580412A (zh) | 基于链代码的权限查询配置方法及装置 | |
CN111127021B (zh) | 基于区块链的服务请求方法及装置 | |
CN111047443A (zh) | 用户评分方法及装置、电子设备、计算机可读存储介质 | |
CN112200569B (zh) | 基于区块链的数字印章使用方法、装置及电子设备 | |
CN112200568B (zh) | 基于区块链的账户创建方法、装置及电子设备 | |
CN112200567A (zh) | 基于区块链的资源管理方法、装置及电子设备 | |
CN111178840A (zh) | 业务处理方法及装置、系统、电子设备、存储介质 | |
CN112766854B (zh) | 基于区块链的数字商品交易方法和装置 | |
EP3961546A1 (en) | Information sharing methods, apparatuses, and devices | |
CN112200572A (zh) | 基于区块链的资源发放方法、装置及电子设备 | |
CN112100588A (zh) | 基于区块链的数字印章申领方法、装置及电子设备 | |
CN113536384B (zh) | 基于区块链的隐私数据映射方法、装置、介质和电子设备 | |
CN115203747A (zh) | 数据账户创建方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240926 Address after: Room 803, floor 8, No. 618 Wai Road, Huangpu District, Shanghai 200010 Patentee after: Ant blockchain Technology (Shanghai) Co.,Ltd. Country or region after: China Address before: 310000 801-11 section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province Patentee before: Alipay (Hangzhou) Information Technology Co.,Ltd. Country or region before: China |