基于区块链的加密云存储平台模型研究

2020-07-14 01:36:21郭叶斌徐欣
软件导刊 2020年1期
关键词:智能合约区块链

郭叶斌 徐欣

摘要:为提高云存储平台安全性,确保用户数据隐私,通过对比分析现有云平台结构与技术,提出一种基于区块链的加密云存储平台模型。首先,该平台通过IPFS网络实现数据分布式存储,并通过加密技术保证用户数据隐私性;然后利用区块链记录文件存储信息,实现文件存储可公开验证;最后通过区块链智能合约技术保证平台交易公平性。相比于现有云平台,该系统可有效规避数据仅存储于中央服务器的缺陷,文件完整性验证方案可脱离第三方验证机构,有效提高用户数据隐私性。

关键词:区块链;分布式存储;智能合约;IPFS

DOI: 10. 11907/rjdk.192510

开放科学(资源服务)标识码(OSID):

中图分类号:TP399

文献标识码:A

文章编号:1672-7800(2020)001-0221-04

0 引言

计算机技术发展迅速,网络流量、视频和图片、社交媒体产生的网络数据越来越多,目前主要依靠各云数据存储平台进行数据处理,云计算成为互联网重要课题[1]。但云数据存储在发展中也暴露出很多问题,关于用户数据丢失、用户隐私数据被泄露等报道接连不断,反映出当今中心化的云存储平台存在许多缺陷和漏洞.用户急需一个能保障用户隐私、更安全可靠的云存储平台。

2008年中本聪[2]提出了比特币( Bitcoin)网络。该网络使用区块链技术构建底层,具有去中心化、匿名性、可追溯性等特点[3-5]。区块链技术自诞生以来,备受关注,对多个行业产生了深远影响。其中基于区块链的智能合约技术[6-9]可保证数字化逻辑的公开执行,区块链在云存储上的应用成为重要的研究课题。当前基于区块链的分布式存储平台有Storj[10]、Sia[11]、Filecoin[12]。其中Storj方案仅能由用户自身验证数据完整性,且平台本身无法部署智能合约;Sia方案中云服务器端需定时提交数据存储证明,使区块链数据量激增;在Filecoin方案中,底层网路基于星际文件系统( Inter-Planetary File System,IPFS)[13]结构,然而其使用zkSNARKs[14]技术实现数据完整性验证,造成运算量巨大。关于文件的完整性验证方案,黑一鸣等[15]提出一种基于区块链的可公开验证方案,并论述了区块链上的智能合约构建,该方案采用区块链默尔克树存储数据元数据,然而该方案没有对用户数据进行隐私性保护。

本文借鉴基于区块链的云存储系统架构思路,提出一种新的解决方案。首先采用IPFS形成分布式网络节点,并采用文件本地加密技术,确保用户数据隐私性;然后使用默尔克树、哈希函数结合区块链技术的方式实现文件完整性存储证明;最后利用智能合约技术,在各个节点之间建立约束条件,保证平台交易公平性。

1 背景知识

1.1 IPFS

IPFS是一种为创建永久且去中心化共享的网络传输协议,拥有内容可寻址特点,是一种不同于HTTP的底层网络协议。该协议具有在网络端到端节点上读取、共享、传输、交换文件等功能。相比于需要Internet主干网的HTTP协议,IPFS网络可形成一个去中心化的文件存储系统,不依赖主干网。

1.1.1 IPFS工作原理

(1)网络中每个文件及其中所有的块均拥有对应的唯一指纹,且该网络中指纹一致的文件将被删除。通过计算该指纹值,可以计算出哪些文件是冗余重复的,降低冗余数据数量。

(2)在该网络中,节点只会存储它感兴趣的数据,包括一些索引数据,有助于了解存储对象的内容。

(3)只需通过文件指纹值即可在网络中查找到文件。

(4)通过去中心化的命名系统(IPNS),网络中每个文件均拥有一个易读取的别名,使用者可更方便地找到目标文件。

1.1.2 IPFS优势

