小学生也能看懂的零知识证明科普(6):TEE、MPC、HE、ZK 隐私方案对比(一)

此前文章主要阐释 ZK 扩容的原理及相关概念。本系列,我们会聊聊 ZK 在隐私方向的应用原理,以及 ZK 与其他隐私解决方案,可信执行环境(TEE,Trusted Execution Environment,以下简称“TEE”)、多方安全计算(MPC,Secure Multi-Party Computation,以下简称“MPC”)、HE(同态加密)的对比。

隐私方案有多种不同分类方式,如,在中国信息通信研究院安全研究所、阿里巴巴集团安全部、北京数牍科技有限公司共同创作的《 隐私保护计算技术研究报告(2020 年)》中,将隐私关键技术分为联邦学习、安全多方计算、机密计算、差分隐私、同态加密。

对于区块链来讲,笔者个人习惯将主流隐私方案,大致分为两类:基于密码学的,如 ZK、MPC、HE;基于安全计算的,如 TEE。

在本系列文章中,笔者不打算简单地从通用性、效率等几个维度进行对比。因为不同的理解维度和标准,对强弱的判断不同。

比如,通常理解 TEE 通用性强,因为该技术,在移动互联网应用广泛,但在 Web3 会遇到去中心化与安全性平衡问题,而 ZK 有效性验证特性,在Web3 应用相对更广泛。

所以,本文在介绍隐私方案时,会阐释该方案是什么,就该方案在区块链领域的应用,进行举例,帮助读者理解不同隐私方案的应用场景、安全假设及相关项目,并不提供下定论式的对比结果。

本系列将试图用通俗的举例和语言,帮助大家理解复杂概念。本系列非学术论述,举例只为帮助大家通俗理解。如有错误,欢迎指正。更严谨的表述,欢迎大家查看专业论文学习。

可信执行环境 TEE

什么是 TEE ?

TEE 全名为可信执行环境(Trusted Execution Environment),是计算平台上由软硬件方法构建的一个安全区域,可保证在安全区域内,加载的代码和数据在机密性和完整性方面得到保护。其目标是确保一个任务按照预期执行,保证初始状态的机密性、完整性,以及运行时状态的机密性、完整性。①

简单地说,TEE 利用手机、平板电脑、矿机等等硬件和软件,构建一个黑盒。在黑盒内完成隐私计算。

举个直观例子,我们日常使用的手机,其实存在两个并行系统 REE OS(Rich Execution Environment)与 TEE OS(Trusted Execution Environment)。REE OS 可理解为,正常的 Android / iOS 等系统,TEE 则是手机搭建的,与 REE 隔离的安全环境。

REE 可以下达指令调用 TEE,返回安全的计算结果,比如指纹解锁。一般来说,指纹是存储在 TEE 环境中的,保障隐私安全。另外,一些受版权保护的视频,也会在 TEE 环境中运行,我们尝试截屏某些视频时,会截取失败,原因即如此。

当前,TEE 技术较为依赖传统互联网厂商,主流技术有:Intel SGX、ARM TrustZone、AMD SEV 和 Intel TXT。

TEE 在区块链的应用

TEE 用于在隐私环境进行安全计算,将计算结果应用于实际场景,确保计算过程隐私且安全。应用 TEE 时,节点硬件需安装 Intel、ARM 等厂商的 TEE 芯片,用于搭建环境。
目前主要项目有 Phala Network、Oasis Labs、Secret network 等等。这里提一下,TEE 应用到区块链时,还是会应用互联网厂商的技术,如 Secret network 和 Avalanche 跨链桥应用的是 Intel SGX。

1)Avalanche 官方跨链桥使用 TEE 节点验证跨链交易

Avalanche 跨链桥 TEE 节点,称为 Warden。用户在 Avalanche 前端提交跨链请求, Warden 会将交易传入 TEE 隐私环境进行验证,验证者通过 MPC 方式,利用自己私钥碎片签数交易。利用 TEE 环境,保护了跨链交易验证的安全性。

2)Secret Network 利用 TEE 实现隐私交易

Secret Network 是基于 Cosmos 的隐私公链。用户交易时,会将信息提交链上加密智能合约中,加密的输入会在 TEE 环境中,由运行全节点的验证者解密,然后执行,将计算结果移出 TEE 环境时,再加密。让输入、计算、输出过程,始终保持在加密状态中。

TEE 侧信道争议

侧信道攻击是 TEE 固有的风险,过去几年里,针对 Intel SGX 侧信道攻击发生过多次,Intel 也不得不持续修复漏洞。

今年8月,Intel SGX 被曝 AepicLeak 漏洞,白帽评估了基于 SGX 技术的 Secret Network 受影响情况,最终找到了整个网络的主解密密钥。虽然未影响到 Secret Network 安全性,会对隐私性造成严重影响。主密钥可将 Secret 历史交易全部解密。

