区块链在数据完整性保护领域的研究与应用进展

2021-03-18 13:45*
计算机应用 2021年3期
关键词:数据保护日志共识

*

(1.内蒙古工业大学数据科学与应用学院,呼和浩特 010080;2.内蒙古自治区基于大数据的软件服务工程技术研究中心,呼和浩特 010080)

0 引言

随着大数据时代的到来,数据本身逐渐成为基础性的国家战略资源和社会生产要素,也因其蕴藏的价值成为各种网络攻击的核心目标。数据在其流转传输甚至整个生命周期中因数据处理环节和所涉参与方的多样性和复杂性,易受到来自各方的篡改威胁。

伊朗核设施的“震网”行动就是典型的数据破坏型攻击,攻击者通过木马破坏伊朗核设施中的关键组件,用破坏数据的方式达到攻击国家关键设置的目的[1]。受害者遍布全球的勒索病毒事件,攻击者通过将受害者的文件数据内容进行加密以破坏原始数据可读性,相当于篡改了原始数据内容[2]。

区块链技术的诞生给数据完整性保护以及防篡改提供了一种新思路。其链上数据采用分布式副本存储,每一个参与区块链的节点都保存有一份数据副本,因此可有效避免集中化存储的单点故障问题[3];且区块链自身的链式哈希指针结构可确保其上数据无法被任意删改,是对数据完整性的有效保证。

本文聚焦区块链技术在数据完整性保护应用方面的研究进展,分析其与各种数据保护场景结合后产生的新应用的优势与不足之处。首先,介绍区块链技术背景与其相比传统数据完整性保护方法的优势以及区块链技术在数据保护领域中的应用,并按照采用的区块链技术类型和数据特性与应用场景进行分类,随后进行优缺点讨论;然后,将现有传统数据保护方法、云环境下分布式数据存储方案与区块链存储方案进行详细对比;再对区块链数据保护技术现有问题进行总结并给出解决思路;最后对区块链数据保护的未来研究方向进行展望。

1 区块链技术与数据完整性保护

1.1 区块链技术

区块链技术自2009 年第一个举世闻名的数字货币比特币诞生以来迅速步入工业界和学术界的视野,近几年更是出现了大批与区块链技术结合的去中心化应用。区块链技术的发展大致分为以下3个阶段:

1)区块链1.0:数字货币的诞生。标志性事件是比特币问世,其最初的应用范围聚焦于货币领域。

2)区块链2.0:标志性事件是以太坊以及运行在其上的智能合约的问世。智能合约可以自动化地执行、验证合同,全程不需要第三方仲裁机构的参与,是解决互不信任的安全多方计算的有效手段。区块链由此从货币领域扩大到整个金融领域。

3)区块链3.0:区块链与各行各业甚至城市基础设施的结合,形成各种各样的去中心化应用,最终目标是形成可编程、去中心化社会。

区块链的本质是一个拜占庭环境下交易驱动的副本状态机[4-5],宏观上表现为一种去掉了删除和更新操作的分布式数据库[6],常见的区块链结构如图1所示。

图1 区块链结构与成员信息Fig.1 Blockchain structure and its member information

由图1 可见,每一个区块中都包含前一个区块内容形成的哈希值,整体由这种哈希指针的方式构成单一链式结构。要想更改某个区块中的内容,必须将它后面所有区块的哈希指针全部更改。这为数据完整性与抗篡改带来了技术保证。

1.2 大数据安全与数据完整性

数据生命周期分为产生、收集、存储、使用、传输、共享、发布、销毁八个阶段[7],数据的完整性除在产生和销毁以外的每个阶段都受到严峻挑战,往往在数据实际使用时已与产生时形成较大偏差。使用这些缺损甚至错误的数据进行数据分析决策或预测的时候,很有可能导致决策错误或预测失效。例如高级可持续性威胁(Advanced Persistent Threat)攻击[8],这种攻击瞄准数据本身,其主要目标是对数据进行破坏和篡改。其中,数据完整性保护的几点核心要求是:

1)完整性、真实性验证,这是最基本的要求,即数据所有者能够验证数据存储或传播及使用过程中没有丢失、增加和替换内容。

2)抗删改能力,这是数据完整性保护的重要指标,即数据或存储数据的系统具备一定程度的防篡改能力,即除数据所有者以外的第三方不能对数据进行删改。

3)数据恢复能力,若数据遭到篡改和删除,数据托管方应具备一定的找回丢失数据和还原数据的能力。

2 区块链在数据完整性保护中的应用研究现状

应用区块链技术进行数据完整性保护的核心思想是:将关键数据部署到区块链上,并利用区块链上数据不可篡改和不可删除的特性确保数据完整性,校验链上和链下数据完整性和一致性的过程可结合智能合约自动进行。

