区块链与分布式隐私计算行业报告
我们选取了三个不同技术路径的分布式隐私计算项目,分别是采用安全多方计算方案的ARPA、采用Trusted Execution Environment(TEE)硬件支持方案的Trias和采用分布式云计算与TEE相结合的综合性方案的iExec,作为分析案例。
目前三个项目都在落地方面取得了一定的成果,但离大规模推广都还存在一定的距离。除了技术发展水平的限制外,怎样进行基于商业场景的优化,怎样提高业界对新技术的认知与接受度等都是限制因素。
要点总结
1. 随着区块链技术的发展,其功能也从实现点对点的电子现金系统逐渐扩大到不同领域。隐私保护作为区块链中一个重要的课题,也在不断丰富扩充自己的含义——从仅仅确保交易隐私匿名性逐渐加入了对数据所有权、使用权的隐私保护。2. 为了保持计算过程的公平公正,同时为了避免数据向第三方泄露的风险,涉及隐私计算的项目往往采用分布式的系统架构。
3. ARPA是一个通过安全多方计算(MPC)进行分布式隐私计算的项目。目前ARPA测试网1.0版本ASTRAEA已于2019年3月正式发布。该版本为基于以太坊的Layer 2隐私计算解决方案。
4. ARPA的MPC加密计算方案是通过秘密分享(Secret Sharing)、部分同态加密、Beaver电路随机化技术等实现密文状态下的多方加法与乘法计算。但在目前技术环境下,多方安全计算与明文计算的速度仍有1-2个数量级的差距。ARPA对自身定义为Layer 2的解决方案,在未来可以不同的公链提供隐私计算服务。
5. Trias是一个通过Trusted Execution Environment(TEE)进行分布式隐私计算的底层公链项目。Trias第一版测试主网已于2019年Q2上线,主网的正式版Leviatom层计划于2019年Q4推出。
6. Trias三权分立的总系统设计对计算过程的公平与公正性起到一定的保证作用。其结合了异构TEE (Trusted Execution Environment)技术与图计算的异构共识图协议(Heterogeneous Consensus Graph, HCGraph)则构建了一个全网公开的信任体系,方便用户选择出最值得信任的TEE节点进行计算。
7. iExec是一个通过结合分布式云计算与TEE来提供分布式隐私计算的项目。iExec已于2019年5月推出iExec V3企业版,允许顾客接入iExec网络出售个人算力换取奖励。同时新加入的数据钱包(Data Wallet)功能也使得用户租赁自身所持数据使用权获利变得可能。
8. iExec的分布式云计算通过桌面网格(Desktop Grid)的方式,来收集网上未充分利用的计算与储存资源,允许用户端以传统超级计算机几分之一的成本去执行大规模的并行及分布式计算。出于对用户数据隐私所有权的保护,iExec进一步与TEE结合,实现了数据的租赁、交易与变现。
9. 目前三个项目都在落地方面取得了一定的成果,但离大规模推广都还存在一定的距离。除了技术发展水平的限制外,怎样进行基于商业场景的优化,怎样提高业界对新技术的认知与接受度等都是限制因素。对于项目后续的发展如何,我们将持续保持关注。
1. 行业背景
区块链作为一个融合了去中心化、公开透明、不可篡改等特性的新技术范式,起初主要为实现无需第三方的点对点交易。尽管隐私保护作为一个重要特性在初始设计时也给予一定考虑,但区块链自身公开透明的特性决定了任何人可以根据交易关联记录推测出账户的地址,难以真正做到交易的匿名性。面对加密货币市场上对隐私保护需求的不断提高,市场上逐渐出现通过不同技术路径实现匿名隐私保护的新通证,比较知名的有基于ZK-SNARKS的Zcash,基于环签名的Monero,与基于创新加密协议MimbleWimble的Grin与Beam等。
随着图灵完备的脚本语言加入,开发者开始可以在区块链上设计不同功能的应用,这也直接促成了区块链技术逐步与其他不同领域的融合,如金融征信、产品溯源、物联网等领域。与此同时,区块链中的隐私保护概念也不断融入了新的内涵,逐步从仅仅保证交易的匿名性扩大到对原生数据所有权、使用权的隐私保护。
怎样在保护客户隐私的前提下,同时合规的采集数据、应用数据成为区块链行业新的机遇与挑战。在此环境背景下,目前普遍的解决方案是通过隐私安全计算来实现保护数据隐私的前提下发掘数据价值,技术上其又可大致划分为安全多方计算(MPC)与安全执行环境(TEE)两种路径。
同时,为保证整个计算过程的公平可信,涉及隐私计算的区块链项目纷纷采用去中心化的分布式组织架构,避免数据向第三方泄露的风险。在已经落地的项目之中,比较有代表性的有基于MPC纯密码学技术的ARPA,基于TEE硬件技术的Trias,与将TEE与分布式云计算相结合的iExec。本次报告将聚焦于各项目的简要介绍,技术实现路径与项目进展。
2. 技术介绍
分布式隐私计算离不开三个维度的考虑,分别是隐私、性能和通用性。但目前所采用的安全多方计算(MPC)、安全可执行环境(TEE)和同态加密的这些加密技术中并没有能同时满足三个维度的最优解决方案,都在诸多特点之间做出了一定的权衡取舍。鉴于iExec项目的设计除了TEE以外还考虑了桌格计算,将在具体项目介绍时对其采用的技术单独介绍。
同态加密(Homomorphic Encryption)
同态加密是指对原始数据进行加密,之后进行计算得出一个输出,将此输出进行解密后,其结果与未加密原始数据直接计算得到的结果一致。在实际运算过程中,同态加密的每一步计算步骤都会涉及大量的加密运算,导致计算复杂度随着步骤的增加而急速上升。
这一问题直接导致了在实际应用中,同态加密目前仅能支持操作次数有限的加法同态或乘法同态,来实现部分同态加密(Somewhat Homomorphic Encryption),但难以做到同时支持加法和乘法操作完成运算次数不受限制的全同态加密(Fully Homomorphic Encryption)。目前在安全多方计算的运算过程之中,会融入部分同态加密。
安全多方计算 (Multi-PartyComputation, MPC)
安全多方计算解决一组互不信任的参与方之间保护隐私的协同计算问题,实现各方在不泄露本地任何数据隐私的情况下,完成数据的聚合计算功能。按照应用场景来划分,目前安全多方计算可分为安全两方计算和安全多方计算。前者主要通过加密电路(Garbled Circuit)、不经意传输(Oblivious Transfer)和布尔电路等密码学技术来实现,但受制于参与者数量的限制,限制了其在实际应用中推广的潜力。
安全多方计算的技术实现路径则主要是通过秘密分享(Secret Sharing)、同态加密、加密电路、不经意传输等来实现。但考虑到实际计算过程中需要大量的计算来实现同态性,在具体实施层面,多方计算会通过节点间通讯来降低加密运算的复杂度,代价则是增加了通讯的复杂程度。综合来看,目前多方计算方案的速度与明文计算比有大于1至2个数量级的差距。
可信执行环节(Trusted Execution Environment, TEE)
与之前通过密码学实现隐私计算的方式不同,TEE主要是通过硬件方面的设定来解决安全计算的问题,并已大规模应用于手机端,云端等领域,例如Intel的SGX,华为海思的TrustZone,ARM的Trustonic等。具体而言,TEE提供了一块隔离并加密的安全区域Enclave,并且搭配可信随机数据源,与定制的计算指令,实现数据的隐私运算。
相比前两项数字加密技术而言,TEE有着更广泛的应用,并且计算效率也可达到实际应用的级别,但使用者需要信任提供TEE硬件的安全厂商不会出现 “留后门”。与此同时,由于Spectre及Spoiler漏洞的存在,TEE还面临着缓存侧信道攻击的风险,造成安全与非安全区的数据隔离被打破,进而造成隐私数据的泄露问题。
3. 项目介绍
3.1 ARPA项目简介
ARPA项目主要通过MPC技术路径来构建一个可验证的链下多方安全计算网络,打破数据分散在各企业和机构间的数据孤岛现象,允许不同数据提供者在不透露自己数据、无需信任第三方的情况下,以较低成本协同计算得到可靠结果。在技术设计上,ARPA所采用的安全多方计算不是特指某个特定算法,而是融合了部分同态加密、秘密分享、混淆电路等技术实现的。与此同时,作为一个layer2的架构,ARPA可以接入不同的公链,以满足各公链上不同节点的隐私安全计算需求,这也极大地拓展了ARPA的应用范围。
3.1.1 ARPA系统设计
作为一个layer 2的解决方案,ARPA网络的计算任务来自于各个区块链网络。ARPA将在各个主要区块链网络上部署代理智能合约,每次计算发起之前,ARPA计算网络将随机选取一定数量的节点,被选中且有参与意愿的节点需抵押部分ARPA通证来正式参与计算。随机选择从一定程度上遏制了节点间计算前合谋的可能性;抵押机制则提高参与计算节点的作恶成本,降低蓄意窃取数据,不执行计算任务等行为。
根据ARPA的实验结果,在有100个计算节点的情况下,需要串通95%的节点才能有不到1%的机会成功攻击。ARPA的密码学设计结合经济层面的设计,能充分打消潜在的攻击意图。当计算开始后,各参与方的数据将以密文碎片的形式在ARPA网络中传输计算,结束后,计算结果与相应证明将传回发起请求的智能合约,整个计算过程中,各参与方只会接触到计算结果与自身所拥有的数据。ARPA的具体计算过程,可以大体分为两个部分 – 预处理阶段与计算阶段。
3.1.1.1 链下安全计算——预处理
预处理阶段占据了MPC整个计算过程的大部分时间,主要是准备计算过程中会被用到的各种加密计算“原料”,主要包括秘密分享及乘法运算过程中需要的“三元组和随机数组”,用于之后计算过程证明与验证的全局MAC key与分布式MAC key。MAC key是ARPA网络可验证性的来源,对于计算结果的可信验证至关重要。由于很多数据是消耗性的,所以在运算节点多、运算逻辑复杂的情况下需要较长的准备时间。目前,多方计算相比明文计算慢大约1至2个数量级。
3.1.1.2 链下安全计算——计算阶段
预处理完成之后,将进入计算阶段。ARPA的多方计算包括几个步骤:秘密分享、计算求值、揭示结果。
秘密分享:秘密分享将在输入数据分发的层面保证数据的隐私安全。首先,参与计算的节点向数据提供者发送一个随机值;然后,数据提供者将接收到的随机值与自己的随机值相加,得到总随机值,并将输入值减去总随机值,将结果向其余计算节点分发;各个计算节点在收到经过混淆的输入值后,加上自己本地的随机值,就能得到自己需要的输入值。经过这种操作,只有数据提供者拥有原始输入值,在数据提供者不作恶的前提下,保证了输入数据的安全。
计算求值:收到自己的输入值后,各个计算节点将开始本地计算。因为使用的秘密分享算法使得输入值具有加法性,所以加法运算与线性运算可以在本地执行,但乘法运算需要计算各方进行一定的信息交换。由于计算节点无法直接传递自己的输入值,所以要借助Beaver电路随机化技术,将乘法运算转化成线性运算和随机化公开变量。这个过程需要消耗预处理阶段生成的三元组,由于三元组在使用后会被公布,所以每个三元组只能使用一次,这意味着复杂的运算将需要预处理阶段准备大量的计算“原料”。
ARPA网络中的计算节点在计算过程中会持续计算变量的信息校验码(MAC),用于验证计算的完整性和正确性。信息校验码能够验证一条信息产生自相应MAC key的拥有者,并且该信息未被改变。如果计算节点未按照规定计算过程进行计算,其生成的MAC将无法通过验证。
揭示结果:在所有参与方同意结束计算过程后,参与节点会将结果的秘密分享值和对应的信息校验码进行广播,在首先验证了本次计算的正确性和完整性之后,协议将全局秘密分享值合并并重建出明文结果。此时,信息校验码可以通过常数复杂度的计算达成验证过程。验证与计算过程的解耦,使得验证过程可被区块链节点等第三方容易地执行。验证无误后,计算结果将被提交给请求者,结束计算任务。
3.1.2 ARPA项目进展
ARPA测试网1.0版本ASTRAEA已于2019年3月正式发布,该版本测试网是基于以太坊的Layer 2隐私解决方案。同时,ARPA也与国内顶尖公链项目进行合作,在链上成功实现了隐私计算。在未来,ARPA团队计划在2019年Q2上线Testnet 2.0(ATLAS),2019年Q3上线主网,并在企业客户端持续发力。在应用落地上,根据ARPA官方公布的合作信息,ARPA已经与中化集团、孔明科技、启明股份、云象区块链等企业达成合作,并积极推进与大型金融、保险机构的战略合作。
ARPA将为金融、保险、大宗商品等领域提供基于特定场景需求定制多方联合风控、黑名单共享、联合模型分析等行业的解决方案,目前已经有落地案例。此外,ARPA还参与安全多方计算的数据流通产品标准制定,作为核心参与企业,ARPA参与了多项密码学协议层面的内容编写。目前该标准已于2019年6月由中国信息通信研究院、云计算与大数据研究院联合发布。
3.2 Trias 项目简介
TRIAS是通过基于异构TEE技术与图计算的结合来提供对原生应用程序的可信执行环境。设计构架中,Trias由三层子体系构成,对应现实社会中的三权分立结构,通过权力的互相协作与制约,实现Trias执行计算环境的公平与公正。
具体来说,最基层的Leviatom负责行政权,通过异构技术聚合可以提供安全计算环境的节点来为Trias生态提供可信算力,而与图计算、Gossip协议的结合则为构建Trias信任矩阵提供了基础,帮助用户从中筛选可信的TEE节点进行计算。
第二层Prometh负责立法权,提供可溯源软件开发框架,实现智能合约从开发到正式运行的全生命周期维护、记录和管理服务。第三层MagCarta负责司法权,管理Trias的整体合约体系,实现全平台原生应用程序的统一编程与调度,并用经济模型激励协调各参与方利益。具体来讲,Trias的技术构架与计算过程如下所示:
3.2.1 Trias技术设计
Leviatom: 作为基础层,为整个Trias生态提供了安全计算环境。为降低区块链使用TEE的难度,Leviatom采用了异构共识图算法(HCGraph) 实现了基于TEE可信计算的异构网络与基于Gossip协议构建的信任网络充分结合。每个节点都将验证记录周围节点的可信度,并借助Gossip协议在不同节点之间传播,随着验证信息在全网内反复验证交互,HCGraph 逐步描绘出全局节点的“同谋违约”模型,实现了可信任节点的高效准确定位,抑制节点作恶行为。
图表 3-1 Leviatom节点示意图
来源: Trias白皮书
具体来说,Leviatom算力网络可用上图直观表示,图上每一个圆点可视为一个具备TEE运行环境的节点,方向线头表示节点间的验证关系方向。根据分工不同,各节点担负着三类不同职责,形成逻辑上的三层算力体系。
第一层利用TEE技术定期检查其周围节点的正确性,并记录相关的历史信息。第二层利用Gossip协议(以及Gossip about Gossip协议)收集周围第一层算力节点所收集信息,并在已获得其信任的其它节点间传播,在信息的传递交互过程中逐步构建出Trias内部的信任矩阵,从而允许使用者很方便地选择Leviatom中受信任程度最高的节点来处理合约任务,以此保证数据的隐私安全。与此同时,信任传导机制特性还对节点的作恶动机产生很强的遏制作用。简单来说,每当节点想要作恶时,需要网络中上一级可信节点配合,而这些“配合作恶节点”也需要更上一级信任节点进一步配合。随着Leviatom中节点获得的信任越多,需要配合的节点也越多,因而做恶的成本也就越高。
这些高信任节点则构成了Leviatom中的第三层。该层节点可执行任意程序,对执行结果进行共识验证,并参与最终记账权的竞争。在Leviatom网络中,任一节点可以实现三类职责的不同组合,通过市场调节的机制实现了全网络的灵活性与高效性。
Prometh: 是在Leviatom平台之上的通用应用程序的DevSecOps框架,实现应用程序的可追溯、可验证和零移植,对链上智能合约的质量、标准等性质负责。Prometh计划对Trias上开发的软件从设计、开发、测试、运行直至销毁进行全生命周期的监控管理,实现代码的自动化上链与自动化安全分析,为Prometh框架下运行的软件构建一个通用的可及时反馈的溯源体系,方便客户对所使用合约各环节的验证,也有助于构建客户对Trias体系中运行软件安全性的信心。
MagCarta: 其为Trias的应用层,支持图灵完备的智能合约语言集,用于开发者编写智能合约以实现复杂的商业逻辑。具体来说,Leviatom网络可以被理解为基
础的操作系统。而Prometh框架则是操作系统上不同种类的开发工具,用来开发各种基础软件模块。MagCarta语言则是把Prometh中开发出来的不同模块拼接成去中心化企业服务(DSaaS)的合约语言。与此同时,MagCarta还负责为Leviatom节点与Prometh程序开发者支付酬劳费用以及保险费用,实现对算力、程序、数据贡献者对激励与安全保障。
3.2.2 Trias项目进展
在技术开发上,Trias第一版测试主网已经在2019年Q2上线,主网的正式版Leviatom层计划是2019年Q4推出。在应用落地上:
2018年12月,Trias(北京八分量信息科技有限公司)与福建省东盟海洋经济研究院达成合作,共同建立联合建立福建省东盟海洋经济研究院区块链研究中心,初期计划以区块链技术升级改造中国–东盟海产品交易所平台。此次合作促进了海洋经济产业与区块链技术的结合,在产品溯源,隐私计算等领域有着重要应用。
2019年3月,Trias(北京八分量信息科技有限公司)与江西北斗变电科技有限公司(以下简称北斗变电)达成战略合作。合作过程将采用Trias的可信任网络技术协助北斗变电建立变电大数据物联网系统,包括变电大数据平台、变电设备销售平台等。该合作是将区块链技术、多方安全技术、大数据、数据溯源等新兴技术进行充分结合的创新型典范,也开创了区块链 变电行业的先河,成功实现了区块链技术为实体经济赋能,也为日后Trias在其他领域的落地积累了宝贵的实战经验。
2019年3月,Trias(北京八分量信息科技有限公司)与东吴证券联合承办了《基于人工智能的金融信息系统可信运维系统》课题。并在完成科研探索,原型验证后成功落地了东吴态势感知平台。该平台是基于可信计算(TEE)、区块链、人工智能三项关键技术实现的,作为一个从防御、检测、响应、到预测于一体的自适应智能安全运营系统(DevSecOps),全面考虑应用和基础架构的安全性与部分安全网关自动化需求。
3.3 iExec项目简介
iExec是基于Ethereum的分布式云计算项目,旨在创建一个安全可扩展的去中心化的虚拟计算平台,iExec允许DApp开发者、数据提供方、算力提供方与使用者在其平台上公平自由地交易。针对传统中心化云计算所面临的网络传输拥堵、使用费用攀升以及数据中心的热能损耗巨大等问题,iExec提出利用桌面网格(Desktop Grid)的方式,来收集网上未充分利用的计算与储存资源,允许用户端以传统超级计算机几分之一的成本去执行大规模的并行及分布式计算。在2019年5月iExec V3企业版升级之后,新版本允许个人计算机加入iExec生态而成为算力提供商,通过出租计算资源换取收益。在此之上,iExec还进一步实现了对可信执行环境(TEE)解决方案的支持,使得数据所有者可以在远程内置TEE组件的计算机上运行数据而不用担心隐私泄露。
3.3.1 iExec技术框架
iExec分布式云计算技术的核心依赖于一个成熟、可靠、开源的桌面网格计算中间件 – iExec Core。该技术是以公司创始人于法国国家计算机及自动化研究院(INRIA)工作期间发布的XtremWeb为基础开发的。作为分布式计算系统的核心组件,iExec Core实现了分布式计算所需要的网络资源聚合,运算高容错,屏蔽资源底层异构性等功能。
图表 3-2 iExec平面结构图
来源: iExec白皮书
Proof of Contribution: 利用区块链不可篡改、信息透明以及去中心化的特点,iExec还设计构建了自有的贡献证明协议Proof-of-Contribution (PoCo),为整个算力生态建立了一套公开可追溯的信用与结算体系。具体来讲,PoCo可视为虚拟算力交易平台和分布式计算系统中间件(iExec Core)间的桥梁。每当平台上有人发起计算任务,各符合计算条件的节点可通过质押部分iExec平台通证参与,如果节点在计算中途退出,甚至蓄意作恶,将失去质押通证,其信用值也将受损。计算结束后,PoCo将基于各节点信用值判定计算结果是否有效,并对提供有效贡献的节点给予相匹配的通证激励。
Domain Specific Sidechain: 作为一个通用开发平台, 在设计过程之中并没有考虑对特定场景的优化,如果iExec全部计算过程在 Ethereum上运行的话将存在gas费用过高,交易处理效率低下等问题。为更好地服务于不同业务场景, iExec将会有针对性地设计专用侧链(Domain Specific Sidechain),以满足计算过程中可能出现的特定需求,如并行计算处理、低延迟交互等。
Data Wallet、TEE: 在升级的iExec V3企业版中,新添加了数据钱包功能,允许数据所有者将其持有数据通过租赁变现。同时, 企业版还提供了基于Intel的SGX的隐私保护解决方案,两者的结合极大保障了数据租赁市场的安全性与有效性,允许数据所有者可以仅仅出租数据使用权而不损失所有权,确保在远程和不受信任的计算机上运行的数据得到安全保护。
即便是有价值的敏感隐私数据也可以通过此技术来出租获利,可广泛应用于医药,3D渲染,物联网数据处理等领域。目前已经部署了多个提供可信执行环境的“算力池”以供用户选择,包括可以在阿里云、IBM、TF Cloud等。
3.3.2 iExec项目进展
在技术开发上,iExec项目自2016年1月开始以来,开发进度符合其路线图规划。已经成功包括算力租赁,数据租赁,可信计算环境等功能。与此同时,iExec同时宣布iExec V4版本将于2019年末推出,该版本将会是充分融合GPU算力的超级计算版本。在应用落地上,iExec不仅广泛与诸如Intel,IBM等业内公司开展合作,同时iExec的发展也获得了法国电力集团与法国国家投资银行的关注与支持。如下将罗列部分比较重大的相关事件:
2019年5月,iExec联手Intel和企业以太坊联盟(Enterprise Ethereum Alliance)发布了链下可信计算标准V1.0。
2019年5月,法国电力集团(Electricite De France)与iExec合作以测试相关程序在区块链上的运行。作为欧洲最大,世界第五的电力公司,与法国电力集团的合作将为iExec积累丰富的行业经验,也为区块链 电力行业起到示范作用
2019年2月,法国国家投资银行(Bpifrance)对iExec投资200万欧元,以支持分布式计算的商业化应用
2018年11月,iExec集成IBM Cloud
2018年1月,iExec与上海科技大学雾计算实验室宣布合作
2018年1月,发布针对英特尔SGX端到端的解决方案
4. 小结
综合分析,三个项目分别采取了不同的技术路径实现了分布式隐私计算,并在项目落地上取得了一定的成功。但在进一步推广过程,三者也都面临着不同的问题。具体来讲,
ARPA是基于纯密码学的MPC项目,有着诸多密码学研究作为技术指导。但MPC作为密码学的一项前沿技术,仍处在不断的发展变化之中,目前在世界范围内比较成熟的应用仍局限在运用MPC技术到分布式密钥管理领域(如美国的unbound tech 和 丹麦的sepior)。
除此之外,从尖端理论研究到行业落地,特别是满足特定商业场景需求往往需要数年时间的转化,这对ARPA项目的研发能力,技术转换能力与商业理解能力都提出了极高的要求。
Trias是基于TEE来实现分布式计算的创新项目,其结合异构TEE与图计算的共识机制将会创造高信任度的可信计算环境,三权分立的构想也能确保Trias平台上计算过程的公平与公正。但创新的同时,Trias也面临许多问题与不确定性。
首先是TEE自身存在的技术漏洞问题(如Spectre及Spoiler),Trias采用何种方式避免该类问题的发生尚未得知;其次是在选择执行代码的节点方面,虽然节点的选择本身就是建立在信任基础之上,但是这种设计长久运行下来仍将不可避免的走向中心化。
iExec采用了分布式云计算与TEE结合的方式来实现隐私计算的。其核心组件iExec是基于公司创始人于法国国家计算机及自动化研究院(INRIA)工作期间发布的XtremWeb为蓝本开发的,对iExec项目的成功发展起到一定的保证作用。但分布式计算过往主要应用仍局限于特定领域的大型科学计算,iExec多大程度上能将其运用到多样化的商业计算场景仍未可知。同时,目前iExec仍依赖于像阿里云,IBM,TF Cloud这样中心化的机构提供安全可信计算环境,这也意味着iExec将与Trias一样面临算力节点中心化的问题。