CN112910870B - 基于区块链的协同隐私计算数据通信方法 - Google Patents

基于区块链的协同隐私计算数据通信方法 Download PDF

Info

Publication number
CN112910870B
CN112910870B CN202110085646.4A CN202110085646A CN112910870B CN 112910870 B CN112910870 B CN 112910870B CN 202110085646 A CN202110085646 A CN 202110085646A CN 112910870 B CN112910870 B CN 112910870B
Authority
CN
China
Prior art keywords
node
data communication
data
participant
distribution
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
Application number
CN202110085646.4A
Other languages
English (en)
Other versions
CN112910870A (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.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN202110085646.4A priority Critical patent/CN112910870B/zh
Publication of CN112910870A publication Critical patent/CN112910870A/zh
Application granted granted Critical
Publication of CN112910870B publication Critical patent/CN112910870B/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
    • 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/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42008Systems for anonymous communication between parties, e.g. by use of disposal contact identifiers
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提出了一种基于区块链的协同隐私计算数据通信方法,用于解决现有技术中存在的数据通信的完整性不足的技术问题,实现步骤为:(1)构建基于区块链的协同隐私计算数据通信网络;(2)区块链节点获取节点授权证书;(3)任务发起方获取编译后的有权限控制的数据分发智能合约的合约地址;(4)计算参与方获取电路程序产生的运算电路输出;(5)计算参与方实现与任务发起方的协同隐私计算数据通信。本发明提出的方法使用数据通信网络中的节点授权证书实现权限控制,采用有权限控制的智能合约完成协同隐私计算数据片段的分发,实现对数据通信完整性的提升。本发明与现有技术可用性相当,并有效提升了数据通信的机密性和完整性。

Description

基于区块链的协同隐私计算数据通信方法
技术领域
本发明属于区块链及隐私计算技术领域,涉及一种数据通信方法,具体涉及一种基于区块链的协同隐私计算数据通信方法,可用于在协同隐私计算的数据通信中实现节点身份验证、权限控制、分发数据和运算电路输出的数据通信。
背景技术
数据通信是通信技术和计算机技术相结合而产生的一种新的通信方式,用于在多个节点之间传输信息。数据通信必须通过传输信道将数据终端与计算机联结起来,令分布式的数据终端实现软、硬件和信息资源的共享。根据传输媒体的不同,数据通信分为有线数据通信和无线数据通信。
由于数据通信在大数据时代的网络生活中应用广泛,数据通信中的数据安全性尤为重要。在数据通信中,安全性通常从机密性、完整性与可用性三个角度来描述。机密性指的是信息和资源的保密程度,要求数据通信在一些敏感的领域和场景使用时实现信息保密,可以用数据分布相似度来衡量。完整性指的是数据或资源的确定性,防止对数据进行不合理和无权限的修改是保护数据通信完整性的主要目标。可用性指的是使用信息和得到资源的能力,通常在分布式数据通信网络中是通过冗余数据的存储实现的。
在基于区块链的协同隐私计算数据通信中,要求数据通信的机密性达到数据不可区分的程度,数据分布相似度应该包含在一个较小的区间内并保持稳定。从完整性的角度考量,数据通信需要实现权限控制,从可用性的角度考量,数据通信需要正确传递所有数据。
现有的基于区块链的数据通信方法在机密性和可用性上表现良好,通常会采取密码学方法对数据进行加密和混淆,但对于完整性的考虑不足,没有在方法中设计权限控制部分,因此只能每次在节点间的数据通信过程中进行基本的身份验证,难以进一步防止数据通信过程中的参与方对数据进行恶意修改。
例如,申请公布号为CN110880974A,名称为“一种基于区块链网络的数据通信方法和装置”,公开了一种基于区块链网络的数据通信方法,该方法包括基于随机算法生成通信号码对应的目标随机数;目标随机数为二进制数;根据切分长度阈值,将目标随机数切分为多个字符串;每个字符串的长度均为切分长度阈值;根据多个字符串生成通信号码对应的助记词串,根据助记词串生成通信号码对应的种子密钥;根据种子密钥生成通信号码对应的虚拟通信号码;虚拟通信号码与通信号码具备相同的通信地址;获取针对虚拟通信号码的通信请求,根据通信请求对通信号码执行通信请求对应的通信业务。该方法具有较好的安全性,但其存在的不足之处在于缺乏对完整性的考虑,导致数据通信的安全性仍然较低。
发明内容
本发明的目的在于克服上述现有技术的不足,提出了一种基于区块链的协同隐私计算数据通信方法,用于解决现有技术中存在的安全性较差的技术问题。
为实现上述目的,本发明采取的技术方案包括如下步骤:
(1)构建基于区块链的协同隐私计算数据通信网络:
构建基于包括N个区块链节点node={node1,node2,...,noden,...,nodeN}的区块链的协同隐私计算数据通信网络,每个区块链节点noden上搭载有包含控制台、开放式安全套接层协议openssl、文件传输工具curl、数据库、开发环境、建链可执行脚本build_chain.sh和终端的linux系统,开发环境中部署有智能合约编译工具solc、命令解释器linux shell和含有电路程序的安全多方计算wysteria框架,每个区块链节点noden在数据通信网络中的地址为addressn,当n=1时,将noden作为任务发起方s,当n∈[2,N]时,将noden作为计算参与方P={p2,...,pn,...,pN},其中,N≥3,noden表示第n个区块链节点;
(2)每个区块链节点noden获取节点授权证书noden.crt:
(2a)每个区块链节点noden运行linux系统中的建链可执行脚本build_chain.sh,得到节点证书请求文件node.csr和机构私钥agency.key;
(2b)每个区块链节点noden在终端使用开放式安全套接层协议openssl生成节点私钥noden.key,并使用noden.key对证书请求文件node.csr进行签署,得到noden的证书请求文件noden'.csr,然后使用机构私钥agency.key对noden'.csr进行签署,得到noden的节点授权证书noden.crt;
(3)任务发起方s获取编译后的有权限控制的数据分发智能合约distribute”.sol的合约地址addresssc
(3a)任务发起方s为每个节点授权证书noden.crt生成对应的用户身份identityn,并为identityn赋予操作权限ACn
(3b)任务发起方s创建包括映射方法mapping、授权方法require、设置操作数方法set和获取操作数方法get的数据分发智能合约distribute.sol,并采用mapping方法将计算参与方pn在数据通信网络中的节点地址addressn映射到用户身份identityn,然后采用require方法获取identityn的操作权限ACn,实现对set方法和get方法的权限控制,得到有权限控制的数据分发智能合约distribute'.sol;
(3c)任务发起方s产生次数与计算参与方数量相等的N-1次多项式f(x)=a1+a2x+a3x2+...+anxn+...+aN-1xN-1,并依据拉格朗日差值定理公式在f(x)的曲线上选取N-1个互异的点{(x1,f(x1)),(x2,f(x2)),...,(xn,f(xn)),...,(xN-1,f(xN-1))}后,将每个点(xn,f(xn))的纵坐标f(xn)作为分发数据构建与计算参与方P={p2,...,pn,...,pN}对应的分发数据集合D={d2,...,dn,...,dN},然后采用set方法将D存入distribute'.sol中,其中,x表示变元,an表示xn-1的参数;
(3d)任务发起方s使用开发环境中的智能合约编译工具solc对distribute'.sol进行编译,得到编译后的有权限控制的数据分发智能合约distribute”.sol,并将distribute”.sol部署到控制台,得到控制台显示的distribute”.sol的合约地址addresssc
(4)每个计算参与方pn获取电路程序产生的运算电路输出resultn
(4a)每个计算参与方pn将合约地址addresssc作为控制台的输入,并采用获取操作数方法get,获取计算参与方pn对应的分发数据dn
(4b)每个计算参与方pn在开发环境中使用命令解释器linux shell编写计算可执行脚本run.sh,并通过运行run.sh将计算参与方pn对应的分发数据dn传递给wysteria框架中的电路程序,通过运行电路程序进行计算参与方pn上的隐私计算,得到运算电路输出resultn
(5)每个计算参与方pn实现与任务发起方s的协同隐私计算数据通信:
每个计算参与方pn将resultn发布到数据通信网络中,通过数据通信网络的共识机制将resultn发送给任务发起方s,实现所有计算参与方{p2,...,pn,...,pN}与任务发起方s的协同隐私计算数据通信。
本发明与现有技术相比,具有如下优点:
1.本发明通过对数据通信网络中的区块链节点颁发授权证书,并为节点授权证书对应生成用户身份和赋予操作权限,解决了数据通信缺乏权限控制的问题,实现对数据通信完整性的提升;
2.本发明采用有权限控制的智能合约完成协同隐私计算数据片段的分发,解决了数据的隐私保护性较差的问题,实现对数据通信机密性的提升;
3.本发明提供将分片数据传递给电路程序的可执行脚本,解决了用户需要与控制台和电路程序交互的问题,实现对操作流程的简化。
附图说明
图1为本发明的实现流程图;
图2为本发明的数据通信网络图。
具体实施方式
以下结合附图和具体实施例,对本发明作进一步详细描述:
参照图1,本发明包括如下步骤:
步骤1)构建基于区块链的协同隐私计算数据通信网络:
构建基于包括N个区块链节点node={node1,node2,...,noden,...,nodeN}的区块链的协同隐私计算数据通信网络,每个区块链节点noden上搭载有包含控制台、开放式安全套接层协议openssl、文件传输工具curl、数据库、开发环境、建链可执行脚本build_chain.sh和终端的linux系统,开发环境中部署有智能合约编译工具solc、命令解释器linux shell和含有电路程序的安全多方计算wysteria框架,每个区块链节点noden在数据通信网络中的地址为addressn,当n=1时,将noden作为任务发起方s,当n∈[2,N]时,将noden作为计算参与方P={p2,...,pn,...,pN},其中,N≥3,noden表示第n个区块链节点;
协同隐私计算是在分布式网络中面向多节点通信和计算的实践活动,其中隐私计算是面向隐私信息全生命周期保护的计算理论和方法,是隐私信息的所有权、管理权和使用权分离时隐私度量、隐私泄漏代价、隐私保护与隐私分析复杂性的可计算模型与公理化系统。本实施例中,任务发起方s产生计算任务,计算参与方P执行隐私计算。
区块链包括联盟链和公有链、私有链,分类依据是对入网用户不同的限制程度:公有链不限制用户身份,任何节点都可以接入;联盟链允许拥有许可证书的机构和个人接入,入链时需要通过节点身份验证;私有链没有多个机构和个人接入,通常限定于组织内部有限范围内使用。本实施例构建的区块链为联盟链,是因为想利用其节点身份验证代替通信网络中重复的节点身份验证降低通信复杂性。
参照图2,任务发起方s和计算参与方{p2,p3,p4}参与协同隐私计算,在数据通信网络中对应的区块链节点为{node1,node2,node3,node4},区块链节点通过控制台部署和调用智能合约,并将控制台上的活动以交易的形式存储到区块中,按照时序形成一条链式结构。本实施例中构建的数据通信网络中的节点数N=4,因为数据通信网络的共识机制PBFT要求参与同步的区块链节点数量为3f+1,其中f的取值为正整数,能够实现协同隐私计算的f最小取值为1,因此构建具有4个节点的数据通信网络。
控制台是区块链提供给开发者使用的管理区块链节点、部署智能合约的工具,本实施例中任务发起方s需要使用控制台部署智能合约。
开放式安全套接层协议openssl包含主要的密码算法、常用的密钥和证书封装管理功能及可以在Internet上提供秘密性传输协议SSL,本实施例中采用openssl为节点生成私钥。
文件传输工具curl是一个利用URL规则在shell终端命令行下工作的文件传输工具,支持文件的上传和下载,本实施例中采用curl下载建链可执行脚本build_chain.sh。
数据库为节点提供存储能力,常用的数据库有MySql、Sql Server、Access、Oracle等,本实施例使用MySql数据库,能提供数据存储能力即可。
开发环境是指在基本硬件和数字软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,本实施例使用的开发环境为Java sdk,使用Web3 sdk、Node.js sdk、Python sdk、Go sdk同样也能实现功能。
建链可执行脚本build_chain.sh是FISCO BCOS提供的构建区块链的程序,帮助用户快速建立区块链架构。
终端是用户与系统交互的平台,能够接收键盘的输入内容,并将输入内容发送给系统处理,系统将返回结果显示在终端。
智能合约编译工具solc能够编译使用Solidity语言编写的智能合约,本实施例中用于编译有权限控制的数据分发智能合约distribute.sol。
命令解释器linux shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行,本实施例中用于编写、运行建链可执行脚本build_chain.sh和计算可执行脚本run.sh。
安全多方计算wysteria框架是计算参与方节点进行隐私计算的工具,其中安全多方计算属于一种隐私计算,wysteria框架属于一种安全多方计算框架,隐私计算方法和计算框架包括但不限于此。
节点地址addressn是一组相对应的域名数组和IP地址的集合,用于唯一确定数据通信网络中区块链节点的身份。
本实施例中的区块链采用满足x509协议的证书格式构建分层的证书结构,x509协议是一种通用证书格式,表示证书符合ITU-T X.509国际标准,依据x509协议为应用创建的证书可以用于任何其他符合X.509标准的应用,提供了应用证书兼容性。
构建证书结构首先需要链所有者在终端使用开放式安全套接层协议openssl生成链私钥chain.key,产生链证书chain.crt;机构所有者在终端使用openssl生成机构私钥agency.key,通过在linux系统中运行建链可执行脚本build_chain.sh,产生机构证书请求文件agency.csr,用agency.key签署agency.csr获得agency'.csr,并将agency'.csr发送给链所有者;然后,链所有者用chain.key签署agency'.csr,产生机构授权证书agency.cst;节点所有者在终端使用openssl生成节点私钥node.key,通过在linux系统中运行建链可执行脚本build_chain.sh,产生节点证书请求文件node.csr,用node.key签署node.csr获得node'.csr,并将node'.csr发送给机构所有者;机构所有者用agency.key签署node'.csr,产生节点授权证书node.crt;最后,采用链证书chain.crt、机构授权证书agency.cst、节点授权证书node.crt构建分层级的证书结构。
步骤2)每个区块链节点noden获取节点授权证书noden.crt:
步骤2a)每个区块链节点noden通过在linux系统中运行建链可执行脚本build_chain.sh,获得节点证书请求文件node.csr和机构私钥agency.key;
步骤2b)每个区块链节点noden在终端使用开放式安全套接层协议openssl生成节点私钥noden.key,并使用noden.key对证书请求文件node.csr进行签署,得到noden的证书请求文件noden'.csr,然后使用机构私钥agency.key对noden'.csr进行签署,得到noden的节点授权证书noden.crt;
步骤3)任务发起方s获取编译后的有权限控制的数据分发智能合约distribute”.sol的合约地址addresssc
步骤3a)任务发起方s为每个节点授权证书noden.crt生成对应的用户身份identityn,并为identityn赋予操作权限ACn
用户身份identityn在数据通信网络进行节点身份验证时,作为允许节点登录控制台、进行数据通信的凭证。
操作权限ACn用于在执行智能合约的时候,规定节点能够调用哪些方法。
步骤3b)任务发起方s创建包括映射方法mapping、授权方法require、设置操作数方法set和获取操作数方法get的数据分发智能合约distribute.sol,并采用mapping方法将计算参与方pn在数据通信网络中的节点地址addressn映射到用户身份identityn,然后采用require方法获取identityn的操作权限ACn,实现对set方法和get方法的权限控制,得到有权限控制的数据分发智能合约distribute'.sol;
智能合约是一套以数字形式定义的承诺,在控制台上通过输入合约地址调用,执行时不允许第三方进行干预。
步骤3c)任务发起方s产生次数与计算参与方数量相等的N-1次多项式f(x)=a1+a2x+a3x2+...+anxn+...+aN-1xN-1,并依据拉格朗日差值定理公式在f(x)的曲线上选取N-1个互异的点{(x1,f(x1)),(x2,f(x2)),...,(xn,f(xn)),...,(xN-1,f(xN-1))}后,将每个点(xn,f(xn))的纵坐标f(xn)作为分发数据构建与计算参与方P={p2,...,pn,...,pN}对应的分发数据集合D={d2,...,dn,...,dN},然后采用set方法将D存入distribute'.sol中,其中,x表示变元,an表示xn-1的参数;
任务发起方s构造多项式f(x)=a1+a2x+a3x2+...+anxn+...+aN-1xN-1的有限域,并从有限域中独立随机地选取N-1个元素{a1,a2,...,an,...,aN-1}。任务发起方s依据拉格朗日差值定理,在f(x)的曲线上选取满足L(x)=f(x)的N-1个互异的点{(x1,f(x1)),(x2,f(x2)),...,(xn,f(xn)),...,(xN-1,f(xN-1))},拉格朗日差值多项式L(x)的计算公式为:
Figure BDA0002910640690000081
其中,xi,xj表示f(x)的曲线上两个互异的点的横坐标,k∈[1,N-1]。
步骤3d)任务发起方s使用开发环境中的智能合约编译工具solc对distribute'.sol进行编译,得到编译后的有权限控制的数据分发智能合约distribute”.sol,并将distribute”.sol部署到控制台,得到控制台显示的distribute”.sol的合约地址addresssc
合约地址是每一个智能合约被部署到控制台时获得的唯一标识,帮助用户查找和调用特定智能合约,相同的智能合约再次部署到控制台后,会获得一个不同的新合约地址。
步骤4)每个计算参与方pn获取电路程序产生的运算电路输出resultn
步骤4a)每个计算参与方pn将合约地址addresssc作为控制台的输入,并采用获取操作数方法get,获取计算参与方pn对应的分发数据dn
步骤4b)每个计算参与方pn在开发环境中使用命令解释器linux shell编写计算可执行脚本run.sh,并通过运行run.sh将计算参与方pn对应的分发数据dn传递给wysteria框架中的电路程序,通过运行电路程序进行计算参与方pn上的隐私计算,得到运算电路输出resultn
电路程序是由与、或、非三种逻辑运算关系构成的计算逻辑的载体,wysteria框架中包含实现基本功能的电路程序,wysteria框架获取分片数据dn后,会将dn作为输入数据传递给电路程序,一旦获得输入数据,电路程序会自动执行隐私计算,并输出执行结果resultn
步骤5)每个计算参与方pn实现与任务发起方s的协同隐私计算数据通信:
每个计算参与方pn将resultn发布到数据通信网络中,通过数据通信网络的共识机制将resultn发送给任务发起方s,实现所有计算参与方{p2,...,pn,...,pN}与任务发起方s的协同隐私计算数据通信。
数据通信网络的共识机制用于同步区块链节点数据库的内容,包括工作量证明共识机制POW、委托权益共识机制DPOS、权威证明共识机制POA,日志复制共识机制RAFT等,在本实施例中采用实用拜占庭容错共识机制PBFT,因为它向数据通信网络了一定的容错能力。
实现PBFT共识机制首先需要所有区块链节点{node1,node2,...,noden,...,nodeN}通过投票在数据通信网络中选取主节点nodem,m∈[1,N]。nodem查询每个区块链节点noden数据库中的最新区块序号,找到最新区块序号最大的区块链节点nodel,将nodel数据库中的区块复制到nodem的数据库,其中l∈[1,N]。然后,任何想要在数据通信网络中向任务发起方s发送resultn的计算参与方pn,将resultn写入区块block,并向主节点nodem提交发布区块请求消息request。主节点验证request,并在数据通信网络中广播通过验证的request。每个区块链节点noden验证request,并在数据通信网络中广播预备消息prepare。每个区块链节点noden验证prepare,并在数据通信网络中广播确认消息commit。每个区块链节点noden统计收到commit的数量numn,当某一个区块链节点noden
Figure BDA0002910640690000101
时,每个区块链节点noden将区块block保存在数据库,当n=1时,任务发起方s收到计算参与方pn发送的resultn
与现有技术相比,在可用性相当的前提下,本发明有效提升了数据通信的机密性和完整性:
数据通信的机密性在本实施例中使用数据分布相似度Sim(stri,strj)来衡量,将所有N-1个计算参与方pn调用distribute.sol产生的strn构建成交易哈希集合STR={str2,...,strn,...,strN},计算STR中每两个交易哈希stri,strj之间的数据分布相似度Sim(stri,strj),其中i∈[2,N],j∈[2,N]。
Sim(stri,strj)的计算公式为:
Figure BDA0002910640690000102
len=max(length(stri),length(strj))
Figure BDA0002910640690000103
其中length(stri)表示计算交易哈希stri的长度,max(length(stri),length(strj))表示计算交易哈希长度length(stri),length(strj)中的最大值,并用len来表示这个最大值,u(k)表示两个交易哈希stri,strj对应位置有效值,
Figure BDA0002910640690000111
表示对k=1,...,len的u(k)求和,k表示交易哈希从左到右第k个位置。
经计算,本实施例中的Sim(stri,strj)取值在区间[0.0149,0.0167]之间,符合协同隐私计算数据分布相似度应包含在一个较小的区间内并保持稳定的要求。现有技术根据助记词串生成种子密钥加密通信号码,可以通过BIP39标准让助记词序列通过PBKDF2与HMAC-SHA512函数创建出随机种子。使用与本实施例中相同的数据计算出现有技术的Sim(stri,strj)取值在区间[0.0313,0.2188]之间,本发明提升了数据通信的机密性。
本实施例通过对数据通信网络中的区块链节点颁发授权证书,并为节点授权证书对应生成用户身份和赋予操作权限,实现了权限控制,而现有技术不存在对权限控制的设计,本发明提升了数据通信的完整性。
本实施例基于区块链构建数据通信网络,这一点与现有技术相同,本发明与现有技术在数据通信的可用性相当。
综上,与现有技术相比,在可用性相当的前提下,本发明有效提升了数据通信的机密性和完整性。

