在目前区块链存储中,在追求高安全性的同时,往往忽视了可靠性的最基本需求,很多没有考虑实际应用场景,只追求高度加密,由于效率太低,最后没有实用性。Shine Cloud Network使用多极可选隐私保护技术,存储应用可以选择合适的隐私技术,比如加密去重技术组合、零知识验证组合、真随机等。

压缩加密去重技术

为了避免海量数据Shine Cloud Network会对数据进行预处理、格式化和数据压缩。在Shine Cloud Network的压缩技术中,包括有损压缩和无损压缩两种方式,有损压缩算法主要用于压缩图片、音频和视频 ,无损压缩用于完全还原原始数据。在压缩算法上,Shine Cloud Network支持Huffman编码和列式存储。

收敛加密去重技术

本质上压缩算法的核心是找重复数据。重复数据是不可避免的,也是任何本个存储系统需要考虑的问题。传统存储网络中,如云盘、CDN甚至IPFS,对于明文文件的去重技术已相当成熟,只需要对比两个文件的指纹信息,即可判定是否内容相同。但在加密存储应用中,上述方法已经失效,两个相同文件使用不同的公钥加密后产生的密文内容并不一样,无法简单地基于密文的指纹信息实现去重,同时数据的分片存储也使得去重变得更加复杂。零知识数据加密和数据去重都对存储起到决定性的作用。但在行业中却存在一个“公知常识”:数据加密后不能去重。即零知识数据加密与数据去重二者不可兼得,最多只能选一个。

 

Shine Cloud Network采用了采用收敛加密算法来处理去重技术。基于动态 Bloom filter 提出一种改进的、无需可信第三方的所有权证明安全去重方案,检查数据块密文和标签的一致性来防止数据污染攻击。

Bloom filter 是一种高效的概率性数据结构,用于判断某个元素是否属于特定的集合,通常由 1 个二进制向量和 k 个相互独立的哈希函数组成。设一个 Bloom filter 中有 m 比特的二进制向量,初始化所有比特位为 0。集合中有 n 个元素,每个元素通过计算 k 个哈希函数{H1, H2, …, Hk}映射到{1, 2, …, m} 的范围中。当插入元素 x 时,将 k 个哈希函数映射的位置 Hi(x) 置为 1。如图 2 所示,n=2,k=3,箭头指向的地方即是哈希函数映射的比特位,将其置为 1。

  

 

实验环境:AMD1.8GHz 四核 E2-7110,内存 8GB,Windows 10 系统,编程语言为 Python,收敛密钥产生算法采用 SHA-256,其他哈希函数都采用 SHA-1。

分别对 64MB、128MB、256MB、512MB 和 1GB 的文件进行分块,每个数据块 4KB,每次运行 PoW 协议时挑战数据块 J 的取值是数据块总数的 5%,Bloom Filter 中哈希函数的个数 k 取为 4。计算开销测试结果如所示。

 

 

目前收敛加密算法已在云海存储DAPP产品进行了应用。