1.一种基于区块链和多密钥同态加密的数据协同方法,其特征在于,该方法涉及的三方实体定义为任务发起者、参与方和数据协同平台,即区块链节点,所述方法包括如下步骤:
1)网络预认证阶段:为了避免隐私泄露和防止数据提供者失去对数据的控制,同时为分布式计算提供公共可验证性,利用区块链技术对分布式结算进行公开审计,结合多密钥同态加密完成安全数据聚合操作,首先区块链数据协同平台对加入该平台的数据联盟方进行审核、注册,组成区块链网络,所有用户被分为两种类型:协同任务发起者即开发者联盟、计算参与方即数据持有者;
2)任务发布阶段:任务生成器负责收集计算任务,任务发起者在用户端数据协同平台即区块链节点上使用智能合约部署他/她的数据协同任务,包括任务摘要、参与方加入算法、聚合计算算法、数据审查算法即参与方身份和数据集校验,其中任务摘要包括任务描述、数据集要求、算法仓库地址,具体智能合约功能如下表:
3)任务初始化阶段:参与方根据任务摘要找到感兴趣的任务,并发起智能合约调用请求,提交数据集,区块链数据协同平台通过任务摘要提供数据集案例或数据处理模型地址,通过不经意传输即OT任务参与方通过下载模型至本地完成初步计算,并获得公共参数CRS,用于后续加密过程;
4)分布式计算阶段:参与方通过上一步智能合约摘要中的数据集案例或数据处理模型地址,对本地数据处理后并发起智能合约调用请求,提交经过同态加密的计算结果,每个数据提供者即DP会对自己的隐私数据生成佩德森承诺,以确保数据的保密性和一致性,该确认将会经过DP的签名并作为CT和ST上传到区块链进行保存,每个参与方独立生成自己的密钥并加密数据集,发送至区块链节点;
5)多密钥同态聚合阶段:当调用请求满足访问控制算法时,智能合约自动在区块链节点上执行协同计算,将参与方数据、计算过程中间信息上传至区块链完成存证,用于合约达成区块链共识,参与方得到协同计算的结果;
6)联合解密:所有参与计算的参与方共同解密密文,得到协同任务的聚合结果。