IPFS搜索方式与传统HTTP协议有本质区别,用户通过该协议可直接搜索到目标内容,无需经过第三方节点。当用户向IPFS请求某个Hash值時,即对应某个文件,IPFS可通过一个分布式Hash表,快速找到拥有数据的节点,然后经过Hash值校验,判断查找到的数据是否为目标数据。相比于传统HTTP协议,IPFS访问和下载速率更快,数据更具安全性,隐私性更强,且可有效减少数据冗余,节省存储空间。

1.2 区块链技术

区块链是比特币的底层技术,最早出现在2008年由中本聪[2]发表的《比特币:一种点对点式的电子现金系统》中,该文阐述了一种去中心化的、无需第三方机构的分布式交易系统,且该理论实践性已经被2009年运行至今的比特币证明。区块链是一连串以时间顺序相连接的区块组成的数据,运用了密码学及计算机相关技术,具有去中心化、匿名性、安全可信等特点。每个区块包含区块头、区块体,区块头中含有上一区块的散列值、时间戳、计算难度、随机数、默尔克根;区块体则包含多笔交易组成的一棵默尔克树,使用该结构最终得到该区块体的唯一默尔克根。每隔一段时间,区块链将产生一个新的区块,用于记录新的交易。区块的产生由全网算力和计算难度决定,新计算出的区块节点拥有该区块记账权,同时也会获得一定奖励。

1.3 智能合约

基于区块链的智能合约技术依赖于去中心化和安全可信的计算机代码,可在计算机系统自动执行程序并保证准确执行完成任务。所有参与方就合约中内容达成一致,并签署合约,发布于区块链中,系统自动完成合约启动与执行。因此智能合约具有去中心化、自治、防抵赖等特点。智能合约不仅使区块链底层数据具有可编程性,并且还可封装区块链中各种复杂的行为,为建立区块链上层结构提供强大助力。由此可知,智能合约使区块链的应用更加完善,应用场景更加多样。

智能合约创建及执行过程为:①多个节点一同参与签订智能合约;②合约通过P2P网络扩散并记录于区块链中;③智能合约在区块链上自动执行。

2 系统框架设计

基于IPFS、区块链技术,本文设计一种不基于客户端和中心化主机之间信任的云存储模型,该模型整体结构如图1所示。首先,在客户端计算机向云计算机传输文件前,必须对所有客户端私有数据进行加密,然后通过IPFS网络协议进行存储与通信。平台设计供用户使用的接口,用户通过该接口安全地从网络上传和下载文件,同时该接口也可帮助用户生成用于加密的私钥。文件被加密后,会得到文件的SHA_256[16]散列值,它既是文件唯一标识符,同时也用于文件存储验证。在该系统中,只有用户自身拥有文件解密密钥。因此攻击者即使知道文件的存在,也无法验证网络文件内容。由于文件在传输前已加密,可抵抗中间人攻击[17-18]。在文件被存储完成之后,会在区块链上写入文件存储记录,该记录永久存在,通过该记录可实现一个脱离中心化的可信任系统。为保证平台交易公正性,在系统中设置节点之间的智能合约,该智能合约运行于区块链之上,自动执行,通过读取区块链关于文件存储的信息,进行相应判断,给出公正的交易结果。

该系统包括服务提供方、服务消费方、IPFS网络和区块链网络。服务提供方负责提供硬件设施,即内存空间和服务器,服务提供方可将自己的信息发布于该平台上以提供服务;服务消费方首先在本地客户端进行文件加密操作,加密完成之后,将文件上传至该平台,系统根据消费方存储文件大小及存储文件的时间,智能地分配给对应服务提供方进行存储。参与交易的节点均需缴纳一定押金,系统会通过数字签名、智能合约技术在服务消费方和服务提供方之间建立制约条件,签订智能合约。任何一方违反合约内容,都将使合约失败,并受到公平的处罚,若双方均完成合约内容,则认为交易成功。合约内容由平台自动生成并执行,无任何第三方介入。对于该平台,任意拥有存储空间的节点均可申请加入,因此该平台也起到充分利用存储空间的作用,可有效利用空闲资源。

3 系统核心模块

3.1 IPFS网络文件上传与加密

