一种基于联盟链的文旅数据共享溯源方法及系统

文档序号:33038289发布日期:2023-01-24 20:38阅读:25来源:国知局
一种基于联盟链的文旅数据共享溯源方法及系统

1.本发明涉及联盟链应用技术领域,特别是涉及一种基于联盟链的文旅数据共享溯源方法及系统。


背景技术:

2.当前,以数据驱动文化和旅游振兴的新业态正在形成。在文旅领域,每天都会产生大量的游客消费数据、体验数据等文旅数据,这些文旅数据体量巨大,反哺景区和服务提供商时价值极高。虽然基于区块链对数据进行共享是可行的,但是由于文旅数据自身的特性,可以直接拿来进行共享的基于区块链的策略很少,而且文旅数据是有价值数据,这些文旅数据被篡改或者被泄露所带来的危害是巨大的。
3.基于此,亟需一种基于联盟链的文旅数据共享溯源方法及系统。


技术实现要素:

4.本发明的目的是提供一种基于联盟链的文旅数据共享溯源方法及系统,能够高效、稳定的解决文旅数据的共享和溯源问题,推动文旅领域的文旅数据共享。
5.为实现上述目的,本发明提供了如下方案:
6.一种基于联盟链的文旅数据共享方法,所述共享方法包括:
7.第一节点将文旅数据上传至星际文件系统,并接收由所述星际文件系统对所述文旅数据进行计算所得到的第一摘要数据;所述第一节点为联盟链的任意一个节点;
8.所述第一节点将所述第一摘要数据上传至所述联盟链;
9.第二节点向所述第一节点发起交易,获取所述第一摘要数据,以共享所述文旅数据;所述第二节点为联盟链的除所述第一节点之外的其他节点。
10.在一些实施例中,所述第一摘要数据为所述星际文件系统对所述文旅数据进行哈希计算所得到的哈希编码。
11.在一些实施例中,在第一节点将文旅数据上传至星际文件系统后,所述共享方法还包括:所述第一节点还接收由所述星际文件系统返回的所述文旅数据在所述星际文件系统中的存储地址,并将所述存储地址上传至所述联盟链;在第二节点向所述第一节点发起交易后,所述第二节点还获取所述存储地址,根据所述存储地址从所述星际文件系统中调取所述文旅数据。
12.在一些实施例中,所述第一节点和所述第二节点对所述文旅数据进行修改,产生操作记录。
13.一种基于联盟链的文旅数据溯源方法,所述溯源方法包括:
14.在利用上述的共享方法共享文旅数据后,获取联盟链的所有节点对所述文旅数据进行操作所产生的操作记录;
15.将所有所述操作记录按照时间顺序进行排列,得到溯源结果;
16.将所述溯源结果上传至星际文件系统,并接收由所述星际文件系统对所述溯源结
果进行计算所得到的第二摘要数据;
17.将所述第二摘要数据返回至提出溯源请求的第三节点。
18.在一些实施例中,在得到溯源结果之后,将所述溯源结果上传至星际文件系统之前,所述溯源方法还包括:
19.对所述溯源结果进行加密,得到加密后溯源结果和主密钥;
20.对所述主密钥进行分割,得到多个子密钥;所述子密钥的个数和与上传所述文旅数据的第一节点进行交易的第二节点的个数相同;
21.将所述子密钥分别发送至所述第二节点,并销毁所述主密钥;每一所述第二节点对应一所述子密钥;
22.判断提出溯源请求的第三节点是否具有溯源权限;若n个所述第二节点同意所述第三节点的溯源请求,则所述第三节点具有溯源权限;
23.若有,则利用n个所述第二节点对应的子密钥重构得到所述主密钥,并利用重构得到的所述主密钥对所述加密后溯源结果进行解密,得到所述溯源结果。
24.在一些实施例中,在将所述第二摘要数据返回至提出溯源请求的第三节点之后,所述溯源方法还包括:若n个所述第二节点中的任意一个第四节点提出溯源请求,则将所述第四节点的溯源请求转发至所述第三节点;所述第三节点将所述第二摘要数据传输至所述第四节点。
25.在一些实施例中,在所述第三节点将所述第二摘要数据传输至所述第四节点之前,所述第三节点利用重加密方法对所述第二摘要数据进行加密,得到加密后数据,并以所述加密后数据作为新的第二摘要数据。
26.一种基于联盟链的文旅数据共享溯源系统,所述共享溯源系统包括:链下存储层、共享计算层和用户交互层;
27.所述链下存储层用于将文旅数据上传至星际文件系统,并接收由所述星际文件系统对所述文旅数据进行计算所得到的第一摘要数据,将所述第一摘要数据上传至所述联盟链;
28.所述用户交互层用于完成联盟链的节点之间的交易过程,获取所述第一摘要数据,以共享所述文旅数据;
29.所述共享计算层用于记录联盟链的节点对所述文旅数据的操作,产生操作记录;
30.所述用户交互层和所述共享计算层还用于接收联盟链的节点提出的溯源请求,调用所述联盟链的智能合约执行上述的溯源方法。
31.在一些实施例中,所述联盟链包括上链和下链;所述上链用于存储所述第一摘要数据,还用于存储所述文旅数据在所述星际文件系统中的存储地址;所述下链用于存储第二摘要数据。
32.根据本发明提供的具体实施例,本发明公开了以下技术效果:
33.本发明用于提供一种基于联盟链的文旅数据共享溯源方法及系统,第一节点将文旅数据上传至星际文件系统,并将由星际文件系统对文旅数据进行计算所得到的第一摘要数据上传至联盟链,第二节点向第一节点发起交易,获取第一摘要数据,以共享文旅数据,在共享文旅数据后,获取联盟链的所有节点对文旅数据进行操作所产生的操作记录,产生溯源结果,将溯源结果上传至星际文件系统,并将由星际文件系统对溯源结果进行计算所
得到的第二摘要数据返回至提出溯源请求的第三节点,从而能够高效、稳定的解决文旅数据的共享和溯源问题,推动文旅领域的文旅数据共享。
附图说明
34.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
35.图1为本发明所提供的技术方案概览示意图;
36.图2为本发明所提供的共享算法框架示意图;
37.图3为本发明所提供的文旅数据的数据结构示意图;
38.图4为本发明所提供的上链功能实现示意图;
39.图5为本发明所提供的溯源信息认证查询示意图;
40.图6为本发明所提供的共享方法的方法流程图;
41.图7为本发明所提供的溯源方法的方法流程图;
42.图8为本发明所提供的上链测试结果示意图;
43.图9为本发明所提供的下链测试结果示意图;
44.图10为本发明所提供的系统稳定性测试结果示意图。
具体实施方式
45.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
46.本发明的目的是提供一种基于联盟链的文旅数据共享溯源方法及系统,能够高效、稳定的解决文旅数据的共享和溯源问题,推动文旅领域的文旅数据共享。
47.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
48.在区块链用于数据共享这一方面,虽然这种分布式网络的特性保证了数据的安全性,但是节点之间互相平等的特性,也容易产生恶意节点泄露或者篡改数据的隐患。本发明针对现有区块链共享数据和区块链数据安全两个研究方向展开了深入研究,如下。
49.(1)区块链共享数据
50.现有研究构建了追踪农业数据的双链系统,通过区块链与星际文件系统的结合对农业数据的整体存储效率进行了一定的优化,试图利用区块链的不可篡改性这一特征达到数据保密的目的,但是由于公有区块链上面节点数据的公开性,忽略了恶意节点对数据进行篡改或者泄露的风险。而且农业数据自身的特征是体量比较小,而文旅数据因为有视频、音乐等类型的数据,其体量比较大,所以现有研究解决文旅数据共享是存在问题的。
51.也有纯理论的研究提出了全新的安全机制,选用了流量融合聚合的算法,通过减少恶意流量,从而达到保护区块链的目的,但是这种策略的弊端也很明显,就是需要有强有
力的网络服务器去监控整个系统的运行,一旦有若干个节点宕机,整个系统的稳定性便得不到保证。本发明所提出的文旅数据共享是需要落地执行的,所以对于稳定性的要求极高,该方案显然不适合。
52.也有学者提出了在私有链上建立私有的数据框架,并且对数据进行压缩以提高区块链上面的数据管理效率,这个方案在私有链上是可行的,但是在数据压缩过程中,数据的安全完全得不到保证。所以这个方案既不适合文旅数据这种需要在联盟节点之间共享的数据类型,也不适合保密性较强的数据的传输和管理。
53.(2)区块链数据安全
54.为了解决智能电网传输中双边隐私保护的问题,学者基于数据分段加密和环签名等技术进行了研究,该项研究保证了,如果在区块链系统中至少有两个节点是诚实节点,那么便不会存在数据泄露和身份泄露的情况。也有学者为了提高区块链的鲁棒性和安全性,提出了一种惩罚恶意节点和奖励诚实节点的策略,通过激励的形式寻求多方共同维护区块链系统,以保证其隐私性和安全性。另有部分学者利用双链存储方式和再加密技术共享数据,通过共识算法获取较多同意节点支持的数据,另外针对诚实节点和恶意节点的公平性展开研究,通过智能合约构造惩罚机制。
55.上述研究背景的存在证明基于区块链对数据进行共享是可行的,但是由于文旅数据自身的特性,对文旅数据的共享和溯源存在下述三个问题,为推动文旅领域的文旅数据共享,本发明提出一种基于联盟链的文旅数据共享溯源方案,从解决这三个问题的层面来解决文旅数据共享时遇到的难题,具体的,三个问题以及其对应的解决方案如下:
56.(1)文旅数据共享问题
57.文旅数据体量巨大,不适合全量存储在区块链上。本发明采用“链上链下”结合存储方式:对原始文旅数据在星际文件系统链下存储,对摘要数据上链存储,最终以摘要数据的形式对文旅数据进行共享,接受共享方可以从链下提取原始文旅数据。
58.(2)文旅数据溯源问题
59.文旅数据商业价值极高,有可能在共享过程中出现数据被篡改和数据被泄露的风险。本发明通过利用具有防篡改和日志化的区块链技术,通过对文旅数据进行加密计算和只能基于联盟链共享的策略,以及所设计的文旅数据溯源手段解决数据面临的风险。
60.(3)文旅数据安全问题
61.文旅数据是非实体性价值资产,有可能面临非法入侵等风险。本发明通过引入安全协议的策略,有效解决了文旅数据在共享过程中的安全问题。
62.本发明提出了一种基于联盟链的文旅数据共享溯源方案,通过使用联盟区块链和星际文件系统对体量庞大的文旅数据进行共享和溯源,在增加联盟区块链存储空间的同时,采用上链和下链相结合的方式引入安全协议和智能合约,高效地、稳定地解决文旅数据的共享和溯源问题。经仿真验证,本发明提出的一种基于联盟链的文旅数据共享溯源方案是高效的,可以为构建良好的数字文旅创新生态提供思路。
63.本发明的核心是将联盟链和安全协议创新的交叉研究,从而解决文旅数据共享过程中遇到的共享、溯源和安全三大问题。基于此,本发明将从共享算法框架、溯源功能实现和安全函数研究三个方面进行技术方案的定制,如图1所示,其为技术方案概览示意图,以下则结合图1对本发明的技术方案的原理予以介绍:
64.(1)共享算法框架
65.共享算法框架如图2所示,本发明基于交叉研究策略创新地将共享算法框架分为链下存储层、共享计算层和用户交互层。在链下存储层和共享计算层中,本发明创新地引入安全协议,即在链下存储层,对文旅数据进行数据加密计算,提升数据的保密等级;在共享计算层,对联盟链中的智能合约进行安全函数加密,并创新地在该共享计算层分发密钥,进一步提升算法安全性;在用户交互层,联盟链的节点可以针对文旅数据发起共享交易并完成共享。
66.1)链下存储层
67.如图3所示,本发明所研究的文旅数据包括视频、图像和语音等数据类型,自身体积非常大,而区块链一个区块一般是1mb左右,故其庞大的体量完全不适合在只能存储小体量数据的区块链上面直接存储。基于这个问题,本发明创新地提出了“链上链下”结合存储方式:对体量庞大的文旅数据在星际文件系统进行链下存储,这种存储方式对存储数据的体量没有限制,很大程度提升了对文旅数据存储的支撑性;对文旅数据所提取的摘要数据进行上链存储,摘要数据以基于智能合约和星际文件系统所返回的hash编码的形式呈现,体量很小,在存储环节所占用存储资源非常小,本发明规定文旅数据最终以摘要数据的形式进行共享等后续操作,接受共享方可以通过摘要数据进行共享,并且最终从链下提取原始的文旅数据进行使用。除此之外,摘要数据还可以作为共享方的溯源证明和数据校验证明。
68.其中,在将文旅数据保存到星际文件系统中后,星际文件系统会自动对文旅数据进行计算,从文旅数据中提取摘要数据,并且也会给出文旅数据在星际文件系统中相应的存储地址。该摘要数据可以代表文旅数据,在联盟链中流转,摘要数据可为一串在星际文件系统中对文旅数据进行hash计算所得到的hash编码,这串hash编码在联盟链中就代表原始的文旅数据。共享过程是共享摘要数据,实质上等同于共享hash编码,本发明将通过联盟链节点之间交易的形式进行摘要数据的传输,达到共享的目的。举例而言,a节点拟获取b节点的某项文旅数据,该项文旅数据因为太庞大无法直接在联盟链中共享,b节点将其上传至星际文件系统得到摘要数据,并将摘要数据上传到联盟链中,进而发起和a节点之间的交易,经过联盟链的成员节点认证该笔交易之后,a节点获得交易数据,交易数据包含摘要数据以及文旅数据在星际文件系统中的存储地址,a节点便可通过对应的存储地址,去星际文件系统下载,以获得该项文旅数据。当然,也可以是b节点将摘要数据上传至联盟链后,广播通知联盟链的各个节点,各个节点可根据需要选择是否与b节点进行交易。
69.2)共享计算层
70.共享计算层向下从链下存储层得到文旅数据的摘要数据,向上为联盟链节点提供数据支撑。在共享计算层中,软件开发工具包和智能合约共同完成了交易节点对共享的文旅数据的查询和修改等操作,除此之外,联盟链节点的登录认证、节点的密钥存储和共享数据溯源等都在共享计算层实现。
71.其中,登录认证是用户加入联盟链,成为联盟链节点的认证过程。用户先在共享计算层中进行注册,接收系统发送的公私钥对,用户再将自己的公钥和身份信息发送至联盟链中的各个节点,如果有预定比例的节点同意该用户加入联盟链,则该用户成为联盟链中的一个节点,身份信息可为该用户的真实身份,比如某某博物馆,预定比例可为1/2,2/3等。
节点的密钥存储是指共享计算层存储联盟链的每个节点的公钥。
72.3)用户交互层
73.用户交互层主要负责联盟链节点的认证和节点之间对于文旅数据的共享过程。除此之外,数据共享方可以在用户交互层对自己共享出去的数据进行溯源等操作,还可以进行数据校验等操作以检查数据是否被篡改或是否泄露等。
74.其中,联盟链节点的认证是指对提出交易的联盟链节点进行身份认证,通过身份认证的节点才可以与联盟链的其他节点进行交易。同时,两个节点的交易过程还需要经过联盟链的其他节点的认证,在预定比例的节点认证通过后,才可以完成该交易过程。本发明的交易过程一般是指a节点向b节点提出获取b节点上传的摘要数据的请求,完成交易过程即指a节点获得摘要数据。数据校验是通过联盟链的特性验证摘要数据在共享或者交易的过程中,是否有非法节点对其进行篡改,或者是否有非法节点对摘要数据进行了访问,如果有篡改和访问的记录,联盟链日志将会全部如实自动记录,并且该记录也会实时上链,无法被更改。
75.需要说明的是,共享计算层和用户交互层均可完成溯源,但是提出溯源请求的节点不一样,用户交互层可以进行溯源的是数据共享方,也就是谁共享出去的摘要数据谁才可以溯源,共享计算层可以溯源的是数据共享方和接受数据共享方,也就是不仅谁共享出去的摘要数据谁可以溯源,接收数据的一方也可以进行溯源。
76.(2)溯源功能实现
77.现有的基于区块链对保密性较强的数据进行共享和溯源的实现方式虽然已经实现了高效的数据查询等功能,但是均不够完善,如果直接将数据记录在公有链或者私有链,或者利用跨链技术但是没有加密措施对数据进行隔离加密,该策略对文旅数据这种保密性较高的数据处理是低效的。
78.基于上述考虑,本发明创新地构建了上下两层区块链。上层区块链(上链)负责两个模块:存储文旅数据经星际文件系统存储所产生的摘要数据;存储文旅数据与其对应的摘要数据之间的联系,该联系是指通过对文旅数据进行计算,可以得到摘要数据,而摘要数据又可以在联盟链中标识该文旅数据,此处的联系具体可为摘要数据与文旅数据的对应关系,以及文旅数据在星际文件系统中的存储地址。下层区块链(下链)负责一个模块:存储溯源链构建完成之后代表文旅数据加密信息的摘要数据(以hash编码的形式呈现)。
79.1)上链功能与实现
80.上链的核心功能是存储联盟链中不同节点各自的文旅数据在星际文件系统中存储所返回的摘要数据(以hash编码的形式呈现)。摘要数据还包括数据名称、数据版权持有方等。文旅数据共享方(a节点)和文旅数据接受共享方(也即文旅数据获得方,b节点)之间建立的联系也会被存储在上链上,a节点和b节点的联系可为a节点和b节点之间的共享连接关系,也即二者之间的交易。上链的上述两项存储功能是整个方案的重要组成部分,其中摘要数据完全可以替代文旅数据作为标识,进行链上的交易、共享等一系列操作。上链功能实现示意图如图4所示。
81.2)下链功能与实现
82.下链的核心功能是实现溯源功能。下链对上链所获得的所有数据进行有序编译,通过软件开发工具包等技术,实现文旅数据共享之后的溯源功能。溯源过程中,所有参与某
一项文旅数据共享的联盟链节点对该数据进行过的操作均要被收集分析,比如某节点在某时间对某交易进行了认证、某节点在某时间对文旅数据进行了修改等操作,并且通过时间戳对所有操作进行排列,一般是按照时间先后顺序进行排列,得到溯源结果,在得到溯源结果之后,上传至星际文件系统通过加密计算得到溯源结果摘要数据,将溯源结果摘要数据反馈到溯源操作发起方,溯源操作结束。
83.(3)安全函数研究
84.为了提升算法的执行效率,本发明创新地提出安全函数研究,结合智能合约和软件开发工具包,实现信息的存储和关联操作,以及调用联盟链产生的数据信息辅助组成函数。由于智能合约运行在联盟链内部,智能合约天然的优势可以结合联盟链底层架构和链上运行的算法。本发明将智能合约分别写入上链和下链,并且使用软件开发工具包调用智能合约中的函数获取算法执行结果,从而降低联盟链上的计算负载,提升算法的效率。上述过程中,智能合约规定了联盟链中参与文旅数据共享的节点信息认证,文旅数据摘要数据初始化,以及数据溯源等操作。软件开发工具包实现对联盟链上数据的操作,以及溯源数据的生成等。本发明定义的重要函数如表1所示。
85.表1重要函数
[0086][0087]
本发明假设联盟链中共有认证节点m个,文旅数据共享方节点i将其共享的原始文旅数据datai经过加密算法处理上传到链下的星际文件系统进行存储,并且获得相应的可以上链进行共享等后续操作的摘要数据hashi(以hash编码形式呈现),如下式所示。
[0088]
fun_hash{ipfs[fun_key(datai)]}=hashi;
[0089]
当联盟链节点j和节点i产生共享等交易,则两个节点之间建立了hash联系,随即也产生了溯源数据,如下式所示。
[0090]
fun_hash(hashi+hashj);
[0091]
如果要建立溯源链(即溯源结果),则需要更多的溯源数据,本发明假设有n项该溯源数据,而且为了进一步提升算法的安全性,创新地提出了密钥加密机制,即也就是生成密钥对溯源信息加密,进而得到主密钥master_keyn,如下式所示。
[0092]
fun_key{fun_get[fun_hash(hashi+hashj)*n]}=master_keyn;
[0093]
根据本发明在智能合约中制定的主密钥共享机制,如果存在t个联盟链节点和节点i产生了hash关联,则随机选择素数prime对主密钥进行分割以向t个不同的联盟链节点分发,分发的子密钥规定为subkey,t个联盟链节点所组成的集合为node,则子密钥分发公式如下式所示。
[0094]
subkey(nodei)=gf
t-1
node
t-1
+gf
t-2
node
t-2
+...+gf1node1+f(0);
[0095]
定义有限群gf(prime),其中gf1,...,gf
t-1
∈gf(prime),且第t-1个有限群节点gf
t-1
≠0。t个联盟链节点分别为:node0,node1,...,node
t-1
,f(0)为第0个联盟链节点的子密钥,其通常为已知值,利用上式计算得到子密钥之后,将子密钥subkey(nodei)发送给第i个联盟链节点。一旦子密钥全部创建完毕,算法规定主密钥将自动销毁。
[0096]
如果有查询溯源信息的联盟链节点j,需要查询联盟链节点i共享的文旅数据的溯源信息,需要有至少k个已认证联盟链节点(已认证联盟链节点即指具有子密钥的联盟链节点)提供自己的子密钥,然后智能合约将自动通过这k个子密钥重构主密钥master_newkeyk,如下式所示。
[0097][0098]
其中,master_newkeyk为主密钥;k为k个已认证联盟链节点,x=1,2,...,k;master_key
x
为第x个已认证联盟链节点的子密钥;nodej为第j个联盟链节点,nodei为第i个联盟链节点,i=0,1,...,t-1;j=0,1,...,t-1。
[0099]
显然,当联盟链中节点j需要查询某一文旅数据的共享溯源信息时,节点j发出的查询请求至少会被k个已经经过认证的联盟链节点接收到,当且仅当这k个已认证联盟链节点都同意节点j的查询请求时,节点j才可以获得溯源信息的查询权限。若节点j获得了溯源信息,且这k个帮助其认证的节点中的某节点r也想查看该溯源信息,节点j可以直接通过重加密技术对溯源信息进行加密,然后发送给节点r,不再需要发起大规模认证。溯源信息认证查询过程如图5所示。
[0100]
安全函数是对智能合约中的函数进行改进,溯源的过程是利用智能合约自动完成的,所以在溯源的过程中会用到安全函数。同时需要说明的是,联盟链所进行的任何操作,包括上链存储、溯源和向节点发送结果均是利用提前在联盟链上部署的智能合约来完成的。
[0101]
基于上述原理,本发明形成了基于联盟链的文旅数据共享溯源的具体方案,如下述三个实施例所示。
[0102]
实施例1:
[0103]
本实施例用于提供一种基于联盟链的文旅数据共享方法,如图6所示,所述共享方法包括:
[0104]
s1:第一节点将文旅数据上传至星际文件系统,并接收由所述星际文件系统对所
述文旅数据进行计算所得到的第一摘要数据;所述第一节点为联盟链的任意一个节点;
[0105]
优选的,在第一节点将文旅数据上传至星际文件系统之前,本实施例的共享方法还包括:第一节点对文旅数据进行加密,得到加密后的文旅数据,并将加密后的文旅数据作为新的文旅数据,上传至星际文件系统,能够提高文旅数据的安全性。加密方法可为现有的任意一种加密方法。
[0106]
第一摘要数据为星际文件系统对文旅数据进行哈希计算所得到的哈希编码。
[0107]
s2:所述第一节点将所述第一摘要数据上传至所述联盟链;
[0108]
s3:第二节点向所述第一节点发起交易,获取所述第一摘要数据,以共享所述文旅数据;所述第二节点为联盟链的除所述第一节点之外的其他节点。
[0109]
在第一节点将文旅数据上传至星际文件系统后,本实施例的共享方法还包括:第一节点还接收由星际文件系统返回的文旅数据在星际文件系统中的存储地址,并将存储地址上传至联盟链;在第二节点向第一节点发起交易后,第二节点还获取存储地址,根据存储地址从星际文件系统中调取文旅数据。
[0110]
同时,第一节点和第二节点还可对文旅数据进行修改,产生操作记录。此外,操作记录还可以包括节点对文旅数据的交易过程的认证操作。
[0111]
实施例2:
[0112]
本实施例用于提供一种基于联盟链的文旅数据溯源方法,如图7所示,所述溯源方法包括:
[0113]
t1:在利用实施例1所述的共享方法共享文旅数据后,获取联盟链的所有节点对所述文旅数据进行操作所产生的操作记录;
[0114]
t2:将所有所述操作记录按照时间顺序进行排列,得到溯源结果;
[0115]
t3:将所述溯源结果上传至星际文件系统,并接收由所述星际文件系统对所述溯源结果进行计算所得到的第二摘要数据;
[0116]
同时,溯源结果可以存储在星际文件系统中,第三节点同时还会获得该溯源结果在星际文件系统中的存储地址,在获得第二摘要数据后,便可基于第二摘要数据和上述存储地址在星际文件系统中获取溯源结果。
[0117]
t4:将所述第二摘要数据返回至提出溯源请求的第三节点。
[0118]
作为一种可选的实施方式,在得到溯源结果之后,将溯源结果上传至星际文件系统之前,本实施例的溯源方法还包括:对溯源结果进行加密,得到加密后溯源结果和主密钥;对主密钥进行分割,得到多个子密钥,子密钥的个数和与上传文旅数据的第一节点进行交易的第二节点的个数相同;将子密钥分别发送至第二节点,并销毁主密钥,每一第二节点对应一子密钥;判断提出溯源请求的第三节点是否具有溯源权限,若n个第二节点同意第三节点的溯源请求,则第三节点具有溯源权限;若有,则利用n个第二节点对应的子密钥重构得到主密钥,并利用重构得到的主密钥对加密后溯源结果进行解密,得到溯源结果,然后执行t3。
[0119]
在将第二摘要数据返回至提出溯源请求的第三节点之后,本实施例的溯源方法还包括:若n个第二节点中的任意一个第四节点提出溯源请求,则将第四节点的溯源请求转发至第三节点,第三节点将第二摘要数据传输至第四节点。
[0120]
为了进一步提高安全性,在第三节点将第二摘要数据传输至第四节点之前,第三
节点利用重加密方法对第二摘要数据进行加密,得到加密后数据,并以加密后数据作为新的第二摘要数据。
[0121]
实施例3:
[0122]
本实施例用于提供一种基于联盟链的文旅数据共享溯源系统,共享溯源系统包括:链下存储层、共享计算层和用户交互层;
[0123]
第一节点与链下存储层进行交互,将文旅数据发送至链下存储层,链下存储层用于将文旅数据上传至星际文件系统,并接收由星际文件系统对文旅数据进行计算所得到的第一摘要数据,将第一摘要数据上传至联盟链。
[0124]
用户交互层用于完成联盟链的节点之间的交易过程,获取第一摘要数据,以共享文旅数据。
[0125]
共享计算层用于记录联盟链的节点对文旅数据的操作,产生操作记录。
[0126]
用户交互层和共享计算层还用于接收联盟链的节点提出的溯源请求,调用联盟链的智能合约执行实施例2所述的溯源方法。
[0127]
本实施例的联盟链包括上链和下链,上链用于存储第一摘要数据,还用于存储文旅数据在星际文件系统中的存储地址,下链用于存储第二摘要数据。
[0128]
基于上述三个实施例,为了验证本发明所提出的基于联盟链的文旅数据共享溯源方案的有效性,引入轻量测试框架通过grpc向联盟链节点发送请求,以期测试出智能合约的真实计算性能。本发明提出了8个联盟链节点进行一次完整的文旅数据共享过程,对该过程中查询联盟链节点信息(fun_query())、上联盟链的数据初始化(fun_init())、数据上联盟链并且建立hash联系(fun_hash())、查询hash信息(fun_query_hash())和查询溯源信息(fun_query_num())进行测试。除此之外,本发明规定测试过程中区块产生的参数为定量,共享过程中的数据传输为变量,最后根据数据传输总量评价算法中智能合约的性能。
[0129]
(1)上链和下链测试
[0130]
如图8所示,针对上链进行的测试结果显示,在大约1000笔交易之前,每秒可交易数量随着交易量的增加呈现出指数级递增,但是在1000笔交易之后,每秒可交易数量趋于稳定。其中上链的数据初始化的每秒可交易数量相比于查询联盟链节点信息、数据上联盟链并且建立hash联系和查询hash信息较多。
[0131]
如图9所示,针对下链进行的测试结果显示,在大约1000笔交易之前,每秒可交易数量随着交易量的增加呈现出指数级递增,但是在1000笔交易之后,每秒可交易数量同样趋于稳定。值得注意的是,下链的数据初始化和查询溯源信息交易每秒可交易数量基本一致,但是交易量达到2000左右的时候,查询溯源信息交易每秒可交易数量有明显的降低,这恰好证明本发明提出的联盟链节点基于重加密技术获取溯源信息时的高效性,即也就是交易量的增加同时提升了兄弟节点已经获取溯源数据,而节点自身可以直接从兄弟节点获取而非再次发起联盟链同意查询的请求,不再过多地发起冗余的交易。
[0132]
综合上述测试结果,本发明提出的基于联盟链的文旅数据共享溯源方案中的智能合约效率是较高的,而且数据处理稳定性较高,完全可以满足文旅数据这种体量庞大的数据的处理和链上共享,系统运行满足要求。在确保数据处理稳定的前提下,本发明还创新地设置系统稳定性测试的实验,对系统整体进行稳定性测试。
[0133]
(2)系统稳定性测试
[0134]
本发明设置多个联盟链节点进行某项文旅数据的共享并进行溯源等操作,从数据共享发起方将文旅数据上传至星际文件系统开始,数据共享接收方将溯源数据通过重加密技术分享给兄弟节点结束,该过程视为一个正常的共享周期。如图10所示,实验结果表明,在测试的300个共享周期内,耗时最久的一次为24秒,耗时最短的一次为16秒,300个周期全部稳定结束,没有发生崩溃和宕机的异常情况,表明本发明提出的基于联盟链的文旅数据共享溯源方案具有很强的稳定性。
[0135]
因为文旅数据是一种特殊类型的数据,使用这些数据的联盟链节点一般是有实体机构做背书的节点,比如科研机构或旅游景区。所以本发明采用了联盟链这样一种区块链形式,对所有加入联盟链的成员节点均进行了验证,只有通过验证的节点才可以加入联盟区块链,进行下一步文旅数据共享的操作。基于这个前提,虽然作恶节点出现的可能性很低,但是会有作恶节点存在的风险,这些节点不会影响算法正常的运行,但是会从中窃取数据。本发明创新地加入了安全协议,解决了这一问题。上述实验结果也可以表明,在加入新的安全协议之后,算法仍然具有较强的稳定性。
[0136]
(3)衍生应用效果
[0137]
本发明提出的一种基于联盟链的文旅数据共享溯源方案不同于其他基于区块链系统的数据共享方案。本发明创新地引入了上链和下链相结合以及引入安全协议的策略,将体量庞大的文旅数据存储和摘要数据查询进行了物理隔离,并且从数据共享和数据溯源两方面展开了研究,文旅数据共享过程中的数据安全问题和保密问题在本发明提出的算法中得到了解决。
[0138]
除了应用于文旅数据共享,本发明创新的思路也为其他类型数据的共享提供了可能性。本发明提出的方案还可以应用于档案保护,音乐版权保护和电影防盗版保护等等。本发明提出的方案保证了任何节点都不会泄露隐私数据以及数据的流动是可追溯的,这个特性同时也为疫情防控中各个节点对数据的采集,保证个人数据的安全,提供了很好的思路。综上所述,本发明提出的方案具有很好的衍生应用效果。
[0139]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0140]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1