本文分别介绍公有链、联盟链和私有链在数据完整性保护中的应用,在每种区块链技术类型下再按照具体应用场景和数据特性细分为溯源与确权数据、日志数据与验证、物联网数据以及其他非IT类行业数据完整性保护。

2.1 公有链应用于数据完整性保护

公有链是区块链技术三种类型中去中心化程度最高的类型,也是应用最广泛的一类。

2.1.1 公有链应用于溯源与确权数据保护

溯源技术起初应用于数据仓库、工作流以及数据管理等行业[9],后广泛应用于刑侦、司法、版权保护、医学、考古等对数据真实性要求高的场景中。

张国英等[10]结合PROV-DM(PROVenance Data Model)数据溯源标准模型和区块链技术,选取以太坊公有链作为底层技术支持,提出了一种去中心化的数据溯源方法,并设计了一套溯源数据管理的智能合约,该实现架构如图2所示。

溯源链智能合约通过对比链上链下数据文件摘要是否一致的方法来判定溯源数据是否被篡改,并通过仿真实验证明了该方法的可行性。但该方法只能保证链上数据的完整性,无法保证链下数据来源是否真实。

图2 溯源链智能合约实现架构Fig.2 Implementation architecture of smart contract of traceability chain

在全球化市场上,一个商品从生产到加工的各个环节很有可能分布在数个不同的国家,这就导致消费者往往不知道他们购买的产品的真实来源。区块链技术可以应用于建立供应链,以增加客户对产品来源和加工过程的认知[11]。为了解决产品溯源问题,张鹏等[12]提出了一种基于区块链数字代币的溯源方法,旨在分析出商品的正品率,达到反假冒的目的。这种方法不需要在产品上附加任何电子标识,只要收集链上代币的流转过程,就可对产品进行追踪溯源并建模;还可计算出商品来自品牌商而不是仿制赝品的概率,并且节省了存储成本。但由于该方法的采用溯源矩阵进行正品概率计算,所得到的数据为概率值并非确定值,所以属于有限溯源并非完全溯源。另一个缺陷是不能计算垄断商品的正品率,只能分析竞争较为充分的商品品牌。

张朝栋等[13]使用侧链技术尝试解决溯源区块链吞吐量低的问题,并给出了自己的去中心化溯源方案。该方案采用侧链技术对以太坊公有链进行扩容,提升单位时间内区块链处理的交易数量,并使用智能合约自动完成供应链溯源过程中的货物信息管理与共享以及产品溯源。实验结果表明,经过扩容后的以太坊公有链明显提高了吞吐量。Neisse 等[14]同样使用以太坊公有链建立数据溯源与问责机制,通过将溯源数据应用SHA-256(Secure Hash Algorithm-256)函数算出哈希摘要并写入智能合约中部署上链,但智能合约的部署与执行因其消耗燃气费(gas),所以仍需一定的经济成本。

溯源链的建立与溯源数据的存储在云环境中对云存储系统中文件的审计操作和运维由于存在人为因素,因此有隐私数据泄露和被篡改的风险,对其中文件的各种操作进行溯源并建立数据泄露问责机制有着实际应用价值。Liang 等[15]给出了Prov-Chain 区块链溯源模型,该模型参与的节点是云系统中的用户,对文件的读取、写入等操作都会被记录在公有区块链上。但在云计算环境下,对其中的文件在短时间内进行频繁访问则有可能在区块链上造成溯源数据上链拥堵问题。

2.1.2 公有链应用于日志数据完整性保护

日志是信息系统的正常运维以及故障恢复和错误排查的前提,更是维护信息安全的关键。当系统出现故障或遭遇黑客入侵后,日志往往成为事后查找和审计漏洞与故障的唯一手段,而且日志在监控系统运行状态、系统安全审计和故障诊断方面起到至关重要的作用。中心化的存储方式无法抵御系统单点故障问题和被攻破后入侵者的篡改问题,因此迫切需要一种对日志可靠的、安全的存储方式。

费禹等[16]设计了基于公有链的日志系统,但由于采用工作量证明(Proof Of Work,POW)算法实现共识层,算力消耗大且计算符合要求哈希值的nonce 值所需时间长。Sutton等[17]设计的区块链日志记录系统能够部署在现有的比特币公有区块链上,但存在成本高、效率低、可扩展性差的缺陷。日志数量越大所需交易数量越多,会在链上占据相当大的存储空间。Shao等[18]使用以太坊的智能合约实现日志数据的完整性和异常检测,并结合机器学习允许智能合约本身能够实现一定程度的自我更新。智能合约结合机器学习的前景非常广阔,但智能合约本身的漏洞验证与审计是一个需要解决的问题。

2.1.3 公有链应用于物联网数据保护

