当前位置:首页 > 科技资讯 >

一文读懂隐私计算、安全多方计算、可验证计算科技资讯

来源:天之家 发表于:2021-01-13 21:50 阅读:

导读:更多精彩推荐,请关注我们 这是一场知识密度极高的头脑盛宴。 一场硬核FAQ缓缓展开。 Part1:可扩展角度 Q: 可验证计算是什么? A:可验证计算通常是指Verifiable Computing(简称VC),指可以将计算任务外包给第三方算力提供者;(不受信任的)第三方算力提...

更多精彩推荐,请关注我们

一文读懂隐私计算、安全多方计算、可验证计算

这是一场知识密度极高的头脑盛宴。

一场硬核FAQ缓缓展开。

Part1:可扩展角度

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

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