专利篇 | 在透明的公链网络中如何实现数据的隐私保护

原创
1468 天前
1175

提到比特元公链技术,相信大家印象最深刻的就是,比特元公链底层技术有500+项区块链专利保障。但大部分社区伙伴并不能直接理解这众多专利的价值以及各个专利在比特元公链技术中具体起到了什么样的作用。

基于以上原因,也为进一步深度剖析比特元公链,比特元公众号特别更新一个专利科普专题,专门用来介绍比特元背后专利的价值和应用方向。

在区块链公链数据存储领域,大部分小伙伴心中这样一个问题,就是公链既然可以让所有信息公开透明,那涉及个人隐私或其他机密信息上链之后丧失了数据的安全性,如果是这样,那区块链的适用范围是不是将大大降低呢?

当然不是,区块链对于链上数据有专门的加密技术可在数据共享的同时,实现数据隐私的保护,常用的加密方式有零知识证明、同态加密等。然而零知识证明和同态加密,在执行效率上并不高。所以,比特元公链在解决链上数据隐私保护及加密数据检索问题上,采用了独特的《区块链加密检索方案》,并于2016年申请为专利。

专利名称:《区块链加密检索方案》

查询网址:http://www.innojoy.com/

申请号:CN201611269078.9 

申请日:2016.12.31 

公开(公告)号:CN106682528A 

公开(公告)日:2017.05.17

我先系统的介绍下专利实现的架构和逻辑,在对其中的设计和应用进行单独分析。

为了便于大家理解《区块链加密检索方案》在技术实现上的逻辑架构,我将下面可能涉及到的加密算法进行简单的介绍。

对称加密算法

在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。

非对称加密算法

非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

Hash算法

Hash就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。且这个压缩过程具有不可逆性。

*数据关系图

在执行《区块链加密检索方案》前,为方便数据的检索及隐私保护,我们需要对数据分离,并进行一系列的加密运算处理数据。

第一步

首先我们将需要检索的关键字和检索码c_i串联,并做哈希运算,算出哈希值hash_c_i,然后将关键字对应的内容value用对称密钥加密,并同时将密钥用有查看权限的甲和乙的公钥进行加密。然后对内容进行Hash运算,生产相应的哈希值。

第二步

我们将以上得到的所有Hash数据再次进行Hash运算,得到Hash_c_i,并将所有数据一同保存到区块链上。

第三步

之后任何用户可通过区块链,将链上数据下载下来并解析分离出key_c_i和value_c_i并存入中心化数据库进行保存。

第四步

甲用户或者乙用户通过解析出来的检索码c_i和关键字key,将c_i和key进行哈希运算生成哈希值Key_c_i。在数据库中用key_c_i检索出value_c_i,将两者串联哈希后,得出交易哈希值hash_c_i,可在区块链上找到对应的哈希值,并找到key_c_i和value_c_i,从而可验证数据是否真的在区块链上保存;

第五步

甲和乙还可通过自己的私钥解开经过加密的Value内容,将解密后的内容再次进行Hash运算对比区块链上的Hash值,如果两者Hash值一致,则表明数据保存于链上,且数据未被进行篡改。

第六步

若想向第三方用户证明数据确实保存在链上,建立数据公信,可向其他用户提供交易Hash_c_i及解密后的内容、Hash(内容),用户可直接通过内容Hash验证的方式,验证数据是否真实保存在链上,从而确保数据的真实性。

通过《区块链加密检索方案》的架构梳理,整个架构通过三种不同的加密算法实现了数据的加密存储、内容的权限管理、内容的真实验证、数据的高效检索。

以保险应用场景为例,看区块链加密检索方案如何实现用户保单的查询及隐私管理。

首先我们将用户的个人信息组成关键字+保单号,共同哈希运算生成hash_c_i。然后将Value值(保单内容)用保险公司、监管部门、用户本人的公钥进行加密,同时将Value值(保单内容)哈希运算,生成用户相应的哈希值。

此时在将所有信息进行上链,同时进行解析分离在数据库中也存储一份。将检索码和保单信息通过key-value的方式对应存储,之后在检索保单信息时只需要通过key-value的键值对应在数据库上即可完成信息检索。之后,只需要通过哈希验证的方式,验证原始数据确实在链上保存即可。通过将检索和验证进行分离,从而提高数据检索的效率。

在数据验证上,任何用户在不知道核心数据的情况下,都可将key和value进行哈希运算,将哈希结果与链上哈希进行核对,确认数据存储于链上。

另一方面通过非对称加密的方式,保证用户的保单信息虽然在链上公开保存,但保单信息只有拥有查看权限的保险公司、监管方、个人才有查看的权限,其他用户必须获得授权许可才具备查看的权限,从而实现用户信息的隐私保护。

通过保险应用场景中的保单管理案例可知,比特元可通过区块链加密检索方案实现链上数据隐私保护的同时保证高效的数据检索。