随着物联网(Internet Of Things,IOT)技术的逐渐普及,各种智能终端设备数据在物联网环境下采集、传递、存储过程中存在篡改与假冒和丢失的风险,缺乏完整性保护的物联网数据会对物联网应用造成一定的危害,因此亟须一种可以确保物联网数据可信且完整的应用。魏艳等[19]提出了一种基于公有区块链的数据完整性验证的区块链结构和基于去中心化时间戳的数据完整性验证机制,并创新地使用以太坊智能合约进行数据完整性的自动校验;编写了详细的智能合约执行代码和元数据结构,并将智能合约部署上链,在数据验证阶段由智能合约自动完成数据校验。其设计的智能合约结构如图3所示。

图3 基于区块链的物联网数据完整性验证的智能合约结构Fig.3 Smart contract structure of IOT data integrity verification based on blockchain

实验结果表明,该机制能够保证物联网数据的完整性。但智能合约一旦部署上链便不可更改,如若智能合约本身存在安全性漏洞,将导致严重的安全隐患。故应在智能合约部署上链前进行严格的测试与审计。

2.1.4 公有链应用于其他行业数据保护

1)电子合同。田海博等[20]提出了一种可验证的盲加密签名体制并基于此描述了一种两方的公平合同签署协议,通过将协议实现脚本部署在比特币的公有链上,在交易验证时完成双方合同签署。协议脚本一经部署上链便不可更改,利用区块链的不可篡改性完成并验证双方合同签署的正确性和不可抵赖性。

2)医疗数据保护。针对医疗隐私数据如电子病历的明文存储方式存在隐私泄露风险,刘格昌等[21]结合可搜索加密技术,将电子病历加密后的密文部署到区块链。该模型使用更加严格的拜占庭容错共识机制而不是公有链广泛使用的POW 共识算法,显著提高了区块链的安全性,既保证了医疗数据上链后的不可篡改性又提高了数据的隐私性。图4 为该模型可搜索加密的一般步骤。

图4 可搜索加密步骤Fig.4 Process of searchable encryption

通过结合可搜索加密(searchable encryption)技术,该区块链架构表现为一个五层体系,如图5所示。

图5 可搜索区块链五层模型Fig.5 Five-level model of searchable blockchain

可搜索加密过程存在效率低下的问题,亟须缩短可搜索加密的时间。吕琦[22]结合现有医疗体系中档案安全性等问题,重点分析了区块链技术在健康档案数据保护中的应用模式,并将各种电子医疗器械终端产生或可穿戴式医用设备收集到的数据加密后部署到区块链上。通过时间戳验证确保数据的真实性,数据完整性由区块链上数据不可篡改的特性保证。Dagher等[23]提出了一个基于以太坊公有链智能合约的医疗记录框架Ancile,在加强对患者医疗记录的访问控制前提下将医疗数据上链,对上链数据加密保护隐私性并且防止被恶意篡改,在防篡改性、可访问性、隐私性这三者中找到了平衡。Fernández-Caramés等[24]在存储与访问糖尿病患者的血糖数据方面设计了一套由区块链和物联网传感器做技术支撑的接收、验证系统。该系统接收来自分布式智能手机以及血糖传感器组成的物联网雾计算网络所发来的患者血糖数据,通过底层区块链存储验证数据,有效避免了不可信数据来源。Fan 等[25]设计另一套电子病历链上管理系统Medblock,结合访问控制与对称加密确保链上数据的完整性与真实性。实验结果表明该系统能够抵御重放攻击且不可篡改,检索病历数据的效率高,访问速度较高,并且采用异步上传数据的方式避免了数据拥塞。

3)征信与众包数据保护。陈春玲等[26]针对现有中心化征信系统在数据存储方面广泛存在单点故障和防篡改性差以及伪造数据的问题,设计出一种新型征信系统模型。该模型基于区块链实现一种去中心化的分布式存储结构,链上数据的正确性以及完整性由参与区块链的节点通过共识方式保证。在数据校验时,首先同步全网区块链至本地,然后和链下的元数据进行比较完成校验。无论在链上还是链下都进行严格的校验,有效保障了数据完整性;并且征信数据在全网节点都留有副本,在当单个节点数据损坏或丢失时可以与区块链上其他节点进行同步而恢复丢失的数据。但数据既存储在链上所有节点中也存储在链下,造成了较为严重的存储空间浪费,并且所有节点都需要同步全网数据。这种每个节点都相当于区块链中的全节点的设计模式会造成数据访问与更新时间效率不高,并且数据上链以前会先在链下验证,部署上链后又会由其他节点进行共识性验证,这会导致重复验证以及验证时间长的问题。

