【精彩实录】PlatON算法科学家谢翔博士:以太坊2.0上的隐私计算实现

4月29日,PlatON算法科学家谢翔博士受邀参加由陀螺财经发起的《陀螺非正式会谈》栏目,活动中谢翔博士详尽阐述了以太坊2.0的技术升级、以太坊2.0上隐私计算的实现以及隐私计算商用市场现状与前景,并与社区成员深度交流。


精彩片段

ETH2.0的变化可以说是四个阶段中最为激进的一个。整体来说是要解决两个问题:可持续性和可扩展性。

ETH2.0采用分片的方式来提升可扩展性,分片大概的意思是这样的:由不同的验证人组成一个委员会,每个委员会负责一个分片链的出块,最后在信标链那里达成一致。为了提高可扩展性,每个分片链之间都是相对独立的,也就是分片链各自出块不干扰。

Proof of Custody其实就是要求每个验证节点出块的同时,需要提交一个“证明”,保证他自己确实拥有这些区块的数据。如果这个节点撒谎,则能够被其他节点举报,并且会被处罚(Slash)。

从这两年的趋势来看,大家其实能够感觉到以太坊把隐私看得越来越重,我们理解这是以太坊成为“世界计算机”的必经之路。

隐私计算很多应用完全可以商用,比如说我们在做的分布式密钥管理,也是基于MPC/门限签名的,性能完全足够商用。因为它解决的问题是降低密钥管理的风险,性能在可接受的范围内就足够企业来使用了。也比如现在的隐私交易,零知识证明相关的算法的性能是完全可以支撑商用的。

以下是本次活动全程实录:

大家好,我是PlatON的谢翔,目前主要负责算法相关内容,之前硕士博士在中科院软件所做密码学相关的研究。PlatON的基本定位是“隐私计算网络”+“分布式经济体基础设施”。创始人是肖风肖总和孙立林孙总,去年前复星联合创始人兼CEO梁信军先生也正式加入我们成为首席顾问,也将在我们的理事会中发挥重要作用。

1. 我们知道ETH未来会升级到2.0,谢博士能简单概括一下,进行了哪些方面的技术升级么?

以太坊的里程碑上一共定义了四个阶段:Frontier,Homestead,Metropolis,Serenity。目前已经发展到Serenity(宁静),也就是我们常说的ETH2.0。在ETH2.0里也还分为phase0, phase1和phase2,当然,以太坊整体还在迁移当中。ETH2.0的变化可以说是四个阶段中最为激进的一个。

整体来说是要解决两个问题:可持续性和可扩展性。可持续性上的变化就是大家非常熟悉的由PoW转为PoS,也就是在迁移到ETH2.0之后,任何人都可以通过质押32个以太币来参与验证节点,并有机会获得出块奖励。可扩展性就是要解决现在TPS较低的问题,以支撑以太坊上更多的应用,而采用的方法就是用分片(sharding)的思路。在ETH2.0的整体架构中,信标链(Beacon Chain)是核心,所有的上述转变都会围绕信标链来进行,也是目前phase0(准备阶段)在做的事情。

我们同以太坊合作的项目是在sharding方案中遇到的数据可用性问题,以及其中的解决方案(Proof of Custody)的安全多方计算(MPC)协议设计和实现。

2. 刚才您提到,PlatON团队参与了以太坊PoC的MPC设计和代码实现,能不能通俗地介绍一下PoC方案与MPC?

先说明一下,这里的PoC指的是Proof of Custody,不是我们常说的概念验证PoC。我们之前的这个帖子对这个问题做了比较详细的介绍。这里再简要地说明一下PoC问题的来源,以及用MPC实现PoC的好处。

上面说到ETH2.0采用分片的方式来提升可扩展性,分片大概的意思是这样的:由不同的验证人组成一个委员会,每个委员会负责一个分片链的出块,最后在信标链那里达成一致。为了提高可扩展性,每个分片链之间都是相对独立的,也就是分片链各自出块不干扰。下面这个图可以看出来一个对比。

帖子:


左边的图是现在的机制,每个交易需要被每个节点进行验证,这也是现在以太坊性能较低的一个原因。

