APP下载

基于区块链智能合约的数据安全平台设计与实现

2021-04-20张小芳朱熔熔

无线互联科技 2021年4期
关键词:购买方以太合约

张小芳,朱熔熔

(广东工业大学 自动化学院,广东 广州 510000)

0 引言

用户在使用网络服务的同时会伴随着个人数据的产生,这些数据有着极高的商业价值。作为个人数据产生的源头,用户若是能获取并交易这些数据,将会产生巨大的利益。然而,用户在使用服务的过程中,自己并没有收集数据的能力,用户个人数据被服务提供商所掌控,他们垄断了这些个人数据,作为企业自身的数字资产,为企业牟利。用户不但无法获取个人数据带来的利益,还需要承受企业私下交易个人数据带来的风险。因此,需要一种合理的方式使用户能够获取对数据的掌控权。

1 数据安全

1.1 数据的过度收集

大数据时代给社会带来机遇与便利,也给互联网用户带来了对自身隐私安全的担忧。人们的生活越来越离不开网络,但网络服务的强制授权、过渡索权、超范围收集用户个人信息的现象层出不穷,用户的在线行为被不断观察和记录,形成海量的个人数据的同时也给个人数据保护带来了不小的挑战,如何保护用户数据安全成了一大难题。

移动互联网收集部分数据用于正常的服务无可厚非,但是,对用户隐私数据的收集应有边界,不分是否需要就对用户数据一网打尽,说到底还是服务商视用户数据为金矿的贪婪性在作祟。一方面,通过多维度收集用户数据,能够更精准描绘用户行为,从而通过精准营销和广告推送,实现更大价值的流量变现;另一方面,有些企业设置直接通过第三方数据交易平台售卖用户隐私数据牟取利益[1]。

1.2 数据泄露带来的危害

近年来,个人信息泄露事件频发,信息安全问题被推到了风口浪尖。越来越多的公民个人信息成为不法分子争抢的资源,不法分子通过各种途径收集到人们的隐私数据,经过筛选分析用户特征,进行精准犯罪,轻则进行短信电话骚扰、广告信息推送,重则从事电信诈骗等犯罪活动[2]。用户信息的泄露一方面是由于用户自身数据安全意识的薄弱,另一方面则归结于服务商对用户数据的售卖。

2 相关技术概述

2.1 区块链

区块链技术作为一种新型的去中心化的分布式安全存储技术,由于安全可靠的特点,成为当前热门的研究领域。区块链是一个共享的分布式数据库,该数据库由区块链网络全体参与者共同记录和验证,按照时间顺序将交易信息生成区块,并以顺序相连的方式组成一种链式数据结构,利用密码学方式保证数据不可篡改和不可伪造[3]。

区块链技术利用加密链式区块链结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据。其中,共识算法是区块链系统中实现不同节点之间建立信任、获取权益的数学算法,只有通过共识算法的验证,生成的数据块才可以加入区块链中,并且区块链中所有区块链网络的节点都负责维护该数据库。

2.2 智能合约

在区块链环境下,智能合约意味着区块链交易将远不止简单的买卖交易,将会有更加广泛的指令可嵌入到区块链当中[4]。传统意义上的合约,就是双方或者多方共同协商做或者不做某事来换取某些东西,合同中的每一方必须信任彼此会履行义务。智能合约的特点是,同样的是彼此之间同意或者不同意做某事,但无须再信任彼此。这是因为智能合约不但是由代码定义的,也是由代码执行的,整个系统按照预先设定的程序运行,而且有成千上万的人见证,不管是谁都无法阻止和干扰。

2.3 以太坊

以太坊是一个开放的区块链平台,它支持第三方开发者构建和发布分布式应用。更为重要的是,以太坊是一个基础性的、开放的通用数字货币平台来实现图灵完备虚拟机(意味着他能够运行任何脚本和数字货币项目)。不同于某种区块链,或者运行在区块链上的协议,以太坊是一个基础平台,可运行所有区块链和协议,就像一个统一通用的开发平台。以太坊网络的每一个完全节点上都运行着以太坊虚拟机来无缝连接分布式应用(智能合约)。以太坊架构如图1所示。

2.4 IPFS技术

星际文件系统(Inter Planetary File System,IPFS)的出现就是为了解决HTTP协议的不足,希望能够创建一个持久且分布式存储和共享文件的网络传输协议。通俗地讲,IPFS是一个分布式的点对点文件存储系统,用户上传的文件会被分散到世界各地的IPFS节点中进行分布式存储,并可以在需要的时候快速获取到。

与HTTP不同的是,IPFS具有去中心化的特性,而且是基于内容寻址的。也就是说,只要内容不消失,就永远可以获取得到。去中心化的特性也使得用户在进行资源请求时,会有多个IPFS节点为其提供并发的内容寻址服务,很大程度上增加了资源的获取效率。

图1 以太坊架构

3 系统整体架构