Li 等[27]提出了一个基于区块链的分散式众包框架(Crowdsourcing BlockChain,CrowdBC),其中请求者的任务不依赖任何第三方可信机构。该框架由以太坊公有链提供底层区块链支持,实验表明CrowdBC具有可用性和可扩展性,并且结合区块链后整个系统具有抵抗单点故障的能力。Bhatia[28]将众包任务上链部署,在确保众包数据完整性的同时降低了众包任务的经济成本。基于同样思想的还有Han等[29]的众包区块链应用。Lu 等[30]将他们的众包平台匿名分散众包系统ZebraLancer 部署在以太网公有链上,在确保众包数据完整性的同时更加侧重匿名信和隐私性。Buccafurri 等[31]认为将众包任务部署在有代币激励机制的链上并非最优选择,因每笔交易都须支付一定费用会导致成本高昂的问题,不利于众包任务的完成。据此他们基于社交网络twitter 设计一种改进公有链的替代链公共账本模型,采用概念验证证明(Proof Of Concept,POC)来降低经济成本,利用社交网络在信息共享方面的高性能降低访问延迟,能够在确保数据完整性的基础上显著减少计算时间。

2.2 联盟链应用于数据完整性保护

联盟链是一类由选举或投票的方式达成共识的区块链类型。权限较公有链更严格,节点能否参与需经过审核,因此中心化程度高于公有链。应用于数据保护时可不使用POW 机制,也无需花费代币,灵活性高。

2.2.1 公有链应用于溯源与确权数据保护

Bumblauskas 等[32]使用时间流逝证明(Proof Of Elapsed Time,POET)作为共识层算法,结合超级账本Hyperledger,实现了一个农产品的联盟溯源链。该算法使用sawtooth 平台部署智能合约,该平台具有不花费数字代币的特点;且使用POET算法形成共识,不需要庞大的算力和专门的硬件参与节点记账权的竞争[33]。这种共识层算法通常用于联盟链,每一个参与节点通过CPU 指令产生一个随机时间计时器并等待其触发来竞争记账权。最先完成等待时间的节点组装新的区块并在链上广播。其他节点校验其等待时间的真实性形成共识,计时器的随机性由专用于产生随机数的安全CPU 指令完成。该算法相较工作量证明POW 优势在于不需要大量的算力参与,也不需要专门的矿机,能够极大地节省算力成本。

为确保数据隐私性,Ramachandran 等[34]及Tosh 等[35]分别在各自的区块链数据溯源模型中使用哈希散列函数对用户ID 进行散列摘要,且将部分数据上链,去除了中心化存储的信息泄露风险,实现了一定程度的隐私保护。田有亮等[36]设计了一个基于属性加密的区块链数据溯源方法,共识层采取实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)算法实现。通过仿真实验证明所提算法可以在完成溯源数据完整性保护的同时确保数据隐私性,并实现了链上溯源信息的拥有者组内动态共享。

王海龙等[37]基于区块链技术和数字水印技术提出了一种新的确权方案,针对确权过程中的数据完整性,利用区块链不可篡改性与透明性保证确权结果的正确性和权威性。该方案选取的区块链类型是超级账本联盟链,因而隐私性和安全性都高于公有链并且使用一种能够容忍错误节点数达到全部联盟节点数一半的共识算法。实验证明其容错率高于PBFT 共识算法;但区块链在确权方面作为一种时间戳认证服务,而数据来自链下或链外,区块链无法确保来自链外数据自身的可信度[38]。

2.2.2 公有链应用于日志数据完整性保护

吕建富等[39]提出了一种基于链上链下相结合的日志安全存储与检索模型。该模型在链下提取日志数据的摘要和元信息,并将日志的完整数据加密存储在链下分布式数据库中。链上只存储日志数据的摘要和元数据信息,采用PBFT共识方法有效使各节点形成共识,如图6所示。

图6 日志联盟链PBFT共识过程Fig.6 PBFT consensus process of log alliance chain

在日志检索时,使用哈希结果比较的方法验证节点和链上数据的一致性,并由此判断数据是否遭到篡改。但在日志检索效率方面,密文检索技术确保了安全性和隐私性而牺牲了检索效率,因此应考虑如何在保证更高安全性的前提下更好地提高密文检索的效率。韩菊茹等[40]基于相似的思想设计了一套亿级日志数据审计系统,使用链上数据指纹和链下数据指纹校验的方式确认日志数据是否遭到篡改;但验证效率不高,验证代码运行于链下与链上组件,且未形成安全闭环,应结合智能合约将验证环节全部部署在链上形成安全闭环,从而提高安全性。

Putz等[41]使用联盟链作为底层的技术支持确保数据防篡改,结合密码学进行权限校验,提出了一个基于严格权限访问控制的日志审计架构。其共识层采用PBFT算法,能够确保整个系统中小于1/3 的节点出错时仍正确运行。通过安全性实验分析证明此联盟链日志审计架构能够拦截对日志数据的修改企图。

2.2.3 公有链应用于物联网数据完整性保护