右边的图表示的是分片的机制,相当于不同的交易可以在同一时间被不同的节点验证,进而提升吞吐量。虽然这里可扩展性提高了,但是会遇到一个问题。因为每条分片链的完整数据是不会存在信标链上的,只有数据的merkle根以及相应的签名在上面保存。

因此,A 分片链里面的验证节点实际上看不到B分片链中的完整的数据,进而也就有了“数据可用性”的问题(B中节点是不是真的拥有这个数据)。其实就是分片链中防止“懒惰”的验证节点,光拿钱不干活。而Proof of Custody其实就是要求每个验证节点出块的同时,需要提交一个“证明”,保证他自己确实拥有这些区块的数据。如果这个节点撒谎,则能够被其他节点举报,并且会被处罚(Slash)。

生成Proof of Custody的证明是需要用到节点的私钥。利用MPC来实现Proof of Custody的目的其实是私钥管理的一种方式,当然这种方式也会带来其他的好处。在整个Proof of Custody方案的设计里从一开始就考虑了对MPC的兼容性,利用MPC的好处就是减少私钥泄漏带来的资产被slash的风险。

另外,通过MPC还能够建立去信任的验证节点池(trustless validator pool),不仅能够降低每一个节点staking的以太币的数量,而且有可能带来新的staking模式。

3. 刚您提到方案设计里对MPC(安全多方计算)的兼容,这点很重要吗?具体是怎么实现的呢?另外,这个部分的功能在实际应用中能被用户感知到吗?

其实原本以太坊的设计就倾向于crypto-frienly(这里的crypto指的是密码学),因为很多方案在和密码学的配合下能解决非常多的问题。其中的MPC的算法还是比较复杂,大概的方式是基于秘密分享(secret sharing)的方式。

一开始节点的私钥会分成多份有多个人保管,在任何时候都不会出现完整的私钥(包括生成和使用的时候)。在生成Proof of Custody证明的时候,多方参与一起来生成。或者从用户感知的层面说,是用户一起管理一个分布式的验证节点。可以简单的理解为,在原来非区块链的资产多人权限管理的场景,通过技术的方式迁移到了以太坊上面。

我们的第一期的代码已经开源了。我们基于这个代码在东京、新加坡、孟买、悉尼和法兰克福5个城市的20个节点做了测试,在8G RAM/100Mbps的环境下,在线生成一个证明大概是3s左右,而整体的要求是在12s以内,所以是完全可以满足要求的。我们也计划在后续的优化中,能够扩展到100个节点。

开源地址:

4. 原来非区块链的资产多人权限管理的场景,是不是类似于,N个人需要共同按手印才能动用一笔钱的场景?

对的,有点类似这个场景。在密码学里有一个专门的词汇:门限签名(threshold signature)。

5. 听说能参与到ETH2.0建设的中国团队并不是很多,谢博士能否聊聊是什么样的契机,能跟以太坊基金会达成合作的?

肖风肖总既是PlatON的创始人,也是以太坊的早期投资者,所以PlatON团队其实很早就和以太坊在接触了。技术上跟Vitalik和以太坊基金会的研究人员也开了很多次会,谈了有2年左右才最终定下来要做的事情。

其实和以太坊的合作内容不是一开始就想得很清楚,我们只是觉得密码学的相关技术能够为以太坊社区做一些不一样的东西。从最早的投票,到拍卖的隐私合约等等都聊过,直到去年的以太坊开发者大会上,我们和负责Proof of Custody设计的Dankrad Feist初步沟通了一次。然后又邀请Dan来深圳在技术上讨论了整整一天,才最后决定把Proof of Custody的MPC设计和实现做起来。这里也要感谢Dan和我们做的非常深入的技术探讨,他也给MPC的实现和优化提了很多好的意见。

6. 对比现有的很多项目,以太坊会更加看重隐私计算么?以太坊,或者以太坊2.0和隐私计算有什么样的关系?

从这两年的趋势来看,大家其实能够感觉到以太坊把隐私看得越来越重,我们理解这是以太坊成为“世界计算机”的必经之路。

逻辑也很简单,随着以太坊影响力的扩大,不同行业都开始在以太坊上面跑不同的应用和业务。虽然现在还不多,但是我们相信底层技术完善之后会有大量的应用迁移过来,或者其他一些新兴的业务和产业会基于以太坊整个生态。一旦涉及到数据,就会有隐私的问题,因此就需要隐私计算。

