CN111327426A - 数据共享方法及相关装置、设备及系统 - Google Patents

数据共享方法及相关装置、设备及系统 Download PDF

Info

Publication number
CN111327426A
CN111327426A CN202010072927.1A CN202010072927A CN111327426A CN 111327426 A CN111327426 A CN 111327426A CN 202010072927 A CN202010072927 A CN 202010072927A CN 111327426 A CN111327426 A CN 111327426A
Authority
CN
China
Prior art keywords
nodes
data
node
transaction data
private keys
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010072927.1A
Other languages
English (en)
Other versions
CN111327426B (zh
Inventor
黄焕坤
王宗友
刘攀
张劲松
朱耿良
时一防
廖志勇
周开班
刘区城
杨常青
蓝虎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010072927.1A priority Critical patent/CN111327426B/zh
Publication of CN111327426A publication Critical patent/CN111327426A/zh
Application granted granted Critical
Publication of CN111327426B publication Critical patent/CN111327426B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

本发明实施例公开了一种数据共享方法及相关装置、设备及系统,其中,数据共享方法包括:第一节点或第一节点的代理节点接收针对用于指示将目标数据分享给区块链网络中的n个节点的分享请求,根据至少n个节点的公钥生成第一多重签名地址,通过第一多重签名地址对目标数据进行加密,得到第一交易数据;进而,将第一交易数据上传至区块链网络,n个节点在接收到第一交易数据后分别根据包含在该至少n个节点的私钥中的至少i个私钥对第一交易数据进行解密得到目标数据。上述方法提供一种公平、可监督的数据共享的方式,数据共享的过程透明且公平,可以提高保护被共享数据的安全。

Description

数据共享方法及相关装置、设备及系统
技术领域
本发明涉及互联网技术领域,具体涉及数据处理技术领域,尤其涉及数据共享方法及相关装置、设备及系统。
背景技术
各个政府部门之间或者公司的各个部门之间,各个部门中的各个员工之间,其数据互相之间隔离。如果员工想要向其他部门的多个员工共享数据,需要发起分享数据的成员需要将被分享的数据一一发送给指定的多个员工,或者,通过上被分享的数据上传到共享网盘,将网盘中该数据的访问链接发送给指定的多个员工。这些实现方式无人监督,访问链接可以被复制,导致其他在指定的多个员工外的人也可以获取到该数据,安全性差。
发明内容
本发明实施例提供了一种数据共享方法及相关装置、设备及系统,可以提供一种公平、可监督的数据共享的方式,数据共享的过程透明且公平,可以提高保护被共享数据的安全。
第一方面,本发明实施例提供了一种数据共享方法,所述数据共享方法应用于第一节点或第一代理节点,所述数据共享方法包括:
接收针对目标数据的分享请求,所述分享请求用于请求将所述目标数据分享给区块链网络中的n个节点,n为正整数;
根据至少n个节点的公钥生成第一多重签名地址,其中,通过所述第一多重签名地址加密的数据在通过至少i个私钥验证后解密,所述至少n个节点的私钥包括所述至少i个私钥,i为正整数,i≤n;
通过所述第一多重签名地址对所述目标数据进行加密,得到第一交易数据;
将所述第一交易数据上传至区块链网络,以使所述n个节点分别根据所述至少i个私钥对所述第一交易数据进行解密得到所述目标数据。
在一种可能的实现中,所述i为1,以使所述n个节点中的每一个节点分别根据所述每一个节点的私钥对所述第一交易数据进行解密得到所述目标数据。
在一种可能的实现中,所述区块链网络还包括k个代理节点,所述至少k个代理节点用于代理所述n个节点向所述区块链网络上传数据,所述根据所述n个节点的公钥生成第一多重签名地址,包括:
根据所述n个节点的公钥和所述k个代理节点的公钥生成第一多重签名地址,通过所述第一多重签名地址加密的数据在通过至少2个私钥验证后解密,所述至少2个私钥为所述n个节点的私钥和所述k个代理节点的私钥中的2个私钥。
在一种可能的实现中,所述方法由第一代理节点执行,所述第一代理节点为第一节点的代理节点,所述接收针对目标数据的分享请求,包括:
接收所述第一节点发送的针对目标数据的分享请求。
在一种可能的实现中,所述方法还包括:
根据节点集合中每一个节点的公钥生成第二多重签名地址,所述节点集合包括所述第一代理节点所代理的所有节点,通过所述第二多重签名地址加密的数据在通过至少1个私钥验证后解密,所述节点集合中的所有节点的私钥包括所述至少1个私钥;
通过所述第二多重签名地址对所述第一代理节点的私钥进行加密,得到第二交易数据;
将所述第二交易数据上传至区块链网络,以使所述节点集合中的节点在接收到所述第二交易数据后获取所述第一代理节点的私钥。
第二方面,本发明实施例提供了一种数据共享方法,所述数据共享方法应用于第二节点,所述数据共享方法包括:
接收来自区块链网络的第一交易数据,所述第一交易数据包括通过第一多重签名地址加密的目标数据,所述第一多重签名地址是通过所述区块链网络中的至少n个节点的公钥生成;
通过至少i个私钥解密所述第一交易数据,得到所述目标数据,i为正整数,i≤n,所述至少n个节点的私钥包括所述至少i个私钥。
在一种可能的实现中,通过所述第一多重签名地址加密的数据在通过至少一个私钥验证后解密,所述n个节点的私钥包括所述至少一个个私钥。
在一种可能的实现中,所述区块链网络还包括至少k个代理节点,所述至少k个代理节点用于代理所述n个节点向所述区块链网络上传数据,所述第一多重签名地址是根据所述n个节点的公钥和所述k个代理节点的公钥生成的,通过所述第一多重签名地址加密的数据在通过至少2个私钥验证后解密,所述至少2个私钥为所述n个节点的私钥和所述k个代理节点的私钥中的2个私钥。
在一种可能的实现中,所述n个节点包括第二节点,所述方法由所述第二节点执行,所述方法还包括:
接收第二代理节点上传到所述区块链网络的第三交易数据,所述第二代理节点为代理所述第二节点向区块链网络上传数据的节点,所述第三交易数据包括通过第三多重签名地址加密的所述第二代理节点的私钥,所述第三多重签名地址是通过节点集合中每一个节点的公钥生成的,所述节点集合包括所述第二代理节点所代理的所有节点;
通过所述第二节点的私钥解密所述第二交易数据进行,得到所述第二代理节点的私钥。
在一种可能的实现中,所述通过至少一个私钥解密所述第一交易数据,得到所述目标数据,包括:
通过所述第二节点的私钥和所述第二代理节点的私钥解密所述第一交易数据,得到所述目标数据。
第三方面,本发明实施例提供了一种数据共享装置,所述数据共享装置可以是第一节点或第一代理节点中,所述数据共享装置包括用于:
接收单元,用于接收针对目标数据的分享请求,所述分享请求用于请求将所述目标数据分享给区块链网络中的n个节点,n为正整数;
生成单元,用于根据至少n个节点的公钥生成第一多重签名地址,其中,通过所述第一多重签名地址加密的数据在通过至少i个私钥验证后解密,所述至少n个节点的私钥包括所述至少i个私钥,i为正整数,i≤n;
加密单元,用于通过所述第一多重签名地址对所述目标数据进行加密,得到第一交易数据;
上传单元,用于将所述第一交易数据上传至区块链网络,以使所述n个节点分别根据所述至少i个私钥对所述第一交易数据进行解密得到所述目标数据。
应理解,数据共享装置中各个单元的具体实现可以参见上述第一方面或第二方面所述的数据共享方法中,第一节点或第一代理节点执行的步骤,这里不再赘述。
第四方面,本发明实施例提供了一种数据共享装置,所述数据共享装置可以是第二节点,所述数据共享装置包括:
接收单元,用于接收来自区块链网络的第一交易数据,所述第一交易数据包括通过第一多重签名地址加密的目标数据,所述第一多重签名地址是通过所述区块链网络中的至少n个节点的公钥生成;
解密单元,用于通过至少i个私钥解密所述第一交易数据,得到所述目标数据,i为正整数,i≤n,所述至少n个节点的私钥包括所述至少i个私钥。
应理解,数据共享装置中各个单元的具体实现可以参见上述第二方面或第二方面所述的数据共享方法中,第二节点执行的步骤,这里不再赘述。
第五方面,本申请实施例还提供了一种数据共享装置包括:处理器和存储器,所述处理器和存储器耦合,其中,所述存储器用于存储计算机指令,所述处理器用于执行所述计算机指令,调用所述程序代码,以实现如第一方面的实施例所公开的数据共享方法。
第六方面,本申请实施例还提供了一种数据共享装置包括:处理器和存储器,所述处理器和存储器耦合,其中,所述存储器用于存储计算机指令,所述处理器用于执行所述计算机指令,调用所述程序代码,以实现如第二方面的实施例所公开的数据共享方法。
第七方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一条或多条计算机指令,所述一条或多条计算机指令在被计算机调用时使得所述计算机实现如第一方面的实施例所公开的数据共享方法。
第八方面,本申请实施例提供了一种计算机程序,当所述计算机程序被计算机设备运行时,实现第一方面的实施例所公开的数据共享方法。
第九方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一条或多条计算机指令,所述一条或多条计算机指令在被计算机调用时使得所述计算机实现如第一方面的实施例所公开的数据共享方法。
第十方面,本申请实施例提供了一种计算机程序,当所述计算机程序被计算机设备运行时,实现第一方面的实施例所公开的数据共享方法。
第十一方面,本申请实施例还提供了一种数据共享系统,所述系统可以包括第一节点、n个节点、区块链网络,其中:
第一节点接收针对目标数据的分享请求,所述分享请求用于请求将所述目标数据分享给区块链网络中的n个节点,n为正整数;根据至少n个节点的公钥生成第一多重签名地址,其中,通过所述第一多重签名地址加密的数据在通过至少i个私钥验证后解密,所述至少n个节点的私钥包括所述至少i个私钥,i为正整数,i≤n;通过所述第一多重签名地址对所述目标数据进行加密,得到第一交易数据;将所述第一交易数据上传至区块链网络,以使所述n个节点分别根据所述至少i个私钥对所述第一交易数据进行解密得到所述目标数据;
n个节点中每一个节点可以接收来自区块链网络的第一交易数据,所述第一交易数据包括通过第一多重签名地址加密的目标数据,所述第一多重签名地址是通过所述区块链网络中的至少n个节点的公钥生成;通过至少i个私钥解密所述第一交易数据,得到所述目标数据,i为正整数,i≤n,所述至少n个节点的私钥包括所述至少i个私钥。
第十二方面,本申请实施例还提供了一种数据共享系统,所述系统可以包括第一节点、第一代理节点、n个节点、区块链网络,其中,
第一节点向第一代理节点发送接收针对目标数据的分享请求;所述分享请求用于请求将所述目标数据分享给区块链网络中的n个节点,n为正整数;
第一代理节点接收所述分享请求,根据至少n个节点的公钥生成第一多重签名地址,其中,通过所述第一多重签名地址加密的数据在通过至少i个私钥验证后解密,所述至少n个节点的私钥包括所述至少i个私钥,i为正整数,i≤n;通过所述第一多重签名地址对所述目标数据进行加密,得到第一交易数据;将所述第一交易数据上传至区块链网络,以使所述n个节点分别根据所述至少i个私钥对所述第一交易数据进行解密得到所述目标数据;
n个节点中每一个节点可以接收来自区块链网络的第一交易数据,所述第一交易数据包括通过第一多重签名地址加密的目标数据,所述第一多重签名地址是通过所述区块链网络中的至少n个节点的公钥生成;通过至少i个私钥解密所述第一交易数据,得到所述目标数据,i为正整数,i≤n,所述至少n个节点的私钥包括所述至少i个私钥。
本申请实施例,第一节点或第一节点的代理节点接收针对用于指示将目标数据分享给区块链网络中的n个节点的分享请求,根据至少n个节点的公钥生成第一多重签名地址,通过第一多重签名地址对目标数据进行加密,得到第一交易数据;进而,将第一交易数据上传至区块链网络,n个节点在接收到第一交易数据后分别根据包含在该至少n个节点的私钥中的至少i个私钥对第一交易数据进行解密得到目标数据。上述方法提供一种公平、可监督的数据共享的方式,可以提高保护被共享数据的安全。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本申请实施例提供的一种数据共享系统的架构图;
图1B是本申请实施例提供的另一种数据共享系统的架构图;
图2是本申请实施例提供的一种区块链的数据结构的示意图;
图3A是本发明实施例提供的一种数据共享方法的流程示意图;
图3B是本发明实施例提供的一种数据共享方法的流程示意图;
图4是本发明实施例提供的一种数据共享装置的结构示意图;
图5是本发明实施例提供的另一种数据共享装置的结构示意图;
图6是本发明实施例提供的又一种数据共享装置的结构示意图;
图7是本发明实施例提供的又一种数据共享装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
首先对本申请实施例涉及的概念进行描述:
(1)区块链(Blockchain):区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链,本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。
其中,去中心化程度最高的是公有链。常见的公有链有比特币、以太坊,加入公有链的节点/参与者都可以读取链上的数据、发布交易以及竞争新区块的记账权等;而且,各节点/参与者可自由加入以及退出公有链。私有链则相反,私有链的记账权限由某个组织或者机构控制,数据读取权限也受该组织或机构的控制,参与者少且不能随意加入到私有链,需经过组织或者机构的审核。
联盟链是也称为共同体区块链,是指其共识过程受到预选节点控制的区块链,是公有链和私有链的混合,可实现“部分去中心化”。链上各个节点通常有与之相对应的实体机构或者组织;参与者通过授权加入网络并组成利益相关联盟,共同维护区块链运行。通过联盟链,新来的参与者可以加入已形成的区块链并共享数据,而不必从头开始构建它。同时,通过共同解决常见问题,公司减少了开发成本和时间费用。
不论是公有链、私有链还是联盟链,都可能提供智能合约的功能。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。
(2)共享账本,用于提供数据指纹的存储和查询等操作的功能,将对文件或设备的操作的记录数据(本申请中也称为日志、基准数据)发送到区块链网络中的其他节点,其他节点验证有效后,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
(3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
下面介绍本申请实施例涉及的数据共享系统,该如图1A或1B所示,为本申请实施例提供的两种数据共享系统的架构图,如图1A所示,该系统可以包括但不限于分享方节点、区块链网络、接收方节点等,分享方节点和接收方节点也是区块链网络中的节点;图1B所示,该系统可以包括但不限于分享方节点、代理节点、区块链网络、接收方节点等,分享方节点、代理节点和接收方节点也是区块链网络中的节点。其中:
分享方节点(本申请实施例中也称为第一节点)是发起目标数据分享的节点。例如,分享方节点可以生成分享请求,分享请求用于请求将目标数据分享给区块链网络中的n个节点。分享方节点/第一节点可以是公有链或私有链中的一个节点,也可以是联盟链中的普通节点。
在图1B所示的场景中,普通节点不具备上传数据到区块链网络中的权限,由其代理节点来完成上传。在一种场景中,区块链网络中包括k个代理节点,该k个代理节点可以是一个公司各个部门的服务器或网关,其代理的节点可以是各个部门中的电子设备,此时,部门中的电子设备想要上传数据需要服务器或网关检测、同意才可以上传。
代理节点或分享方节点都可以对基于分享请求,根据至少n个节点的公钥生成第一多重签名地址,其中,通过第一多重签名地址加密的数据在通过至少i个私钥验证后解密,该至少n个节点的私钥包括至少i个私钥,i为正整数,i≤n;进而,通过第一多重签名地址对目标数据进行加密,得到第一交易数据;将第一交易数据上传至区块链网络。
接收方节点可以接受到该第一交易数据,进而,通过至少i个私钥解密所述第一交易数据,得到目标数据,该至少i个私钥包括第二节点的私钥。
在一些实施例中,第一多重签名地址可以是1-n多重签名地址,该第一多重签名地址仅由n个节点的公钥生成。此时,n个节点中任意一个节点可以单独解密该第一多重签名地址加密的数据。例如,第二节点通过第二节点的私钥对第一交易数据进行解密,进而得到目标数据。
在一些实施例中,第一多重签名地址可以是2-h多重签名地址,h为n个节点和k个代理节点中节点的总个数,h=n+k,j为不大于h的正整数。第一多重签名地址是根据n个节点的公钥和k个代理节点的公钥生成的,此时,h个节点中任意2个节点可以单独解密该第一多重签名地址加密的数据。例如,第二节点可以向其代理节点(本申请实施例中也称为第二代理节点)请求该管理节点的私钥,在获取到其管理节点发送的私钥后,结合第二节点的私钥解密该第一交易数据的数据。
可选地,在图1A所示的系统中,还可以包括m个管理节点(图1A中未示出),管理节点用于管理普通节点,在一种场景中,m个管理节点可以是一个公司各个部门的管理者的设备,普通节点可以是各个部门中的员工的设备,此时,员工的设备要查看数据需要其管理人员同意。
在一种可能的实现中,区块链网络中包括的多个节点可以是指区块链网络中各个客户端,包括上述分享方节点、代理节点、接收方节点等。每个节点都可以上传交易数据到区块链网络,区块链网络中的各个节点可接收各个客户端提交的交易数据且执行该交易数据,并通过共识机制以及P2P传输等方式将交易数据和执行结果等信息提交至共享账簿(或称为分布式账簿、分布式账本、共享账本等)。各个节点通过共识机制保证数据存储的账本的数据一致性。
可选地,对于区块链网络中的每个节点,均具有与其对应的节点标识,而且区块链网络中的每个节点均可以存储有区块链网络中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至区块链网络中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息,表1中仅以IP地址为例进行说明。
节点名称 节点标识
节点1 117.114.151.174
节点2 117.116.189.145
节点N 119.123.789.258
表1
一种实现中,区块链网络中的每个节点可以均存储一条相同的区块链。区块链由多个区块组成,应理解,区块链包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。区块链网络中的每个节点均存储一条相同的区块链。区块链由多个区块组成,如图2所示,为本申请实施例提供的一种区块链的数据结构的示意图,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有交易数据、版本号和时间戳等,区块主体中存储有交易数据;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的交易数据、父区块中数据的哈希值、版本号和时间戳等,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中交易数据的安全性。
需要说明的是,本申请实施例中区块链网络可以是公有链、私有链或联盟链等。在一种实现中,代理节点可以是公有链、私有链或联盟链中的共识节点,即可实现对上传到区块链网络中的数据进行共识运算。在另一种实现中,分享方节点、接收方节点也可以是联盟链中的业务节点,其没有权限对上传到区块链网络中的数据进行共识运算。
分享方节点、代理节点、接收方节点可以是手机、笔记本电脑、台式电脑、平板电脑或服务器等电子设备。
下面通过两个实施例介绍本申请实施例提供的一种数据共享方法。
实施例一:
下面结合图1A所示的系统介绍本申请实施例提供的一种数据共享方法,本申请以第一节点向N个节点共享数据为例来说明,其中,第二节点为n个节点中对一个节点,在介绍n个节点获取被共享的数据(即本申请实施例中对目标数据)时以第二节点为例来说明。应理解,上述第一节点、n个节点和第二节点都是区块链网络中的节点,如图3A所示,该数据共享方法可以由图1A所示对系统实现,具体地,该方法包括如下部分或全部步骤:
S11:第一节点接收针对目标数据的分享请求,该分享请求用于请求将目标数据分享给区块链网络中的n个节点,n为正整数。可选地,n为大于1。
第一节点可以查看区块链网络中的所有节点和所有节点对公钥,进而,选中其中的n个节点,接收用户针对第一节点存储对目标数据输入的共享请求,该共享请求指示将将目标数据分享给区块链网络中的n个节点。
应理解,区块链网络中的节获取区块链网络中的各个节点的公钥的方法,为现有技术,可参展这里不再赘述。
S12:第一节点根据至少n个节点的公钥生成第一多重签名地址。其中,至少n个节点包括上述n个节点,通过第一多重签名地址加密的数据在通过至少i个私钥验证后解密,该至少n个节点的私钥包括至少i个私钥,i为正整数,i≤n。
第一多重签名地址可以是s-t类型的多重签名地址,这里t为构建多重签名地址所使用的公钥的总数,解密该s-t类型的多重签名地址加密的数据至少需要s个私钥验证通过,其中上述t个公钥分别对应对私钥包括上述s个私钥,也就是说,通过t个节点签名的数据至少需要其中的s个节点验证才能解密。
其中,第一多重签名地址可以是i-n多重签名地址,i为正整数,i≤n。
可选地,第一多重签名地址可以是1-n多重签名地址,该第一多重签名地址仅由n个节点的公钥生成。此时,n个节点中任意一个节点可以单独解密该第一多重签名地址加密的数据。
应理解,第一多重签名地址可以是2-n多重签名地址,此时,n个节点中任意2个节点可以私钥组合可以解密该第一多重签名地址加密的数据;还可以是i-n多重签名地址,i不大于n的正整数,对此,本申请实施例不作限定。
在一些实施例中,为增加数据的安全性,区块链网络中包括m个管理节点,该m个管理节点用于管理普通节点,在一种场景中,m个管理节点可以是一个公司各个部门的管理者的设备,普通节点可以是各个部门中的员工的设备,此时,员工的设备要查看数据需要其管理人员同意。S12的具体实现中,第一节点根据n个节点的公钥和m个管理节点的公钥生成第一多重签名地址,此时,第一多重签名地址可以是2-g多重签名地址,g为n个节点和m个管理节点中节点的总个数,g≤n+m,n个节点中任意一个节点在获取到其管理节点发送的私钥后才可以解密该第一交易数据。
S13:第一节点通过第一多重签名地址对目标数据进行加密,得到第一交易数据。
通过第一多重签名地址对目标数据进行加密得到该目标数据的密文。这里第一多重签名地址为i-n多重签名地址为例来说明。
例如,第一交易数据可以是该目标数据的密文;有例如,第一交易数据包括该目标数据的密文,第二交易数据还可以包括用于指示节点执行该第二交易数据的信息,例如,用于指示解密该目标数据的时间权限,在该时间权限指定的时间范围内,通过n个节点中i个节点的私钥可以解密得到目标数据,在时间权限指的的时间范围外,即使具备n个节点中i个节点的私钥也不能解密得到目标数据。应理解,第二交易数据还可以包括其他用于指示节点执行该第二交易数据的信息,本申请实施例不作限定。
S14:将第一交易数据上传至区块链网络。
每一区块链节点在收到第一节点提交的第一交易数据后,向其他区块链节点进行广播。区块链网络中的共识节点负责维护各自的本地账本,本地账本用于记录上传到区块链网络中的交易数据。区块链网络中的共识节点在接收到第一交易数据后,对第一交易数据进行验证,例如验证数据格式是否正确,第一节点是否对应一个合法的区块链节点等。
通过共识机制来保证各个本地账本数据的一致性。区块链网络中的共识节点在接收到交易达成共识后可以将该交易存储到区块,例如,通过哈希运算得到该第一交易数据的哈希值,将第一交易数据、第一交易数据的哈希值等存储到区块。
可选地,第一节点可以发送给第一节点的管理节点,进而,由该管理节点进行签名并上传到区块链网络。可选地,在管理节点上传该第一交易数据到区块链网络之前,可以检测该第一交易数据是否可以被共享、查看该n个节点是否都在目标数据的共享的权限指定的节点范围内,如果是,才将第一交易数据上传到区块链网络,否则,不进行上传。
S15:n个节点分别根据至少i个私钥对第一交易数据进行解密得到目标数据。
应理解,n个节点为区块链网络中的节点,n个节点都可以接收到该第一交易数据,并验证交易数据。进一步地,n个节点都可以对该第一交易数据进行解密得到目标数据,第二节点时n个节点中的一个节点,本申请实施例以第二节点为例来说明,n个节点得到目标数据的具体实现可以参照第二节点。其具体实现可以包括但不限于如下步骤:
S151:第二节点接收第一交易数据。
S152:第二节点通过至少i个私钥解密所述第一交易数据,得到目标数据,该至少i个私钥包括第二节点的私钥。
可选地,第一多重签名地址可以是i-n多重签名地址,此时,全部或部分n节点之间可以共享公钥,n个节点中任意i个节点可以私钥组合可以解密该第一多重签名地址加密的数据。
下面提供S152的两种实现方式:
第一种实现方式:
第一多重签名地址可以是1-n多重签名地址。此时,S152的一种实现方式可以是:第二节点通过第二节点的私钥对第一交易数据进行解密,进而得到目标数据。
第二种实现方式:
区块链网络中包括m个管理节点,该m个管理节点用于管理普通节点,此时,第一多重签名地址可以是2-g多重签名地址,g为n个节点和m个管理节点中节点的总个数,g≤n+m,第二节点可以向其管理节点请求该管理节点的私钥,在获取到其管理节点发送的私钥后,结合第二节点的私钥解密该第一交易数据的数据。
但不限于如下2种实现方式,S152还可以包含其他实现方式,对此不作限定。
本发明实施例中,第一节点接收针对用于指示将目标数据分享给区块链网络中的n个节点的分享请求,根据至少n个节点的公钥生成第一多重签名地址,通过第一多重签名地址对目标数据进行加密,得到第一交易数据;进而,将第一交易数据上传至区块链网络,n个节点在接收到第一交易数据后分别根据包含在该至少n个节点的私钥中的至少i个私钥对第一交易数据进行解密得到目标数据。上述方法提供一种公平、可监督的数据共享的方式,数据共享的过程透明且公平,可以提高保护被共享数据的安全。
实施例二:
下面结合图1B所示的系统介绍本申请实施例提供的另一种数据共享方法,该方法中,普通节点不具备上传数据到区块链网络中的权限,由其代理节点来完成上传。本申请以第一节点向n个节点共享数据为例来说明,其中,第二节点为n个节点中对一个节点,在介绍n个节点获取被共享的数据(即本申请实施例中对目标数据)时以第二节点为例来说明。应理解,第一节点、n个节点、第一代理点第二节点、第二代理节点都是区块链网络中的节点,如图3B所示,该数据共享方法可以由图1B所示对系统实现,具体地,该方法包括如下部分或全部步骤:
S21:第一节点向第一代理节点发送分享请求,该分享请求用于请求将目标数据分享给区块链网络中的n个节点。
第一节点可以查看区块链网络中的所有节点,进而,选中其中对n个节点,接收用户针对第一节点存储对目标数据输入的共享请求,该共享操作指示将将目标数据分享给区块链网络中的n个节点。
其中,该分享请求还可以携带n个节点的标识,例如,n个节点中各个节点的用户名,又例如,第一节点可以查看区块链网络中的所有节点对公钥,n个节点的标识还可以是n个节点中各个节点的公钥等。
S22:第一代理节点接收该分享请求。
应理解,第一代理节点也是区块链网络中的节点,第一代理节点也可以获取区块链网络中所有节点的公钥。当分享请求携带的n个节点的标识为n个节点的用户名,第一代理节点可以根据用户名与公钥的对应关系查找n个节点的标识分别对应的公钥。
应理解,区块链网络中的节获取区块链网络中的各个节点的公钥的方法,为现有技术,可参展这里不再赘述。
S23:第一代理节点根据至少n个节点的公钥生成第一多重签名地址。其中,至少n个节点包括上述n个节点,通过第一多重签名地址加密的数据在通过至少i个私钥验证后解密,该至少n个节点的私钥包括至少i个私钥,i为正整数,i≤n。
第一多重签名地址可以是s-t类型的多重签名地址,这里t为构建多重签名地址所使用的公钥的总数,解密该s-t类型的多重签名地址加密的数据至少需要s个私钥验证通过,其中上述t个公钥分别对应对私钥包括上述s个私钥,也就是说,通过t个节点签名的数据至少需要其中的s个节点验证才能解密。
其中,第一多重签名地址可以是i-n多重签名地址,i为正整数,i≤n。
可选地,第一多重签名地址可以是1-n多重签名地址,该第一多重签名地址仅由n个节点的公钥生成。此时,n个节点中任意一个节点可以单独解密该第一多重签名地址加密的数据。
应理解,第一多重签名地址可以是2-n多重签名地址,此时,n个节点中任意2个节点可以私钥组合可以解密该第一多重签名地址加密的数据;还可以是i-n多重签名地址,i不大于n的正整数,对此,本申请实施例不作限定。
在一些实施例中,区块链网络中包括k个代理节点,该k个代理节点用于代理所述n个节点向所述区块链网络上传数据,在一种场景中,k个代理节点可以是一个公司各个部门的服务器或网关,其代理的节点可以是各个部门中的电子设备,此时,部门中的电子设备想要上传数据需要服务器或网关检测、同意才可以上传。S23的具体实现中,第一节点根据n个节点的公钥和k个代理节点的公钥生成第一多重签名地址,此时,第一多重签名地址可以是j-h多重签名地址,h为n个节点和k个代理节点中节点的总个数,h=n+k,j为不大于h的正整数。
例如,第一多重签名地址可以是1-h多重签名地址,n个节点中任意一个节点在获取到其第一交易数据后,通过各自的私钥就可以解密该第一交易数据。
又例如,第一多重签名地址可以是2-h多重签名地址,n个节点中任意一个节点在获取到其代理节点发送的私钥后才可以解密该第一交易数据。
S24:第一代理节点通过第一多重签名地址对目标数据进行加密,得到第一交易数据。
通过第一多重签名地址对目标数据进行加密得到该目标数据的密文。这里第一多重签名地址为i-n多重签名地址为例来说明。
例如,第一交易数据可以是该目标数据的密文;有例如,第一交易数据包括该目标数据的密文,第二交易数据还可以包括用于指示节点执行该第二交易数据的信息,例如,用于指示解密该目标数据的时间权限,在该时间权限指定的时间范围内,通过n个节点中i个节点的私钥可以解密得到目标数据,在时间权限指的的时间范围外,即使具备n个节点中i个节点的私钥也不能解密得到目标数据。应理解,第二交易数据还可以包括其他用于指示节点执行该第二交易数据的信息,本申请实施例不作限定。
S25:第一代理节点将第一交易数据上传至区块链网络。
每一区块链节点在收到第一代理节点提交的第一交易数据后,向其他区块链节点进行广播。区块链网络中的共识节点负责维护各自的本地账本,本地账本用于记录上传到区块链网络中的交易数据。区块链网络中的共识节点在接收到第一交易数据后,对第一交易数据进行验证,例如验证数据格式是否正确,第一节点是否对应一个合法的区块链节点等。
通过共识机制来保证各个本地账本数据的一致性。区块链网络中的共识节点在接收到交易达成共识后可以将该交易存储到区块,例如,通过哈希运算得到该第一交易数据的哈希值,将第一交易数据、第一交易数据的哈希值等存储到区块。
S26:n个节点分别根据至少i个私钥对第一交易数据进行解密得到目标数据。
应理解,n个节点为区块链网络中的节点,n个节点都可以接收到该第一交易数据,并验证交易数据。进一步地,n个节点都可以对该第一交易数据进行解密得到目标数据,第二节点时n个节点中的一个节点,本申请实施例以第二节点为例来说明,n个节点得到目标数据的具体实现可以参照第二节点。其具体实现可以包括但不限于如下步骤:
S261:第二节点接收第一交易数据。
S262:第二节点通过至少i个私钥解密所述第一交易数据,得到目标数据,该至少i个私钥包括第二节点的私钥。
可选地,第一多重签名地址可以上述j-h多重签名地址,全部或部分h个节点(n个节点和k个代理节点)之间可以共享公钥,h个节点中任意j个节点可以私钥组合可以解密该第一多重签名地址加密的数据。
下面提供S262的两种实现方式:
第一种实现方式:
第一多重签名地址可以是1-h多重签名地址。此时,S262的一种实现方式可以是:第二节点通过第二节点的私钥对第一交易数据进行解密,进而得到目标数据。
第二种实现方式:
第一多重签名地址可以是2-h多重签名地址,第二节点可以向其代理节点(本申请实施例中也称为第二代理节点)请求该代理节点的私钥,在获取到其代理节点发送的私钥后,结合第二节点的私钥解密该第一交易数据的数据。
但不限于如下2种实现方式,S262还可以包含其他实现方式,对此不作限定。
如下为本申请实施例提供的一种代理节点向其代理的节点共享私钥的实现方法,本申请实施例以第一代理节点通过区块链网络向其代理的所有节点共享私钥为例来说明,其他代理节点,如第二代理节点向其代理的所有节点共享私钥的实现可以参照第一代理节点的具体实现,具体地,第一代理节点通过区块链网络向其代理的所有节点共享私钥的实现方法可以包括但不限于如下步骤:
S31:根据节点集合中每一个节点的公钥生成第二多重签名地址,所述节点集合包括所述第一代理节点所代理的所有节点,通过所述第二多重签名地址加密的数据在通过至少1个私钥验证后解密,所述节点集合中的所有节点的私钥包括所述至少1个私钥。
S32:通过所述第二多重签名地址对所述第一代理节点的私钥进行加密,得到第二交易数据。
S33:将所述第二交易数据上传至区块链网络。
S34:节点集合中的节点在接收到所述第二交易数据后通过其私钥获取所述第一代理节点的私钥。
本发明实施例中,由第一节点的代理节点接收针对用于指示将目标数据分享给区块链网络中的n个节点的分享请求,根据至少n个节点的公钥生成第一多重签名地址,通过第一多重签名地址对目标数据进行加密,得到第一交易数据;进而,将第一交易数据上传至区块链网络,n个节点在接收到第一交易数据后分别根据包含在该至少n个节点的私钥中的至少i个私钥对第一交易数据进行解密得到目标数据。上述方法提供一种公平、可监督的数据共享的方式,数据共享的过程透明且公平,可以提高保护被共享数据的安全。
基于上述方法实施例的描述,本发明实施例还提出了一种数据共享装置,该数据共享装置可运行于第一节点或第一代理节点中,该数据共享装置可以是运行于第一节点中的计算机程序(包括程序代码);请参见图4所示,该数据共享装置40可以包括或运行如下单元:
接收单元401,用于接收针对目标数据的分享请求,所述分享请求用于请求将所述目标数据分享给区块链网络中的n个节点,n为正整数;
生成单元402,用于根据至少n个节点的公钥生成第一多重签名地址,其中,通过所述第一多重签名地址加密的数据在通过至少i个私钥验证后解密,所述至少n个节点的私钥包括所述至少i个私钥,i为正整数,i≤n;
加密单元403,用于通过所述第一多重签名地址对所述目标数据进行加密,得到第一交易数据;
上传单元404,用于将所述第一交易数据上传至区块链网络,以使所述n个节点分别根据所述至少i个私钥对所述第一交易数据进行解密得到所述目标数据。
在本申请实施例的一种实现中,所述i为1,以使所述n个节点中的每一个节点分别根据所述每一个节点的私钥对所述第一交易数据进行解密得到所述目标数据。
在本申请实施例的一种实现中,所述区块链网络还包括k个代理节点,所述至少k个代理节点用于代理所述n个节点向所述区块链网络上传数据,所述生成单元402,具体用于:
根据所述n个节点的公钥和所述k个代理节点的公钥生成第一多重签名地址,通过所述第一多重签名地址加密的数据在通过至少2个私钥验证后解密,所述至少2个私钥为所述n个节点的私钥和所述k个代理节点的私钥中的2个私钥。
可选地,所述装置40为第一代理节点,所述第一代理节点为第一节点的代理节点,所述接收单元301具体用于:接收所述第一节点发送的针对目标数据的分享请求。
可选地,所述生成单元402还用于:根据节点集合中每一个节点的公钥生成第二多重签名地址,所述节点集合包括所述第一代理节点所代理的所有节点,通过所述第二多重签名地址加密的数据在通过至少1个私钥验证后解密,所述节点集合中的所有节点的私钥包括所述至少1个私钥;
所述加密单元403还用于:通过所述第二多重签名地址对所述第一代理节点的私钥进行加密,得到第二交易数据;
所述上传单元404还用于:将所述第二交易数据上传至区块链网络,以使所述节点集合中的节点在接收到所述第二交易数据后获取所述第一代理节点的私钥。
基于上述方法实施例的描述,本发明实施例还提出了一种数据共享装置,该数据共享装置可运行于第二节点中,该数据共享装置50可以是运行于第二节点中的计算机程序(包括程序代码);请参见图5所示,该数据共享装置50可以运行如下单元:
接收单元501,用于接收来自区块链网络的第一交易数据,所述第一交易数据包括通过第一多重签名地址加密的目标数据,所述第一多重签名地址是通过所述区块链网络中的至少n个节点的公钥生成;
解密单元502,用于通过至少i个私钥解密所述第一交易数据,得到所述目标数据,i为正整数,i≤n,所述至少n个节点的私钥包括所述至少i个私钥。
在本申请实施例的一种实现中,通过所述第一多重签名地址加密的数据在通过至少一个私钥验证后解密,所述n个节点的私钥包括所述至少一个个私钥。
在本申请实施例的一种实现中,所述区块链网络还包括至少k个代理节点,所述至少k个代理节点用于代理所述n个节点向所述区块链网络上传数据,所述第一多重签名地址是根据所述n个节点的公钥和所述k个代理节点的公钥生成的,通过所述第一多重签名地址加密的数据在通过至少2个私钥验证后解密,所述至少2个私钥为所述n个节点的私钥和所述k个代理节点的私钥中的2个私钥。
可选地,所述n个节点包括第二节点,所述装置50为所述第二节点,
所述接收单元501还用于:接收第二代理节点上传到所述区块链网络的第三交易数据,所述第二代理节点为代理所述第二节点向区块链网络上传数据的节点,所述第三交易数据包括通过第三多重签名地址加密的所述第二代理节点的私钥,所述第三多重签名地址是通过节点集合中每一个节点的公钥生成的,所述节点集合包括所述第二代理节点所代理的所有节点;
所述解密单元502还用于通过所述第二节点的私钥解密所述第二交易数据进行,得到所述第二代理节点的私钥。
可选地,所述解密单元502执行所述通过至少一个私钥解密所述第一交易数据,得到所述目标数据,包括:
通过所述第二节点的私钥和所述第二代理节点的私钥解密所述第一交易数据,得到所述目标数据。
应理解,图3A及图3B所示的数据共享方法所涉及的部分步骤可由图4所示的数据共享装置中的各个单元和图5所示的数据共享装置中的各个单元来执行。图4或图5所示的数据共享装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本发明的其它实施例中,基于数据共享装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本发明的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图3A及图3B中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图4中所示的数据共享装置设备,以及来实现本发明实施例的数据共享方法。所述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
基于上述方法实施例以及装置项实施例的描述,本发明实施例还提供一种数据共享装置;该数据共享装置可以是上述所提及的用户设备或检测设备,。请参见图6,该数据共享装置60可至少包括处理器601、输入装置602、输出装置603以存储器604及通信接口605;其中,处理器601、输入装置602、输出装置603、存储器604以及通信接口605可通过总线606或者其它连接方式进行连接。所述存储器604用于存储计算机程序,所述计算机程序包括程序指令,存储器604可包括易失性存储器(例如,动态随机存取存储器DRAM),还可以包括非易失性存储器(例如,一次性可编程只读存储器OTPROM)。在一些实例中,存储器604可进一步包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至装置60。输入装置602可以包括:键盘6021、麦克风6022、触摸面板6023等。输出装置603可以包括显示面板6031、扩音器6032等。
通信接口605用于实现数据共享装置60与其他设备装置,如区块链网络的信息交互。
所述处理器601用于执行所述存储器604存储的程序指令。处理器601(或称CPU(Central Processing Unit,中央处理器))是客户端的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现上述数据共享方法实施例中的相应方法流程或相应功能。
在一些实施例中,本发明实施例所述的处理器601可用于进行一系列的数据处理,包括:
接收针对目标数据的分享请求,所述分享请求用于请求将所述目标数据分享给区块链网络中的n个节点,n为正整数;
根据至少n个节点的公钥生成第一多重签名地址,其中,通过所述第一多重签名地址加密的数据在通过至少i个私钥验证后解密,所述至少n个节点的私钥包括所述至少i个私钥,i为正整数,i≤n;
通过所述第一多重签名地址对所述目标数据进行加密,得到第一交易数据;
将所述第一交易数据上传至区块链网络,以使所述n个节点分别根据所述至少i个私钥对所述第一交易数据进行解密得到所述目标数据。
可选地,处理器601可以通过通信接口605来接收分享请求。
在一些实施例中,所述i为1,以使所述n个节点中的每一个节点分别根据所述每一个节点的私钥对所述第一交易数据进行解密得到所述目标数据。
在一些实施例中,所述区块链网络还包括k个代理节点,所述至少k个代理节点用于代理所述n个节点向所述区块链网络上传数据,所述处理器601执行所述根据所述n个节点的公钥生成第一多重签名地址,具体包括执行:
根据所述n个节点的公钥和所述k个代理节点的公钥生成第一多重签名地址,通过所述第一多重签名地址加密的数据在通过至少2个私钥验证后解密,所述至少2个私钥为所述n个节点的私钥和所述k个代理节点的私钥中的2个私钥。
在一些实施例中,所述装置为第一代理节点,所述第一代理节点为第一节点的代理节点,所述处理器601执行所述接收针对目标数据的分享请求,包括执行:
接收所述第一节点发送的针对目标数据的分享请求。
在一些实施例中,所述处理器601还用于执行:
根据节点集合中每一个节点的公钥生成第二多重签名地址,所述节点集合包括所述第一代理节点所代理的所有节点,通过所述第二多重签名地址加密的数据在通过至少1个私钥验证后解密,所述节点集合中的所有节点的私钥包括所述至少1个私钥;
通过所述第二多重签名地址对所述第一代理节点的私钥进行加密,得到第二交易数据;
将所述第二交易数据上传至区块链网络,以使所述节点集合中的节点在接收到所述第二交易数据后获取所述第一代理节点的私钥。
需要说明的是,上述输入装置602、输出装置603不是数据共享装置60必须的单元,数据共享装置60可以不包括上述输入装置602、输出装置603,也可以包括其他的器件或模块,本申请实施例不作限定。
应当理解,本发明实施例中所描述的数据共享装置40、60可执行前文图3A或图3B任一个所对应实施例中对所述数据共享方法的描述,在此不再赘述。
基于上述方法实施例以及装置项实施例的描述,本发明实施例还提供一种数据共享装置;该数据共享装置可以是上述所提及的用户设备或检测设备,。请参见图7,该数据共享装置70可至少包括处理器701、输入装置702、输出装置703以存储器704及通信接口705;其中,处理器701、输入装置702、输出装置703、存储器704以及通信接口705可通过总线706或者其它连接方式进行连接。所述存储器704用于存储计算机程序,所述计算机程序包括程序指令,存储器704可包括易失性存储器(例如,动态随机存取存储器DRAM),还可以包括非易失性存储器(例如,一次性可编程只读存储器OTPROM)。在一些实例中,存储器704可进一步包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至装置70。输入装置702可以包括:键盘7021、麦克风7022、触摸面板7023等。输出装置703可以包括显示面板7031、扩音器7032等。
通信接口705用于实现数据共享装置70与其他设备装置,如区块链网络的信息交互。
所述处理器701用于执行所述存储器704存储的程序指令。处理器701(或称CPU(Central Processing Unit,中央处理器))是客户端的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现上述数据共享方法实施例中的相应方法流程或相应功能。
在一些实施例中,本发明实施例所述的处理器701可用于进行一系列的数据处理,包括:
接收来自区块链网络的第一交易数据,所述第一交易数据包括通过第一多重签名地址加密的目标数据,所述第一多重签名地址是通过所述区块链网络中的至少n个节点的公钥生成;
通过至少i个私钥解密所述第一交易数据,得到所述目标数据,i为正整数,i≤n,所述至少n个节点的私钥包括所述至少i个私钥。
在本申请实施例的一种实现中,通过所述第一多重签名地址加密的数据在通过至少一个私钥验证后解密,所述n个节点的私钥包括所述至少一个个私钥。
在本申请实施例的一种实现中,所述区块链网络还包括至少k个代理节点,所述至少k个代理节点用于代理所述n个节点向所述区块链网络上传数据,所述第一多重签名地址是根据所述n个节点的公钥和所述k个代理节点的公钥生成的,通过所述第一多重签名地址加密的数据在通过至少2个私钥验证后解密,所述至少2个私钥为所述n个节点的私钥和所述k个代理节点的私钥中的2个私钥。
可选地,所述n个节点包括第二节点,所述装置70为所述第二节点,所述处理器701还用于执行:
接收第二代理节点上传到所述区块链网络的第三交易数据,所述第二代理节点为代理所述第二节点向区块链网络上传数据的节点,所述第三交易数据包括通过第三多重签名地址加密的所述第二代理节点的私钥,所述第三多重签名地址是通过节点集合中每一个节点的公钥生成的,所述节点集合包括所述第二代理节点所代理的所有节点;
通过所述第二节点的私钥解密所述第二交易数据进行,得到所述第二代理节点的私钥。
可选地,所述处理器701执行所述通过至少一个私钥解密所述第一交易数据,得到所述目标数据,包括执行:
通过所述第二节点的私钥和所述第二代理节点的私钥解密所述第一交易数据,得到所述目标数据。
数据共享装置40、80可以接收针对用于指示将目标数据分享给区块链网络中的n个节点的分享请求,根据至少n个节点的公钥生成第一多重签名地址,通过第一多重签名地址对目标数据进行加密,得到第一交易数据;进而,将第一交易数据上传至区块链网络,数据共享装置50、70在接收到第一交易数据后分别根据包含在该至少n个节点的私钥中的至少i个私钥对第一交易数据进行解密得到目标数据。上述方法提供一种公平、可监督的数据共享的方式,数据共享的过程透明且公平,可以提高保护被共享数据的安全。
本发明实施例还提供了一种计算机可读存储介质(Memory),所述计算机可读存储介质是客户端中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括客户端中的内置存储介质,当然也可以包括客户端所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了客户端的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或多条指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机可读存储介质。
在一个实施例中,可由处理器加载并执行计算机可读存储介质中存放的一条或多条第一指令,以实现上述有关数据处理实施例中第一客户端所执行的相应步骤;具体实现中,计算机可读存储介质中的一条或多条第一指令由计算机设备加载并执行时,可以实现如上述图3A或图3B所述的方法,具体可参见上述方法中相关描述,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (15)

1.一种数据共享方法,其特征在于,包括:
接收针对目标数据的分享请求,所述分享请求用于请求将所述目标数据分享给区块链网络中的n个节点,n为正整数;
根据至少n个节点的公钥生成第一多重签名地址,其中,通过所述第一多重签名地址加密的数据在通过至少i个私钥验证后解密,所述至少n个节点的私钥包括所述至少i个私钥,i为正整数,i≤n;
通过所述第一多重签名地址对所述目标数据进行加密,得到第一交易数据;
将所述第一交易数据上传至区块链网络,以使所述n个节点分别根据所述至少i个私钥对所述第一交易数据进行解密得到所述目标数据。
2.如权利要求1所述的方法,其特征在于,所述i为1,以使所述n个节点中的每一个节点分别根据所述每一个节点的私钥对所述第一交易数据进行解密得到所述目标数据。
3.如权利要求1所述的方法,其特征在于,所述区块链网络还包括k个代理节点,所述至少k个代理节点用于代理所述n个节点向所述区块链网络上传数据,所述根据所述n个节点的公钥生成第一多重签名地址,包括:
根据所述n个节点的公钥和所述k个代理节点的公钥生成第一多重签名地址,通过所述第一多重签名地址加密的数据在通过至少2个私钥验证后解密,所述至少2个私钥为所述n个节点的私钥和所述k个代理节点的私钥中的2个私钥。
4.如权利要求3所述的方法,其特征在于,所述方法由第一代理节点执行,所述第一代理节点为第一节点的代理节点,所述接收针对目标数据的分享请求,包括:
接收所述第一节点发送的针对目标数据的分享请求。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
根据节点集合中每一个节点的公钥生成第二多重签名地址,所述节点集合包括所述第一代理节点所代理的所有节点,通过所述第二多重签名地址加密的数据在通过至少1个私钥验证后解密,所述节点集合中的所有节点的私钥包括所述至少1个私钥;
通过所述第二多重签名地址对所述第一代理节点的私钥进行加密,得到第二交易数据;
将所述第二交易数据上传至区块链网络,以使所述节点集合中的节点在接收到所述第二交易数据后获取所述第一代理节点的私钥。
6.一种数据共享方法,其特征在于,包括:
接收来自区块链网络的第一交易数据,所述第一交易数据包括通过第一多重签名地址加密的目标数据,所述第一多重签名地址是通过所述区块链网络中的至少n个节点的公钥生成;
通过至少i个私钥解密所述第一交易数据,得到所述目标数据,i为正整数,i≤n,所述至少n个节点的私钥包括所述至少i个私钥。
7.如权利要求5所述的方法,其特征在于,通过所述第一多重签名地址加密的数据在通过至少一个私钥验证后解密,所述n个节点的私钥包括所述至少一个个私钥。
8.如权利要求5所述的方法,其特征在于,所述区块链网络还包括至少k个代理节点,所述至少k个代理节点用于代理所述n个节点向所述区块链网络上传数据,所述第一多重签名地址是根据所述n个节点的公钥和所述k个代理节点的公钥生成的,通过所述第一多重签名地址加密的数据在通过至少2个私钥验证后解密,所述至少2个私钥为所述n个节点的私钥和所述k个代理节点的私钥中的2个私钥。
9.如权利要求8所述的方法,其特征在于,所述n个节点包括第二节点,所述方法由所述第二节点执行,所述方法还包括:
接收第二代理节点上传到所述区块链网络的第三交易数据,所述第二代理节点为代理所述第二节点向区块链网络上传数据的节点,所述第三交易数据包括通过第三多重签名地址加密的所述第二代理节点的私钥,所述第三多重签名地址是通过节点集合中每一个节点的公钥生成的,所述节点集合包括所述第二代理节点所代理的所有节点;
通过所述第二节点的私钥解密所述第二交易数据进行,得到所述第二代理节点的私钥。
10.如权利要求9所述的方法,其特征在于,所述通过至少一个私钥解密所述第一交易数据,得到所述目标数据,包括:
通过所述第二节点的私钥和所述第二代理节点的私钥解密所述第一交易数据,得到所述目标数据。
11.一种数据共享装置,其特征在于,包括:
接收单元,用于接收针对目标数据的分享请求,所述分享请求用于请求将所述目标数据分享给区块链网络中的n个节点,n为正整数;
生成单元,用于根据至少n个节点的公钥生成第一多重签名地址,其中,通过所述第一多重签名地址加密的数据在通过至少i个私钥验证后解密,所述至少n个节点的私钥包括所述至少i个私钥,i为正整数,i≤n;
加密单元,用于通过所述第一多重签名地址对所述目标数据进行加密,得到第一交易数据;
上传单元,用于将所述第一交易数据上传至区块链网络,以使所述n个节点分别根据所述至少i个私钥对所述第一交易数据进行解密得到所述目标数据。
12.一种数据共享装置,其特征在于,包括:
接收单元,用于接收来自区块链网络的第一交易数据,所述第一交易数据包括通过第一多重签名地址加密的目标数据,所述第一多重签名地址是通过所述区块链网络中的至少n个节点的公钥生成;
解密单元,用于通过至少i个私钥解密所述第一交易数据,得到所述目标数据,i为正整数,i≤n,所述至少n个节点的私钥包括所述至少i个私钥。
13.一种数据共享装置,其特征在于,包括处理器和存储器,所述处理器和存储器耦合,其中,所述存储器用于存储计算机指令,所述处理器用于执行所述计算机指令,以使所述数据共享装置实现如权利要求1-5任一项所述的方法。
14.一种数据共享装置,其特征在于,包括处理器和存储器,所述处理器和存储器耦合,其中,所述存储器用于存储计算机指令,所述处理器用于执行所述计算机指令,以使所述数据共享装置实现如权利要求6-10任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一条或多条计算机指令,所述一条或多条计算机指令在被计算机调用时使得所述计算机实现如权利要求1-10任一项所述的数据共享方法。
CN202010072927.1A 2020-01-21 2020-01-21 数据共享方法及相关装置、设备及系统 Active CN111327426B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010072927.1A CN111327426B (zh) 2020-01-21 2020-01-21 数据共享方法及相关装置、设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010072927.1A CN111327426B (zh) 2020-01-21 2020-01-21 数据共享方法及相关装置、设备及系统

Publications (2)

Publication Number Publication Date
CN111327426A true CN111327426A (zh) 2020-06-23
CN111327426B CN111327426B (zh) 2021-06-25

Family

ID=71167076

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010072927.1A Active CN111327426B (zh) 2020-01-21 2020-01-21 数据共享方法及相关装置、设备及系统

Country Status (1)

Country Link
CN (1) CN111327426B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112039892A (zh) * 2020-08-31 2020-12-04 中国信息通信研究院 一种数据共享方法以及相关装置
CN112261082A (zh) * 2020-09-21 2021-01-22 中国科学院计算技术研究所 基于区块链和安全多方计算的被动dns数据共享方法及系统
CN112527912A (zh) * 2021-02-07 2021-03-19 腾讯科技(深圳)有限公司 基于区块链网络的数据处理方法、装置及计算机设备
CN113239403A (zh) * 2021-06-03 2021-08-10 光大科技有限公司 一种数据共享方法及装置

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106778343A (zh) * 2016-12-12 2017-05-31 武汉优聘科技有限公司 一种基于区块链的涉及隐私数据的数据共享方法
CN107370606A (zh) * 2017-07-26 2017-11-21 中山大学 一种基于区块链的微博多重签名方法
CN107391944A (zh) * 2017-07-27 2017-11-24 北京太云科技有限公司 一种基于区块链的电子病历共享系统
WO2018193355A1 (en) * 2017-04-18 2018-10-25 nChain Holdings Limited Secure blockchain-based consensus
WO2018203186A1 (en) * 2017-05-05 2018-11-08 nChain Holdings Limited Secure dynamic threshold signature scheme employing trusted hardware
US10250395B1 (en) * 2018-08-29 2019-04-02 Accenture Global Solutions Limited Cryptologic blockchain interoperation
CN109583887A (zh) * 2018-10-26 2019-04-05 阿里巴巴集团控股有限公司 一种区块链的交易方法和装置
CN109858228A (zh) * 2019-01-31 2019-06-07 上海计算机软件技术开发中心 基于区块链的数据共享服务平台及方法
WO2019116250A1 (en) * 2017-12-15 2019-06-20 nChain Holdings Limited Security-enhanced origination of blockchain transactions
CN109934593A (zh) * 2019-03-26 2019-06-25 众安信息技术服务有限公司 用于实现支持多重签名的区块链系统的设计方法及设备
CN110430161A (zh) * 2019-06-27 2019-11-08 布比(北京)网络技术有限公司 一种基于区块链的可监管数据匿名分享方法及系统
US20190379642A1 (en) * 2018-06-08 2019-12-12 Gcp Ip Holdings I, Llc Blockchain Overwatch

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106778343A (zh) * 2016-12-12 2017-05-31 武汉优聘科技有限公司 一种基于区块链的涉及隐私数据的数据共享方法
WO2018193355A1 (en) * 2017-04-18 2018-10-25 nChain Holdings Limited Secure blockchain-based consensus
WO2018203186A1 (en) * 2017-05-05 2018-11-08 nChain Holdings Limited Secure dynamic threshold signature scheme employing trusted hardware
CN107370606A (zh) * 2017-07-26 2017-11-21 中山大学 一种基于区块链的微博多重签名方法
CN107391944A (zh) * 2017-07-27 2017-11-24 北京太云科技有限公司 一种基于区块链的电子病历共享系统
WO2019116250A1 (en) * 2017-12-15 2019-06-20 nChain Holdings Limited Security-enhanced origination of blockchain transactions
US20190379642A1 (en) * 2018-06-08 2019-12-12 Gcp Ip Holdings I, Llc Blockchain Overwatch
US10250395B1 (en) * 2018-08-29 2019-04-02 Accenture Global Solutions Limited Cryptologic blockchain interoperation
CN109583887A (zh) * 2018-10-26 2019-04-05 阿里巴巴集团控股有限公司 一种区块链的交易方法和装置
CN109858228A (zh) * 2019-01-31 2019-06-07 上海计算机软件技术开发中心 基于区块链的数据共享服务平台及方法
CN109934593A (zh) * 2019-03-26 2019-06-25 众安信息技术服务有限公司 用于实现支持多重签名的区块链系统的设计方法及设备
CN110430161A (zh) * 2019-06-27 2019-11-08 布比(北京)网络技术有限公司 一种基于区块链的可监管数据匿名分享方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IMCODDY: "多重签名技术实践", 《HTTPS://WWW.CHAINNODE.COM/TUTORIAL/4337》 *
ZHIHONG TIAN,MOHAN LI,MEIKANG QIU,YANBIN SUN,SHEN SU: "Block-DEF:A secure digital evidence framework using blockchain", 《ELSEVIER》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112039892A (zh) * 2020-08-31 2020-12-04 中国信息通信研究院 一种数据共享方法以及相关装置
CN112039892B (zh) * 2020-08-31 2022-11-29 中国信息通信研究院 一种数据共享方法以及相关装置
CN112261082A (zh) * 2020-09-21 2021-01-22 中国科学院计算技术研究所 基于区块链和安全多方计算的被动dns数据共享方法及系统
CN112261082B (zh) * 2020-09-21 2021-11-19 中国科学院计算技术研究所 基于区块链和安全多方计算的被动dns数据共享方法及系统
CN112527912A (zh) * 2021-02-07 2021-03-19 腾讯科技(深圳)有限公司 基于区块链网络的数据处理方法、装置及计算机设备
CN112527912B (zh) * 2021-02-07 2021-06-01 腾讯科技(深圳)有限公司 基于区块链网络的数据处理方法、装置及计算机设备
CN113239403A (zh) * 2021-06-03 2021-08-10 光大科技有限公司 一种数据共享方法及装置

Also Published As

Publication number Publication date
CN111327426B (zh) 2021-06-25

Similar Documents

Publication Publication Date Title
US11025435B2 (en) System and method for blockchain-based cross-entity authentication
US11533164B2 (en) System and method for blockchain-based cross-entity authentication
US10708060B2 (en) System and method for blockchain-based notification
AU2019204712B2 (en) Managing sensitive data elements in a blockchain network
WO2021179661A1 (zh) 跨区块链的数据互存方法、装置、设备及存储介质
US11934549B2 (en) Invoice access method and apparatus based on blockchain, and electronic device
CN111970129B (zh) 一种基于区块链的数据处理方法、设备以及可读存储介质
KR102472230B1 (ko) 블록 체인으로 구현된 방법 및 시스템
US11900380B2 (en) Blockchain architecture with record security
CN111327426B (zh) 数据共享方法及相关装置、设备及系统
US20190229911A1 (en) Blockchain-implemented method and system
CN110769035B (zh) 一种区块链资产发行方法、平台、业务节点及存储介质
EP3814948A1 (en) System and method for blockchain-based cross-entity authentication
EP3526721A1 (en) Method, device and system for validating sensitive user data transactions within trusted circle
US11386426B2 (en) Invoice invalidation method and apparatus based on blockchain, and electronic device
US11367065B1 (en) Distributed ledger system for electronic transactions
US11651458B2 (en) Method for generating target contract and terminal device
AU2019380381A1 (en) Smart logistics management using blockchain
Kikitamara et al. Digital identity management on blockchain for open model energy system
CN112804354B (zh) 跨链进行数据传输的方法、装置、计算机设备和存储介质
JP2019009767A (ja) 情報処理装置
CN111882410A (zh) 一种基于区块链的税务信息查询方法及系统
CN115705601A (zh) 数据处理方法、装置、计算机设备及存储介质
shaher Alslman et al. Exchanging digital documents using blockchain technology
CN111066047B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40024703

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant