一种公平和隐私保护的大数据交换方案
文献发布时间:2023-06-19 11:19:16
技术领域
本发明涉及不经意传输协议、IPFS系统、以太坊支票、智能合约和区块链。
背景技术
目前的大数据交换的形式,以中心化数据交易所为主,所有的数据交易都需要经由交易所。显而易见的是,这会增加交易所的存储负担和维护开销,当数据量过大时交易效率较低。同时由于交易所本身存在被攻击的风险,所以存在数据泄漏的风险。另外,通过交易所等中心化模式进行数据交换时,无法保障购买者的隐私,即购买者具体购买了哪些数据,对该数据的拥有者和交易所都是透明的。综上,目前尚缺少一种公平、隐私保护和安全的数据交换方法。
发明内容
本专利提出了一种公平和隐私保护的大数据交换方案。该方案使用不经意传输协议保证了大数据交换的灵活性和购买者的隐私;值得一提的是,该方案提出了一个基于以太坊上智能合约的支票系统,可以对现有的交易流程进行优化;另外,该方案的设计中包含了基于智能合约的交易流程部分,实现了交易的时间控制。这些设计能够有效地保证数据拥有者和购买者双方的权益,并且极大地提高了大数据交换的效率。
附图说明
图1详细描述了系统模型。
图2详细描述了交易第一阶段交易m块数据的过程。
具体实施方式
(1)以太坊支票的定义
我们使用一种以太坊支票实现购买者S2向数据拥有者S1支付购买数据所需的金额,来使交易更加简短和便利。以太坊支票系统的实现需要部署两个智能合约(SC1,SC2),合约 SC1用于交易,合约SC2用于存储代币。在S2开始交易之前,他必须在SC2中有足够多的代币存储。
支票的具体定义为:
Cheque=(PK_S1||Token||Date||E(R,PK_S1)||Hash(R)),其中PK_S1是数据拥有者 S1的公钥,Token是购买者S2需要支付的代币金额,Date是时间戳,R是购买者S2用随机数生成器生成一个随机数,E(R,PK_S1)是S2用S1的公钥加密随机数R的结果,Hash(R)是 S2用某一种哈希算法计算的R的哈希值。生成支票后,购买者S2用自己的私钥SK_S2对支票进行签名,已签名的支票记为:
Cheque_=Sig(Cheque,SK_S2)。
数据购买者S2将签过名的支票Cheque_发送给智能合约SC1,上传完成后,数据拥有者S1可以下载支票。当S1需要使用支票时,先用S2的公钥验证S2的签名后,用自己的私钥SK_S1解密E(R,PK_S1)得到R’并上传到智能合约SC1,智能合约SC1计算R’的哈希值与支票中的哈希值Hash(R)进行比较,若相同则验证通过,SC1将S1的地址以及代币的数量发送到合约SC2,SC2会将代币发送到S1的地址上,并从S2的代币余额中扣除等量代币。
(2)初始化过程
①参数设定
交易开始之前,数据拥有者S1和数据购买者S2需要完成一些参数的设定。S1和S2协商一共将数据分为多少块,假设为n块;S2选择需要购买的块数m(0 ②数据交换过程初始化 为了保证数据交换过程的公平性,数据拥有者S1需要完成一些操作:将大数据分成n 块并上传到星际文件系统IPFS云端,得到n个数据地址及其对应的密钥HKi;用S2的公钥 PK_S2加密每一个HKi,记为E(HKi,PK_S2);生成n个对称密钥AKi,用AKi加密E(HKi,PK_S2) 记为EHKi,将所有的EHKi上传到智能合约;向智能合约支付押金Deposit_S1;将自己的公钥PK_S1上传到智能合约。 与此同时,数据购买者S2也要完成一些相关的操作:向智能合约支付押金Deposit_S2;将自己想要购买的数据块数发送给智能合约;上传自己的公钥PK_S2到智能合约。 ③不经意传输协议初始化 在交易开始之前,为了不经意传输协议能正常进行,参与交易的双方需要完成一些工作:首先数据拥有者S1生成n对公钥-私钥,记为(PKi,SKi),其中1≤i≤n;数据购买者S2 在确定好自己要购买m块数据后,利用对称密钥算法生成m个密钥,记为{K1,K2,...,Km}。 (3)交易的第一阶段(交易m块数据) ①S1向合约发送EHKi以及PKi; ②S2从{PK1,PK2,...,PKn}中任意选择m个,然后用这m个公钥分别加密{K1,K2,..., Km},分别记为{EK1,EK2,...,EKm}上传到智能合约。此外,S2需要计算Ki的哈希值,将Hash(K1),Hash(K2),...,Hash(Km)上传到智能合约; ③S1用{SK1,SK2,...,SKn}分别解密{EK1,EK2,...,EKm}中的每一个即D(EKj,SKi), 将结果记为DKij,如下所示:
S1用n*m个解密得到的密钥分别加密{AK1,AK2,...,AKn},即:
④S2用{K1,K2,...,Km}解密加密的{AK1,AK2,...,AKn},可以得到m个正确的数据密钥; ⑤S2向智能合约发送付款支票Cheque以及Tokens; ⑥S2查阅已购买的数据,并决定是否与S1继续进行交易; ⑦智能合约返还S1和S2的押金。 (4)交易的第二阶段(交易剩余数据) ①数据拥有者S1和数据购买者S2向智能合约分别支付押金Deposit_S1和Deposit_S2; ②数据拥有者S1将SK1,SK2,...,SKn用S2的公钥PK_S2加密后发送至智能合约; ③数据购买者S2用私钥SK_S2解密上一步的结果,得到n个SKi,然后S2从选出的m个PKi中任意选择一个,假设是PKx; ④S2用SK1,SK2,...,SKn解密EKx,即
得到DK ⑤S2将一下内容用DK
得到{AK1,AK2,...,AKn},并解密对应的{EHK1,EHK2,...,EHKn},最终得到所有的n个数据地址密钥{HK1,HK2,...,HKn},也就得到了所有的n块数据。 ⑥数据购买者S2在确定数据无误后,向智能合约发送支票和代币; ⑦智能合约返还S1和S2的押金。
- 一种公平和隐私保护的大数据交换方案
- 一种基于共享单车资源公平分配的优化方案及装置