其实以太坊社区里面很多技术问题都是希望通过密码学来解决的,比如这里的PoC的MPC实现,基于零知识证明的隐私交易,利用零知识证明来提升做layer2的可扩展性(zk-rollup)等等。

这里有一个有趣的现象,在以太坊这种高度去中心化的场景下,会倾向于选择密码学这样的隐私计算技术,而很少采用类似TEE的方式。这里面的原因,我想更多的是以太坊希望把整体的信任构建在数学/算法的基础上吧。这也从另一方面极大地促进了密码学的发展,同时为密码学界提供了很多很好的问题。所以说以太坊基金会和密码学社区是走得非常近的。

7.您的团队对隐私计算领域颇有研究,有观点认为,隐私计算技术效率较低,实际的商业应用较少,您认同吗?目前隐私计算有哪些应用?未来是否能够实现大规模商用呢?

我们确实很早就在隐私计算的领域做了投入和积累,最早可以追溯到16年底到17年初。我们基本上拜访了国内所有做密码学的老师和研究人员,国外也有一些高校的科研人员和我们合作,形成了一个非常好的学术界和产业界结合的氛围。

其实我们一直觉得泛泛地说性能高低不是衡量一个技术是否能商用的标准,甚至性能本身也不是商用唯一的标准。其实隐私计算很多应用完全可以商用了,比如说我们在做的分布式密钥管理,也是基于MPC/门限签名的,性能完全足够商用。因为它解决的问题是降低密钥管理的风险,性能在可接受的范围内就足够企业来使用了。也比如现在的隐私交易,零知识证明相关的算法的性能是完全可以支撑商用的。

当然,要做到完全通用化,支持所有场景都能使用隐私计算的技术也还需要过程。里面性能是一个关键点,但是同时也还涉及到整个业务架构的调整,商业模式的调整等等。这是一个完全新的市场,我们相信未来有足够的空间。

目前整个隐私计算市场还是在基础设施建设阶段,这也是PlatON的定位:打造隐私计算基础设施。PlatON区块链是打造分布式经济的基础设施,这在之后隐私计算市场里是非常重要的一部分。

另外,我们最近推出了一个隐私AI框架Rosetta ,目的是为了降低开发者使用隐私计算技术的门槛,可以快速地将原来的代码迁移到隐私计算的方式。

整体而言,隐私计算在某些特定的应用场景下是完全可以商用的,但是全局来看依然需要进行基础设施建设,我们对整个隐私计算市场充满信心。我们分成两层,一个是分布式经济的基础设施,也就是大家理解的区块链。另一个是隐私计算技术的基础设施,可以理解我上面说的Rosetta就是指的这个。这两个最终是要统一起来的。

隐私AI框架Rosetta:

以下为群友提问节选:

1.请问您刚才提到MPC目前在100个节点以下能达到3秒延迟,这个时间未来有可能大幅缩减吗?

是目前是20个节点性能,如果3s已经足够用了,其实大幅度减少的意义也就不大了。不过这个取决于各种条件,包括网络环境以及主网需求等等。我们想要做的是在纯粹的性能上能做到什么地步,所以我们才会去尝试跑100个节点。

2. 请问谢博士,PlatON的隐私计算这块是完全的自主创新了,期间有没有什么技术上的难度和挑战?

这个技术其实在密码学里很早就有了:Privacy-Preserving Computation,并不是我们发明的,而是觉得能够真正解决现在市场上隐私保护的问题。难度有很多,包括算法本身的难度,包括市场的接受度,包括产品架构的调整,也包括商业模式的调整。

3. 请问隐私计算,是加入了AI相关的框架吗?这部分能否简单介绍一下?

其实隐私计算技术本身和区块链是没有关系的,从商用的角度来看,我们看到的是整个数据市场,如何为数据定价才是根本。而现在使用数据最多的是AI方向的应用,所以我们提供这样一个隐私AI的框架来降低AI工程师的门槛。可以这么简单地打比方:隐私AI框架可以支持上层业务,而区块链支持分布式清结算。

4.请问以太坊2.0何时会应用您团队做的MPC的实现呢?很是期待。

Proof of Custody是计划在phase1上线的,我们的项目完成之后,相当于是提供了一个分布式验证节点的实现。