隐私计算是使数据“可用不可见”的技术,实践中仍存在着一些问题,例如,多方安全计算受到网络带宽或者延迟的影响,联邦学习对参与方和服务器之间的通信稳定性和带宽要求较高,可信执行环境依靠的是硬件,硬件的升级改造成本较高而且存在侧信道攻击的问题。区块链是能够解决多方信任和协作的有利工具,可以记录从数据发布到使用的全过程,通过智能合约制定策略,实现权限控制、记录、回溯等功能,还能够实现点对点的高效传输网络。那么,区块链技术是否能够与隐私计算融合呢?

1. 回顾区块链

区块链是将密码学、P2P、智能合约、共识机制等技术进行结合的一个分布式分类账本,这些技术赋予了区块链不可篡改、可追溯、去中心化等特性,在数据结构上是使用哈希指针代替普通指针的链式结构。区块包括了区块头和区块体,区块头包含了 版本号、前一个区块的哈希值、默克尔树的根哈希值、时间戳、难度值和随机数,块体包含了本区块的交易。区块链有六个层级结构,分别包括基础网络层的数据层和网络层,中间协议层的共识层、激励层 和合约层,应用服务层的应用层,如下图所示。

区块链采用的是P2P的对等式网络,网络规定每个节点都有同等地位并且相互连接。节点又分为全节点和简约节点,全节点保存了从创世区块以来所有区块的信息,并能实时独立地完成区块链的查询、验证和更新。而简约节点只需要存储每个区块的块头信息,不需要存储全量的交易列表,简约节点只能检验与自己相关交易是否合法。

智能合约是区块链的核心要素,它本是一套数字形式定义的承诺,在以太坊提出以后,被重新定义为一段满足条件就能够自动执行的计算机程 序。智能合约收到来自外部的请求,触发运行提前写好的代码,生成交易和事件。

关于对区块链的更多理解,可以参考《无废话图记区块链》等【关联阅读】中的内容。

2. 回顾隐私计算

隐私计算技术可以归纳为三类: 数据加密与再处理、数据不动而模型动、 通过可信环境进行大数据分析与管理,即联邦机器学习、可信执行环境和多方安全计算三大核心技术。

2.1 联邦学习

联邦学习是一种基于隐私保护的分布式机器学习框架,许多参与方在中心服务器 的协调下共同训练模型,同时保持训练数据的分布性,在不暴露数据的前提下分析和学习多个数据拥有者的数据。谷歌在 2016 年首次提到联邦学习,它被使用在谷歌输入法项目上,目的是聚合用户的本地数据模型,在输入法方面为用户提供更好的词汇提示功能。联邦学习中用来保护数据隐私的主流方法是使用差分隐私和加密算法。联邦学习的发展需要进一步结合一些技术或算法,在保证模型质量的前 提下提高安全性和效率。

2.2 可信执行环境

可信执行环境是通过利用软硬件方法,在计算中构建多个安全运行环境,并让数据在所构建的安全运行环境中运行。任何外部攻击者甚至是拥有高级权限的管理员都无法窃取敏感数据,与传统技术相比较能更加有效保护数据的安全性和完整性。可信执行环境概念源于开放式移动终端平台 OMTP提出的一种保护移动设备中敏感信息的方案,该方案使用双系统运行, 与传统的单系统运行环境相比较,该方案增加一个隔离的安全系统,专用于处理敏感数据,从而保证敏感数据的安全性和完整性。目前市面上主要的两种可信执行环境有 SGX 和 Trust Zone。

2.3 多方安全计算

多方安全计算是密码学的一个子领域,目的是多个参与方从每一方的隐私输入中协同计算某个函数的结果,而不用将这些数据展示出来。多方安全计算即著名的百万富翁问题,其目的是解决两个百万富翁在不泄露自己的 财产信息的情况下来比较谁更富有。如今多方安全计算衍生出同态加密、密钥共享、不经意传输和混淆电路等多个技术分支。

3. 基于区块链的隐私计算

区块链作为一种能够提供分布式信任机制的关键技术,其与隐私计算技术进行融合可以整合双方的优势,互通有无。区块链与多方安全计算的融合能保证链上数据的安全,将多方安全计算应用在授权、管理密钥、共识机制中,提升区块链的安全性,加强跨机构的协作信任,实现联合运营。对于区块链在联邦学习上的应用,利用区块链实现联邦学习的奖励机制,鼓励更多高质量的参与方参与训练,提高模型准确度,使用区块链对模型参数进行筛选,避免遭受到攻击后低质量的模型参数影响全局精度。使用可信执行环境对链上数据进行保密计算,并对智能合约进行隐私保护,相较于其他加密技术其计算损耗更少,基于可信硬件的应用对各个参与方数据进行交叉验证,实现上链存证。