Claims (1)

1.一种基于区块链的协同隐私计算数据通信方法,其特征在于,包括如下步骤:
(1)构建基于区块链的协同隐私计算数据通信网络:
构建基于包括N个区块链节点node={node1,node2,...,noden,...,nodeN}的区块链的协同隐私计算数据通信网络,每个区块链节点noden上搭载有包含控制台、开放式安全套接层协议openssl、文件传输工具curl、数据库、开发环境、建链可执行脚本build_chain.sh和终端的linux系统,开发环境中部署有智能合约编译工具solc、命令解释器linux shell和含有电路程序的安全多方计算wysteria框架,每个区块链节点noden在数据通信网络中的地址为addressn,当n=1时,将noden作为任务发起方s,当n∈[2,N]时,将noden作为计算参与方P={p2,...,pn,...,pN},其中,N≥3,noden表示第n个区块链节点;
(2)每个区块链节点noden获取节点授权证书noden.crt:
(2a)每个区块链节点noden运行linux系统中的建链可执行脚本build_chain.sh,得到节点证书请求文件node.csr和机构私钥agency.key;
(2b)每个区块链节点noden在终端使用开放式安全套接层协议openssl生成节点私钥noden.key,并使用noden.key对证书请求文件node.csr进行签署,得到noden的证书请求文件noden'.csr,然后使用机构私钥agency.key对noden'.csr进行签署,得到noden的节点授权证书noden.crt;
(3)任务发起方s获取编译后的有权限控制的数据分发智能合约distribute”.sol的合约地址addresssc
(3a)任务发起方s为每个节点授权证书noden.crt生成对应的用户身份identityn,并为identityn赋予操作权限ACn
(3b)任务发起方s创建包括映射方法mapping、授权方法require、设置操作数方法set和获取操作数方法get的数据分发智能合约distribute.sol,并采用mapping方法将计算参与方pn在数据通信网络中的节点地址addressn映射到用户身份identityn,然后采用require方法获取identityn的操作权限ACn,实现对set方法和get方法的权限控制,得到有权限控制的数据分发智能合约distribute'.sol;
(3c)任务发起方s产生次数与计算参与方数量相等的N-1次多项式f(x)=a1+a2x+a3x2+...+anxn+...+aN-1xN-1,并依据拉格朗日差值定理公式在f(x)的曲线上选取N-1个互异的点{(x1,f(x1)),(x2,f(x2)),...,(xn,f(xn)),...,(xN-1,f(xN-1))}后,将每个点(xn,f(xn))的纵坐标f(xn)作为分发数据构建与计算参与方P={p2,...,pn,...,pN}对应的分发数据集合D={d2,...,dn,...,dN},然后采用set方法将D存入distribute'.sol中,其中,依据拉格朗日差值定理公式在f(x)的曲线上选取N-1个互异的点的实现步骤为:
(3c1)任务发起方s构造多项式f(x)=a1+a2x+a3x2+...+anxn+...+aN-1xN-1的有限域,并从有限域中独立随机地选取N-1个元素{a1,a2,...,an,...,aN-1},x表示变元,an表示xn-1的参数;
(3c2)任务发起方s依据拉格朗日差值定理,在f(x)的曲线上选取满足L(x)=f(x)的N-1个互异的点{(x1,f(x1)),(x2,f(x2)),...,(xn,f(xn)),...,(xN-1,f(xN-1))},拉格朗日差值多项式L(x)的计算公式为:
Figure FDA0003267224290000021
其中,xi,xj表示f(x)的曲线上两个互异的点的横坐标,k∈[1,N-1];
(3d)任务发起方s使用开发环境中的智能合约编译工具solc对distribute'.sol进行编译,得到编译后的有权限控制的数据分发智能合约distribute”.sol,并将distribute”.sol部署到控制台,得到控制台显示的distribute”.sol的合约地址addresssc
(4)每个计算参与方pn获取电路程序产生的运算电路输出resultn
(4a)每个计算参与方pn将合约地址addresssc作为控制台的输入,并采用获取操作数方法get,获取计算参与方pn对应的分发数据dn
(4b)每个计算参与方pn在开发环境中使用命令解释器linux shell编写计算可执行脚本run.sh,并通过运行run.sh将计算参与方pn对应的分发数据dn传递给wysteria框架中的电路程序,通过运行电路程序进行计算参与方pn上的隐私计算,得到运算电路输出resultn
(5)每个计算参与方pn实现与任务发起方s的协同隐私计算数据通信:
每个计算参与方pn将resultn发布到数据通信网络中,通过数据通信网络的共识机制将resultn发送给任务发起方s,实现所有计算参与方{p2,...,pn,...,pN}与任务发起方s的协同隐私计算数据通信,其中,通过数据通信网络的共识机制将resultn发送给任务发起方s的实现步骤为:
(5a)所有区块链节点{node1,node2,...,noden,...,nodeN}通过投票在数据通信网络中选取主节点nodem,m∈[1,N];
(5b)nodem查询每个区块链节点noden数据库中的最新区块序号,找到最新区块序号最大的区块链节点nodel,将nodel数据库中的区块复制到nodem的数据库,其中l∈[1,N];
(5c)任何想要在数据通信网络中向任务发起方s发送resultn的计算参与方pn,将resultn写入区块block,并向主节点nodem提交发布区块请求消息request;
(5d)主节点验证request,并在从数据通信网络中广播通过验证的request;
(5e)每个区块链节点noden验证request,并在数据通信网络中广播预备消息prepare;
(5f)每个区块链节点noden验证prepare,并在数据通信网络中广播确认消息commit;
(5g)每个区块链节点noden统计收到commit的数量numn,当某一个区块链节点noden
Figure FDA0003267224290000041
时,每个区块链节点noden将区块block保存在数据库,当n=1时,任务发起方s收到计算参与方pn发送的resultn
CN202110085646.4A 2021-01-22 2021-01-22 基于区块链的协同隐私计算数据通信方法 Active CN112910870B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110085646.4A CN112910870B (zh) 2021-01-22 2021-01-22 基于区块链的协同隐私计算数据通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110085646.4A CN112910870B (zh) 2021-01-22 2021-01-22 基于区块链的协同隐私计算数据通信方法

