Web3隐私赛道101
March 18th, 2022

什么是Web3隐私

隐私的定义是通过技术手段将用户不愿透露的信息进行加密。在传统的Web2领域,常见的隐私信息包括用户的身份信息,地理位置信息等。而在Web3区块链语境下,则主要指的是保障身份信息和交易信息的隐私。这是因为区块链上的任何状态变更都是通过交易来实现的,因此积累了大量的交易信息。而交易的发起方和接收方则沉淀了用户的身份信息。

首先来看身份信息,链上身份信息指的是用户身份和钱包地址之间的关系。虽然在链上创建一个钱包不需要中心化机构的审核和批准,在这个意义上钱包是匿名的。但又因为区块链数据可追溯的特性,钱包相关的交易活动是可被追踪的,因此通过一定的策略,其实可以锁定特定的钱包(比如巨鲸)并在这些钱包和交易所等链下平台发生交互时锁定用户的身份。

因此身份信息隐私指的是通过技术手段实现用户的真实身份,物理地址,IP地址,公钥/钱包地址等信息无法被关联,同时潜在攻击者无法通过对链上数据进行分析得出用户的真实身份。

其次是交易信息,指的是链上的交易记录以及基于这些原始数据可以挖掘提炼的知识。在第一代的区块链应用(BTC)中,交易记录是完全公开透明的,任何用户可以查询任何想要的链上数据。但完全的透明在传统的金融领域是行不通的,因为金融交易信息会对市场产生巨大的影响(股票/债券/外汇/大宗商品等),而作为市场参与者的金融机构对于自己的交易信息更是讳莫如深。因此如果区块链要和主流金融发生更深的联系,交易信息的隐私是绕不开的难题。

交易信息的隐私包括交易金额,交易发送方/接收方,交易的附言,交易双方的账户余额等。隐私保护需要实现的是对交易信息进行匿名/加密,然后攻击者无法通过加密的交易信息将两笔属于同一个用户的交易归集到一起,也没办法追溯交易在图上的N跳关系。

所以,Web3的隐私是由于区块链技术的不可篡改性和可追溯性造成的新挑战,这不同于Web2中互联网巨头对用户隐私的采集。但Web3范式下的隐私保护(身份信息和交易信息)是区块链能否进一步拓展至更多应用场景的一个极其重要的因素。

Web3隐私赛道的技术门槛

在过去几年,涌现出了不少隐私赛道的项目,但这些项目或多或少在技术上有局限性。首先,很多现有的隐私保护协议是UTXO(Unspent Transaction Output)模型。比特币的UTXO模型是通过记录链上所有未支出的交易实现快速验证和并行处理。但是UTXO模型的缺点在于它不支持复杂逻辑的实现和可编程性。而以太坊采用的是Acccount-Based模型,这种实现的优点在于它支持可编程性,同时对于用户而言更易于理解,但是Account-Based的方案在隐私保护上存在弊端,因为一个账户里发生的交易都是透明公开的,这给攻击者提供了便利。

现有隐私方案的另外一个局限性是很多项目创建的隐私区块链,大多是仅实现交易功能而并不具有可编程性,这些交易区块链无法与现有的公链进行交互。因此考虑到现有的公链生态,我们需要的是一种通用的隐私协议,能够接入不同的公链实现隐私保护。

同时目前的一个比较广泛使用的隐私保护实现方案是基于ZK-SNARK。但ZK-SNARK的一个缺点是它需要消耗非常多的计算资源,这个缺陷使得现有的隐私方案无法实现面向普通用户提供端到端的隐私保护,因为普通用户设备的计算资源通常是受限的。

来自斯坦福大学的Zether协议是第一个基于Account-Based模型实现的隐私保护协议,它是通过智能合约来实现隐私交易模型,其对公钥加密的是基于ElGamal算法,同时采用Out-of-Many Proof和BulletProofs对加密计算的性能进行优化。但是,实证实验表明基于Zether方案实现的加密交易的费用非常高(一笔隐私转账交易会消耗718.8w gas),同时需要存储大量的交易数据(1472字节),这使得Zether的方案在现实世界并不可行。

此外,Zether方案还存在另外一个缺陷,即它只支持一对一的转账交易,同一个用户无法同时发起多笔交易。这些设计上的缺陷极大地限制了Zether隐私协议的性能和应用场景。

基于这个案例可以得出目前缺少的是一种通用且具有可扩展性的的隐私协议。由于公链项目层出不穷,再开发一条Layer-1隐私公链,会面临和其他公链的激烈竞争。更好的方案是基于Layer-2开发隐私协议,并且在实现隐私的同时支持多个公链,实现跨链。

具体来说,通用的隐私协议需要满足这样几个特征:

隐私保护:最重要的是不但需要对用户的账户和余额进行加密,同时也需要对转账交易进行加密,包括转账金额,转账发起人和接收人之间的关系等。

可编程:隐私协议需要支持智能合约开发,这也是目前区块链协议的一个基本要求,这样可以将复杂的业务逻辑和监管要求通过智能合约的形式实现。