Hang 等[42]将超级账本联盟链与物联网中的农业智能设备结合,实现了一个基于联盟链的养鱼场平台。该平台旨在为渔民提供和存储大量不可篡改的数据,并且养鱼场中的各种工艺由智能合约自动执行,显著减少了错误和误操作风险。实验结果表明此平台能够显著提升农业智能设备数据的完整性。

档案数据管理普遍存在中心化存储导致的安全性差且抵御篡改的能力弱的问题。谭海波等[43]对此提出了一种基于区块链的档案数据保护与共享方法,使用数字签名并创新性地将智能合约与星际文件系统(InterPlanetary File System,IPFS)结合,实现了对数字档案文件的保护,该方法并未局限于公有链而是将公有链与联盟链结合。此种融合性区块链根据存储其上的数字档案数据的结构进行了深度定制,既有区块链不可篡改等优点又提升了区块链的可扩展性。该方法有望将档案数据的一般存储模式转型为去中心化的存储模式,具有优良的应用前景。

2.3 私有链应用于数据完整性保护

私有链是三种区块链中权限要求最为严格的类型,其中心化程度也是三种类型中最高的。虽然牺牲了一定的信任,但使得共识算法更加灵活,适合数据保护中隐私性要求高的场景。

2.3.1 公有链应用于物联网数据完整性保护

Minoli[44]认为,公有链的POW 共识算法并不适合用于家庭智能设备物联网,应该寻找低算力参与的共识协议以及私有本地区块链网络来维护家庭智能设备物联网。为此Dorri等[45]实现了一个私有的本地区块链系统来管理智能家居设备物联网,去除了代币激励机制并通过一台资源配置较高的设备来对智能家居设备产生的数据进行区块组装与上链。实验表明此私有链能够满足智能家居设备数据量小算力低的特点,并确保设备数据的完整性。但由于记账权集中在一台设备上,因此存在单点故障的风险。

同样基于私有链,秦晓伟等[46]将其应用于矿山设备物联网,旨在解决矿山物联网设备数据传输和存储过程中存在易丢失和被篡改的问题。该模型使用PBFT算法作为共识机制,能够容纳小于系统中节点总数1/3出错或故障,如图7所示。

实验证明了该模型在数据完整性方面具有可靠性,但在该模型中所有存储节点都要同步保存数据,存在一定的存储空间开销。

图7 矿山物联网区块链共识过程Fig.7 Mine IOT blockchain consensus process

2.3.2 公有链应用于其他行业数据保护

安瑞等[47]将区块链技术应用于宝石鉴定证书的防伪应用场景,结合IC 卡芯片等硬件设备,设计了一套宝石鉴定证书安全防伪系统。此系统底层实现所依托的区块链是私有链,有效规避在公有链上写入数据导致的成本高昂的问题,并使用了支持多种加密方式以及近场通信(Near Field Communication,NFC)技术的智能IC 卡。即使设备离线依托NFC 技术,仍然能够读取IC 卡内数据,大大提升了系统链下部分的扩展性和灵活性。通过实验证明,此系统中的数据防篡改性、防伪造性高,成本低廉,有一定的竞争力,对当前区块链落地以及应用场景拓展给出了实际的参考。

2.4 对现有成果的总结

区块链应用于数据完整性保护按其类型可分为基于公有链的、基于联盟链的、基于私有链的三大类型,其中每个类型按应用场景和数据特性又分为溯源与确权数据保护、日志数据保护、物联网数据保护等,下面分别讨论各场景下将区块链技术应用于数据保护各个方案相较传统数据保护方法的优势以及自身的一些不足之处。

在溯源数据保护以及溯源链建立方面,当前数据溯源的主要传统方法有数据引证技术[48]、标注法[49]、反向查询法[50]等。然而这些传统方法对溯源数据本身的保护不足,往往需要依赖中心化的第三方存储或验证溯源数据。如何安全可靠地存储溯源数据成为溯源领域的难点。

中心化存储溯源数据的系统有四类重大缺陷:其一是存储系统的中心化程度越高其可信程度越低,特别是用来存储溯源数据的时候,中心化存储系统内生性地受制于可能的利益驱使而导致溯源数据的篡改或伪造问题;其二是单点故障问题非常有可能导致整个系统瘫痪;其三是数据的历史信息通常以日志的形式存在于各个分散的设备中,容易形成信息孤岛,溯源效率低下且数据易被篡改;其四是数据拥有者与数据分离,数据全部托管于中心化的第三方,有数据泄露的可能,对数据的隐私性造成威胁。

区块链的去中心化、防篡改以及共识机制等特性是解决这些问题的理想选择。然而大多数溯源技术的应用场景是集中式数据库或存储节点可信的分布式环境,在区块链的应用场景下无法直接使用[51]需进行一定的设计与调整。

