分享

作为区块链从业者,当前必须要了解的区块链隐私计算技术有哪些?

 风声之家 2021-04-01

原创 VenusBlockchain VenusBlockChain 2020-11-08

在2020年11月5日,中国区块链技术和产业发展论坛公布了《区块链 隐私保护规范》和《区块链 智能合约实施规范》两项团体标准被列入2020年“百项团体标准应用示范项目”。

今天讲一讲《区块链 隐私保护规范》标准中有哪些内容,以及在2019年7月19日发布的《区块链 隐私计算服务指南》中提到了哪些隐私计算范式和关键技术。通过这篇总结,能够了解到当前业界在隐私保护和对隐私保护实施的过程中所使用到的技术。不论是对本行业简单的了解,还是技术选择等,希望读完这篇文章能够帮助大家提供一个指引导向,算是抛砖引玉吧。隐私是否需要保护的利害关系不在这里赘述。总之,国内外都出台有相应的法律法规。

注意:下面只是摘选重点叙述,更详细的内容参考[1]。

1 区块链隐私保护规范

(1)主要关注点

区块链隐私保护的关注点包括隐私相关数据收集、数据存储、数据迁移、数据备份与恢复、数据应用、数据披露和数据处置。

数据收集

指隐私控制者获取隐私主题的隐私数据,并发布给其他节点的过程。

收集隐私数据前,获得隐私主体的授权同意,并明确告知以下内容:

  • 产品或服务功能收集的隐私数据类型,以及收集、使用隐私数据的规则,如收集和使用隐私数据的目的、收集方式和频率、存储地域和期限、对外共享、转让、公开披露的有关情况等;
  • 其他节点的隐私数据共享形式和约束,如智能合约内容、隐私政策、区块链加密机制等;
  • 隐私控制者可能获取隐私主体未授权信息和因区块链的特殊性而产生的隐私风险等;
  • 明确告知区块链的基本情况,如区块链类型、区块链选取机制,智能合约内容等。

收集隐私数据后:

  • 通过密钥对隐私数据进行加密处理;
  • 将加密后的隐私数据与密钥分开存储;
  • 密钥发送至隐私主体后,明确告知其妥善保管密钥。

数据存储

指将隐私数据保存在节点的过程,包括但不限于打包生成区块、广播区块至其他节点、获取密钥解密隐私数据等。隐私控制者应符合以下要求:

  • 打包的隐私数据解密前获得隐私主体的授权同意,并明确告知解密的隐私数据类型及用途;
  • 停止运营其产品或服务时,及时停止继续收集隐私数据的活动,并通知隐私主体。对所持有的隐私数据进行处置,并向其他节点发布己停止运营和处置隐私数据的消息;
  • 以适当方式处置解密后的隐私数据,并向其他节点发布已处置该数据的消息。

数据应用

指对解密后的隐私数据进行使用、修改、更新和处置等操作的过程。应符合以下要求:

  • 默认采用密文展示隐私数据,除该客户端或应用系统已获取隐私数据的授权。非密文展示应对隐私数据采取去标识化措施;
  • 使用隐私数据时,明确记录使用者、使用数据内容以及使用频率等信息;
  • 访问隐私数据时,明确记录访问者、访问数据内容以及访问时间等信息。

数据披露

应符合以下要求:

  • 在区块链平台以密文格式存储敏感的个人标识信息;
  • 在多方数据共享的场景下,以密文格式共享个人标识信息。

数据处置

指隐私主体授意或隐私控制者因业务需要将隐私数据设置为不可用的过程。对于存储在区块链节点的隐私数据,可通过删除密钥等技术手段确保隐私数据不可用。

(2)监管和审计

监管要求

区块链隐私保护的监管要求包括:

1)区块链系统在结构设置上,应满足以下要求:

  • 提供具有特定功能的监管节点和角色;
  • 提供监管类智能合约的运行环境和接口;
  • 提供用户实名认证功能。

2)区块链隐私保护的监管内容包括但不限于:

  • 数据内容、格式、流程、算法和相关授权方;
  • 使用的数字证书颁发机构和类型;
  • 存储隐私数据的节点的开放接口和权限、地理位置。

审计要求

隐私审计为隐私保护过程提供控制措施,在审计过程中应:

  • 审阅隐私保护策略,发现内部控制薄弱环节;
  • 检查控制执行的支持性文档,确认按照既定设计文档有效地执行隐私保护策略。

2 区块链隐私计算服务指南