可扩展:协议的性能能够支撑大量用户的使用(高吞吐),以避免由于性能瓶颈引发的网络拥堵,节点宕机,存储开和计算资源消耗过大等问题。

轻量级:这是对于Layer-2隐私协议的要求,因为在Ethereum上面运行的智能合约需要消耗gas,如果隐私协议不能对计算进行优化,那高昂的gas费用就会给用户造成使用门槛。

跨链:通用的隐私协议需要支持多个公链,并且能够让用户实现跨链的资产转移。

Web3隐私赛道全景图

Web3 Privacy Segment Overview
Web3 Privacy Segment Overview

隐私币

Zcash:2016年发行的隐私币,它通过建立两种不同的地址类型实现隐私保护:t-address(普通地址)z-address(隐私地址,基于ZK-SNARK)。t-address发出的交易和正常的BTC交易无异,z-addres发出的交易则隐去了交易地址,金额和附言信息。这些被隐私保护的信息通过一个指定的viewing key可以查看,给审计和监管机构的审核提供了便利。

Zcash
Zcash

Zcash隐私保护的是通过建立一个Shielded Pools(隐私池)来实现,即在这个池中的加密地址的余额和交易金额都是被保护的。从普通地址进出池子以及在池之间进行交易是透明的,但是属于池子的加密地址一直是受到加密保护的。和Dash的PrivateSend功能类似,使用Zcash的隐私池功能是可选项,默认的交易并不会自动发生在隐私池里。

Zcash Privacy Protection
Zcash Privacy Protection

这里引出一个问题:如果所有在隐私池的交易和地址都经过加密保护,只有这些地址的所有者可以解密,那Zcash作为服务提供方是如何维护一个全局的共享账本呢?在隐私池中的每个地址是如何确保在这个池中里发生的交易是有效的并且交易发起者实际发送了资金?

Zcash采用的解决方案是ZK-SNARK,即一种零知识证明的方式在不知道实际细节的情况下去验证信息是否真实。即用户可以向Zcash证明自己的账户有足够的余额而不用透露实际数量。

ZK-SNARK使得隐私池的交易可以在公开环境下受保护地进行,只有交易的双方知道交易的细节(同时接收方也并不知道发送方的实际地址)。另外,为了防止第三方通过观察交易费用的变化规律来推测交易细节,Zcash对每笔交易收取固定的0.0001 ZEC的费用。

Zcash的交易中有14%的交易和其提供的隐私池有关,但是在这些隐私池交易中,只有6%是完全加密的,即发送方,接收方和交易金额都是隐藏的。这仅占到总交易量的0.9%。

因此尽管Zcash采用了理论上更安全的ZK-SNARK加密技术,Chainalysis这些专业机构仍然可以对99%的交易活动进行解密(即还原交易金额和至少一个交易地址)。

从账户余额的角度来看,只有5%的ZEC流通供给是在隐私池里的,尽管每天有大量的ZEC进出隐私池。造成这个现象是因为Zcash的协议要求所有通过挖矿产生的收益必须先经过其中一个隐私池,然后再转账到普通地址。这就意味着如果你追溯ZEC币的源头,它总是会指向隐私池。这是Zcash协议有意设置的,这是用所有公开的ZEC交易的源头都回到隐私池。

Zcash的隐私池可以提供比混币交易更好的隐私保护,但也并不是完全毫无破绽。伦敦大学学院的研究人员声称通过一些基于经验(heuristics)的隐私池挖掘策略,可以一定程度上减少匿名性。因为他们发现大部分Zcash的用户并没有选择使用隐私功能,而在使用隐私功能的那些用户中,大部分是采用了非常简单的方式,即在存入一定金额的资金后很快取出等额资金。

Monero:2014年发行的隐私币,通过Stealth Address实现地址加密,Ring Signature实现对交易关系的混淆,Ring CT实现对金额的加密。但用户可以选择通过viewing key将加密信息披露给特定的对象。

Monero
Monero

Dash:2014年从比特币的fork发展出来的加密货币,它一开始创建的目的是在比特币基础上进行性能优化。其中它的隐私功能是通过混币(PrivateSend)的方式实现的,但混币功能是一个可选项,并不是每笔交易都会使用混币功能。Dash的普通交易是通过InstantSend的功能实现,这个功能强调的是交易的性能和速度,理论上每笔交易可以在2秒内被确认。Dash同时也有自己的钱包,在一些发展中国家和地区(伴随着主权货币的高通胀率)比较流行。

Dash
Dash

Dash的混币功能的原理是将多个用户的交易聚合到一笔交易,然后经过重新排列组合后,每个用户的新地址领取到和发送金额相同的币,这样切断发送地址和接收地址之间的联系。

Dash PrivateSend
Dash PrivateSend

在PrivateSend的聚合交易中,每个用户的资金被拆分成标准的计价单位:分别是10,1,0.1,0.01和0.001。用户发送到PrivateSend的资金金额必须是这些计价单位的组合,然后经过混币的操作后,用户得到总价相当的原始金额,但是其中的组成部分已经发生了变化。这就是混币的实现逻辑。