Publications (2)

Publication Number Publication Date
CN112910870A CN112910870A (zh) 2021-06-04
CN112910870B true CN112910870B (zh) 2021-11-09

Family

ID=76118347

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110085646.4A Active CN112910870B (zh) 2021-01-22 2021-01-22 基于区块链的协同隐私计算数据通信方法

Country Status (1)

Country Link
CN (1) CN112910870B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113722754A (zh) * 2021-08-25 2021-11-30 上海阵方科技有限公司 隐私可执行文件的生成方法、装置和服务器
CN113726758A (zh) * 2021-08-25 2021-11-30 百保(上海)科技有限公司 基于区块链的数据隐私计算方法及系统
CN114172958B (zh) * 2021-11-19 2023-10-20 云从科技集团股份有限公司 隐私计算节点、系统、方法、装置以及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108712261A (zh) * 2018-05-10 2018-10-26 杭州智块网络科技有限公司 一种基于区块链的密钥生成方法、装置及介质
CN109871669A (zh) * 2019-03-14 2019-06-11 哈尔滨工程大学 一种基于区块链技术的数据共享解决方法
CN110520881A (zh) * 2017-04-07 2019-11-29 区块链控股有限公司 使用区块链的安全数据记录分发的方法和系统
CN111066283A (zh) * 2017-08-29 2020-04-24 区块链控股有限公司 对区块链网络上实体提供的数据进行通信、存储和处理的系统和方法
CN111147460A (zh) * 2019-12-16 2020-05-12 重庆邮电大学 一种基于区块链的协同细粒度访问控制方法
US20200160328A1 (en) * 2018-11-21 2020-05-21 TraDove, Inc. Lightweight blockchain supported transaction platform with digital bill optimizations and denominations

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107465505B (zh) * 2017-08-28 2021-07-09 创新先进技术有限公司 一种密钥数据处理方法、装置及服务器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110520881A (zh) * 2017-04-07 2019-11-29 区块链控股有限公司 使用区块链的安全数据记录分发的方法和系统
CN111066283A (zh) * 2017-08-29 2020-04-24 区块链控股有限公司 对区块链网络上实体提供的数据进行通信、存储和处理的系统和方法
CN108712261A (zh) * 2018-05-10 2018-10-26 杭州智块网络科技有限公司 一种基于区块链的密钥生成方法、装置及介质
US20200160328A1 (en) * 2018-11-21 2020-05-21 TraDove, Inc. Lightweight blockchain supported transaction platform with digital bill optimizations and denominations
CN109871669A (zh) * 2019-03-14 2019-06-11 哈尔滨工程大学 一种基于区块链技术的数据共享解决方法
CN111147460A (zh) * 2019-12-16 2020-05-12 重庆邮电大学 一种基于区块链的协同细粒度访问控制方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Privacy-preserving and sparsity-aware location-based prediction method for collaborative recommender systems;ShunmeiMeng;《Future Generation Computer Systems》;20190731;全文 *
区块链隐私关键技术研究;周李京;《中国博士学位论文全文数据库-信息科技辑》;20190815;全文 *
基于区块链和隐私保护的网络数据共享技术研究;王丹丹;《河南科技学院学报(自然科学版)》;20200629;全文 *

