基于PBFT算法的区块链用户隐私数据保护与查找问题研究
2020-10-26赵倩
赵倩
摘 要
本文针对区块链技术中的共识算法的一种——PBFT算法(实用拜占庭算法)进行研究,主要探究该算法在用户隐私数据保护与查找问题方面的作用。笔者从区块链技术作用机制与原理入手,以拜占庭算法为基础,与实用拜占庭算法相比较,深入剖析了实用拜占庭算法在区块链共识机制当中的作用机理,并通过数据实例进行验证,充分证明了实用拜占庭算法在区块链技术中的广阔使用前景。
关键词:PBFT 实用拜占庭算法 区块链 用户隐私
中图分类号:TP309;TP311.1
1.区块链技术简介
区块链最大的特点是“去中心化”,而目前区块链技术的主要用途是充当数字加密货币分布式账本,是数字加密货币得以顺畅运行的底层核心技术。目前较流行的虚拟货币比特币正式在该技术的支持下来构建整体系统的。除了比特币外,近年来还涌现了其他新的虚拟货币以及完全不同应用领域,比如能源领域等。它们的共性依然是对区块链技术的深层使用,因此,区块链技术的研究和应用得以进一步扩展,与此同时,也暴露出了一些问题,最典型的就是数据隐私问题。由于“去中心化”这个特征既成就了区块链特有的共识机制,但也容易造成用户数据隐私的泄露问题,且随着在多类应用中的深入使用,数据隐私泄露问题越发严重。以比特币交易为例,在这种虚拟货币的交易过程中会产生海量的数据记录,这就给某些意图不轨的人带来的机会,他们会利用数据中的规律来推算交易参与者的身份信息和地理位置信息,进而将这些信息关联起来,盗取用户的比特币。而在如能源应用等领域若发生信息泄露,则会给国家带来巨大的甚至灾难性的损失。由此可见,区块链技术的数据隐私安全问题至关重要。
关于区块链的数据安全问题,目前常用的解决方法有以下幾种:
第一种是节点认证机制,即在区块链特有的节点中植入一定的加密规则,这样就可以防止非法节点的访问,这种机制的特征是仅针对0恶意节点的区块链有效,一旦发生恶意节点访问,则防护无力。
第二种是混币机制,这种机制的目的是及时检测出已存在的恶意节点,并且用数据混淆的理念增强交易单的数据复杂度,进而降低恶意节点获取区块链数据库规律的可能性。
第三种是零知识证明技术,这种技术的主要作用就是信息认证,但是认证耗时较长,效率不高。
第四种是物联网数据保护技术,该技术的基本原理与区块链技术相吻合,即去中心化,通过对存储数据区块化处理并加密,来提高数据的安全性。但缺点就是计算量过大,实用型不佳。
2. PBFT算法简介
除了上述数据隐私保护机制外,本文从区块链数据隐私保护与数据查找取用便捷的角度提出了一种数据安全方案,即基于PBFT算法的区块链用户隐私数据保护与查找机制。实用拜占庭容错算法即Practical Byzantine Fault Tolerance(简称PBFT),是对拜占庭容错算法Byzantine Fault Tolerance(即BFT)的优化方案。实用拜占庭算法的分布式安全性以抵抗攻击者主观攻击意愿和攻击抵抗能力来看是所有共识算法当中最强大的 。
在区块链网络环境中,有运行正常的节点,有信息有误的节点,还有恶意节点。共识算法的核心是在正常的节点间形成对网络状态的共识。通常,这些信息有误节点被称为拜占庭节点,而正常的节点即为非拜占庭节点。
拜占庭系统普遍采用的假设条件包括:
1)拜占庭节点的行为可以是任意的,拜占庭节点之间可以共谋;
2)节点之间的错误是不相关的;
3)节点之间通过异步网络连接,网络中的消息可能丢失、乱序并延时到达,但大部分协议假设消息在有限的时间里能传达到目的地;
4)服务器之间传递的信息,第三方可以嗅探到,但是不能篡改、伪造信息的内容和验证信息的完整性。
原始的拜占庭容错系统缺乏实用性,还需要额外的时钟同步机制支持,算法的复杂度也是随节点增加而指数级增加。而实用拜占庭容错系统(PBFT)降低了拜占庭协议的运行复杂度 ,从指数级别降低到多项式级别(Polynomial)。实用拜占庭容错算法的特征在于可搜索加密,主要思想就是对重要信息的加密和密文进行搜索,在不耗费过多计算量的同时,还能确保区块链数据的安全。其具体计算逻辑与算法演示在后面进行详述。
在进行基于PBFT算法的区块链用户隐私数据保护与查找机制的有效性论证之前,首先要明确区块链技术自身基本的架构。区块链架构分为数据层、网络层、共识层、合约层和应用层5个基本层,各层次职能独立、协同分工,进而实现基于区块链技术的各类应用的正常运行。区块链的基本架构模型如图1所示。
如图1所示,最底层数据层的职能就是存储数据和取用数据,这里的数据主要指交易数据。每当完成一个交易,则与此次交易相关的所有数据都会被数据层封装,以单个区块的形式传输到特定数据库。通常,一个单独的数据区块中一定会有时间数据、哈希值、以及与交易数据有关的各个文本文件等。
3.PBFT算法共识计算步骤与优势
本文采用PBFT技术是区块链共识算法中的一种 ,目前流行的区块链共识算法主要有强一致性共识算法和最终一致性共识算法两大分支,而PBFT算法属于前一个分支,特点就是相对最终一致性共识算法,这类算法的安全性更高,对数据隐私的保护力度更强,但是算法较复杂,相对耗费的计算量较大。
采用PBFT算法需要经历客户端、主节点和从节点三种角色的共识,假设PBFT算法可以接纳的非法节点为f,假设从节点的个数为n,则从节点个数与非法节点的关系表达式为:n=3f+1。
每一个客户端的请求共需要经过5个阶段,通过采用两次两两交互的方式在服务器达成一致之后再执行客户端的请求。由于客户端不能从服务器端获得任何服务器运行状态的信息,PBFT中主节点是否发生错误只能由服务器监测。如果服务器在一段时间内都不能完成客户端的请求,则会触发视图更换协议。其中C为客户端,N0~N3表示服务节点, N0为主节点,N3为故障节点。整个协议的基本过程是:
1)客户端发送请求,激活主节点的服务操作。
2)当主节点接收请求后,启动三阶段的协议以向各从节点广播请求。
(2.1)序号分配阶段,主节点给请求赋值一个序列号n,广播序号分配消息和客户端的请求消息m,并将构造PRE-PREPARE消息给各从节点;
(2.2)交互阶段,从节点接收PRE-PREPARE消息,向其他服务节点广播PREPARE消息;
(2.3)序号确认阶段,各节点对视图内的请求和次序进行验证后,广播COMMIT消息,执行收到的客户端的请求并给客户端以响应。
3)客户端等待来自不同节点的响应,若有m+1个响应相同,则该响应即为运算的结果。
进行共识计算的步骤如图2 、图3所示。
运用PBFT算法的优势是,计算过程中争夺出块的机会这一关键步骤所消耗的计算资源较少,可以快速获得共识成功;PBFT算法的另外一个优点则在于争夺出块机会时,不会依赖区块链中各节点的权益分量,这个优势不仅能节约运算耗费,还能同时保证数据的隐私安全。
4. 可搜索加密
区块链技术的去中心化和分布式特征决定了区块链中的数据不会采用明文存储,而是先加工所有数据封装加密,以单位区块的模式存入分布式数据库。这种存储方式对于单个区块数据来说安全性高,但是对于整体数据的查找、取用等来说,就加大了难度。
为了解决分布式存储模式下数据的使用便捷性,可搜索加密技术应运而生。目前,常用的可搜索加密技术有两种,分别是对称可搜索和非对称可搜索。假设加密密钥为A,解密密钥为B,则对称可搜索技术中,A=B,而非对称可搜索技术中,A≠B。两者的不同之处在于前者适用于私钥用户,而后者适用于公钥用户。
可搜索加密的技术特征是对已经完成加密的文件和数据进行搜索,所以在搜索的过程中,运算过程需要向系统出示搜索信号标签,相对来说,这种以来标签进行搜索的信息查找方式安全性更好。
可搜索加密技术的数据查找运算执行过程如图4所示。
5. 应用测试
为了验证上述算法的有效性,本文对存储在区块链中的某虚拟货币数据进行查找,总共选用了3000个关键词,且都是加密状态。测试时以100为启始查找数量,之后按照一定规律递增,来检验运用本文所论述的方法查找數据所耗费的时间,测试结果如表1所示。
将表1中的数据进行分析,可以得到如图5所示的查找耗时随着关键词个数增加而延长的趋势。
由表1和图4综合分析可知,运用本文所论述的基于PEFT算法的区块链用户隐私数据保护与查找技术,在可搜索加密的支撑下,一方面能够保证区块链数据的安全效果,另一方面,且便于用户查找,查找耗时与所查找个数正相关。
6. 小节
本文提出并论述了基于PBFT算法的区块链用户隐私数据保护与查找机制,在可搜索加密的支撑下,能够有效地确保区块链中用户隐私数据的安全需求,防止数据被恶意泄露,且在数据加密情况下,用户查找取用数据更便捷。此方法可应用于基于区块链底层技术的不同应用,具有较好的社会价值。
参考文献
[1]Alexandre Pólvora,Susana Nascimento,Joana S. Louren?o,Fabiana Scapolo. Blockchain for industrial transformations: A forward-looking approach with multi-stakeholder engagement for policy advice[J]. Technological Forecasting & Social Change,2020,157.
[2]陈子豪,李强.基于K-medoids的改进PBFT共识机制[J].计算机科学,2019,46(12):101-107.
[3]王德文,王莉鑫.基于实用拜占庭容错算法的多能源交互主体共识机制[J].电力系统自动化,2019,43(09):41-52
[4]Seyed Mojtaba Hosseini Bamakan,Amirhossein Motavali,Alireza Babaei Bondarti. A survey of blockchain consensus algorithms performance evaluation criteria[J]. Expert Systems With Applications,2020,154.
[5]Vincent Gramoli. From blockchain consensus back to Byzantine consensus[J]. Future Generation Computer Systems,2020,107.
[6]Dolan,Kavanaugh,Korinek,Sandler. Off the Chain: Blockchain Technology—An Information Organization System[J]. Technical Services Quarterly,2019,36(3).
[7]戴鹏.基于实用拜占庭共识算法(PBFT)的区块链模型的评估与改进[D].北京邮电大学,2019.
[8]储劲松.基于PBFT算法的动态共识机制研究[D].江苏大学,2019.
[9]蔡晓晴,邓尧,张亮,史久琛,陈全,郑文立,刘志强,龙宇,王堃,李超,过敏意.区块链原理及其核心技术[J/OL].计算机学报,2019:1-51
[10]朱岩,王巧石,秦博涵,王中豪.区块链技术及其研究进展[J].工程科学学报,2019,41(11):1361-1373.
[11]方轶,邓建球,丛林虎,刘崇屹.一种基于环签名的PBFT区块链共识算法改进方案[J].计算机工程,2019,45(11):32-36.
[12]余丽静.网络异常情况下的拜占庭容错算法研究[J].计算机光盘软件与应用,2013,16(15):144-145.
[13]王稼香.拜占庭容错算法在Web Services服务提供上的研究与应用[D].山东大学,2009.
[14]郑敏,王虹,刘洪,谭冲.区块链共识算法研究综述[J].信息网络安全,2019(07):8-24.
[15]武岳,李军祥.区块链共识算法演进过程[J/OL].计算机应用研究:1-9.
[16]李芳,李卓然,赵赫.区块链跨链技术进展研究[J].软件学报,2019,30(06):1649-1660.
[17]张亮,刘百祥,张如意,江斌鑫,刘一江.区块链技术综述[J].计算机工程,2019,45(05):1-12.
[18]甘俊,李强,陈子豪,张超.区块链实用拜占庭容错共识算法的改进[J].计算机应用,2019,39(07):2148-2155.
[19]Tom Hill. Blockchain for research: Review[J]. Learned Publishing,2018,31(4).
[20]赵振龙.带有主动恢复的拜占庭容错算法在区块链中的应用[D].浙江大学,2018.
[21]雷长剑,林亚平,李晋国,赵江华.志愿云环境下的拜占庭容错研究[J].计算机工程,2016,42(05):1-7.
[22]张晓霞,张凤登,陈悫,张大庆.分布式WSN系统中的拜占庭故障算法研究[J].工业控制计算机,2014,27(01):70-72.
[23]刘让,张凤登.FlexRay时钟同步拜占庭故障容错算法研究[J].软件导刊,2020,19(01):68-74.