因此,理论上只要实现类似的混币操作,可以对其他的加密货币也进行隐私保护,而不仅限于Dash。换句话说,Dash的隐私保护特性其实并没有实质上优于比特币,所以把Dash称作隐私币某种程度上是种误解。现在市面上也有很多钱包提供CoinJoin(即类似PrivateSend的混币)的功能,他们支持对比特币,比特币现金,莱特币等不同加密货币的混币操作。

Dash的优势在于它提供的PrivateSend功能是免费的,不像其他的混币服务。所以尽管Dash的隐私功能从原理上来说不是最有效的,但它为普通用户提供了一个免费和简易的选择。

Dash官网提供的数据也证明了Dash实际上对自己的定位是一个方便易用的加密货币。

Dash Stats
Dash Stats

混币交易占到Dash总交易约9%的比例,这个比例大于在比特币交易中使用混币服务的比例,但任然是一个小的比例,且该比例在不断下滑。

用户并不需要直接使用这些混币交易的输出来执行PrivateSend交易,实际上他们可以通过将经过混币后的资金和其他资金混合在一起使用,而且用户正是这么操作的。经统计,Dash交易中使用PrivateSend进行直接转账的交易比例小于0.7%。

Dash链上的混币交易实际上是可以被发现和识别的,因为这些交易都是公开和透明的,在比特币网络上用于分析CoinJoin的技术也一样可以应用于Dash链。

另外由于每笔PrivateSend交易是聚合了多个用户的输入金额,也可以通过对金额组成部分进行分析来还原输入和输出之间的关系。举例来说,一个用户通过14个输入发送73.4个Dash,那么一种可能的排列组合就是7个面额10的,3个面额1的和4个面额0.1的货币。普林斯顿大学的研究人员也表明,在特定情况下,可以通过排列组合来追溯混币交易的原始地址。

因此Dash确实一定程度上增加了隐私保护,但它并不是完全无法追踪的。

隐私计算网络

Oasis:是一个Layer-1的公链,由Consensus和ParaTime Layer两个部分,Consensus Layer是一个去中心化的基于PoS验证机制的高吞吐共识层,ParaTime Layer则运行着多个ParaTime实例,每个实例是通过与共识层共享状态的一个完整计算环境。Oasis的隐私保护是通过ParaTime的在TEE(Trusted Execution Environment)可信执行环境节点实现。

Oasis
Oasis

Oasis背后的投资机构包括了大名鼎鼎的A16Z:

Oasis Backers
Oasis Backers

AlephZero:是一个基于PoS验证机制,通过零知识证明ZKP(Zero-Knowledge Proof)和安全多方技术sMPC(secure Multi-Party Computation)实现隐私保护的公链。另外,它是基于Substrate技术栈开发的,是一个具有独立生态的公链。这个项目的一个宣传亮点是其团队成员来自传统Web2大厂,同时有多名ACM决赛经验的成员,技术实力出众。

AlephZero
AlephZero

隐私交易网路

Aleo:Aleo是一个提供隐私和可编程性的公链,它降低了开发隐私应用的门槛,简单地说,它提供了隐私应用的一整套技术基建。具体包括,Leo-运行在Aleo链上的隐私编程语言,Aleo Studio-隐私应用开发的IDE,Aleo Package Manger-隐私开发库管理,snarkOS-在Aleo上运行的去中心化的操作系统,用来处理链上隐私应用的状态变更。

此外,Aleo还搭建了一套zkCloud的链下计算环境,这让零知识证明可以在链下以低成本的方式进行计算,然后将证明的结果和链上状态进行同步。

Aleo在22年2月完成2亿美金B轮融资,投资机构包括A16Z,软银,老虎基金等。单从融资金额来看,即使和Web2创业公司相比,也是一笔不小的融资额。

Zecrey:是一个基于Account-Based模型的Layer-2跨链隐私协议,该协议基于ZK-Rollup进行优化,通过自己的钱包实现一对一和一对多隐私转账。

该协议对零知识证明的性能从密码学原理进行优化,能够在毫秒级别生成证明,使得该协议可以在不同设备运行(PC,手机等)。另外,该协议支持对跨链交易进行隐私保护,实现对用户资产的端到端加密。

隐私应用

Tordano:是一个运行在以太坊的智能合约,它提供的主要功能就是帮助用户切断存款和取款账号之间的联系来保护用户的隐私。

它的实现过程如下:用户发起一笔存款交易到它的智能合约,并且附上经过hash后的附言,然后经过一段时间的等待后,用户可以提交零知识证明(ZK-SNARK)的验证结果,通过另外一个地址将之前存入的金额取出到不同的地址。而Tordano可以保证用户的存入地址和取出地址无法被第三方关联到一起。

Tornado
Tornado

Automata:为去中心化应用提供隐私中间件的能力,主要应用场景有Anonymous Voting(匿名投票),Miner Extractable Value(MEV)Minimization(MEV最小化)等。具体的隐私保护是通过Intel SGX(TEE可信执行环境)和Oblivious RAM(内存遗忘)来实现。

Automata
Automata

Reference

Subscribe to mrpolymath
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.
More from mrpolymath

Skeleton

Skeleton

Skeleton