[Blockchain-2] Decentralizing Privacy: Using Blockchain to Protect Personal Data

1.文章内容

1.1 摘要&简介

Implement a protocol that turns a blockchain into an automated access-control manager that does not require trust in a third party.

  • (1)We combine blockchain and off blockchain storage to construct a personal data management platform focused on privacy.
  • (2)We illustrate through our platform and a discussion of future improvements to the technology, how blockchains could become a vital resource in trusted-computing.

1.2 挑战(隐私问题)

  • Data Ownership(数据拥有者):确保用户私有信息的所有和支配
  • Data Transparency and Auditability(数据透明性和可审计性):被收集的数据和访问方式对用户是完全的透明的
  • Fine-grained Access Control(细粒度访问控制):在任何给定的时间,用户可以更改权限集并撤销对以前收集的数据的访问

1.3 提出方法

1.3.1 平台简介

[Blockchain-2] Decentralizing Privacy: Using Blockchain to Protect Personal Data

(1)系统实体

  • Users(用户):对下载数据和使用应用感兴趣
  • Services(服务):出于运维和商业相关的原因需要对个人数据进行处理的应用提供者
  • Nodes(节点):为得到奖励而维护区块链和分布式私有键值对数据存储的实体

(2)交易类型

  • TaccessT_{access}Taccess​:用于访问控制管理
  • TdataT_{data}Tdata​:用于数据存储和检索

(3)交易流程

  • User安装应用并首次注册,生成(user,service)(user,service)(user,service)身份并与相应的权限权限通过TaccessT_{access}Taccess​发送到区块链
  • User的智能手机将收集的数据(包括传感数据和位置信息等)用共享的对称密钥对称密钥加密后通过TdataT_{data}Tdata​发送到区块链,区块链将这些数据随后以键-值对键−值对的方式存储在off-blockchain,只保留一个指向此公共账单上数据的指针(此指针为数据的SHA-256哈希值)
  • 此时useruseruser和 serviceserviceservice通过TdataT_{data}Tdata​交易使用指针(即“键”)访问数据。区块链会验证数字签名属于useruseruser或serviceserviceservice,如果是serviceserviceservice,需要同时检查其权限权限
  • 最后,useruseruser可以通过TaccessT_{access}Taccess​交易和新的权限权限为serviceserviceservice重新授权或者撤销数据的访问

PS:off-blcokchain的键-值对键−值对存储是用分布式哈希表(DHT)来实现的

1.4 网络协议

定义:

  • 对称加密机制3元组(Genc,εenc,Denc)(G_{enc},\varepsilon_{enc},D_{enc} )(Genc​,εenc​,Denc​):生成器、加密、解密算法
  • 数字签名3元组(Gsig,Ssig,Vsig)(G_{sig},S_{sig},V_{sig})(Gsig​,Ssig​,Vsig​):生成器、签名、验证算法

1.4.1 系统构建模块

(1)身份

  • 复合身份(Compound identities):Compoundu,s(public)=(pksigu,s,pksigs,u)Compound_{u,s}^{(public)}=(pk_{sig}^{u,s},pk_{sig}^{s,u})Compoundu,s(public)​=(pksigu,s​,pksigs,u​)
  • 完整身份:Compoundu,s=(pksigu,s,sksigu,s,pksigs,u,,sksigs,u,,skencu,s)Compound_{u,s}=(pk_{sig}^{u,s},sk_{sig}^{u,s},pk_{sig}^{s,u},,sk_{sig}^{s,u},,sk_{enc}^{u,s})Compoundu,s​=(pksigu,s​,sksigu,s​,pksigs,u​,,sksigs,u​,,skencu,s​)
  • 复合身份生成协议:
    • 1)user执行Gsig()G_{sig}()Gsig​()生成相应的公/私钥对,执行genc()g_{enc}()genc​()生成对称密钥
    • 2)service执行Gsig()G_{sig}()Gsig​()生成相应公/私钥对
    • 3)双方互换公钥,user多分享一个对称密钥给service,最终双方都拥有(pksigu,s,pksigs,u,skencu,s)(pk_{sig}^{u,s},pk_{sig}^{s,u},sk_{enc}^{u,s})(pksigu,s​,pksigs,u​,skencu,s​)
      [Blockchain-2] Decentralizing Privacy: Using Blockchain to Protect Personal Data