在以往的云存储平台中,系统结构往往具有中心化的特点,网络结构则通常是星型拓扑结构,若中心服务器出现问题,用户将无法访问到文件。中心化的结构也容易受到攻击者攻击。与此同时,服务器上存储的文件量随着时间推移会变得非常大,容易出现文件冗余的情况,既造成资源浪费,又降低了文件查询速度。本系统将IPFS应用于文件存储系统中,利用全网节点组成一个共享网络,得益于IPFS特点组成了一个分布式文件存储系统。为了确保文件存储隐私性,在文件上传之前,系统用户在本地通过自己的密钥将文件进行加密,这样,即使文件被网络上的攻击者或其他人获取,在没有私钥的情况下,也无法获取文件内容,从而起到保护文件隐私性的作用。

系统采用对称加密算法AES[19-20]对文件进行加密,用户可通过本地客户端获得自己的私钥,或自定义生成私钥。假设用户私钥是K,明文是M,密文是C,加密函数为E,解密函数为D,则它们之间转换关系为C=E(M,K),M=D(C,K)。

3.2 文件存储验证方案

文件存储验证方案是服务提供者向服务消费方证明其所存数据完整性的依据。每进行一笔交易后,该笔交易信息将写入区块链中。本文方案区块结构如图2所示。

若将数据永久存储在区块链中,将导致区块链膨胀,区块链将迅速扩展到无法管理的大小。因此通过存储一个包含数据元数据的简单交易解決该问题,系统将版本号、时间戳、文件大小、文件散列值、文件在IPFS网络中存储地址、签名信息存储到一笔交易中。交易信息实例如表1所示。

无论上传的文件大小如何,样例元数据将占用大约360字节的信息,将每一笔交易都加入到区块中去。每个区块分为块头( Block Header)及块体(Block Body),块头保存的是前一区块计算得到的Hash值、时间戳、默尔克根,块体则负责保存由交易组成的默尔克树。根据默尔克树及哈希函数特性可知,文件一旦经过任意修改,得到的默尔克根将与原来的值不同,因此在该系统中,全网节点可以使用文件的Hash值在区块链上完成文件有效性验证。

3.3 智能合约

本文方案含有服务提供者Server和服务消费者User两大角色。服务提供者需提供存储空间,同时声明其服务能力,包括存储时间和空间;服务消费者上传加密文件,并声明其想要存储的时间。两者之间通过构造智能合约完成交易,保证公平性。合约包括的内容有:合约标识Flag、合约构建的时间Tbuild、服务消费者存储服务押金Cstore、服务提供者存储服务押金C server、服务提供的时长Tserver存储合约押金转账时限Ttrans、存储证明返回时限Tcer。其中合约逻辑伪代码为:

4 系统安全性分析

(1)数据安全性。本文系统通过IPFS网络存储文件,用户将文件在本地经过私钥加密后再上传。因此,即使系统文件被攻击者获取,攻击者在没有私钥的情况下也无法获取文件内容。同理,即使服务提供者泄漏了文件,文件内容也不会被他人看到,该系统可充分保证文件隐私性。

(2)伪造存储问题。服务提供者通过伪造其存储能力获取利益,因此本文系统对该问题设置了押金,押金与其声明的存储能力相对应。服务提供者对其假冒的存储交易无法给出有效的存储证明,并会损失相应押金,故该系统可预防伪造存储的问题。

5 结语

本文探讨了传统云存储的不足与缺陷,分析了区块链在分布式云存储中的应用,基于IPFS、区块链技术设计了一种安全可加密的分布式云存储系统。该系统采用IPFS技术实现分布式存储网络,采用用户数据本地加密,确保数据隐私性;采用基于区块链的文件存储验证机制,保证存储交易可公开验证;采用智能合约技术设置针对数据存储的奖惩方案,保证平台交易公平性。然而本文系统数据存储受网络单个节点性能限制,没有顾及数据存储效率和容错性。因此,下一步将着力研究高效率和高容错的分布式云存储模型。

参考文献:

[1]范运东,吴晓平,石雄.基于信任值评估的云计算访问控制模型研究[J].信息网络安全,2016(7):71-77.

