多方计算在区块链里如何使用?
多方计算是隐私计算领域里密码学部分的分支方向之一,其主要作用,是通过多个协作方在密码学协议的帮助下,对数据进行分离的计算,最终计算出想要的结果,并且整个过程中没有人可以看到数据、拥有数据、控制数据。
这是一个很有趣的过程,很像我们在很多密钥控制步骤中会看到的“多签”,也就是多个控制方对要控制的数据进行多方签名,要一定数量的控制方授权的情况下,控制数据才可以使用或运行。
但多方计算和多签比起来,可能会更高阶一些,因为流程上、效果上也更复杂。
首先,参与多方计算的计算方会需要较强的计算能力,因为多方计算意味着每个计算方在每个业务运行过程里都需要不断进行计算,也意味着多方计算需要部署服务器、特殊节点或者使用特殊设备。
而很大程度上,这些多方计算参与方,可能并不能再进行其他业务需求的计算,而在网络里需要把其他业务分配到不同的参与方,也就是利用其他参与方的算力完成业务其他部分。
这也是以多方计算为核心能力的区块链网络需要面临的问题。
例如以太坊,其使用pow算力去维护总帐本,但很明显的,主网的堵塞让应用很难做,当区块链网络用pos类算法取代pow,维护总帐本的成本降低,计算效率提高,应用并行没什么问题。
但我们举例来看以太坊上的一些计算类别。
以太坊基本都是token的交易类应用,不过其主要基于基础功能,也就是token的交易,代表的是转账。这些过程里和用户有关的是使用钱包参与,关于安全部分是使用钱包授权token的使用以及用私钥完成转账。
其中签名是代表用户完成资产交易过程的核心部分。这个简单的签名是通过与链上交互完成的。
当我们需要给这些过程增加更多的计算的时候。一条链很难完成这个过程,因为就像前文说的,会涉及到很多计算。
举例,当用多方计算去完成多签保护密钥的过程中,在多方计算协议的协作下,其实参与的协作方也是可以不需要把私钥共享出去参与运算的,而是私钥也不需要离开本地。就可以在多方协议的参与下,完成不同的业务过程。
这是一个未来成熟的隐私计算模型里的必须品。
上文说到的是关于密钥、私钥的管理问题,这时候我们讨论的还依旧局限在了token数据,而如果想把token数据相关的内容引申到庞大的海量数据。多方计算又一个挑战就出现了。
面对海量数据,海量的数据带来了巨大的计算需求、数据所有权以及控制使用权、数据算法的拥有权等关键因素。
所以可以看到,想用多方计算实现一个能做隐私计算的区块链网络,在代币的业务里,不难,但在海量数据面前,会有些难。
但相比于此,未来格局是不同的。
多方计算目前在海量数据上的应用,大多只实现了2方的多方计算,并且,主要实现在联盟链里,因为在联盟链里,链上的并发量是可以保证的,使用的计算设备是可以保证的,其次计算设备节点少以及数据存储和数据所有权是便于去定义的。
这一点上,很多家联盟链都推出了可信计算平台业务,其中技术实现上,大多同时使用了TEE硬件、多方计算以及其他密码学等软性技术。
要说如何在公链里事件隐私计算,是很有挑战的,首先是业务需求,其次是公链上设备和系统限制,能做这些尝试的都使用了L2去做隐私计算层,用一个独立的网络去实现隐私计算。
目前除了使用了TEE建计算节点的网络上线外,并没有看到完全使用多方计算实现的区块链网络,如果上线了,会是区块链进程里一个大幅度的技术进步。
PS:不久后,《金色深核》栏目会写一篇关于隐私计算最简单实用业务和最复杂业务的文章,会详细展示。最简单实用业务代表了应用可能性,最复杂业务代表了综合技术成熟度。
Scan QR code with WeChat