基于TBchain区块链的高可信云存储模型
发布时间:2021-04-16 14:00
云存储中的数据可能会遭受非法窃取或篡改,从而使用户数据的机密性面临威胁。为了更加安全、高效地存储海量数据,提出一种支持索引、可追溯、可验证的云存储与区块链结合的存储模型CBaaS(Cloud and Blockchain as a service),它可以增强云中数据的可信性。另外,区块链的协商一致协议导致交易的吞吐量低,处理速度慢,严重制约了去中心化应用的发展。基于此,文中实现了一个三层架构的区块链模型TBchain(Three-tier architecture Blockchain),其通过分割区块链的一部分并将其锁定在更高级别区块链的块中提高区块链的可伸缩性,从而提高区块链中交易的吞吐量。此外,区块链由于去中心化的需求占用了海量节点的大量存储空间,这极大地限制了以区块链技术为基础的数据库系统的发展与应用。通过TBchain将一部分交易存储在本地,增加了区块链存储容量的可扩展性。云存储对象元数据中的ETag标示一个Object的内容,可以用来检查Object内容是否发生变化。将云存储中的对象元数据存储在区块链上,利用ETag值可以用于检查Object内容是否发生变化的特性和区块链...
【文章来源】:计算机科学. 2020,47(09)北大核心CSCD
【文章页数】:9 页
【部分图文】:
传统的区块链体系结构
CBaaS的存储层由云存储和区块链两部分构成。将用户提供的视频、图片等海量数据存储在云上,需要使用对象存储。数据存储在云上后会生成对象元数据,将对象的元数据信息存储在区块链上能减轻区块链的存储负担。在存储层设计了3种存储元数据的方式:用Submit_raw存储元数据自身信息,用SBmit_md5存储元数据的MD5值,用Submit_etag存储元数据中的ETag。后两种方式可以进一步地减少区块链的存储空间,增加了区块链的存储容量可扩展性。云上元数据并没有存储在公共区块链上,而是存储在自己本地的区块链TBchain上。存储层中,UB,MB,SB的区块中存储数据的框架如图5所示。UB的数据块中存放的是来自云存储的元数据信息,每一个区块都会根据交易数据生成一个hash值。区块链UB的终端块UB-TB中存放的是该区块链上UB-TB之前所有区块的当前hash值连接之后的hash结果。MB-DB中存放的是UB-TB的内容,即一个MB的数据块中存放的是一条UB区块链所有交易数据hash值的hash结果。同理,区块链MB的终端块MB-TB中存放的是该区块链上MB-TB之前所有区块的当前hash值连接之后的hash结果。SB-DB中存放的是MB-TB的内容,即一个SB的数据块中存放的是一条MB区块链所有交易数据hash值的hash结果。最后,将SB层区块链中的hash数据推送到以太坊上,以便在需要的时候能够根据以太坊上的hash值追溯到交易所在区块链,得到交易所在区块的索引号、时间戳和原始交易数据,从而提高区块链的容量可扩展性。
图8 TBchain与以太坊处理200个交易的时间对比由图8和图9实验结果可知,当TBchain的数据块数量设为5,10时,其交易的处理速度远远高于以太坊的交易处理速度。当TBchain的数据块设为1时,其交易的处理速度略低于以太坊的交易处理速度,但两者随着交易数量的增加,交易吞吐量对比应该始终接近于1,这主要是因为在三层架构的区块链上存储交易会有传输延时。当处理一定数量的交易时,以太坊、UB和MB不同数量的数据块对应的处理时间如表3所列。
【参考文献】:
期刊论文
[1]区块链的存储容量可扩展模型[J]. 贾大宇,信俊昌,王之琼,郭薇,王国仁. 计算机科学与探索. 2018(04)
本文编号:3141564
【文章来源】:计算机科学. 2020,47(09)北大核心CSCD
【文章页数】:9 页
【部分图文】:
传统的区块链体系结构
CBaaS的存储层由云存储和区块链两部分构成。将用户提供的视频、图片等海量数据存储在云上,需要使用对象存储。数据存储在云上后会生成对象元数据,将对象的元数据信息存储在区块链上能减轻区块链的存储负担。在存储层设计了3种存储元数据的方式:用Submit_raw存储元数据自身信息,用SBmit_md5存储元数据的MD5值,用Submit_etag存储元数据中的ETag。后两种方式可以进一步地减少区块链的存储空间,增加了区块链的存储容量可扩展性。云上元数据并没有存储在公共区块链上,而是存储在自己本地的区块链TBchain上。存储层中,UB,MB,SB的区块中存储数据的框架如图5所示。UB的数据块中存放的是来自云存储的元数据信息,每一个区块都会根据交易数据生成一个hash值。区块链UB的终端块UB-TB中存放的是该区块链上UB-TB之前所有区块的当前hash值连接之后的hash结果。MB-DB中存放的是UB-TB的内容,即一个MB的数据块中存放的是一条UB区块链所有交易数据hash值的hash结果。同理,区块链MB的终端块MB-TB中存放的是该区块链上MB-TB之前所有区块的当前hash值连接之后的hash结果。SB-DB中存放的是MB-TB的内容,即一个SB的数据块中存放的是一条MB区块链所有交易数据hash值的hash结果。最后,将SB层区块链中的hash数据推送到以太坊上,以便在需要的时候能够根据以太坊上的hash值追溯到交易所在区块链,得到交易所在区块的索引号、时间戳和原始交易数据,从而提高区块链的容量可扩展性。
图8 TBchain与以太坊处理200个交易的时间对比由图8和图9实验结果可知,当TBchain的数据块数量设为5,10时,其交易的处理速度远远高于以太坊的交易处理速度。当TBchain的数据块设为1时,其交易的处理速度略低于以太坊的交易处理速度,但两者随着交易数量的增加,交易吞吐量对比应该始终接近于1,这主要是因为在三层架构的区块链上存储交易会有传输延时。当处理一定数量的交易时,以太坊、UB和MB不同数量的数据块对应的处理时间如表3所列。
【参考文献】:
期刊论文
[1]区块链的存储容量可扩展模型[J]. 贾大宇,信俊昌,王之琼,郭薇,王国仁. 计算机科学与探索. 2018(04)
本文编号:3141564
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3141564.html