3.1 区块链与多方安全计算的融合

传统上,系统中心化的可信机制由于不基于完全可靠的第三方,数据隐私容易泄露; 并且数据在第三方中不能由用户自己控制,对数据的不可控性会产生一系列的安全问题。多方安全计算着重于计算过程中的保密性,而 不能确保数据的正确性,区块链可以帮助多方安全计算实现计算周期下的全程可追溯,或者通过与区块链的结合,在跨机构间联合运营场景下完成联邦数据分析。而多方安全计算可以在区块链跨链时充当可信中介。

基于多方安全计算的智能合约,可以为多方共同完成的一个智能合约,为多方安全计算增加了输入隐私性,确保了计算节点在出错的情况下也能正常实现安全群组通信。

基于区块链的数据共享机制及多方安全计算模型,可以使用链上存储和链下存储相结合的方式存储数据,将大规模的数据信息存储在链下的数据库中,并将此链下数据的索引信息通过公钥加密后存储至链上。在需要计算时,数据持有者使用计算方的公钥将数据索引进行加密后发送给计算方,计算方计算结束后再利用数据持有方的公钥进行结果加密,每一个数据持有者都不知道其他人的计算结果。这样就可以在隐私保护的前提下实现 了数据联合共享计算的功能。

对于公开可验证的、安全的多方安全协议而言,同样可以分为链上和链下两个部分,链下部分完成数据生成、密钥生成,利用同态加密技术对数据进行加密。将计算任务放置在链上进行,保证了透明性,计算的所有步骤都可以进行公开验证, 同时所有数据的输入、输出都经过加密,保证了数据的隐私性。

3.2 区块链与可信执行环境的融合

可信执行环境与区块链具有互补性质。可信执行环境的开销很小,并可在安全环境中完成计算,而区块链节点通常具有有限的计算能力,需要公开其整个状态来让其他节点公开验证。可信执行环境不能保证可用性或对网络的可靠访问,而区块链可以保证其状态的强可用性和持久性。

区块链和可信执行环境的结合可以提高区块链的效率和安全性。可信执行环境为区块链提供底层可信网络,复杂的链上计算任务可以在链下运行,区块链用于记录数据。可信执行环境可以用来验证事务并认可有效性,而不需要所有共识节点验证。在通过受信任软硬件实现的安全区域,可信执行环境可以确保进程运行时的内部数据对非安全区域不可见,只有通过特定的访问接口才能对安全区域进行操作。在与区块链的结合中,可信执行环境主要工作是完成秘密交易、计算、共识和跨链,适用于可能存在恶意参与方、计算逻辑复杂且需要短时间内完成等场景中。如果把可信执行环境的 RoT、计算、代码等放在链上公开,那就可以达成基于区块链和可信执行环境的共识。

如果采用中心化的物联网数据管理,使用智能合约解决管理物联网数据中的权力集中,缺乏透明度等问题,所有数据访问权限的审计跟踪使用智能合约进行控制。使用智能合约,各方可以 指定规则来管理其交互,这些规则在区块链中独立执行,而不需要一个集中的系统。

如果使用哈希锁和时间锁加密,将可信执行环境提供的可信资源访问和授权与区块链支付结合起来。在保证安全的前提下完成支付过程,并将支付记录存储在区块链中,为支付记录的完备性提供了保证。

如果应用盲签名和同态加密技术来保护投票的隐私,投票者通过远程认证,在自己的客户端与具有可信执行环境的平台之间建立安全信道。加密算法是在可信执行环境中实现加密操作,为智能合约提供可信的数据源,可以有效地减少智能合约中的复杂操作,降低智能合约的执行成本。

如果使用基于区块链的可信执行环境进行数据交易,可以为公平的数据交易提供了一个可信的去中心化平台。可信数据交易平台是一个区块链网络,由正常节点和可信交换节点组成。在一个交易过程中,数据买家首先广播数据需求,并根据感兴趣的数据找到合适的数据卖家。数据买家在区块链上选择一个可信的交易节点,并将可信交易节点的地址通知数据卖家。然后,数据卖家将数据发送到受信任的节点。最后,只有在可信交易节点的区域内运行的可信交易程序检测到数据买家已经向数据卖家支付了费用之后,数据买家才能从区域内接收数据。因此,基于区块链的可信执行环境能够有效保证数据交易的公平完成。