另外一个问题是链上被保护数据的吞吐量问题,想要将区块链技术结合数据溯源实际落地,亟须提高区块链交易的处理效率即吞吐量,减少交易成本。为解决这些问题,区块链扩容和跨链侧链技术应运而生[52-56]。跨链侧链技术最早应用在比特币的扩容方面,是一种可让比特币安全转移到其他区块链,又可以从其他区块链安全返回到比特币主链的协议[57]。这些技术对提高吞吐量具有一定的效果,然而由于区块链链式结构本身的天然限制,这些扩容技术都非常复杂,对吞吐量的提升能力也有限。

在数据确权方面,传统的数据确权手段有提交权属证明、专家评审以及数字水印等,但前两种存在缺乏技术可信度和人为参与因素未形成安全闭环,而数字水印技术大多针对静态数据集,满足数据量巨大、更新速度高的水印方案尚不成熟[58],将区块链技术应用于确权数据保护能够一定程度上解决这些问题。

区块链在溯源和确权中应用的核心思想是将溯源数据上链保存达到溯源数据不可篡改的目的。但区块链只能保证链上数据的完整性,不能保证溯源数据来源的可靠性与数据本身的真实性,需要在链下结合其他数据真实性审计与校验手段。

在日志数据保护方面,区块链应用于日志数据完整性保护可以确保日志数据不被篡改,提升日志可靠性,加强系统的安全性。但由于链上存储空间开销大,因而大多数区块链日志应用仅存储日志数据的摘要或哈希而不是完整数据。虽然能检测篡改,但那些数据损坏的节点想要恢复日志数据仍然要依靠链下手段,并且智能合约应用不足,应深度研究结合智能合约的日志自动化验证方法。

在物联网数据保护方面,应根据要保护的数据所在的物联网设备特性对所用区块链进行定制化设计。比如物联网设备的普遍特点是设备小而多,单个设备并不具备很强的算力,这就不太适合采用POW 这种算力要求高的共识算法。而且设备数据存储能力也有限,需结合链下专门的存储设备存储数据。近年来新型分布式账本IOTA 是物联网区块链应用数据保护的一个可选项,其目标就是应用于物联网设备并建立机器经济,使交易无需手续费且数据上链速度高。

在区块链技术用于其他非IT 行业数据保护方面的应用处于初步探索与试点应用阶段,共性思路是将需要保护的数据存储到区块链上以达到数据保护的目的。

此外,区块链实现去中心化存储保护数据完整性还在慈善组织[59]、电力系统数据[60]、教育[61]等方面有研究和应用。其中的区块链类型多采用联盟链或私有链,通病是存在存储空间浪费和重复验证以及验证时间长的问题。

近几年来区块链技术越来越多与各行业结合,出现了去中心化应用(Decentralized Applications,DAPP)、去中心化组织(Decentralized Autonomous Organizations,DAO)[62]、去中心化公司(Decentralized Autonomous Companies,DAC)[63]甚至去中心化社会(Decentralized Autonomous Society,DAS)的概念,但与各行业结合前应该探索本行业哪些数据适合去中心化上链存储,因为链上存储空间开销大,所以那些需要频繁更新且规模庞大的数据就不太适合存储在区块链中。区块链更适合存储凭证、证书以及摘要或哈希等无需经常改动的数据。另外,那些必须受到第三方监督的领域应该采用联盟链或私有链这种中心化程度较高的区块链类型以满足监管要求,而不是完全去中心化的公有链。

3 现有数据完整性保护技术与区块链技术对比

3.1 传统数据完整性保护方法对比区块链技术

传统数据完整性保护的方法有哈希摘要校验、数字签名、数据水印等。这些完整性验证方法在大数据环境下逐渐暴露出很多问题。哈希摘要方法存在摘要形成时间长,效率低下,且无法满足大规模并行应用的缺点[64];数字签名技术的证书管理和存储以及密钥托管中心化,存在单点故障和信任问题[65];数字水印存在被擦除的风险[66-67],且无法抵抗屏摄。表1是传统数据保护技术与基于区块链的数据保护技术的特点对比。

由表1 可见,区块链在数据完整性保护方面由于自身不可篡改、可追溯性完备的特点在数据完整性保护方面具有天然的优势,相较传统数据保护技术覆盖更加全面,支持所要保护的数据流转过程的全程管理,且智能合约的应用也使数据完整性验证过程的自动化程度大大提高,因此将区块链技术应用于数据完整性保护有着良好的前景。

表1 传统数据保护方法与区块链技术对比Tab.1 Comparison of traditional data protection methods and blockchain technology

3.2 云环境下数据完整性保护方法对比区块链技术

数据完整性保护在云环境中的主流方法是数据审计,按照是否需要引入第三方审计分为公有审计[68-69]与私有审计[70]两大类。其中,公有数据完整性审计方式需要引入第三方审计者(Third Party Authority,TPA),而私有审计方式需要数据拥有者自行审计且要求整个审计过程中必须一直在线。

