一场知识密度极高的头脑盛宴,详解“计算”的价值

2022-06-21 区块链达人

PlatON创新研究院高级研究员夏伏彪博士从PlatON可扩展角度、隐私计算价值、密码学与AI框架四大方向详解“计算”的价值。

一场硬核FAQ缓缓展开。

Q:可验证计算是什么?

A:可验证计算通常是指Verifiable Computing(简称“VC”),指可以将计算任务外包给第三方算力提供者;(不受信任的)第三方算力提供者需要在完成计算任务的同时,提交一份关于计算结果的正确性证明。

Q:在区块链系统中,哪些计算适合“上链”,哪些不适合?

A:区块链作为分布式网络,链上计算/存储本质是将计算和存储任务(同时地)执行了多次,是十分昂贵的资源开销;因此链上其实并不适合承载过多的计算任务。

另一方面,区块链自身的全局透明、不可篡改等特性,其实适合那些具备“审计需求”的计算任务,例如通过区块链,智能合约执行的“数字资产交易”,需要保证资产交易的公开和可审计;同样是通过智能合约实现的“电子存证上链”,是将司法电子证据作为一种区块链交易发送到链上进行校验计算并保存,也是为了满足公开可审计可追溯的要求。这些链上计算相对更轻量级,且侧重于对业务数据的全局状态更新,例如数字资产交易是更新了各账户的余额,存证上链其实也是更新了证据的状态。

Q:在上链之前,如何保证链下计算的正确性?

A:保证链下(通用)计算的正确性,从密码学的角度说,其实还是依赖于可验证计算(VC)技术。可验证计算中,计算者通常会将计算任务转换成算术电路,然后通过密码学技术创建一些公开且可以被快速验证的数学关系式以及式子里的各项值;计算者将这些值发送给验证者。验证者可以通过这些输入的值,校验公开的验证关系式是否满足。

可验证计算的技术模型,包含了对计算正确性的潜在要求,即如果是正确地执行了计算任务,则上述过程中生成的值一定可以满足验证关系式;如果没有正确地计算任务,则过程中生成的值能顺利通过验证关系式检查的概率非常非常低。

Q:保证链下计算正确性的同时,链上的验证如何做?验证速度能不能达到商用标准?

A:链上的验证工作,是依赖于计算者提供的一些输入值,和与该计算任务相关的公开的验证关系式。

笼统地说,验证工作的复杂性,会远小于计算任务本身,也就是说,验证速度会比计算更快。好的VC技术,可以让验证速度做到常数级别,即不管计算任务多复杂,仅需常数时间(例如几个毫秒)就可以完成一次验证,商用问题不大。

Q:从可扩展角度来说,可验证计算对吞吐量带来了什么变化?

A:可验证计算,包括以zk-SNARKs为代表的零知识证明技术,给区块链可扩展性带来了新的解决方案。以太坊创始人Vitalik在以太坊技术社区曾提出用可验证计算(zk-SNARKs)技术来解决以太坊可扩展性问题,也就是目前非常火热的zk-rollup技术。

大致的思路是,将网络里的区块处理都转交一个链下的第三方,这个第三方可以是不受信任的,他在处理完转账交易的业务后会更新以太坊的账户全局状态,同时他还需要提供一个证明,证明他的整个转账交易处理逻辑,包括对全局状态的更新,都是准确无误的。这个证明,和更新后的账户全局状态,以及压缩后的交易数据,都会被提交上链。链上的智能合约负责对证明进行校验,以及将账户状态进行最终更新。

我们发现,可验证计算可以将复杂的区块交易处理转到链下,链上的工作仅剩余轻量级的验证和状态更新。按照Vitalik的计算,采用zk-rollup之后可以将以太坊的TPS从目前约15tx/s提升到约550 tx/s。

Q:在商用实践中,可验证计算可以实现哪些功能?

A:除了帮助缓解区块链网络的可扩展性和链下计算可靠性之外,可验证计算通常适用于将复杂的计算任务转交给具备有强大算力的第三方的场景,比如将资源受限的设备(例如智能卡)的计算任务转交给云服务。