3.3 区块链与联邦学习的融合

区块链和联邦学习是当前的研究热点,联邦学习是基于隐私保护的分布式机器学习,而区块链是能实现价值转移的分布式数据库,使用加密算法和共识机制,使得所存的数据不可篡改且公开透 明。区块链和联邦学习都是分布式体系架构,但本质不同,联邦学习以数据不出域的思想为核心,而区块链要利用分布式共识,保证每个节点的一致性。因此,区块链能给联邦学习类似虚拟货币的激励机制,通过激励机制鼓励参与方贡献自己的计算资源和数据; 区块链代替联邦学习的中心服务器,为联邦学习提供一个安全的数据交换环境,或者利用区块链的可追溯性帮助联邦学习找到恶意参与方,及时进行止损和惩罚。

联邦学习的安全需求主要来源于模型质量和数据泄露。恶意参与方通过数据投毒可以影响局部模型的质量,进而影响全局模型的准确度。局部模型的不加密上传有被攻击者进行推理攻击的风险,从而造成数据泄露。

如果基于区块链的联邦学习系统应用到工业物联网中,可以鼓励工厂提供设备的运行数据,以多个工厂生产设备的使用状况为样本,用来确定设备故障的位置。通过对客户端的数据进行哈希运算,并将根节点存储在区块 链上,实现客户端数据的验证完整性。参与方除了托管本地设备的数据以外,还管理一个区块链节点,为了鼓 励参与方贡献算力和数据,在智能合约中可以加入奖励 机制,根据参与方的训练状态、训练轮次、参与方数 据集大小等为参与方发放虚拟货币。

如果将基于区块链的联邦学习系统应用到交通领域,使用区块链代替中心服务器,可以在保护车辆数据隐私的前提下实现交通流量预测。例如,来自分布式车辆的模型上传给区块链,区块链来验证模型是否合格,然后进行存储。车辆上传的局部模型使用差分隐私机制并添加噪声干扰。这样或许能够有效地防止数据遭受攻击,提高了模型更新的隐私保护能 力,进而实现安全的交通流预测。

如果解决联邦学习效率低和易受攻击的问题,或许可以采用基于区块链的异步联邦学习机制。例如,将应用层中的设备虚拟连接到区块链层中的节点。利用区块链防止单个服务器的故障, 保证数据的分布式安全存储。同时,把训练时间、样本数量、局部更新的相关性和全局更新的作弊次数上传到区块链上,在区块链不超载的情况下尽快上传模型。这样,或许会比典型联邦学习中的平均算法有较好的抗攻击能力。对于大型模型,可以采用智能合约进行分块运算,将数据和模型参数分成多个小的智能合约,然后进行联邦学习。

硬币是有两面的,将区块链应用在隐私计算中,但仍存在一些问题。在区块链与多方安全计算应用中,加解密的过程会损耗大量计算和通信资源。区块链与联邦学习结合存在使用差分隐私添加噪声、参与方数据质量和大小影响模型精度的问题。将合理的激励机制应用在训练场景,保证训练学习的公平性是发展区块链融合联邦学习的关键。受限于面临攻击多、标准不完善等问题,区块链和可信执行环境的结合仍不足以作为通用安全技术广泛应用。

4. 小结

隐私计算为打破数据孤岛、发掘数据价值、加强数据安全等方面提供了解决办法,但也产生了新的隐私安全问题。区块链因具有去中心化、可溯源、不可篡改等特点,为隐私计算提供了新的解决思路。两者优势互补,在提供隐私保护的同时也增强了数据的可用性,可以推动了各行业的发展,打破了行业内外的数据壁垒,为 提升数据价值、增强数据的可用性提供了新的解 决方案。但是,要清晰地了解其局限性和适用场景,区块链可能只是实现隐私计算的一种技术辅助。

【关联阅读】

  • 从隐私到隐私计算

  • 隐私计算之全同态加密

  • 隐私计算中的联邦学习

  • 隐私计算之可信执行环境

  • Polytree 的随笔

  • DHT算法的一知半解

  • 关于区块链的一点经济学思考

  • 无废话图记区块链

  • Web3.0,区块链后花园的姹紫嫣红

  • WebAssembly的一知半解

  • 这是你了解的P2P 么?

  • IOTA,物联网区块链?

  • 老码农眼中的区块链

  • 区块链、货币和社交扩展性

  • 物联网安全与区块链

  • 区块链性能提升:链上设计之道

  • 学习IoT与区块链的融合

  • 区块链之比特币的潜在激励