数据完整性保护公有验证审计广义分为如图8 所示的类型[71]。

如图8 所示,数据完整性保护验证机制按照是否对数据拥有容错预处理机制宏观分为数据持有性证明(Provable Data Possession,PDP)机制[72]和数据可恢复证明(Proofs of Retrievability,POR)机制[73],每种机制按照其所采用的实现技术又可更细致地分为若干子类,除此之外还有默克尔哈希树(Merkle Hash Tree,MHT)方案等[74]。

图8 云环境数据完整性保护技术分类Fig.8 Classification of data integrity protection in cloud environment

PDP机制旨在快速识别数据的完整性,注重速度与效率,因此适合大数据完整性审计与校验,但其得到的结果仅能判断是否损坏,不能判断损坏率或篡改率,也不能判断具体哪些数据遭到篡改,而且不能恢复被篡改的数据。

POR 机制不仅能判断数据完整性,而且可以对损坏或丢失的数据进行有限程度的恢复,缺陷是由于数据块参与了容错编码,更新数据块的同时必须更新相应的冗余信息,计算代价高且完整性验证速度低。

公有数据完整性审计方案的缺陷是数据与所有者分离,全部托管于云存储服务器中进行中心化存储,存在数据被篡改和泄露的风险,且一旦存储数据的云服务器出现故障,则数据所有者可能丢失数据。

私有数据完整性审计方案的缺陷是要求数据所有者审计过程中始终在线且消耗数据所有者的主机资源,过于依赖数据所有者自身的计算机和网络性能。

而使用区块链技术能够防止云存储数据带来的单点故障问题,也不需要引入第三方审计机构;使用智能合约既可使数据所有者异步验证数据完整性,不需要数据所有者在线,也不依赖数据所有者的计算机性能,自动化程度非常高。

表2 是区块链技术应用于数据保护对比云环境下数据完整性验证的三种审计方案。

由表2 对比可见,云存储环境下的数据完整性验证审计方案自身无法防止篡改,需依赖外部身份校验手段,而区块链方案本身对删改具有天然抵抗能力。

表2 三种云数据完整性审计方法与区块链技术在数据完整性验证方面的对比Tab.2 Comparison of three cloud data integrity audit methods and blockchain technology when applied to data integrity verification

3.3 传统数据存储系统与区块链数据存储系统

现有使用广泛的分布式数据存储系统是Ceph[75],然而Ceph 组件多而复杂,对所在计算机设备性能要求高,安装过程复杂繁琐且要求安装人员熟练掌握底层磁盘管理知识,对数据完整性保护并没有原生的支持,仅是通用数据存储方案。

星际文件(InterPlanetary File System,IPFS)[76]是一种与区块链相结合的文件存储系统,安装与操作都非常简单,其优点是去中心化存储,而且同样的数据不会被重复存储节约了存储空间,并且支持其上文件数据修改历史回溯,表3 是星际文件系统IPFS与Ceph的特点对比。

显然,在数据完整性保护方面,IPFS凭借其简单的安装和操作步骤以及去中心化的存储方式、抗分布式拒绝服务攻击(Distributed Denial of Service,DDoS)方面都优于Ceph 方案,且支持其上数据修改的全程回溯,使其具备天然的数据恢复能力,对操作系统没有要求可移植性好,这些都是Ceph 在数据完整性保护方面所不具备的优势。

表3 Ceph与IPFS在数据完整性保护中数据存储与恢复方面的对比Tab.3 Comparison of Ceph and IPFS in data storage and recovery of data integrity protection

4 研究展望

4.1 存在的问题

虽然使用区块链技术进行数据完整性保护能够较为全面地覆盖数据完整性保护的几点核心要求,但仍有一些不足之处需要改进。

首先,区块链的数据存储成本较中心化方案较为昂贵,尤其是参与节点多形成大数据量级的场景下。针对这个问题,现阶段可采用摘要的形式(即元数据、数据指纹、哈希值等)将数据部署到区块链中,已达到节省存储空间的目的;也可以使用BigchainDB(Bigchain DataBase)[77]以及IPFS 这类新型的区块链分布式存储系统。但因为这些去中心化存储方案出于初创阶段,故离大规模应用还有一定的距离。

第二,为参与节点找到合适的共识算法也是一项富有挑战性的任务,应该结合具体的应用场景选择最合适的激励机制和共识算法。比如,在那些需要高吞吐量和高访问速度的应用场景就并不适合采用POW 这种吞吐量低的共识算法,应考虑容量证明(Proof Of CApacity,POCA)或持币量证明(Proof Of Stake,POS)、权威证明(Proof Of Authority,POA)等。各主流共识算法应用于数据保护的优缺点如表4所示。

还有处于研究中尚未大规模应用的共识算法,如proof of QoS(Quality-of-Service)[78]、proof of location[79]、proof of deep learning[80]、proof of credit[81]、proof of concept[82]等。这些新型共识算法的特点是专用于某个具体的场景下,并非通用的共识算法。