此外,侧信道攻击还给 TEE 带来两个问题。首先是,去中心化与安全之间的平衡。TEE 节点越多,侧信道攻击受影响范围越大。但若缩减节点数量,又会遇到中心化问题。

其次,TEE 方案实际上依赖 Intel、ARM、AMD 等传统企业可信的安全假设。安全假设是指,要达到某个目标安全水平,所必须满足的条件。

总结下, 1/ TEE 使用装载了 TEE 芯片的硬件和软件,搭建“黑盒”环境,在该环境中执行计算,起到加密效果。在互联网等行业应用广泛,案例包括指纹、面容解锁等生物识别信息保密,以及视频防截图版权保护。

2/ TEE 在区块链主要起到隐私和安全保护作用,同样需依赖 Intel、ARM、AMD 等传统厂商 TEE 技术。

3/ 侧信道攻击是 TEE 固有问题,在影响隐私和安全的同时,也带来了去中心化与安全平衡,以及需信任技术提供方等问题。

多方安全计算 MPC

什么是 MPC ?

安全多方计算(Secure Multi-Party Computation,SMPC)最早是由图灵奖获得者、中国科学院院士姚期智于1982 年正式提出,解决一组互不信任的参与方,各自持有秘密数据,协同计算一个既定函数的问题。

安全多方计算,在保证参与方获得正确计算结果的同时,无法获得计算结果之外的任何信息。在整个计算过程中,参与方对其所拥有的数据,始终拥有绝对的控制权。②

安全多方计算过程中,每个数据持有方可发起协同计算任务。 参与协同计算的、数据持有方节点,会根据计算逻辑,从本地数据库中查询所需数据,在密态数据流间,与其他节点协同计算。整个过程中,各方明文数据,全部在本地存储 ,不会提供给其他节点。在保证数据隐私的情况下,枢纽节点将计算结果,输出至整个计算任务系统 ,从而各方得到正确的数据结果。③

比如,保险公司要根据医院、体检机构、汽车服务商数据,评审客户情况,为客户定制保险,但在过程中,不能泄露用户数据,其间可用到多方安全计算。

MPC 实现形式有:秘密共享、不经意传输 (Oblivious Transfer)、混淆电路 (Garbled Circuit)、零知识证明。

MPC 在区块链的应用

1)密钥管理

多方安全计算 MPC,密钥生成不依赖单点,而是由去信任化的多方,在链下计算生成,每一方得到 n 个密钥碎片。所谓依赖单点是指,我们平时创建链上钱包时,会直接生成密钥,个人掌握密钥,即所谓单点。

这项技术可称为分布式密钥生成(DKG,Distributed Key Generation)。DKG 与分布式签名,组成了门限签名方案(TSS)。概念仅作为理解使用,方便大家之后遇到,理解 MPC 是门限签名技术的一种就行。

当前密钥管理主要有两种方式,多重签名和基于 MPC 的门限签名。

多重签名原理类似权限管理,比如某项目治理委员会7名成员掌握密钥,只要有4名成员签名,可触发智能合约,花费项目资金。所以,多重签名密钥连接了智能合约层,也带来了通用性和安全性问题。

首先,若管理不同公链,需要实现不同的智能合约多签。其次,各个公链智能合约安全问题,以及掌握密钥的人,一旦被攻破或钓鱼,则链上资产安全会受极大影响。典型案例是 Ronin 跨链桥被盗事件。

MPC 则是不同的逻辑。MPC 实现逻辑,可以类比去中心化的谷歌验证器。

参与计算的 MPC 节点,各自掌握密钥碎片,在本地通过协议算法生成签名。比如“2/3模式” MPC 协议,一共有3个密钥碎片,只要任意2个碎片,即可计算签署交易,执行计算过程完全保密。

所以,MPC 有很强通用性,只需适配算法(例如 ECDSA、Schnorr、BLS 等),无需特别适配智能合约,对多链密钥管理非常友好。

其次,MPC 计算在链下,黑客需要逐个攻击节点,且要在一定时间内完成,因为存储在本地的 MPC 密钥碎片会刷新。

PlatON 创新研究院高级研究员夏伏彪博士曾表示,MPC 密钥管理,带来新安全特性。如私钥明文在过程中从未出现过;少于额定数目的私钥碎片,凑在一起也无法恢复完整密钥;用户的密钥碎片丢失,可通过 MPC 在线找回,且找回的是一个新碎片,托管方密钥碎片也会同步刷新。④

2)密钥管理应用与 MPC 钱包

对普通来说,MPC 可让现有钱包,实现无助记词恢复的新方案。无助记词钱包恢复方案,目前有两种,MPC 与 社交恢复。

