周正南,陆安江
(贵州大学,贵州 贵阳 550025)
新技术时代,区块链技术是科技研究的前沿领域,具有独特的技术特点和创新价值。事实上,很多专家认为,区块链技术是触发蒸汽引擎、动力、信息和互联网技术带来的下一轮反转性革命的最大可能技术。
伴着信息技术和人类生产的全球因特网的快速发展,大规模的人数产生了海量数据,渗透入经济发展、社会治理、国家管理以及人民生活等方方面面。大部分国家认为,经济数字化是创新和发展的重要驱动因素。目前,大数据已经成为我国的国家战略[1]。我国应当加快数字基础设施建设,推进数据资源的整合和开放交换,实现数据安全,加快发展数字系统,并改善我国的经济社会发展和人民生活。
数据和区块链具有共生关系。区块链可以保证数据的安全性和可信度,而其应用和创新也起源于区块链。区块链一定会重建大数据,也会成为重要数值的中心部分。区块链技术与其他情景相结合,可使人们完成许多一直以来被视为无法完成的任务,如把生产环节数字化、经济全息化,达到可标度经济。区块链能够把之前的“面对面信任”关系用“背靠背信任”代替,减少了交易成本。运用“链网”能够把不同的架构、场景的区块链结合起来,然后对生产点进行数字化,记录社会的生产形势、链接以及利益支配的整个行为,建立统一、公开以及多样化的链网基础设施。创建区块链框架的关键在于确保不同格式以及来源所生成的数据的整合,并确保不同应用程序能够完美融入区块链。
大数据正成为数字社会治理的重要战略资源,但在此阶段必须迎接数据开放交流、数据安全与个人隐私的挑战。区块链是一种动态数据库无法相互修改的版本。大规模冻结数据已经记录了每一次交易,当电脑意外宕机时,已经完成的不同业务和封存的数据不会存在数据丢失问题。但是,区块链提供的是银行账号的完整性,且统计结果的分析能力很弱[2]。大数据拥有大规模数据存储技术和灵活高效的分析技术,大大改善了封条数据的价值和利用率。如上所述,区块链技术的特点决定了如何促进大量数据资源和个人隐私的扩散,而大数据是减少和利用网络数据价值的工具。区块链+大数据有效整合区块链技术和大数据共享、个人数据保密以及其他一些特性,可以真正破除大数据应用带来的痛,并增强大数据功能。
区块链是一个新技术体系,把不同的技术结合起来。最早的定义来自于2009 年发布的比特币。区块链具有中心化和信任型的特点,产生对同龄同伴之间的信任转移功能,却不依赖第三供应商可信的机构,有助于降低交易成本并提高交易效率[3]。
正常来看,区块链系统主要由数据层、网络层、共识层、激励层、合约层和应用层组成,如图1 所示。其中,数据层包括相关数据块、相关数据加密和时间标记技术;网络层包括分布的网络机制、数据共享机制和数据审计机制;共识层主要包括网结的共识算法;激励层把经济集成到区块链体系,一般涵盖经济激励的发行方式和支配方式;合约层用于封装各个脚本、算法以及合约,是区块链特点的基础;应用层封装了各个应用环境和相关方案。在区块链体系中,特别是在在以比特币为首的密码货币体系中,UTXO 交易模型在当前最流行。
图1 区块链基础架构
如图2 所示,UTXO 是没有花费的交易输出,是比特币交易创造和核查的核心理念,交易形成了一个连锁结构。全部合法的比特币交易能够返回到一个或多个交易之前的输出[4]。它们的来源是有利可图的交易方式,终点是目前未使用的交易记录。所有未使用版本是整个比特币网络的UTXO 比特币规定,是每个新交易的输入、输出。整个交易过程会消耗一部分时间,也需要每个人收到私人钥匙,相当于签字的先前版本。每个节点的比特币将整个区块链保存的UTXO 和节点的整个网络的新交易的合法性审查通过UTXO 和签名算法来校验,可以探究交易的合法性,而不用留心历史。
图2 UTXO 模式
同态加密是1974 年由Rivest 等人发起的。同态加密同意用户直接对特殊的密文代数进行相关的操作,然后获得最后的结果,最后在相同的明文加密结果中运行同样的操作[5]。公钥pk和私钥sk生成安全参数λ。公钥pk主要用来对明文进行加密。私钥sk专门用于解密密文。倘若有一个明文m∈Zn,当中n是一个大正整数,Zn是模n的整数集合,把m的加密表示为Epk(m),则同态加密会具有下面的属性。
式中,m1、m2为要进行加密的明文,a为一个常数。
Paillier Cryptosystem 是于1999 年提出的基于复合剩余类的高级问题。系统具有很好的一致性,能够用来构建很多实用高效的加密算法。本文主要致力于保护多方隐私,故在系统中运用了部分Paillier加密系统的一些阈值。它除了具有加的同性本质,和数字加密系统的构建完全一致[6]。
该文使用的是(p,t)-阂值的Paillier 密码系统。私钥sk被分为skl、sk2、…、skp,然后支配给p方。各方都存在不完整的私钥,倘若其中一方希望能够精确地解密密文c,一定要和最少t-1 个其他方合作[7]。在解密历程中,各方i(1 ≤i≤p)都必须要使用ski计算相对的解密ci。
式中,∆=p!。通过文献中的有关算法易知,若要获得明文m,最少要结合t方的解密结果。
一个安全的多方计算机系统是由中国的姚期智教授在百万富翁问题中提出来的。安全多方计算(Secure Multi-party Computation,SMC)由参与者、安全定义、通信网络模型及其他元素组成。SMC 应能保证输入的独立性、计算无误,并不应交出参与计算的其他成员的全部投入[8]。它主要调查邮件中用户间不相信互联网的互创技术在线计算的参与者使用私人数据完成一种计算,不会披露私人数据,因此人们可以在不侵犯数据隐私的情况下利用私人数据取得最好结果。
倘若在一个分布式网络中存在n个都不彼此信任的P1,P2,…,Pn,任意一个参与者存在私钥xi全部的P1,P2,…,Pn协同运作函数F:(x1,x2,…,xn)→y。在计算历程中,各个参与者Pi都无法获得别的参与者Pj(j≠i)的相关输入信息。目前,大数据处理特别是合作与交换,广泛使用了一种安全的机制。
在Γ1和Γ2两个都是素数p的乘法循环群的前提下,g1和g2都是Γ1和Γ2的生成元,ψ是Γ1到Γ2的同构映射,其中ψ(g2)=g1。一个双线性对能够被认为是Γ=(n,Γ1,Γ2,ΓT,e,g1,g2),其 中G1=<g1>,G1=<g2>,ΓT是阶为n的乘法群。映射e:Γ1×Γ2→ΓT是一个双线性映射,具有如下特性。
(1)双线性。∀u∈G1,v∈G2,a,b∈Zn:e(ua,vb)=e(u,v)ab。
(2)非退化性。存在u∈Γ1、v∈Γ2,使得e(u,v)≠○,其中○是ΓT的单位元。
(3)可计算性。拥有有效的多项式时间算法来计算e(u,v),对任意的u∈Γ1、v∈Γ2。
双线性映射给如今的大数据发展带来了积极影响,特别是使用实物模型建立了数据合作关系和自由运输。合理运输和多级安全计算技术必须结合起来,才能在数据共享和共享方面发挥重要作用。
随着数字加密货币的普及,如比特币,区块链逐渐热门。区块链是一个能够在无节点间信任的分散系统中进行分散交易,可有效降低实体经济的信心成本。虽然区块链对数据的安全性和可靠性有了明显改善,但是区块链可塑性差。比如,比特币网络现在的数据存储总容量远大于1×106GB,也就是说有超过1×106GB 可以存储数据包,实际存储数据量远低于理论值,因此对空间的利用并不充分。此外,比特币可为大量节点提供充足的内存,因为比特币的容量和测试结果出现的节点数量也会快速增加。
由此可知,在区块链上将大量的数据存储起来是行不通的。但是,很多空间占用量大的数据在区块链技术的支持下可以很好地进行区块链存储,这正是区块链的特征所在。
本着进一步使用区块链的目的,本文发起了一种在区块链中进行可拓展存储和对隐私进行保护的方式。其中,扩展区块链存储是关键的探索,通过多方进行共享数据的隐私保护来实现。总的来说,工作的贡献形式分为3 种。
(1)为了解决大量数据无法被存储在区块链上的问题,区块链提出了数据加密并存储在云端,钥匙交由一个值得信任的第三方用来管理彼此的账户,付款会被电脑里的使用者加密,以保证信息的安全性和可靠性的解决方案。
(2)文章提出了一种保护各个方向数据的方式。这种新方法把(p,t)加密系统应用在区块链上。私密钥匙被分离,如果一个方向想要破解密码c,那么最少需要从t-1 个其他方合作才能实现。
(3)对Paillier 密码系统的隐私特点分别进行归纳剖析,经过许多实验验证了这个方式是可以很好地对区块链隐私进行保护的,经过交易有力验证了该方式的有效性。
本文给出了区块链上存储的可拓展性和隐私保护模型中的组成部件与操作。数据和加密数据提供信息,以保护和分享个人以及企业(银行或保险公司)数据,实现信息的多方共享。
图3 给出了系统模型,模型的部件包括:数据和加密数据、云存储加密的数据、信用评分使用者和区块链。系统给用户带来了一个更安全的空间来对数据进行存储,而没有通过授权的形式不能获得它,所以云不单单是一个存储空间,也是一个公开共享的空间。
图3 系统模型
CA 处理核心的计算以及支配方式,同时各个方向同时开始计算,须确保全部输入私有。为确保任何一方都无法获取对方的数据,秘密数据要被拆分在两个及以上不同的部分。CA 还依照使用者的信用评分对其进行必要的信用评估,从而决定要不要把密钥支配给用户。
信用评分的用户指的是提供信用的主要来源,如银行。访问信用评级信息不影响公司以及自己本来就有的数据,并在此基础上进行了各个算法的剖析,如用户身份验证。
区块链是共同的公共交易记录机构,网络的支柱。每一个确认交易都在块链中单独包含,并在块链中保存了加密支付、权限和用户信息。为了避免数据受到恶意修改,提高安全保障,解密的前提是拥有密钥。支付用户验证密钥可决定用户访问数据的合法性和用户数据的Hash 值。
2.2.1 隐私假设
大多数通信参与方t-1 在所提模式中是半卧底模式,这里倘若假设有t1个同路人,意味着他们无法解密协议以外的数据。半诚实模式假定所有各方真诚和好奇,显示出严格遵守双方的相关协议,但是各个方向都想要在协议中提前知道结果,想要推断别人的信息。在很多区块链交易环境里,这些推理都是合乎常理的。因此,本文中提出了以下两个假设:(1)双方遵守共同协议,以实现各自的需求;(2)用户之间不能彼此获取私密信息。
在本文启动隐私规定之前,了解到保护隐私是区块链的核心目的。个人隐私的定义如下。
定义1:(阂值)设定有k个使用者,记录为k=1,2,…,K,CA 放置的M个对象指的是m=1,2,…,M。指的是第k个使用者提供给第m个对象的值。在这个历程中,剔除提供这个值的使用者以外,各个值都要对别的人保持机密。
定义2:(数据隐私)数据的储蓄分为两种,一种是储蓄在云中,一种是储蓄在区块链上。很多暂用存储空间的使用者的数据储蓄在前者,而相关数据的散列值则储蓄在后者。通过Paillier 密码体系加密存储在前者的数据。为了保护使用者的隐私数据,密钥将被分给K个使用者。若要对数据进行解密,则需要运用一个阂值用户密钥。
定义3:(支付隐私)当使用者想将部分钱币发给另一个用户Bob 时,不想别人准确了解传递给用户Bob 的钱币。为保证用户支付信息的隐私不被其他用户知道,可以使用Paillier 密码体系加密支付信息。
2.2.2 设计目标
该文不仅以保护数据隐私和支付隐私为目的,也把服务器在数据存储历程里依旧能够提供高质量的服务作为追求。这项设计不仅要确保个人隐私不泄漏,更应该具有高精致、低反应的服务。前者指的是高精密的密钥分配及测试,后者指的是服务器承认数据储存、密钥分配和验证在可以接受的时间内停止。
本文指出,用户以及用户间支付往来信息等个人隐私是数据保护的主要目标。本节给出两个隐私安排根据用户数据和支付信息的差异,关注实际情况,提供不同的解决办法。
2.3.1 隐私保护方案简介
图3 提出了区块链里的隐私保护方式。假定(p,t)-Paillier 加密系统的阈值是安全的。其中,p指的是双方的数目,包括CAS 用户数和注册用户,即被要求完全解码的最低年龄[9]。因此,在此模式中,公共密钥pk=(g,n)对所有当事人都是公开的,所有相关当事用户都可拥有该公共账户的解密密钥(即用户本人可共享他人的私人密钥)。
一系列的方案划分为3 个阶段。
第1 阶段:用户数据由Pallier 算法加密,也就是CA 负责散播私有钥匙,而加密数据存在云端储存。
第2 阶段:根据用户的信用,对应密钥得到评价和分配。用户的信用分能够生成一个分区,且要在分区范围内运行私人的密钥是不可能的。
第3 阶段:由Pallier 加密支付信息、信息链中存有用户数据的Hash 值以及其支付的验证信息。
2.3.2 数据隐私保护协议
想要防止用户个人数据信息泄露,提高保密和控制能力,有必要加密数据,并将其保存在失效链中。加密数据可以防止非法用户访问数据,并在信息链中保存数据的Hash 级别,以防止信息被篡改。有些当事人需要统一保存加密数据时,一定数量的当事人需要验证加密数据。本文中使用(p,t)-阂值Paillier 密码系统,被分离成p份私钥sk,表示为skl,sk2,…,skp。这增加了解密的难度,倘若要解某密文,需要积累到至少t-1 个其他私钥。
(2)按照这个加密系统的同态特点,如下:
式中,m1、m2为要加密的明文,是随机挑选的,且是一个常数。云计算:
云端随机挑选t-1 个使用者,然后把C发送给他们。
(3)根据所有获选的使用者k´计算C的部分密文,后将Ck´发送到云端。
(4)部分密文CDatacenter在云端计算,而后聚集t-1个从其他用户处获得的部分密文,得到和。
支持部分匿名性的元素即使用Paillier 密码体的盲文属性,试着想象着Alice 想给Bob 寄钱但他不想让别人知道钱是给Bob 的,为此她还需要选择数个账户(n个地址)组成非匿名句子。从非匿名句子中随机找出n-1 个地址用于继续传送,将大量钱传送到Bob 的地址,随机选择的n-1 个地址中余额改变,但这些地址中转入Bob 的地址总金额不会改变,相当于选择n个中间账户,但是账户间匿名。通过若干次转账后,这n个账户之间由于也存在交易,余额会变化。每个账户的余额不会出现差错,即Bob 的地址收到了钱,但是不知道钱具体来自哪个账户[10]。
(1)为构建密钥对,先要挑选两个素数,条件是两者等长(这里为g和n)。加密密钥pk将是N=g·n以及解密密钥sk将是λ=(g-1)(n-1)。
(2)加密消息m∈Zn需要通过公钥pk=(g,n)进行,随机选择整数,然后计算密文:
为了解密,计算原始消息:
文章提供的方案一样能够使用共识恢复给定密文中的随机数r:
按照加密体系的同态特点,可获得:
Paillier 加密体系在其明文不发生变化的前提下,可以更改其密文能力。这是它的盲性质。
在实际系统中,所有数据都会威胁到用户隐私。该系统旨在保护个人用户的数据不被传输到其他用户。数据中心和用户之间数据进行着互相交换,是数据隐私相关协议中的规定。参与交换的数据为全密文,即使有些用户得到的密文,他们也无法解开,因为使用了(p,t)-阈值Paillie 密码体系。倘若使用者间没有串通,在运行协议后,使用者将无法获得有用的信息。另外,密文Epk(vk)无法通过数据中心进行解密,但数据中心最后是可以了解到求和。针对这个因素,它无法推断每个用户的私钥K。因此,每个用户的私钥的隐私性都在协议中得到了保障。
最后总结该方案的数据隐私保护目标。设定K≤3 且针对各个部分m∈M,最少有两个使用者k1,k2∈M给出不一样的值。也设定双方无沟通,可信度为50%,而后即可在数据隐私保护协议运行后,令各个使用者的值都无法被泄露给别人。
然后,如果有人看到这笔钱的转移,他将不能确定Alice 是否真的将钱转移到指定的地址。钱的转账只有Alice 知道,原来Bob 都知道这笔钱已经到了,但他不知道这笔钱具体由哪个地址转入。但是,如果Alice 要将一些资金寄给Bob,她必须使用她在第一次交易中常用的匿名余额,否则攻击者将会发现多个交易。Bob 的地址(或很少)和其他不再出现的地址相通,并假设Alice 使用不同的匿名地址将它们发送给Bob 的所在地。
通过Python 和MATLAB 实现该方法。用户数据存储的数据库是SQL Server。系统主要运行在4台服务器上,参数配置为2.4 GHz、Intel i7-55oom CPU 和8 GB RAM。
2.6.1 密钥生成性能评估
在Paillie 密码体制中,公钥(g,n),n=p·q,私钥λ=1cm((p-1),(q-1))。这个实验生成了64、128、256、512 和1 024 位元、组,召唤出相应的g组数据来生成整个加密和解密过程所需的公共和私人密钥。由于默认的主机的长度增加,发电所需的计算会增加,而速度会加快,如图4 所示。
2.6.2 加解密性能评估
图5 给出了公钥长度分别为64、128、256、512 和1 024 位的前提下,加密32 位数据的测试时间。如图5 所示,加解密过程中,耗时随着长度的增加而增加。在加解密过程中,密钥长短变化不断提升,与之相伴的是加密解密的用时,这是由于它的计算量在增加。另外,可以看到Paillier 算法缩短了解密与加密时间的间距。
图4 Paillier 密钥生成时间
图5 Paillier 加解密成时间
2.6.3 Paillier 密码系统的同态性质性能分析
在后续的实验中,公钥的长度分别为64、128、256、512 和1 024 位,数据M的大小为32位。设置相同的条件环境,估计Paillier 公钥密码系统中同态属性的时间消耗分别为Epk(m,r)k、Epk(m1,r1)·Epk(m2,r2)、Epk(m,r1·r2)、Epk(a·m1)、Epk(m1+m2)。
将MATLAB 和Python 相融合,使用公式,测试结果如图6 所示。可见,在其他案例中,其他情况中得到其他补充的同性本质主义的处理时间要比得到相关信息的其他信息的处理时间要长。处理信件所需的时间呈现指数型增加,处理信件的不同公式之间的耗时差距不断增加。
图6 Paillier 同态性质时间
本文叙述了若想增加区块链的数据存储量,可利用云内存。Paillier 密码系统想要有效保护敏感信息,需要提高其在区块链中的应用,还能处理区块链系统的个人隐私。该密码系统有利于数据共享和隐私保护。在密文操作中,Pallier 密码体系的时间基本都很短,但是效率很高。这个方式的内部安全分析显示系统具有超强的安全性,但是如何提高项目的效率和如何使用Paillier 同态化密码技术,需要构建一个更好的设计解决方案。