表4 共识算法应用于数据完整性保护的优缺点比较Tab.4 Comparison of advantages and disadvantages of consensus algorithms when applied to data integrity protection

第三,区块类型选择。应按照所要保护的数据类型和特点以及要求选取合适类型的区块链。比如,在一些需要高隐私性需求的数据保护与存储领域就不太适合使用公有链这种不需要身份认证的区块链类型。具体例子是我国正在试点运行的基于区块链的数字化人民币(Digital Currency Electronic Payment,DCEP)。由于监管和审计要求不能完全去中心化,故联盟链或私有链就更为适合这种场景。表5 是区块链三种类型应用于数据完整性保护的比较。

表5 不同类型区块链应用于数据完整性保护的特点比较Tab.5 Characteristic comparison of different types of blockchain when applied to data integrity protection

第四,智能合约安全性。将智能合约应用于数据完整性保护能够提升数据验证的自动化程度,但智能合约一旦部署上链就不能再更改,若出现安全漏洞则可能会对数据完整性造成威胁。因此必须在智能合约代码部署到区块链前对其进行严格的测试和验证,确保其不存在安全漏洞。形式化验证和符号执行技术是智能合约代码审计的理想选择[83]。

第五,各种区块链对各种攻击的抵御能力。在将区块链技术应用于数据保护过程中,应重点防范分叉攻击[84]、回滚攻击、双花攻击[85]、51%算力攻击[86]。其中,分叉攻击由于会破坏分布式共识,造成数据不同步甚至冲突,是对数据保护危害较大的攻击方式。

4.2 下一步的研究方向

作为数据安全重要一环,数据完整性保护被视为整个数据生命周期的前提与基础环节。区块链技术应用于数据保护,在解决了已有数据完整性保护技术完整性验证效率、数据泄露问题、数据恢复能力不足和抗删改能力不足的基础上,应结合数据完整性保护的特点重点改进以下几个方面:

1)数据存储能力弱。主流区块链由于更侧重计算与控制,在存储方面能力较弱,链上存储空间成本高,不太适合存储大量数据的场景。这点使用基于区块链的IPFS 可以得到解决,它可提供:

①使用哈希进行数据或文件对象内容寻址;

②存储容量随参与节点的数量线性增长;

③其上数据对象使用有向无环图(Directed Acyclic Graph,DAG)默克尔树(Merkel Tree)彼此连接,提供完整性验证接口;

④类git的版本控制系统,数据或文件全版本历史追溯;

⑤基于数据内容存储,自动删除内容相同的冗余数据。

2)数据存取访问速度低。数据部署上链速度低的问题是阻碍区块链应用于数据完整性保护的一大原因,且使得数据易受到双花攻击。这是因为主流区块链技术的自身链式结构不支持异步写入造成的,这就导致在数据吞吐量大的场景下会出现拥塞问题。

近年来出现的新型分布式账本IOTA[87]有望解决这个问题。IOTA采用DAG而不是链式结构来构建自身。这种结构支持异步记账,单位时间内能够处理的数据量由于不需要同步认证而大大高于传统区块链,有望成为下一代主流分布式账本。

3)数据验证过程安全性。采用智能合约虽然能够大大提高数据完整性验证的效率,也不需要像已有数据完整性验证方法那样引入TPA 来验证,不用担心数据泄露的问题。但智能合约目前诞生不久,其饱受安全漏洞的困扰,其中一些漏洞很可能导致被保护的数据出现不可预料的问题。这是由于智能合约与传统高级语言编程方式有着较大差异,采用形式化验证和符号执行能够在一定程度上缓解这个问题。

5 结语

本文首先对区块链和数据完整性保护的相关概念进行了简要介绍。根据区块链类型与应用场景分类介绍了区块链技术在数据完整性保护中的应用,并与已有数据保护完整性保护方式进行了对比,总结了区块链技术应用于数据保护的现有不足并对下一步的研究方向进行了展望。区块链因其自身去中心化、区块中数据不可篡改的特性,在数据保护领域中有着天然的优势,是未来分布式环境下数据保护的一大可行方向。区块链技术在数据完整性保护领域的完整性验证效率、数据恢复能力、数据历史版本回溯能力以及防止单点故障和抗删改方面都有较好的表现;但现有数据完整性保护应用较少且处于初创阶段,亟待学者们研究。

猜你喜欢
数据保护日志共识
一名老党员的工作日志
共识 共进 共情 共学:让“沟通之花”绽放
读扶贫日志
商量出共识
雅皮的心情日志
欧盟最严数据保护条例生效 违反将严惩不贷
雅皮的心情日志
欧盟“最严”数据保护条例生效
未成年人能不能上社交网络
“慢养孩子”应成社会普遍共识