一个简单的例子是物联网传感器本身计算能力十分有限,无法处理设备采集的数据,需要上传到云端,而可验证计算的引入,可以保证云服务是“正确且可靠”地进行了数据处理,而不是故意偷懒或者执行了错误的计算。

需要一提的是,可验证计算技术仍然在持续研究和优化,我们有理由相信,在不久的将来,小到四则运算,大到神经网络训练,都可以放心地丢给云服务来完成计算,而无需担心计算结果的准确性。

Q:隐私计算是基于密码学的一项技术,与区块链的关系是怎样的?又如何与区块链技术结合?

A:原生的区块链网络不存在隐私保护的能力。隐私计算与区块链结合,是为了满足更复杂多变的商业需求,特别是面向数据交换、分享的各类场景。

从区块链的角度来看,有几个大的方向或者说是基础设施和服务:最直接的就是隐私交易(privacy transaction), 此外还有密钥管理,以及去中心化数字身份(DID),这些都与隐私计算密不可分。

Q:相比于“传统”计算,加上隐私计算后,能够解决哪些之前不能实现的遗留问题?

A:从商业的角度来说,传统的计算,瓶颈往往在于数据端,即数据能否给到计算方,很多时候这是一个数据安全和隐私法规层面的问题。

隐私计算恰好针对的是数据交换、数据分享等场景里的数据隐私问题,笼统地讲,以MPC为代表的隐私计算技术可以实现数据在不离开本地情况下,完成计算任务,达到数据可用而不可见。

Q:隐私计算适用于哪些商业场景?

A:隐私计算技术可以服务于各类应用场景,实现多样化的商业创新。我们就区块链领域举两个例子。

就像上面提到的,通过安全多方计算(MPC)实现区块链钱包中的密钥管理,可以看成是一个垂直应用,将资产的管理权通过数学的方式进行拆分,最终可以降低单个私钥丢失风险、以及实现细粒度的token权限管理。

同样采用了MPC技术,另一个相关的例子是以太坊2.0网络中的一个安全性机制,叫做Custody Game (托管策略),其实就是为了保证轻节点可以安全地下载区块头构建区块链,无需担心区块数据不可用的问题,这里MPC的引入,不但实现了原始目标——提供安全性,还能创建新的质押商业模式,让多个用户共同分担成为验证人节点所需的经济门槛——32个ETH,在丰富商业玩法的同时,更重要的是提升了以太坊2.0网络的去中心化程度。

Q:就场景来说,能不能举个例子说明MPC在实际应用中的作用?

A:医疗场景里,一个典型的使用隐私计算的例子是电子病历 (EHR) 数据跨域访问。在拥有个人数字身份基础设施的前提下,A医院可以在获得病人授权的前提下,对其在此前就诊的B医院申请数据访问,在满足诊疗需求的前提下,同时出于隐私合规和数据最小化的原则,该次访问仅需要了解病人的某项疾病的特征信息,例如曾有对某类药物的过敏情况,返回是或者否。那么在这样的一个案例中,MPC技术就可以发挥最大的作用,通过对病人在B医院的病历记录的授权查询,不直接返回病人的病历数据,仅返回所需的药物过敏特征信息。

Q:PlatON都涉及了哪些隐私计算技术的研究与应用呢?

A:隐私计算基于密码学,其技术也包括很多种,如ZK(零知识证明)、MPC、TEE(可信硬件)等。相比于ZK和MPC,TEE更侧重于安全技术,而且对技术实现和厂商的依赖程度比较高。相比之下,信任成本更低的是依托密码学的ZK和MPC,而其中ZK更侧重于进行“验证式”的计算,是计算的终点;MPC则是解决数据计算的本身,是计算发起的起点。

PlatON在MPC和ZK两方面都有持续投入,从实际业务角度出发,现阶段更多的需求是来自于受限于数据隐私而无法达成计算,那么MPC刚好可以解决这个痛点。ZK其实也是非常关重要的隐私计算技术,通常会用于解决计算正确性问题,属于下一阶段的关键技术。