(2)区块链存储

  • LLL代表区块链内存空间,哈希表L:{0,1}256{0,1}NL:\{0,1\}^{256} \rightarrow\{0,1\}^NL:{0,1}256→{0,1}N
  • 交易的输出地址用于编码256比特的内存地址指针以及其他附属元数据
  • 当作查询L[k]L[k]L[k]时返回最近的交易

(3)访问策略

  • 用户u授予服务s的权限表示为POLICYu,sPOLICY_{u,s}POLICYu,s​
  • POLICYu,s={location,contacts}POLICY_{u,s} = \{location, contacts\}POLICYu,s​={location,contacts}表示具有位置和联系人的访问权限

(4)附属函数

  • Parse(x)Parse(x)Parse(x)用于反序列化发送到交易的信息,包含参数CheckPolicy(pksigk,xp)CheckPolicy(pk_{sig}^k,x_p)CheckPolicy(pksigk​,xp​)
  • CheckPolicy(pksigk,xp)CheckPolicy(pk_{sig}^k,x_p)CheckPolicy(pksigk​,xp​)协议如下:
    • 输入当前签名公钥pksigkpk_{sig}^kpksigk​和要检查的权限xpx_pxp​
    • 区块链检查签名公钥,若签名公钥属于用户即pksigk=pksigu,spk_{sig}^k=pk_{sig}^{u,s}pksigk​=pksigu,s​,则直接返回1(表示拥有权限);若签名公钥属于服务方即pksigk=pksigs,upk_{sig}^k=pk_{sig}^{s,u}pksigk​=pksigs,u​则需进一步验证当前权限是否与用户授予的权限吻合,若xpPOLICYu,sx_p \in POLICY_{u,s}xp​∈POLICYu,s​则返回1,否则返回0
      [Blockchain-2] Decentralizing Privacy: Using Blockchain to Protect Personal Data

1.4.2 区块链协议

(1) 访问控制协议

  • TaccessT_{access}Taccess​交易只能由用户发起,因此需要对用户的身份进行审计,采取一定的访问控制策略
  • 具体协议如下图:
    • 输入用户签名公钥pksigkpk_{sig}^kpksigk​和消息mmm
    • 对消息进行解析得到用户和服务分别的公钥以及用户对服务的权限
    • 然后区块链检查用户签名公钥是否和解析出的用户签名公钥相同,即判断pksigk=pksigu,spk_{sig}^k=pk_{sig}^{u,s}pksigk​=pksigu,s​是否成立
    • 若成立将当前用户签名公钥的哈希值作为L的地址,并在当前地址存储信息m,最后返回1(表示访问成功)
      [Blockchain-2] Decentralizing Privacy: Using Blockchain to Protect Personal Data

(2) 存储或加载协议

  • 输入用户/服务签名公钥pksigkpk_{sig}^kpksigk​和消息mmm
  • 对当前信息进行解析,得到c,xp,rwc,x_p,rwc,xp​,rw分别代表 “存储数据”、“访问权限”、“读写权限”
  • 判断当前用户/服务是否具有访问权限,是则进入下一步
  • 如果读写权限为写,表示存储操作 ,如果权限为写,表示加载操作

2.文章术语

  • K-匿名
  • l-diversity
  • t-closeness
  • Fully Homomorphic Encryption(全同态加密)
  • Distributed Hashtable- DHT(分布式哈希表)
  • ECDSA (Elliptic Curve Discrete Signature Scheme椭圆曲线离散签名机制)
  • Shamir’s Secret Sharing (虾米尔密钥分享)
  • Multiparty Computation(MPC 安全多方计算)

3.生词

3.1 写作助手

  • In the sequel 结果,后来
  • To illustrate, consider the following example
  • albeit 尽管;虽然;即使
  • In light of this 鉴于此
  • state-of-the-art systems 先进的系统

3.2 生僻词

  • well-rounded adj. 良好的;健康的;适宜的 adv. 很好地;充分地;满意地
  • surveillance n.监督;监视
  • opt-out 撤退;退出;辞职
  • entrust 委托;托管
  • storage and retrieval 存取
  • harness vt. 利用;驾驭
  • subvert 颠覆;暗中破坏;使背叛;搅乱
  • mitigate 减轻;缓和
上一篇:【private,public,protect三种继承方式的区别】


下一篇:Educoder_C语言_第四部分 循环结构程序设计1