多方安全计算(MPC)与区块链

​随着多方安全计算(Secure Multi-Party Computation,简称MPC)技术越来越受到关注,不少人开始拿MPC与区块链来做比较。本文希望从概念上谈谈这两种技术之间的区别。

乍一看这两项技术有点像,都声称可保护数据安全,都用到了很多密码学技术和理论,部署上也都是多节点分布式,所以当人们谈论MPC的时候,很容易想到,“哎,区块链不也是这样的吗?”事实上,它们有很大不同。

多方安全计算(MPC)与区块链_第1张图片

区块链(Blockchain)技术是一种不依赖第三方、通过自身分布式节点进行网络数据的存储、验证、传递和交流的一种技术方案。通俗一点说,区块链是一种由多方共同维护,使用密码学保证传输和能够实现数据一致存储、难以篡改、防止抵赖的记账技术,也称为分布式账本技术(Distributed Ledger Technology)。而广义的区块链可以包含更加丰富的计算形式,乃至图灵完备的程序(通常称为智能合约)。

多方安全计算(MPC)与区块链_第2张图片

多方安全计算(MPC)的定义是“针对无可信第三方情况下,安全地进行多方协同的计算问题。即在一个分布式网络中,多个参与实体各自持有秘密输入,各方希望共同完成对某函数的计算,而要求每个参与实体除计算结果外均不能得到其他参与实体的任何输入信息。”

简单的说,虽然区块链和多方安全计算都是一群人按照特定规则(协议)进行交互,但区块链主要是为了共同对完成的计算的正确性进行验证,从而实现对结果的一致认可并防止结果的记录被篡改。而多方安全计算(MPC)的目的是为了在对输入保密的情况下,得到计算结果。区块链重在可验证的计算,强调的是计算的可验证性,这一过程中并不考虑输入数据的保密性。而MPC强调的是计算过程中对于输入数据的保密性。但是MPC并不能确保数据是可验证的。

多方安全计算(MPC)与区块链_第3张图片

具体来说,二者虽然都是按一定的规则办事,但是它们办事的规则却很不一样。以下比较了二者的主要区别:

① 规则的安全性和可靠性假设不同。区块链是容忍一定量的串通的恶意节点的,MPC只要有任何节点的错误(不一定是恶意),计算就没法发生。

② 规则的实现机制不一样,在区块链里节点通过共识协议达成共识,而在MPC里节点通过隐私计算协议完成加密运算。大多数共识协议是通过冗余执行实现的,各个节点看到了相同的信息。而隐私计算的核心思想是不让其他节点看到保密信息。

③ 规则的目的不一样,区块链的目的是实现计算的可验证性,让大家一致证明交易的确发生了。而MPC的目的是确保在计算过程中对输入数据的保密性,在不暴露明文的前提下完成某种运算。

④ 规则的触发事件也不一样,区块链的触发事件是矿工通过挖矿新产生了一个数据块,交易本身不需要保密(大部分区块链的可验证性都来源于所有验证节点能够看到交易的明文);而MPC的触发事件是很多人将自己的私有数据加密后作为输入,这些输入数据都对自身以外的其他任何人保密。

多方安全计算(MPC)与区块链_第4张图片

此外,区块链的有效运转往往有赖于以Token为形式的激励机制,确保各参与方持续协作完成交易,而MPC并没有内生的激励机制。

总结来说,区块链和MPC在应用中发挥的作用不同。两者并不排斥,而是可以综合使用的。区块链可以通过采用MPC技术来提升自身的数据保密的能力,以适应更多的应用场景。MPC可以借助区块链技术实现冗余计算,从而获得可验证的特性。当然,由于冗余必然造成了数据的复制,再加上二者安全假设不一定相同,因此二者完美的结合并不是个简单的事情,需要很多特别的设计。

多方安全计算(MPC)与区块链_第5张图片

在现实中,随着数据隐私问题的愈加突出,已经出现了一些MPC和区块链结合的应用。例如ZCash通过零知识证明的手段在Bitcoin上添加了保护交易隐私的功能。另外,在加密货币之外的领域,比如联合征信、医疗数据联合建模、拍卖清算、广告推荐等应用场景,区块链做存证+MPC做隐私保护就是一个很好的解决方案。尽管有这些结合的应用,但是区块链和MPC仍然是两种正交的技术,从技术上并没有太多交集。

                               欢迎关注公众号

你可能感兴趣的:(科技,计算机,数据,DI)