其实PlatON并没有局限于MPC或者ZK,就像创世白皮书中写的可验证计算或者同态加密,都属于隐私计算的大范畴,知识。

Q:PlatON是如何保持走在密码学前沿领域的?

A:有几个方面可以说明PlatON在密码学的重视和投入程度。

首先,PlatON有一个业界领先的密码学研发团队,汇集了包括中科院、上海交通大学、武汉大学、美国马里兰大学、西北大学等国内外顶尖高校的著名密码学教授和研究学者。

同时,PlatON长期专注于密码学和隐私计算研究,大力支持密码学相关的学术和技术赛事活动,是密码学领域三大顶级会议Crypto/Eurocrypt/Asiacrypt,和安全领域顶级会议ACM CCS的持续赞助商,同时还作为主要赞助商与国内顶级高校和科研机构一起连续举办了两届密码学冬令营(Crypto Innovation School),分别针对安全多方计算和格密码展开了主题培训。此外,PlatON还独立举办了CISC 2019 密码学年度赛事,旨在鼓励和推广全球密码学方面的创造性的密码学技术作品。

Q:我们很期待隐私计算大规模商用后的数字化社会,例如MPC在商用的过程中会诞生什么样的新应用场景呢?

A:MPC的核心能力在于如何在保护用户隐私的前提下完成计算任务。以疫情为例,目前的健康码等应用其实是政府的大数据中心/计算服务获取并汇总了用户的运营商数据,进行数据分析和风险判定,存在数据隐私泄露的隐患。

事实上,通过MPC技术是可以做到用户个体隐私与群体健康兼顾的。一种新的方案可能是,用户个体通过可穿戴设备(IOT传感器),实现与心跳、血氧、血压等多种生理数据源对接。设备均拥有数字身份,并由运营机构提供用户数据的本地计算,只需按验证规则返回验证结果。完全不需要在云端各数据源验证结果汇总计算,就可以生成该用户最终的健康状态。

Q:目前与MPC最“贴合”的场景是什么?能不能举例说明一下?

A:MPC技术十分适用于密钥管理。传统的区块链钱包的私钥管理, 不管是软件还是硬件钱包,都存在单点故障的风险;如果私钥一旦丢失,那么链上的数字货币就会躺在所谓的“黑洞”账户里,再也无法取回。MPC技术可以降低这种风险,将私钥的单一保管模式转换为多点保管模式。用户可以持有私钥的一个或者多个碎片,而将其他碎片托管在受信任的人或者服务商,在需要使用私钥进行签名的时候,通过在线的方式进行一次MPC计算,生成数字签名。

值得强调的是,MPC模式的私钥管理还会带来一些新的安全特性,例如私钥明文在整个业务生命周期里从未出现过;少于额定数目的私钥碎片,凑在一起也无法恢复出完整的私钥;用户侧的私钥碎片丢失后,可以通过MPC技术进行在线找回,并且找回的是一个新的碎片,而托管方的私钥碎片也会同步刷新。这些独特的安全特性进一步降低了私钥使用过程中的泄露风险。

Q:从市场反馈来看,AI行业目前不太好过,您认为什么因素决定了AI落地速度?

A:整体来看,目前AI商业化在算力、算法和技术方面基本达到阶段性成熟,想要更加落地,解决行业具体痛点,需要大量经过标注处理的相关数据做算法训练支撑,可以说数据决定了AI的落地程度。

Q:我们了解到,PlatON针对AI行业的痛点推出了一款隐私AI框架产品,可以看做是“AI-隐私计算转化器”。那么AI开发人员如何通过Rosetta开发框架获得隐私计算能力?

A:Rosetta是基于TensorFlow的隐私AI框架,主要目的是降低AI开发人员的门槛,让他们可以在不需要了解隐私计算细节的情况下,仅仅通过添加一行代码的方式,将原先传统的数据处理方式转换为隐私计算的方式。

Rosetta本身是对AI训练中的各类基础算子进行了MPC本地封装,使得开发者可以通过算子组合,实现所需的训练算法,并且是以数据输入隐私得到妥善保护的方式执行。

作者 : PlatON