在此指南中,提到了以下几个熟悉的名词(或术语),这里附上相关技术关于的一些参考资料。

术语定义
个人标识信息[2]能够单独或者与其他信息组合以识别、追踪到特定自然人身份或反映特定自然人活动情况的信息。
隐私与公共利益无关,除了只能公开于有保密义务的一方之外,当事人不愿第三方知道的个人信息及当事人不愿第三方侵入的个人领域。
区块链一种在对等网络环境下,通过透明和可信规则,构建不可伪造、不可篡改和可追溯的块链式数据结构,实现和管理事务处理的模式。
区块链隐私计算服务[3]在区块链环境下,通过隐私计算技术在多方之间进行数据计算且不影响数据隐私性的服务。
安全多方计算[4]在有多个参与方的环境下,多方共同执行计算任务并确保安全性和隐私性的计算方法。
全同态加密[5]在无需解密密钥的情况下对加密数据进行任意函数计算的方法。
代理重加密[6]为实现数据的安全共享,将一方公钥加密的密文通过可信第三方或半诚实代理人重新加密为可用另一方私钥解密的密文的加密方法。
可验证计算一种将计算任务委托给第三方并能验证结果正确性的计算方法。
零知识证明[7][8]一种让证明者在不向验证者提供任何敏感信息的情况下证明特定论断真实性的方法。
可信执行环境由专用的硬件和软件构成的、可确保其中所运行的代码和数据的机密性和完整性的安全环境。
门限签名[9]密钥权限由多方掌握且达到特定数量授权即可进行签名的机制。

区块链隐私计算服务相关方:

区块链隐私计算服务技术框架:

(1)数据共享

在数据共享中提到,基于基础公钥密码学方案、基于代理重加密方案。在区块链隐私计算服务过程中,应使用带有隐私保护机制的数据共享方案,确保敏感数据授权使用, 防止包括恶意窃听者、中介机构等第三方访问原始数据或计算结果数据。同时,相关方案应确保合规性,具备审计和追溯功能。

(2)数据计算

在数据计算中提到,安全多方计算、同态加密、零知识证明、可信执行环境相关技术。数据计算任务在一方或多方之间的分发、执行、验证与追溯不应影响数据的隐私性。区块链隐私计算服务中:

  • 计算任务的分发可由一个或多个计算任务协调者承担;
  • 计算任务的执行可由一个或多个计算任务执行者承担;
  • 计算任务的验证与追溯可由一个或多个计算任务验证者承担。

3 区块链隐私计算服务实现方案

在区块链隐私计算服务指南最后,附录资料中提到几种实现区块链隐私计算服务实现方法,包括:

3.1 数据共享

1)基于基础共享密码学的数据安全共享

例如非对称加密算法:RSA、ECC等,这种数据共享模式很容易理解。

2)基于代理重加密的数据安全共享

原始数据加密

数据提供方使用自己的公钥对数据加密,然后将加密后的密文上传到云服务器或者区块链上。

密文数据格式转换

密文数据转换是指代理服务方对数据提供方加密后的密文数据进行重加密,包括但不仅限于以下流程:

  • 数据提供方获取数据使用方的公钥;
  • 数据提供方生成重加密密钥;
  • 数据提供方将重加密密钥发送给代理服务方;
  • 代理服务方使用重加密密钥对数据提供方加密后的密文数据进行重加密,生成新的密文数据;
  • 数据提供方对数据使用方进行授权。

原始数据加密

密文数据传输是指参与方对密文数据进行传输,包括但不仅限于以下流程:

  • 数据提供方将加密后的密文数据发送给代理服务方;
  • 代理服务方将转换后生成的新的密文数据发送给数据使用方;
  • 数据提供方与代理服务方通过安全信道进行身份认证;
  • 代理服务方与数据使用方通过安全信道进行身份认证。

解密密文数据

解密密文数据是指数据使用方对接收到的密文数据进行解密,包括但不仅限于以下流程:

  • 数据使用方使用其私钥对接收到的密文数据进行解密,获得数据明文;
  • 解密过程必须满足一致性,即解密后所获得的数据与原始明文一致。

3.2 数据计算

鉴于区块链直接进行链上计算所消耗运算资源及存储资源较多,可将分布式隐私计算分为链下计算和链上验证两部分,以实现计算效率与可验证性的兼顾。基于区块链的分布式隐私计算示意图如下所示。

3.2.1 链下计算

基于安全多方计算的数据隐私计算

