论文部分内容阅读
随着传感网与物联网技术的不断完善和发展,我们在不知不觉间产生着大量数据。根据2020年行业报告显示:2020年全球数据量预计将超过40ZB。面对着数据爆炸式的增长,传统中心式存储系统却在信息安全方面不断爆发事故:数据容易被篡改,无法溯源,容易丢失。并且传统的中心式存储系统存在着严重的单点故障问题,系统的稳定性无法得到有效的保证,即使采用先进的多活模式,现实上只是在物理上独立,在逻辑上依然只能依赖主节点的服务能力。区块链技术作为一种完全去中心化的技术解决方案。目前已经在金融领域(比特币)得到了充分的应用。本文的研究重点是基于区块链技术设计一套数据安全性高,性能高的完全分布式的可信存储系统。目前现有的区块链技术为了避免女巫攻击,采取了工作量证明(POW)算法作为节点间的共识算法。虽然POW算法能达成节点间的共识,但是大量的Hash计算浪费了过多的资源。如果将其直接应用于存储系统,会使存储系统的响应速度大大降低,无法满足生产的需要。而在数据存储的场景中,由于所有存储节点都需要经过严格的认证才能进入分布式网络,所以在一定程度上可以认为分布式存储系统存在女巫攻击的可能性偏低,使用POW作为共识算法的收益很低。针对这个情况,本文基于实用拜占庭容错(PBFT)算法,提出了一种适用于数据存储场景下的高性能区块链共识算法HPBFT,即High Performance Byzantine Fault Tolerance算法。HPBFT算法改进了PBFT算法在无拜占庭节点的情况下,prepare阶段和commit阶段通信复杂度仍为O(9)~2)的缺点。经过优化,最好情况下,HPBFT算法中prepare和commit阶段的网络通信复杂度减少到了O(9))。同时HPBFT算法对视图切换时加入了对拜占庭节点的惩罚措施,减少了视图切换发生的次数,增加了存储系统的通信效率和吞吐量。同时为了验证HPBFT算法在存储环境下的真实表现,本文基于HPBFT算法实现了一套多节点分布式数据存储系统BCSS,即Block Chain Storage System。同时对BCSS系统进行了集成测试和对比测试,测试发现BCSS在系统中存在错误节点的情况下,依旧可以正常运作,完成数据存储的任务。同时BCSS系统的共识算法HPBFT在共识过程中的性能表现较实用型拜占庭算法和工作量证明算法有着明显的优势。