基于区块链的数据完整性自审计系统及方法

文档序号:35917944发布日期:2023-11-03 21:13阅读:76来源:国知局
基于区块链的数据完整性自审计系统及方法与流程

本发明属于泛在存储,尤其涉及一种基于区块链的数据完整性自审计系统与方法。


背景技术:

1、泛在存储技术使得用户可以将本地数据外包给远程存储服务商。为确保远程存储服务商可靠地存储数据,需要对数据完整性进行审计。数据可持有性证明(pdp)是一种常见的审计机制,通过挑战-应答响应的方式来完成远程的数据审计,即用户向存储服务商发起一个挑战,存储服务商向用户返回一个证明,向用户证明其完整保存了数据。然而,现有数据审计方案一般采用第三方权威审计机构,这带来两个问题:1)找到完全诚实可信的第三方审计机构代价较大;2)第三方审计机构容易成为系统的瓶颈或单点故障导致的系统不可用。

2、区块链技术具有去中心化、不可篡改、数据可追溯的特点。基于区块链的这些特性,研究人员提出了基于区块链技术的数据完整性审计方案,用区块链代替传统的第三方权威机构,对数据进行审计。将区块链技术与数据完整性验证技术结合既不需要所有节点诚实可信,又避免了单点故障问题,因而基于区块链的数据完整性验证是一项非常有前途的审计方案。

3、利用区块链技术进行数据审计的核心是在区块链上部署智能合约。智能合约可看作是运行在区块链上预置规则、具有状态、条件响应的,可封装、验证、分布式执行,用于完成信息交换、价值转移和资产管理的计算机程序。其具有不可篡改的特性,一旦部署在区块链上,任何人都不能进行修改。

4、而开展基于区块链的数据完整性审计有两个难点:1)智能合约如何设计;2)挑战间隔如何设置。一方面,智能合约是开展数据完整性审计的基础,设计的智能合约既要保证在存储服务商按要求存储文件后可以得到相应的回报,又要保证用户的利益不受损。也就是说,需要及时发现存储服务商未按规定存储数据,同时对这种行为要进行惩罚。另一方面,pdp是随机向存储服务商发起的挑战,对存储服务商返回的证明,挑战验证也是有开销的。从知道数据是否完整的及时性角度来看,需要挑战时间间隔越小越好,但是挑战时间间隔越小,在整个存储周期内的挑战次数就越多,挑战开销就越大。因此,需要平衡挑战成本与知晓数据损坏及时性之间的关系使得用户在能及时知道数据安全性的同时降低审计成本。基于此,本发明提出了一种基于区块链的数据完整性自审计系统与方法。


技术实现思路

1、为解决上述问题,本发明提供了一种基于区块链的数据完整性自审计系统及方法,通过部署在区块链上的智能合约以及设置合适的挑战时间间隔实现数据在存储期限内的自审计,以达到节省审计成本的效果。

2、本发明具体技术方案如下:

3、一种基于区块链的数据完整性自审计系统,包含3个实体,即区块链系统(blockchain system,bs)、数据拥有者(data owner,do)、存储服务提供商(storageservice provider,ssp)。各个实体具体介绍如下:

4、所述的bs是审计实体,审计ssp是否完成do的数据存储。

5、所述的do是有存储需求但本地存储空间不够的用户,其向ssp提供服务费以获得存储服务。

6、所述的ssp是提供存储服务,有较大存储空间的存储运营商,为do提供数据外包存储服务以获得服务费。

7、优选的,区块链系统上部署3种类型的智能合约(sc),所述的sc由do部署,具体包括:存储确认智能合约(scsc),挑战智能合约(cssc)以及完整性验证智能合约(ivsc)。

8、优选的,bs的主要作用如下:

9、(1)生成系统参数;

10、(2)为do、ssp生成密钥;

11、(3)通过scsc接收来自do和ssp计算的标签,完成外包数据存储的确认;

12、(4)通过cssc在存储期限(tlife)内周期的向ssp发送挑战;

13、(5)通过ivsc接收ssp返回的存储证明并对其进行验证,接收和分配来自do,ssp的资金。

14、优选的,do的主要作用如下:

15、(1)在bs上部署智能合约;

16、(2)在区块链网络中发布存储请求,在ivsc中存入存储服务费;

17、(3)在本地完成外包文件的分块并计算对应的标签;

18、(4)将分块后的文件上传至ssp,标签上传至scsc;

19、(5)在区块链网络上查询审计结果。

20、优选的,ssp的主要作用如下:

21、(1)接收来自do的存储请求,在ivsc中存入违约金;

22、(2)存储do上传的数据块并计算对应的标签,将标签上传至scsc;

23、(3)接受来自cssc的挑战,计算相应的存储证明发送至ivsc。

24、另一方面,本发明还提供了一种基于区块链的数据完整性审计方法,其包括初始化阶段、任务发布阶段、存储确认阶段、挑战间隔设置阶段、挑战阶段以及审计阶段共6个阶段。各个阶段具体介绍如下:

25、s1、初始化阶段。do和ssp加入bs并新建钱包账户获得bs为其生成的公私钥对。bs生成用于数据的完整性验证系统参数。do在bs上部署scsc、cssc和ivsc。

26、s2、任务发布阶段。do在区块链系统上广播存储请求寻找合适的ssp。达成一致后do和ssp分别向ivsc中存入约定的服务费、违约金和各自的公钥。