通常,区块链钱包需要用户自己掌握助记词和密钥,要记住又怕丢。

使用 MPC,用户可持有一个或多个密钥碎片,将其他碎片托管至第三方。需要签署交易时,第三方可通过短信、人脸识别等方式,确认是否为本人操作。整个过程,都未出现过完整密钥,大大提高安全性,同时也符合更广泛群体的用户体验,降低进入 Web3 的门槛。

目前主要项目有 Unipass、Bitizen、Qredo、Lit Protocol、StarryX、Safeheron、Particle Network 等等。

BitiZen 钱包门限签名方案

Bitizen 钱包采用了 2/3 门限签名方案。钱包创建时,用户无需保存助记词,也无完整密钥。Bitizen 会关联邮箱和云盘(目前是谷歌云盘)。

平时签名由用户设备和 Bitizen 服务器完成 2/3 签署交易。云盘主要用于备份私钥碎片。此外,用户还可添加手机号用于恢复钱包,以防邮箱不可用。

3)密钥管理与 ZK 可信设置

MPC 密钥管理,也应用于 zk-SNARK 网络的可信设置中 Trusted Setup。前不久结束的、由 Manta Network 进行的、Web3 历史规模最大可信设置中,便应用到了 MPC。

据 Manta Network 官方叙述,可信设置是生成零知识证明,所需基础设施的一部分。具体来说,用于帮助生成 Manta/Calamari 网络上创建交易必需的证明者和验证者密钥。

这些密钥必须在启动隐私产品之前被计算(computed)出来,因此称为 "设置"。此外,这些密钥计算过程会产生一些“有害废料”(toxic waste),这部分必须被清理掉。

于是,在可信设置过程中,Manta 尽可能多地邀请用户参与,每个参与者在本地生成碎片,只要有一个人销毁了“有害废料”,网络就是安全的。(实际过程中,所有用户都会通过可信设置协议销毁有害废料)

用户本地硬件,在可信设置中,充当了 MPC 参与节点,执行了计算任务。

4)以太坊分布式验证 DVT(Distributed Validator Technology)

分布式验证技术(Distributed Validator Technology)简写为 DVT。概念兴起源自以太坊 PoS 升级,市场普遍担心 PoS 升级后,持有大量 ETH 的节点,会使网络中心化。

DVT 则可让多个以太坊 PoS 验证器形成验证集群,在多个节点间运行,产生 m / n 共享验证器密钥,每次验证时,需要 m 个签名。

举个例子,Lido Finance、Binance、Coinbase 可以组成 DVT 验证群。万一他们其中任何一个节点故障,其他两个节点依旧可以正常签名执行交易,保障以太坊平稳运行,提高容错率。同时,也可以减少 Slash 惩罚数量。

MPC 是 DVT 重要组成部分,让节点在本地安全且隐私地生成密钥,执行计算签署交易。
DVT 概念目前主要项目有:SSV Network、Obol Network、Diva 等等。

总结下,

1/ MPC 多方安全计算,参与计算的节点,将密钥碎片存储在本地,通过 MPC 协议进行计算并签署交易。本地私钥动态变化,且整个过程中完成的私钥从未出现,保障安全及隐私。

2/ MPC 实现逻辑,可以类比去中心化的谷歌验证器。特性适用于密钥管理,没有任何一个计算节点,可以保存完整私钥,避免了单点风险,也可以防止节点间共谋作弊,从而延展出了无私钥可恢复钱包、可信设置、DVT 等应用场景。

① 概念援引自《隐私计算之TEE技术实践分析|你不知道的信息安全》,来源微信公众号“冲量在线”,作者中国电信研究院、浦发银行、冲量在线和中国信通院联合发布,作者:中国电信研究院刘岩、梁伟、杨明川、高伟勃、夏晓晴、赵君,中国电信股份有限公司吉林分公司崔文博,浦发银行信息科技部郭林海、高扬,北京冲量在线科技有限公司陈浩栋、宋雨筱、毛宏斌、张亚申、周岳骞,中国信息通信研究院云计算与大数据研究所闫树、袁博。

② 概念援引自《 隐私保护计算技术研究报告(2020 年)》,作者中国信息通信研究院安全研究所、阿里巴巴集团安全部、北京数牍科技有限公司。

③ 叙述援引自《HashKey:说透安全多方计算MPC技术方案、挑战与未来》,作者:钱柏均, 就职于 HashKey Capital Research。审校:邹传伟,万向区块链、PlatON 首席经济学家。

④ 援引自《一文读懂隐私计算、安全多方计算、可验证计算》,分享者PlatON 创新研究院高级研究员夏伏彪博士。

⑤ 《Redline DAO深度行研:为什么我们看好Web3钱包的未来?》,作者Ggg, Redline DAO。

Subscribe to Manta Network
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.