主持人:王航,《金色深核》栏目策划人
嘉宾:
林煌,Suterusu CTO
谢翔,PlatON 算法科学家
尹航,Phala Network CTO
Q1:首先我们先做两个假设,假设1假设我们要解决多公司之间数据需要保密且共同使用的问题,三个技术路线如何去做?假设2如果我们需要让搜狗输入法不获取任何用户隐私,且能实现和现在同样的功能,如何去做?去年Maskbook火了一下,各位如何看待这种“轻模式”的隐私应用?
隐私保护有很多种技术,每一种都有它适用的范围。所以我想首先提出一个简易的框架,对具体的问题做一个分类。
第一种最简单的情况,参与合作的人互相可以分享数据,不希望被他人看到,也不需要向他人展示任何信息,这种情况下其实只要用普通加密就可以了。
第二种情况,参与合作的人互相可以分享数据,他们不希望他人看到他们之间分享的数据,但希望展示数据的一些特征。这种情况零知识证明可以解决问题。
举个例子,Zcash转账的时候,收发人之间是知道转账金额的,但他们不希望别人知道这个金额。于此同时,为了确保交易是合法的,还需要向网络证明这笔钱的确是存在,没花过。
第三种情况更复杂,参与的人之间不愿意分享数据,更不愿意他人看到数据,但希望展示数据的一些特征。这种情况描述的就是经典的安全多方计算问题了,TEE和MPC可以解决这类问题。
实际上很多场景都符合这种情况。举个例子,几家互联网广告公司,各自拥有一些用户行为数据。他们如果把数据整合起来,广告准确度会大幅提高,但这些业务数据非常敏感,不可能互相分享。这个时候就需要一种技术,“参与的人之间不愿意分享数据”,但又希望可以使用多方的数据进行计算。总结一下:
成员可以共享数据、不需要对外公开信息时,普通加密即可。成员间可以共享数据、需要公开数据特征时,可以采用零知识证明。成员间不能共享数据、需要公开数据特征时,可以采用TEE、MPC。
回到主持人的问题上来。第一个问题,多公司之间的数据联合使用,就考虑公司之间是否愿意共享数据,如果愿意,零知识证明是可选方案,否则就需要TEE或MPC。
第二个问题,如何实现一个搜狗输入法且保护隐私。输入法的体验提升来自于两种数据:大量新鲜的语料、用户的私人习惯。
在这个场景下,用户与用户间、用户与搜狗间互相不愿意共享数据,且希望利用各方的数据改善算法模型。所以这是一个安全多方计算的问题,可以采用TEE和MPC解决
然而这个问题有趣的一点在于,其实对于保密性稍作让步,就可以巧妙的采用更低成本的方式解决。
算法模型是训练而来的,但更新模型的过程不一定需要原始数据。换句话说,我们把用户数据做一系列的变换,让他不再包含隐私数据,但又可以更新模型,这其实是有可能的。这种算法就叫联邦学习,是针对深度学习的隐私保护方案。在这种算法下,模型与更新数据可以完全公开。其中更新数据的变换步骤,可以采用数学方法或TEE、MPC。
再说回来轻模式。“轻模式”很好啊,用最直接的方法,解决最迫切的问题,才能抓住用户。我认为渐进式的发展是一个普遍规律,不仅是隐私保护,整个互联网行业都是如此。
区块链从业者一定要认清现实,现在我们还处于区块链、Web3.0的早期,甚至门都没入,习惯了Web2.0体验的用户不可能一夜之间迁移到Web3.0。
隐私保护也是一样,我们有了最先进的技术,但为了发挥出技术的威力,还是要回到产品作为切入点。Maskbook就是一个不错的切入点,从用户一端,引导Web2.0用户融入Web3.0生态。我个人认为,从公司一端也可以入手,逐渐打开隐私保护的市场。等到用户普遍上车了,更重、更彻底的方案就可以开始大展身手了。
Q2: 对于加密货币来说,两个重要的过程是交易隐私和密码管理,三位嘉宾的项目怎样实现这两个过程的?三位如何理解“DID在隐私应用的重要性”?
零知识证明的主打功能就是隐私交易,而Phala Network则融合TEE与区块链的优势,实现了能够数据保密的通用智能合约,破除智能合约一切数据必须公开的限制。
具体来讲,TEE是CPU内保密合约的执行单元,保密合约运行在 CPU 内的特殊黑箱——安全区(Enclave),合约的执行与操作系统甚至外部硬件完全隔离,保证数据对外不可见,因此交易隐私得以保证。
密钥的管理也是一个很有趣的问题,密钥就等同于区块链上一切资产的所有权,因此目前的区块链上,密钥必须由用户妥善保管,否则就可能丢失资产。智能合约可以用于灵活设定权限,但由于公开的特性,并不能替用户保管密钥。
但有了保密智能合约就不一样了,用户完全可以把密钥保存在合约中,利用合约灵活的验证用户身份后再释放密钥,而不必担心密钥丢失。
可以在合约中管理密钥的另一个好处就是,跨链资产管理会变得非常简单,例如,我可以在合约中保存比特币私钥,允许以合约的身份收发比特币,另辟蹊径实现比特币的跨链智能合约。
我们最早推出的基于Phala的一个应用叫做pLIBRA,就是利用TEE保管密钥,实现Libra的跨链。
再说回DID。DID和隐私保护是不可拆分的。DID就是链上的身份证,我相信不会有人愿意把自己的身份证公开给全世界看。因此,只要使用身份信息的地方,就一定需要隐私保护。
隐私保护技术可以是多样的,例如零知识证明可以用来创建临时身份,而在Phala,我们即将上线的项目Web3 Analytics,则会利用TEE在各个DID关联的数据上进行联合分析,得出有价值的分析结果。
DID做到比较好的程度就是半去中心化,利用中心化机构解决链上链下的身份的关联,但又可以利用隐私保护技术,实现匿名的临时身份功能。
Q3:TEE应用的背景条件有一些“困境”,除英特尔外其他厂商不够标准化,英特尔虽然有tee标准,但标准不明确,移动端的硬件也存在尴尬现状,尤其是手机厂商的TEE不能通用,移动端没有可用开放的设备,这样的现状给行业内的创业者留了机会和挑战?
首先普及一个背景知识:TEE是2010年 Global Platform 颁布的一整套TEE系统体系标准标准,并不是由英特尔一家制定的。王航分享了我们之前写过一篇TEE的起源故事,感兴趣朋友可以看下。
许多商业或者开源产品一般都会参考这套TEE规范,并按照其定义的各种功能接口进行规范实现。其中大概定义的TEE标准特征是:
-
软硬件协同的安全机制:隔离是其本质属性,隔离可以是通过软件,也可以是硬件实现,更多的软件、硬件、IP、总线一体的安全机制
-
算力共享:能使用CPU的同等算力、硬件资源
-
开放性:有对应的REE侧,才有TEE的必要性,只有在开放性中才需要可信执行环境的保护
除了英特尔的SGX,还有AMD的SEV与ARM的TrustZone等方案,只不过因为英特尔做的平台既开放、又成熟,因此我们会选择英特尔硬件作为第一批TEE。
为了避免矿工(甚至是英特尔)作恶,区块链网络的特性就体现出来了:需要网络来验证CPU交付的计算结果是可信的,Phala Network做了一个事情,就是在签名上做了抽象层,不完全依赖英特尔告诉我这个签名是可信的。
程序结果是否是可信的,英特尔有一套远程认证协议,我们只是兼容了这套协议,假设英特尔作恶、或硬件有漏洞,再或者有更多成熟的TEE协议出来(比如在GPU做机器学习的TEE),Phala网络都可以兼容的很好。
可以想像一下,如果我们可以在区块链上构造一个联盟,为各种不同的厂商提供TEE的认证基础设施,就可以进一步降低对厂商的信任依赖,这也是区块链对TEE的一个互补吧!
Q4: GPU如果可以做TEE,会如何?当算力越高,如何面对TEE中心化的问题?
先说结论,TEE算力越高对Phala越有利,而不会引发中心化的问题,这是TEE-区块链混合架构的一种特点。背后的原因是Phala和当今区块链原理上的根本差别。
比特币和以太坊用区块链来解决双花问题,付出的代价就是需要在每个节点上运行昂贵的共识算法,达到所有节点状态一致的效果,从而实现了“去信任化”。
而和这些链不同的是,Phala的去信任化通过可信硬件保证,让硬件充当一个不可作恶的第三方,不仅可以实现去信任化,更实现了数据的保密。因此从技术上讲,Phala的节点本质是“非拜占庭的”,无需通过昂贵的共识算法就可以保证合约的安全执行。
由于Phala矿工是非拜占庭的,就得到了一些非常实用的特性。
第一是合约级的并行,因为非拜占庭,我们不用通过每个节点共识一次实现去信任化,因此每一个合约只需要运行在最少一个矿工上,每个矿工仅负责运行自己的合约,不同的合约在全网并行执行。因而网络的计算性能随着矿工的增加线性增长,可以实现极高的性能。
简单地讲就是,矿工越多,吞吐量越大。
第二个是天生支持跨链,Phala的合约是并行执行的,因此我们利用区块链与TEE互补,设计了一套合约之间的互操作协议,而这个互操作协议兼容Polkadot的XCMP,因此跨链调用与合约调用一样简单。
相信高性能和互操作是未来隐私保护技术大规模应用的基础。
【奇袭提问】林煌:Phala的方案对TEE和区块链隐私分别有什么补充?Phala与著名项目Oasis Labs的区别是?Phala的最大特性可组合性是如何实现的?
显然区块链缺少的隐私能力,在TEE上可以轻易实现。但TEE如果没有区块链的帮助,很难解决一些固有的缺陷。
刚才提到,Phala的去信任化是通过可信硬件保证的,然而单独的硬件解决不了两个问题:可用性和状态一致性。单独的硬件,拔电源就不能提供服务了,恶意的服务商可以随时终止服务,这就是不满足可用性。第二,多个可信计算节点常常有交互的需求,然而并行计算的基础告诉我们,代码执行的先后顺序不明往往会导致Race Condition,在加密货币上即为双花,这就不满足状态一致性。
因此,Phala最终采用了TEE-区块链混合架构。我们把状态数据加密存储在链上,任何人无需许可就可以下载,利用共识算法,每个节点都能得到一致的状态。
最典型的TEE-区块链混合架构就是Oasis Labs的Ekiden。但在我们早期调研时发现Ekiden缺少可组合性的基础——互操作。
可组合性在实际的区块链应用必不可少,是实现规模化网络效应的基础。
举个实际的例子感受一下,在以太坊排名前 10 的合约中 80% 都用到了合约间的组合与交互。同样地,Phala 上的数据交易协议也需要与链上应用和服务,包括去中心化存储、DeFi等基础设施相互组合。
为了实现可组合性,Phala Network 引入了独特的分层与事件溯源机制,简单而言,Phala把合约的读写两类操作分离,写操作在链上排序,从而杜绝了Race Condition,同时实现了TEE间的共享安全性。允许合约之间、甚至是与外部区块链之间得以互操作。
所以我们认为TEE和区块链的互补必不可少,而Phala也是通过对这个架构的改进,实现了Oasis Labs缺少的可组合性。
Q5: 现在对计算开销和存储开销大多都是预设,如果利用链来实现应用,三个项目都区域基础技术,那怎样判断需要一条什么样的区块链,输出能力、算力多少可行?几位嘉宾认为是保护区块链链上的隐私更重要,还是保护链下的隐私更重要?
我认为大规模应用下,大量的数据是不能直接上链的,因为目前的区块链并不适合处理大量的数据是一个共识。所以在Phala所有的合约计算都在链下执行。之前提到,Phala的节点是非拜占庭的,和区块链网络相比,Phala的网络更接近于节点之间可互相信任的传统分布式系统。
这样带来的一个好处就是,传统分布式系统中常用的大规模处理方式在Phala中可以照搬,大家熟悉的Mapreduce、Spark、甚至分布式数据库,理论上都可以在Phala上实现。
分布式计算依赖一个重要的能力,就是横向扩容,俗称堆机器,大多数区块链下每一个机器都进行同样的计算,无法实现横向扩容。Phala则不一样,每个节点各自计算,互相平行。因此对于我们来说,算力越大,可以承载的应用规模就越大,这是满足大规模应用的计算需求的唯一方法。
至于链上和链下的隐私保护,我认为重要性是一样的。目前链上的隐私相对成熟一些,只不过目前全世界的数据,可以说接近100%都在链下,所以很明显,这是一个潜力巨大的市场,不会有人放弃。
Q6: 三位嘉宾的项目都使用了零知识证明,除此之外三个技术的相互组合性如何?可以促成什么方案,各位可以畅想一下?
三位嘉宾的项目都使用了零知识证明,除此之外三个技术的相互组合性如何?可以促成什么方案,各位可以畅想一下?
密码学技术的代价是高昂的计算成本。例如刚才谢翔博士提到过,MPC可以支持两三方的机器学习模型训练。而对于某些更通用的计算问题,计算成本可能是原生的百万倍(详见Ekiden论文)。
这也是为什么我们与OasisLabs都不约而同的采用了TEE的主要原因。
TEE可以实现通用多方计算的能力,而且成本很低,大概成本只是原生的1.5-2倍。因此在不追求绝对的理论完备性的情况下,不失为密码学方案的一个补充。可以承载99%我们日常生活中的实际应用。
举个实际的例子。我们目前的一个方向是隐私数据的收集与管理,其中身份与密钥保密通过ZPK与MPC实现。而我们面向的普通的Web与移动应用,每天可以产生以TB计的海量数据,如此大规模的数据,MPC的成本是不太现实的。因此TEE在我们的系统中承载了99%的功能,是最适合落地、最高效的方案。而MPC与ZKP也是系统中的重要部分,不可或缺。
结语 by 王航
关于隐私,关于区块链应用,我们现在处于一个全力趟路的阶段,很多解决方案和设计,都需要逐一实现,但在区块链产业内的创业者们还是要做好持久战的准备,现在区块链的应用并不是业内竞争,与之相比的是整个互联网的应用。各位“技术战士”合力、加油。