Also Published As

Publication number Publication date
CN112910870A (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
CN112910870B (zh) 基于区块链的协同隐私计算数据通信方法
EP4120114A1 (en) Data processing method and apparatus, smart device and storage medium
US20240113877A1 (en) Blockchain-implemented method and system
CN109981641B (zh) 一种基于区块链技术的安全发布订阅系统及发布订阅方法
CN110991622A (zh) 基于区块链网络的机器学习模型处理方法及节点
CN111144881A (zh) 对资产转移数据的选择性访问
CN110599095B (zh) 基于区块链网络的危废处理方法及区块链网络的节点
CN111930851A (zh) 区块链网络的管控数据处理方法、装置、介质及电子设备
CN106789080A (zh) 数字签名生成方法和系统
CN113127916A (zh) 数据集合处理方法、数据处理方法、装置及存储介质
Lee et al. Blockchain-based RBAC for user authentication with anonymity
CN112131316A (zh) 应用于区块链系统的数据处理方法及装置
CN110224984A (zh) 一种基于区块链技术的多方授权方法及装置
CN111291420B (zh) 一种基于区块链的分布式离链数据存储方法
CN116502732B (zh) 基于可信执行环境的联邦学习方法以及系统
CN115632774A (zh) 一种基于门限签名的分布式预言机实现方法及系统
CN115361196A (zh) 一种基于区块链网络的业务交互方法
Li et al. Efficient and traceable data sharing for the Internet of Things in smart cities
CN115222392A (zh) 基于区块链的业务访问方法、装置、介质及电子设备
CN113761513A (zh) 数据处理方法、装置、设备及计算机可读存储介质
CN112887281A (zh) 支持高效审计和多备份密文去重的存储方法、系统及应用
CN111770101B (zh) 接入区块链网络的系统及方法
CN116032494B (zh) 数据交互方法、区块链预言机、设备及介质
CN116506227B (zh) 数据处理方法、装置、计算机设备和存储介质
CN116582341B (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