我们说到web3,必然离不开两个话题,第一个是开放,第二个是隐私,对于开放,其实大家都很好理解,各类DAO应用,去中心化的思想已经深入加密领域,只要是个项目,必然其事业都围绕去中心化与开放来展开。然而对于隐私而言,却还有很多问题需要解决,也正因此,隐私的加密项目很受关注。
隐私计算的现状
隐私无疑是Web3迈不过去的坎,在目前的隐私领域,主要实现技术有多方计算、联邦学习、机密计算、差分隐私四大类,实际上我们也看到零知识证明并不在列,主要是因为零知识证明并不是一个主流的隐私解决方案,零知识证明更多还是充当辅助隐私的功能,至少在Web2的大型公司眼中,零知识证明现在并不是一个成熟的方案。
当然目前的现状来说,零知识证明(Zero Knowledge Proof 简称ZK或ZKP)主要用于区块链项目之中,其他隐私计算虽然也有用在区块链中的案例,但是远没有零知识证明这样引起主流Web3开发者和机构的关注,除了不少区块链项目方采用零知识证明之外,加密行业的投资机构也非常青睐零知识证明,这也使得零知识证明在区块链行业非常火爆。
那么什么是零知识证明呢?当然我们在各种百科中都能找到相关答案,简单来说就是在不泄露信息的前提下证明自己知道或拥有某些信息或事物,更多人喜欢用打开房间门这个例子进行说明:
A向B证明自己拥有房间钥匙,有两种方案,第一A把钥匙给B,B打开房间门,第二B确定房间内一个物品,A在一系列操作之后向B展示该物品,也可以证明B拥有房间钥匙,其中B就是使用零知识证明的案例,B没有直接把钥匙给A,确保了钥匙不被A复制,同时还证明了自己能打开房间,这里体现了零知识证明的三个特性:正确性、完备性和零知识性,分别为能打开门拿出物品,物品是房间内的,没有将钥匙交出去。
当然零知识证明是一种概率的证明方式,因为它有一部分误差比如虚假欺骗等,比如B通过某种方式拿到了一个物品,但是却没法拿出其他物品,这样不能证明B就拥有钥匙,也正因为这样,需要多次测试才可在概率上证明B确实拥有钥匙,主流的隐私计算实际上并没有关注零知识证明也正是因为零知识证明现在并不完善,更多的还是与其他隐私技术结合。
ZK在区块链中为何受到追捧
前面我们说到了零知识证明当辅助隐私的功能,但是在区块链中却能大放异彩,比如以太坊Layer2所用的zk Sync等,支付中使用的门罗币、Zcash、layer1中的iron fish、 Aleo、Mina,DEX中的panther等,虽然零知识证明现在发展并不特别完善,然而已经在项目中使用也正说明了它目前所起到的关键作用。
这里主要是其他隐私技术在区块链应用中有一些较为难以解决的问题,比如TEE依赖于底层硬件设计,多方安全计算性能和数据传输问题难以完全解决,差分隐私通过添加噪声对模型有一定的影响,在这种条件下,其实隐私数据的传输和计算都会或多或少受到影响,而零知识证明较少涉及隐私信息的传输问题,同时在区块链中零知识证明实际上也开始有多个实现方式和路径,这样一来,开发者可选择的范围也相应增多,并以此开展相应的工作。
对于用户而言,在web2的时候,我们需要将自己的个人信息等统统交给中心化的服务组织或实体,比如像BAT这样的互联网巨头,由他们保管我们的隐私信息,即使有Web2那些隐私保护措施,但是实际上在使用时还是主要靠这些巨头的自觉性,用户无法真实知道自己隐私是否泄漏或者谁在泄漏,因为这些巨头内部对数据的保护措施是大部分普通用户所不知的,因此即使你号称自己有非常强大的隐私保护功能,但是实际上有没有使用都有可能被人所怀疑。
但是换做web3.0的话,这样就有所不同了,web3我们都知道是透明开放的,一个项目要想获得web3的认可,那么就要进行代码开源、项目审计、接受监督等等,这样使得用户能够有渠道和方法单独对web3项目的隐私和安全性进行证明,而不是黑箱操作。
ZK更符合Web3运行方式
在一定程度上人们对钱包私钥的保护意识也在一定程度上和ZK有相似之处,比如证明某个钱包属于自己,要么按照公开的规定使用钱包转账,要么使用钱包签名某个消息,而不是将私钥交出去,一旦私钥交出去,那么对应的钱包就不属于自己的钱包了。
另外我们在web3或区块链中并不是某个组织实体进行交互,而是与网络、智能合约进行交互,这样我们的隐私数据实际上并没有被某个组织或实体泄露,这样消除了共享关键数据所带来的隐私泄露问题,也使得零知识证明就很好的应用在web3之中。