27、s3、存储确认阶段。do上传数据块至ssp并计算对应标签,将标签上传至scsc。ssp存储do上传的数据块并计算对应标签,将标签上传至scsc。scsc判断do和ssp上传的标签是否相等,若相等,则说明ssp已经诚实的存储了do上传的数据,此时do在本地删除原始文件。scsc将标签及对应的数据块索引发送至ivsc,ivsc保存这些数据;否则,do重新发布任务。

28、s4、挑战间隔设置阶段。do收集信息,估计使其总的审计成本最小的挑战时间间隔,并将此间隔发送至cssc。

29、s5、挑战阶段。cssc按照上一步骤得到的挑战间隔,周期性的随机挑选一组数据块,并产生一个随机数,生成挑战信息发送给ssp;cssc还将每次挑战挑选的数据块索引和产生的随机数发送给ivsc。

30、s6、审计阶段。ssp根据cssc发送的挑战计算出相应的存储证明,发送至ivsc。ivsc根据ssp发送的存储证明、存储确认阶段保存的标签以及挑战阶段cssc发送的数据块索引和随机数对数据的完整性进行验证,将审计结果记录在bs上。ivsc对审计结果进行判断,若tlife内审计结果都通过,表明ssp完成了存储任务,将存储服务费和违约金支付给ssp;反之,将存储服务费和违约金支付给do。

31、进一步,所述步骤s1,具体包括以下步骤:

32、s11、do和ssp在加入bs并创建钱包账户后,获得bs为其生成的公私钥对,公钥作为在bs中的账户地址,私钥由用户自己保存。

33、s12、bs产生一个随机数g作为一个循环群的生成元,同时选取两个秘密大素数p和q,计算出n=p*q,将g和n发布在区块链网络中。

34、s13、do在bs中的节点上部署scsc、cssc和ivsc。

35、进一步,所述步骤s2,具体包括以下步骤:

36、s21、do在bs中广播存储请求,包括,任务id、文件索引、文件大小、存储期限tlife、ssp需要支付的违约金以及do愿意支付的服务费等信息。

37、s22、ssp通过区块链系统接收到do的请求并与do达成一致。

38、s23、ssp向ivsc中存入约定好的违约金及自己的公钥,do向ivsc中存入约定好的服务费及自己的公钥。

39、进一步,所述步骤s3,具体包括以下步骤:

40、s31、do在本地将要上传的文件f分为n个数据块mi,1≤i≤n。

41、s32、do为每个数据块计算相应的标签

42、s33、do上传所有数据块{mi}至ssp。

43、s34、do上传标签集{tagi,i}至scsc,其中i为标签所对应的数据块索引。

44、s35、ssp存储do上传的所有数据块{mi*},并计算对应的标签

45、s36、ssp上传标签集{tagi*,i}至scsc。

46、s37、scsc判断全部tagi与tagi*是否相等,若相等scsc将标签集{tagi,i}发送至ivsc保存,do在本地删除原始数据文件。若不等,此次交易结束,do重新发布任务请求。

47、进一步,所述步骤s4,具体包括以下步骤:

48、s41、do收集知道存储失败及时性的单位时间代价c1,ssp出现存储失败的概率分布f(t)=λ-1e-t/λ的参数λ,每次进行挑战的代价c2等信息。

49、s42、do将总的审计成本c建模为挑战间隔tchallenge的函数,具体为:

50、c=λ*c2/tchallenge+c1*tchallenge/2。

51、s43、对上述函数关于tchallenge求导,得到使c最小的tchallenge为

52、s44、设置min(·)为取最小值函数,并将tchallenge发送到cssc。

53、进一步,所述步骤s5,以tchallenge为周期向ssp发起挑战,具体包括以下步骤:

54、s51、cssc随机挑选一组数据块mi进行检查,记π为需要检查的数据块编号的集合,并产生一个对应的随机数r。

55、s52、cssc生成挑战信息chal=<gr(mod n),π>,以tchallenge为周期发送给ssp。

56、s53、cssc发送<r,π>发送至ivsc。

57、进一步,所述步骤s6,具体包括以下步骤:

58、s61、ssp接收到cssc发送的挑战信息chal=<gr(mod n),π>后,依次从π中取出数据块索引i,结合本地保存的数据块mi计算出相应的证明并将π中包含的全部块的proof发送至ivsc。

59、s62、ivsc接收到<r,π>后,依次从π中取出数据块索引i,结合其保存的数据块标签tagi计算出相应的验证vi=(tagi)r(mod n)。

60、s63、ivsc判断π中每一个proofi是否等于vi,输出审计结果0/1,相等(1)则表明ssp完整的保存了数据,反之(0)则没有完整保存数据。

61、s64、ivsc内部设置一个计数器,初始值flag设为1,若审计结果为1,保持不变,若审计结果为0,flag置0;

62、s65、若ivsc内flag一旦为0,说明ssp未能完成存储服务,ivsc向do账户返还其支付的服务费和ssp的违约金,然后结束交易。若到tlife后,flag仍然为1,说明ssp完成存储服务,ivsc向ssp账户返还其支付的违约金和do的服务费,然后结束交易。

63、与现有技术相比,本发明的有益效果如下:

64、本发明通过引入区块链技术和智能合约,满足了数据的去中心化存储和完整性自审计功能;本发明通过对传统pdp方法中的挑战时间间隔进行设置,在满足了用户及时知晓文件是否损坏的同时,还降低了用户的审计成本。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1