为了解决用户个人数据泄露问题,我们提出了一种基于区块链的个人数据安全平台,该平台在以太坊的基础上进行了功能拓展,在提高可开发性的同时也保证了用户数据的安全性。

系统底层运行了以太坊节点,服务端通过Web3j(一个Java库,用于与以太坊网络上的节点集成)与以太坊节点建立JSON-RPC(Remote Procedure Call,远程过程连接),无须使用以太坊客户端即可对操作以太坊节点。

服务端作为客户端与以太坊节点的连接桥梁,需要提供API(Application Programming Interface,应用程序编程接口)供客户端对以太坊节点进行相关操作。同时,客户端与服务端也要向第三方开发者提供API接口,供开发者部署合约、发布运行分布式应用。

客户端作为分布式应用的载体直接面向用户,针对用户使用的每一个分布式应用都会生成一对公私钥用来加解密数据,客户端定期将加密后的数据通过服务端上传至数据存储网络,需要使用时再请求解密。

数据存储方面,采用了分布式文件存储系统IPFS,服务端将收集到的数据加密上传至IPFS节点,避免了数据集中存储带来的安全问题。系统整体架构如图2所示。

4 数据交易方案的实现

4.1 数据交易生态圈

基于系统架构的数据交易生态圈主要包括5个部分:用户、服务提供商、数据购买方、以太坊网络和数据存储网络。用户是使用网络服务、产生数据的源头;数据购买方是对数据有需求,想要购买数据的人;服务提供商为用户提供互联网服务,能够埋点收集数据,对数据制定交易规则;以太坊网络提供了智能合约部署及执行的环境;数据存储网络运行了IPFS分布式存储节点,负责存储服务端收集的个人数据。

图2 系统整体结构

4.2 合约部署

服务提供商在平台构建并发布服务,同时发布针对该服务的智能合约和可交易数据描述表,其中智能合约部署到以太坊网络中。

可交易数据描述表包含:服务ID、智能合约地址、可交易数据种类标识符列表【k1, k2, k3, … , kn】,对应的每个种类的数据描述【d1, d2, d3, … , dn】和数据交易规则【r1,r2, r3, … , rn】,以一个邮件应用为例,数据描述表中的内容如表1所示。

表1 可交易数据描述表

针对可交易数据描述表中的数据种类及交易规则,生成数据交易智能合约。合约可制定用户和服务提供商数据交易分成方式(例如交易完成,数据购买方支付的金额中的70%发送至用户账户,30%发送至服务提供商账户),智能合约在数据交易的过程中触发并执行,执行之后会自动处理用户和数据购买方之间的交易。

4.3 数据产生与存储

用户在使用网络服务的过程中,服务收集的个人数据将按照可交易数据描述表中的数据种类【k1, k2, k3, … , kn】分类存储至用户本地(分类存储的目的是方便数据交易,数据购买方往往希望购买某种类型的数据)。

服务每隔一段时间(例如每三天)会对每一类数据使用唯一的密钥进行加密,之后上传到数据存储网络中,并获取对应的数据索引。之后,此过程用来加密的密钥将不再用来加密,同时随机产生新的密钥用来加密下一次上传的数据。

4.4 数据交易流程

数据交易作为平台的核心部分,大致包含以下几个流程。

(1)数据购买方查询可交易数据描述表,找到想购买的数据种类。根据可交易数据描述表中提供的智能合约地址,针对该智能合约,按照欲购买数据的交易规则并携带其公钥发起交易请求到以太坊网络中。

(2)以太坊网络记录该交易。

(3)用户根据服务ID查询以太坊网络中存储的交易请求。

(4)用户根据自身数据情况筛选出符合数据购买方要求的交易请求。

(5)用户响应交易请求到以太坊网络,将包含满足交易要求的数据密钥和数据索引用数据购买方的公钥加密发布到区块链中执行智能合约。

(6)以太坊执行智能合约,数据购买方获得所购买的数据的密钥和数据索引,可以根据数据索引向数据存储网络获得加密数据,再用密钥解密加密数据获得最终数据。

(7)数据购买方支付的货币则按智能合约中制定的分成规则,一部分至用户账户,一部分转至服务提供商账户。

图3 数据交易流程

5 结语

本文在以太坊的基础上提出了一种包括应用开发、数据收集、数据存储、数据交易于一体的平台。平台对外提供开发者接口促进了平台应用生态的多元化,同时开发者制定数据交易分成规则,为用户提供服务的同时也间接地刺激了开发者的开发积极性。用户和开发者可以根据数据交易分成规则获取数据交易带来的收益,平台也在应用数量及用户数量增加的同时获得了持续运转的基础,整个生态圈的发展得到了保障。

猜你喜欢

购买方以太合约
以太极为旗,开启新时代“黄河大合唱”
车易链:做汽车业的“以太坊”
“超级”医保局
百通推出入门级快速工业以太网络交换器系列
以太互联 高效便捷 经济、可靠、易用的小型可编程控制器
论述非同一控制下企业合并中购买法的应用
合约必守,谁能例外!——对“情势变更”制度不可寄于过高期望