论文《Decentralizing Privacy: Using Blockchain to Protect Personal Data》笔记
1. 概述
论文旨在解决如果利用区块链技术保护用户数据的隐私,以解决传统第三方服务器存储数据时存在的隐私泄露、数据拥有权等问题。该论文算是区块链上数据隐私保护的开山之作,提出了去中心化用户数据管理框架,在该框架下可以确保用户真正地拥有自己的数据并掌握绝对的控制权。
该论文的安全模型为:服务器是诚实但又好奇的敌手,即半诚实敌手,服务器的行为遵循协议的规则并且不恶意中断协议的过程。该方案具有如下特点:
- 数据拥有权:该方案可以确保用户对数据的拥有权和控制权,即系统可以识别用户拥有的数据,以及若某个服务器想访问用户的数据,需要得到用户的授权。
- 数据访问的公开透明性和可审计性:当用户数据被收集或者服务器访问用户数据时,用户可以通过区块链查看到这些记录。
- 细粒度的访问控制:在该方案中,用户可以在任何时候改变访问控制策略并撤销服务器对之前收集数据的访问权。
方案的大致结构如图1,其中有三个主体:用户、服务器、节点。用户想利用该系统安全、可靠的存储自己的隐私数据;服务器想得到用户的隐私数据用于商业计算等行为;分布式节点用来维护区块链,存储用户隐私数据,验证身份等。方案中有两种新类型的交易和。被用于数据的访问控制策略;被用于存储数据和查看数据。
场景如下,用户首先发送给区块链,定义哪些服务器或者个人可以访问自己的加密数据,然后利用交易将加密后的隐私数据上传到系统中,区块链上只保持数据的索引即哈希值,数据存储在链下的系统中,论文推荐使用Kademilia。 当服务器需要访问用户数据时,中附带自己的签名和想要访问数据的哈希值发送给区块链,节点判断该服务器是否拥有访问数据。
2. 具体方案
使用到的密码组件:
- 对称加密算法:
- 签名算法:
首先是身份生成算法,论文中身份被扩展为用户和服务器见的关系,称为混合身份。即一个混合身份的公钥为,完整的**为。 算法过程如协议1。
然后介绍访问控制策略,使用来表示区块链节点的发现函数,调用该函数会返回与k相关的最新的一笔交易。访问控制策略被定义为,例如服务器想访问用户的地址信息和通讯信息,。权限的访问检查如协议2。协议大致意思为:如果为用户则拥有所有权限,如果为服务器,则判断服务器此时访问的权限是否在用户授权该服务器的权限内。
当用户对服务器进行授权时,需要调用交易来改变访问策略,如果访问策略为空,则表示用户收回对服务器的数据使用权限。节点执行时的流程如协议3。
当用户存储自己加密数据或者服务器访问数据时,需要调用交易。节点执行时的流程如协议4,其中第二行中c为数据密文,为访问策略中的具体属性,例如上面说到的地址信息或通讯信息,为0表示写数据,1为读数据。
PS:该方案只能抵挡半诚实的服务器,即服务器在读取完用户的数据后不会保存下来,以及每次想使用数据时会严格调用$T_{data}$,而不利用上次调用得到的数据。