一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于区块链技术的智慧城市数据共享方法、设备及介质

2022-07-27 22:30:48 来源:中国专利 TAG:


1.本发明是关于一种基于区块链技术的智慧城市数据共享方法、设备及介质,涉及区块链数据共享技术领域。


背景技术:

2.在智慧城市数据共享过程中数据安全性、数据隐私性、数据完整性一直是比较重要的话题。随着数据管理技术及区块链应用技术的发展,数据共享对数据安全问题提出了更多需求及挑战,如何在保证数据安全隐私的同时实现可追溯地共享所需数据成为研究的热点。
3.传统中心化智慧城市数据共享方案通常存在数据缺乏可信度、数据流流向不明、数据权属不清、数据泄露难以追责等一系列问题,这些问题成为设计智慧城市数据共享系统的最大障碍。
4.在智慧城市数据共享方面,现有技术提出了许多基于云的解决方案,但是基于第三方云服务的可信度值得怀疑并且数据隐私泄露问题频发。


技术实现要素:

5.针对上述问题,本发明的目的是提供在实现智慧城市建设过程中产生的数据能够保证安全及隐私的前提下进行共享的基于区块链技术的智慧城市数据共享方法、设备及介质。
6.为实现上述目的,本发明采取以下技术方案:
7.第一方面,本发明提供的基于区块链技术的智慧城市数据共享方法,包括:
8.设置区块链网络实现对智慧城市数据索引的分布式存储;
9.设置加密算法和代理重加密规则实现智慧城市数据的安全共享;
10.设计基于fabric链码的数据共享平台系统,通过区块链技术和代理重加密技术实现智慧城市数据共享流程。
11.进一步地,设置区块链网络实现对智慧城市数据索引的分布式存储,包括:
12.在智慧城市各单位将数据存储在相对应数据库中后,由智慧城市数据共享平台读取相应数据并在区块链网络所对应的区块中生成数据索引,将数据索引存储到各单位所对应的智慧城市各单位区块中,当在进行数据共享请求操作时再将数据读取到智慧城市数据共享平台后发送给数据请求者。
13.进一步地,设置加密算法和代理重加密规则实现智慧城市数据的安全共享,包括:
14.数据拥有者将数据利用对称密钥加密,在数据请求者请求获取数据时,数据拥有者将相应的数据索引通过代理重加密服务器重加密后发送给数据请求。
15.进一步地,代理重加密规则为:
16.数据拥有者将所需数据索引用公钥加密得到密文;
17.将数据拥有者加密后的密文发送给代理重加密服务器,数据拥有者为代理重加密
服务器计算并生成密钥;
18.用新生成密钥将数据拥有者加密好的密文转化为数据请求者的私钥能够解密的重加密密文;
19.代理重加密服务器将重加密密文发送给数据请求者;
20.区块链数据共享平台发送智慧城市数据,数据请求方解密所需数据索引并与区块链数据共享平台发送数据进行匹配。
21.进一步地,基于fabric链码的数据共享平台包括数据拥有者、数据请求者和代理重加密第三方服务器;
22.数据拥有者是数据的原始持有者,用于将智慧城市数据上传至相应企事业单位数据库,并将其数据索引值上传;
23.数据请求者用于对所需数据进行获取;
24.代理重加密第三方服务器用于负责安全地转换密文,允许用户将加密密文转换为另一种密文形式。
25.进一步地,基于fabric链码的数据共享平台系统包括前端模块、后端模块和区块链模块;
26.前端模块,用于数据相关方通过区块链模块提供上传数据、搜索以及共享数据下载;
27.后端模块,用于提供代理重加密操作及存储数据;
28.区块链模块,用于进行智慧城市各单位区块数据索引的分布式存储和支撑数据共享操作。
29.进一步地,在智慧城市数据共享链中,数据的哈希值在区块链中进行存储,每个块由一个或多个数据索引哈希值组成,区块中信息包括:
30.(1)merkle树根:由智慧城市各单位区块中的所有数据索引哈希值散列构成的merkle树的根;
31.(2)时间戳:创建智慧城市各单位区块的时间;
32.(3)块哈希:基于最后一个块的哈希、merkle根和时间戳计算的哈希代码。
33.进一步地,数据安全共享流程包括数据上传、数据共享两个过程。
34.第二方面,本发明还提供一种电子设备,,包括计算机程序指令,其中,所述程序指令被处理器执行时用于实现所述的基于区块链技术的智慧城市数据共享方法。
35.第三方面,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,其中,所述程序指令被处理器执行时用于实现基于区块链技术的智慧城市数据共享方法。
36.本发明由于采取以上技术方案,其具有以下特点:
37.1、本发明将区块链技术引入智慧城市数据共享领域,助力良好的智慧城市数据共享生态,用于灵活管理来自智慧城市建设过程中产生的数据,提供的智慧城市数据共享方案,以高效率和安全性和隐私保护为数据共享建设目标。
38.2、本发明提出的智慧城市数据共享方法,称为智慧城市数据共享链,使用代理重加密技术保护了数据的隐私性和安全性,实现了数据请求者、数据提供者在链上安全的进行数据共享。
39.综上,本发明可以广泛应用于智慧城市数据共享中。
附图说明
40.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。在整个附图中,用相同的附图标记表示相同的部件。在附图中:
41.图1为本发明实施例的智慧城市数据共享层次示意图;
42.图2为本发明实施例的具体智慧城市数据共享流程示意图;
43.图3为本发明实施例的总体技术路线示意图;
44.图4为本发明实施例的电子设备结构示意图。
具体实施方式
45.应理解的是,文中使用的术语仅出于描述特定示例实施方式的目的,而无意于进行限制。除非上下文另外明确地指出,否则如文中使用的单数形式“一”、“一个”以及“所述”也可以表示包括复数形式。术语“包括”、“包含”、“含有”以及“具有”是包含性的,并且因此指明所陈述的特征、步骤、操作、元件和/或部件的存在,但并不排除存在或者添加一个或多个其它特征、步骤、操作、元件、部件、和/或它们的组合。文中描述的方法步骤、过程、以及操作不解释为必须要求它们以所描述或说明的特定顺序执行,除非明确指出执行顺序。还应当理解,可以使用另外或者替代的步骤。
46.为了便于描述,可以在文中使用空间相对关系术语来描述如图中示出的一个元件或者特征相对于另一元件或者特征的关系,这些相对关系术语例如为“内部”、“外部”、“内侧”、“外侧”、“下面”、“上面”等。这种空间相对关系术语意于包括除图中描绘的方位之外的在使用或者操作中装置的不同方位。
47.区块链技术是从比特币底层抽象出来的一种新兴技术。它是由全网节点维护的一个分布式公开账本,数据结构类似于c语言中的链表,链上的每个节点保存了最近的交易记录以及上一个区块的哈希值,因为任何对数据的改动都会使得哈希值发生巨大变化。该特性带来的结果是,除非节点具有超过全网51%的算力,否则无法对整条链进行分叉,这就避免了常见的“双花问题”,也保证了区块的不可更改。区块链保存在所有参与的节点中,避免单点失效的问题,且能够防止恶意节点对数据进行篡改。区块链是一个去中心化的网络,不需要一个权威的第三方对其进行监管和控制,通过分布式协议和智能合约技术完成相应的功能。区块链根据开放程度分为3个类型:公有链、私有链以及联盟链。公有链对所有人公开,根据一定的算法,每个人都能成为其中的一个节点并参与计算和读写。私有链是高度集中的区块链,通常只有一个组织,只有组织信任的节点才能参与区块链进行账本的读写。联盟链介于两者之间,通常由几个组织构成,每个组织管理了一些节点,这些节点维护了区块链的各项功能。因为联盟链提供的模式能够满足数据共享的许多应用场景,所以其被选为很多项目的底层区块链模式。
48.在分布式系统中,依据系统对故障组件的容错能力,共识协议分为崩溃容错协议(crash fault tolerant,简称cft)和拜占庭容错协议(byzantine fault tolerant,简称bft)两大类。cft协议保证系统在组件宕机的情况下也能达成共识,适用于中心化的分布式
数据集群,例如google分布式锁服务chubby、paxo协议等。bft协议由leslie lamport在1982年提出,保证分布式系统在故障组件的干扰下依然可以达成一致性。区块链共识协议属于拜占庭容错协议,保证区块链网络中诚实节点在恶意节点干扰下也能达成共识。由于区块链网络的开放性质,区块链共识协议需要抵御恶意节点干扰,因此属于bft协议。
49.fabric是由不同组织参与开发的一个联盟链项目,是开源项目超级账本中比较成熟的一个,面向企业级区块链开发。其网络主要由3种节点构成:背书节点、确认节点和排序节点,此外还有一个可插拔的认证中心(certificate authority,ca)节点。背书节点负责对交易进行背书,根据已有规则对数据进行读写操作。在收到交易的提案之后,背书节点首先对其中的签名进行验证,并检查提案的发起者是否有权限;然后根据自己的状态数据库进行模拟交易,把结果生成读集(read set)和写集(write set),它们代表了对fabric状态数据库的读写操作集合;最后把执行结果背书并返回给交易的发起者。确认节点负责对背书节点发来的交易进行检查,验证其数据结果。排序节点负责对收到的交易进行排序,打包成区块,并将结果返回给交易对应的节点。ca节点是fabric中pki体系下的核心节点,主要负责用户的注册以及证书的颁发和撤销等。fabric中比较引人注目的功能是它支持多条链(channel),每条链支持连接不同的组织,运行独立的链码(chaincode)。这使得在一个区块链上运行几条独立的链成为可能,也能够隔离不同链在相同节点上的交易。
50.本发明提供的基于区块链技术的智慧城市数据共享方法、设备及介质,方法包括:设置区块链网络实现对智慧城市数据索引的分布式存储;设置加密算法和代理重加密规则实现智慧城市数据的安全共享;设计基于fabric链码的数据共享平台系统,通过区块链技术和代理重加密技术实现智慧城市数据共享流程。本发明提出的基于区块链技术的智慧城市数据共享方法大大提升了智慧城市数据共享的效率。
51.下面将参照附图更详细地描述本发明的示例性实施方式。虽然附图中显示了本发明的示例性实施方式,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
52.实施例一:如图1~3所示,本实施例提供的基于区块链技术的智慧城市数据共享方法,包括:
53.s1、设置区块链网络,实现对智慧城市数据索引的分布式存储。
54.具体地,如图3所示,在智慧城市各单位将数据存储在相对应数据库中后,由智慧城市数据共享平台读取相应数据并在区块链网络所对应的区块中生成数据索引,将数据索引存储到各单位所对应的智慧城市各单位区块中,当在进行数据共享请求操作时再将数据读取到智慧城市数据共享平台后发送给数据请求者。
55.s2、设置加密算法和代理重加密规则实现智慧城市数据的安全共享,进而保证数据的安全性、隐私性。
56.具体地,数据拥有者将数据利用对称密钥加密,在数据请求者请求获取数据时,数据拥有者将相应的数据索引通过代理重加密第三方服务器重加密后发送给数据请求者。例如,当数据拥有者alice想要对bob进行数据共享时,数据拥有者alice将加密的数据索引发送给代理重加密第三方服务器,代理重加密第三方服务器根据alice的解密密钥和bob的加密密钥生成一个重加密密文,然后代理重加密第三方服务器将此密文发送给数据请求者,
数据请求者将得到的密文进行解密,然后得到相对应的数据索引值,此时智慧城市区块链数据共享平台将此数据索引值所对应数据发送给数据请求者,数据请求者用数据索引与数据进行匹配,进而确认是否是所需数据。由此来达到智慧城市数据共享的目的,并且在这整个过程中并不泄露alice的私钥。本实施例通过代理重加密技术实现了数据的安全共享,相比传统方案有较好的安全性。
57.s3、设计基于联盟链(fabric)的数据共享平台系统,通过区块链技术、代理重加密技术实现智慧城市数据共享流程,数据共享流程主要包括数据上传、数据共享两个过程。
58.具体地,本实施例设计基于联盟链(fabric)的数据共享平台系统,系统的主要角色有数据拥有者、数据请求者和代理重加密第三方服务器。数据拥有者是数据的原始持有者,用于将智慧城市数据上传至相应企事业单位数据库,并将其数据索引值上传至区块链数据共享平台;数据请求者通过智慧城市区块链数据共享平台对所需数据进行获取;代理重加密第三方服务器负责安全地转换密文,允许用户将加密密文转换为另一种密文形式。
59.智慧城市数据拥有者将共享数据密文上传到相对应数据库,由区块链数据共享平台读取相应数据原始持并生成数据索引,然后存储在区块链网络中所对应的智慧城市各单位区块中,与此同时将数据索引返回给数据拥有者。
60.智慧城市数据请求者在获取所需数据时,通过解密代理重加密的密文获取到数据索引值,然后利用数据索引值与智慧城市数据共享平台所发送的数据进行匹配,匹配成功既能获得所需数据。
61.下面从数据安全隐私性保护、数据分布式存储等方面详细说明本实施例的基于区块链技术的智慧城市数据共享方法的设计原理。
62.1、分布式存储
63.本实施例引入分布式存储设计理念。ipfs是一个点对点的分布式分发协议,用基于内容的寻址方式替代传统的基于域名的寻址方式,是一种永久的、去中心化保存和共享文件的方法。本实施例将采用去中心化的ipfs分布式文件系统对智慧城市加密数据索引进行存储。具体来说,智慧城市各单位拥有自己的数据库,数据库中的智慧城市数据独立存储,智慧城市中的各单位在区块链网络中形成对应的单位区块,例如在政务数据库中存储政务数据,但各方在智慧城市数据共享链中都有对应的区块节点来存储自身数据库实际数据的索引值。只有在数据请求共享操作时,区块链平台才会根据数据索引抽取相应数据发送给数据请求者。
64.2、代理重加密
65.如图1所示,代理重加密技术是一种能够安全地转换密文的加密方法,允许用户将加密密文转换为另一种密文形式。因此,用户可以使用自己的私钥对转换后的加密密文进行解密,并且在整个转换过程中不会以明文形式披露相应的信息,从而确保数据共享的隐私性。智慧城市区块链数据共享网络中的政府、银行、医院、高校、企业、其他组织既是数据拥有者又是数据请求者,既可以进行数据访问请求,也可以进行数据上传操作,相应的数据分类层包括政务数据、金融数据、医院数据、高校数据、企业数据以及其他数据。
66.如图2所示,代理重加密流程具体设计如下:
67.第一步:数据拥有者将所需数据索引用公钥加密得到密文;
68.第二步:将数据拥有者加密后的密文发送给代理重加密服务器,数据拥有者为代
理重加密服务器计算并生成密钥;
69.第三步:用新生成密钥将数据拥有者加密好的密文转化为数据请求者的私钥能够解密的重加密密文;
70.第四步:代理重加密服务器将重加密密文发送给数据请求者;
71.第五步:区块链数据共享平台发送智慧城市数据,数据请求方解密所需数据索引并与区块链数据共享平台发送数据进行匹配。
72.3、基于联盟链(fabric)设计的智慧城市数据共享平台系统。
73.本实施例引入区块链并基于fabric链码设计了智慧城市数据共享平台系统。系统的主要角色有数据拥有者和数据请求者,细分为政府、银行、医院、高校、企业、其他组织,各方即是数据拥有者又是数据请求者。
74.如图3所示,智慧城市数据共享平台系统功能包括数据上传、数据获取,系统架构主要分为3个模块:前端模块、后端模块以及区块链模块。
75.前端模块,用于数据相关方通过区块链模块提供上传数据、共享数据,主要为数据相关方提供上传数据、搜索以及共享数据下载的功能。页面展示主要使用了html5、css以及javascript,前端框架为vue,前端ui框架为layui,通过restful接口风格的api与代理重加密第三方服务器模块进行交互。
76.后端模块,用于提供代理重加密操作及存储数据,使用spring boot进行框架搭建并且使用了redis缓存数据库;
77.区块链模块,用于进行智慧城市各单位区块数据索引的分布式存储和支撑数据共享操作的核心流程,区块链网络中将各智慧城市单位数据库中的数据所对应的数据索引进行全存储。在前端模块做出相应指令时,区块链网络才从数据库中读取相应数据发送给数据请求方。
78.在智慧城市数据共享链中,数据的哈希值在区块链中进行存储,每个块由一个或多个数据索引哈希值组成,区块中信息包括:
79.(1)merkle树根:由智慧城市各单位区块中的所有数据索引哈希值散列构成的merkle树的根;
80.(2)时间戳:创建智慧城市各单位区块的时间;
81.(3)块哈希:基于最后一个块的哈希、merkle根和时间戳计算的哈希代码。
82.4、高效率的基于区块链技术的智慧城市数据共享研究
83.对于给定n个数据块的智慧城市数据流,在进行数据共享时首先要验证各单位区块中数据索引即相关数据流,数据传输前验证数据流的时间也是用数据共享总流程花费时间的主要部分。假设智慧城市各单位在区块链网络中所对应区块损坏事件是概率为p的独立同分布随机变量。下载和验证块完整性的成本为b。如果没有块损坏,则总验证成本为b。另一方面,如果前n-1个块正确,但最后一个块损坏,则验证成本为2b。此外,如果前n-2个数据块是正确的,但第二个数据块是损坏的,无论最后一个块是否正确,验证成本都是3b。通过上述归纳,可以计算出验证长度为n的数据流的预期时间成本,用c(n)表示。
[0084][0085]
假设c’(n)是在传统智慧城市数据共享方案中数据验证的成本,验证一个数据库中的数据成本为b,n个单位的数据验证成本为c’(n)=n
·
b。然后传统与基于区块链的智慧城市数据共享方案的效能差值用d表示,可以计算如下。
[0086]
d=c’(n)-c(n)
[0087]
≤n
·
b-(1-p)
n b-p
·n·b[0088]
≤b(1-p)[n-(1-p)
n-1
]
[0089]
可以很容易地发现,将基于区块链技术的智慧城市数据共享链应用时,对于给定的块损坏概率p,随着n的长度增,通过在数据共享过程中验证数据流的成本可以看出,基于区块链技术的智慧城市数据共享方案可以提高智慧城市数据共享的效率。
[0090]
实施例二:本实施例提供一种与本实施例一所提供的基于区块链技术的智慧城市数据共享方法对应的电子设备,电子设备可以是用于客户端的电子设备,例如手机、笔记本电脑、平板电脑、台式机电脑等,以执行实施例一的方法。
[0091]
如图4所示,电子设备包括处理器、存储器、通信接口和总线,处理器、存储器和通信接口通过总线连接,以完成相互间的通信。总线可以是工业标准体系结构(isa,industry standard architecture)总线,外部设备互连(pci,peripheral component)总线或扩展工业标准体系结构(eisa,extended industry standard component)总线等等。存储器中存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行本实施例一所提供的基于区块链技术的智慧城市数据共享方法。本领域技术人员可以理解,图4中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算设备的限定,具体的计算设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0092]
在一些实现中,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、光盘等各种可以存储程序代码的介质。
[0093]
在另一些实现中,处理器可以为中央处理器(cpu)、数字信号处理器(dsp)等各种类型通用处理器,在此不做限定。
[0094]
实施例三:本实施例一的基于区块链技术的智慧城市数据共享方法可被具体实现
为一种计算机程序产品,计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本实施例一所述的基于区块链技术的智慧城市数据共享方法的计算机可读程序指令。
[0095]
计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意组合。
[0096]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。在本说明书的描述中,参考术语“一个实施例”、“一些实现”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0097]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0098]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0099]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0100]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献