[2]

NAKAMOTO S.Bitcoin:a peer-to-peer electronic cash system [EB/OL]. https: //bitcoin.org/hitcoin.pdf.

[3] 袁勇,王飞跃.区块链技术发展现状与展望[J].自动化学报,2016,42(4):481-494.

[4] 袁勇,倪晓春,曾帅,等.区块链共识算法的发展现状与展望[J].自动化学报,2018,44(11):2011-2022.

[5]沈鑫,裴庆祺,刘雪峰.区块链技术综述[J].网絡与信息安全学报,2016,2( 11):11-20.

[6] 贺海武,延安,陈泽华.基于区块链的智能合约技术与应用综述[J].计算机研究与发展,2018,55( 11):2452-2466.

[7]马春光,安婧,毕伟,等.区块链中的智能合约[J].信息网络安全,2018( 11):8-17.

[8] 欧阳丽炜,王帅,袁勇,等智能合约:架构及进展[J].自动化学报,2019,45(3):445-457.

[9] 曹迪迪,陈伟.基于智能合约的以太坊可信存证机制[J]。计算机应用,2019, 39( 4):1073-1080.

[10] WILKINSON S,BOSHEVSKI T. BRANDOF J,et al. Storj:apeer-to-peer cloud storage network[ EB/OL]. https: //s-torj.io/storj. pdf.

[11]

VORICK D, CHAMPINE L.SIA: simple decentralized storage [EB/OL]. https: //sia.Tech/sia.pdf.

[12]

PROTOCOL LABS. Technical report: filecoin-a decentralized stor-age nenvork[ EB/OL]. https: //filecoin.io/.

[13]

PATSAKIS C, CASINO F.Hydras and IPFS:a decentralised play-ground for malware[J].International Journal of Information Security,2019,18(6):787-799.

[14]

BEN-SASSON E, CHIESA A.GENKIN D, et al. Snarks for C:verify-ing program executions succinctly and in zero knowledge [M]. Hei-delberg: Springer Berlin Heidelberg, 2013.

[15] 黑一鸣,刘建伟,张宗洋,等.基于区块链的可公开验证分布式云存储系统[J].信息网络安全,2019(3):52-60.

[16] 高杰.SHA256加密算法在比特币中的关键作用研究[J].纳税,2017(28):142.

[17]邓真,刘晓洁.HTTPS协议中间人攻击的防御方法[J].计算机工程与设计,2019,40(4):901-905.

[18]王立彦.HTTPS协议中间人攻击的实现与防御[D].沈阳:东北大学,2011.

[19] 高家奇,李斌勇,廖怀凯,等.高级加密AES算法研究及性能分析[J].网络安全技术与应用,2019(10):28-30.

[20] 张文锦,周荣,高燕,等.基于AES算法的文件加密[J].软件导刊,2017, 16(6):180-182.

(责任编辑:江艳)

基金项目:国防预研基金项目( CF217040406004)

作者简介:郭叶斌(1994-),男,杭州电子科技大学通信工程学院硕士研究生,研究方向为信息安全;徐欣(1975-),男,博士,杭州电子科技大学通信工程学院教授、硕士生导师,研究方向为信息安全、固态硬盘加密。

猜你喜欢
智能合约区块链
农产品供应链金融信用体系框架设计
开放导报(2017年6期)2017-12-22 14:24:30
基于区块链技术的去中心化数字出版平台研究
出版科学(2017年6期)2017-12-09 07:21:42
区块链技术在互联网保险行业的应用探讨
保险企业的区块链技术应用方向选择研究
区块链技术在金融领域的应用与前景研究
中国市场(2016年32期)2016-12-06 11:21:13
区块链技术的应用价值分析
商情(2016年40期)2016-11-28 11:24:12
“区块链”的苟且、诗和远方
基于区块链技术的数字货币与传统货币辨析
企业导报(2016年19期)2016-11-05 18:12:43
区块链技术在会计中的应用展望
会计之友(2016年17期)2016-11-02 16:05:15
智能合约与金融合约
商(2016年6期)2016-04-20 17:50:36