基于安全多方计算的隐私计算支持在半诚实模型和恶意敌手模型中提供隐私保护。在半诚实模型中, 各计算参与方均严格遵守协议执行;在恶意敌手模型中,计算参与方不严格按照计算协议执行,且会尽 可能尝试获取其余参与方的隐私数据。整个计算过程中,满足以下性质:

a)输入隐私性

  • 整个计算过程中,不会暴露数据提供方的原始数据;
  • 计算参与各方无法通过一些攻击手段,如侧信道攻击等方式,推断出到其他方的原始数据。

b)结果正确性

基于安全多方计算的隐私计算中,数据执行方完成计算后所得结果应与传统计算方式结果一致。

c)支持多个数据提供方

基于安全多方计算的隐私计算可满足同时对多个数据提供方的数据进行协同分析。

基于全同态加密的数据隐私计算

基于全同态加密(FHE)的隐私计算可分别满足对原始数据和算法的隐私保护,由于全同态加密方案 不仅限于对数据进行基本的加法和乘法运算,它可支持对加密数据进行任意的运算操作。因此当数据提 供方或者算法提供方使用自己的私钥对数据或算法进行加密后,数据执行方可以对生成的数据密文或算 法密文进行任意的运算。使用此类方案时,需考虑其计算、通讯等方面的资源消耗问题。整个计算过程中,此硬件环境不会泄露任何原始数据的信息,并且输出正确结果。此过程满足输入隐私性、正确性。

基于零知识证明的数据隐私计算

在身份认证、供应链金融等实际应用场景中,需要对身份信息、重要记录等数据进行查验,但同时 这些数据具备强隐私性。为了实现在保证数据隐私的同时,也能够对数据的真实性进行验证,基于零知 识证明的隐私计算可实现此需求。

基于可信执行环境的数据隐私计算

基于可信执行环境(TEE)的隐私计算过程中,以软硬件结合的方式,通过安全芯片构建一个安全环境, 结合软件方案,可实现在此硬件环境中对数据执行任意计算。数据提供方将数据使用其私钥加密后发送 到安全环境,由于在可信执行环境中无法对密文数据进行计算,因此数据提供方将其私钥通过安全通道 发送到安全环境,在此可信执行环境中对数据完成解密后,然后再对数明文进行计算。整个计算过程中,此硬件环境不会泄露任何原始数据的信息,并且输出正确结果。此过程满足输入隐私性、正确性。

3.2.2 链上验证

由于对数据的计算在链下完成,要保证链下计算后的结果真实可信,并且能够被其他参与方公开验证, 本标准通过可验证计算(VC)来生成对链下计算结果的正确性证明,并且计算结果以及此正确性证明一 同上链存储,其他参与方可对其正确性进行验证。链上验证流程包括但不仅限于:

  • 数据执行方通过链下算法生成对计算结果的正确性证明;
  • 数据执行方将此计算结果和正确性证明上链存储;
  • 验证节点在链上查询到此计算结果的正确性证明,并进行验证。

3.2.3 密钥管理

基于门限签名的实现方式可以为区块链私钥管理提供足够高的安全性。由于门限签名所具备的灵活 策略配置以及完整私钥从未出现的特点,其相比于当前主流的密钥管理方式更具优势。基于门限签名实现的密钥管理服务,能够保证完整私钥在生命周期内从未以任何形式存在,只有密 钥碎片分布存储在各个不同的设备上,这些设备可以是用户自己持有,也可以是与用户协同管理的合作方所拥有。

=================================这里是讨论区=============================

VenusBlockChain 发起了一个读者讨论怎么在区块链上保护隐私?欢迎大家讨论。

4 往期回顾

数字签名系列

智能合约隐私计算

密码学承诺系列

同态加密系列

安全多方计算系列

其他密码学系列

5  参考资料

[1] http://www./bcweb/index/bz/1-12.html

[2] https://weidentity./zh_CN/latest/

[3] https://wedpr-lab./zh_CN/latest

[4] https://mp.weixin.qq.com/s/ehWEOotYJAWL0UxvUiqxEQ

[5] https://mp.weixin.qq.com/s/JTdHsGpMfaYm7cVDvd8VVw

[6] https://blog.csdn.net/jingzi123456789/article/details/104851189

[7] https://mp.weixin.qq.com/s/XWKiakLxpvJUm5WURT7tQw

[8] https://mp.weixin.qq.com/s/-LU4FsFKt7ebX4sbKXNylA

[9] https://mp.weixin.qq.com/s/wINtpAOvDbcXb2PZIBnUyA

不看的原因

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多