当前位置:okx > 快讯 > 如何将隐私 DeFi 带入 L2?

如何将隐私 DeFi 带入 L2?

小易2022-07-12 14:32:04快讯118

在现实世界中,「隐私」几乎是默认选项,没有人希望自己的信息泄露。但在区块链世界中,由于链上信息的透明性,用户大多数时候无法享受交易行为的隐私保护。对于现阶段的散户来说,尚且无伤大雅,但是随着行业发展,隐私也必然会成为重要功能。链茶馆判断,用户需求可能会集中在两方面:

其一,大户对于交易隐私保护的需求。大户如果公开自己的大笔余额和交易行为,无异于带着家产招摇过市,容易吸引黑客或者暴露身份。从目前已有的隐私交易项目来看,资金也多集中于大户交易。

下图为 Tornado Cash 的每月取款数据,其中数字代表取款次数,区间代表提款份额(Tornado 的机制为通过 0.1ETH、1ETH、10ETH、100ETH 四种面额来存提款),计算可得 100ETH 的提款总额最大,以 6 月为例,占全部提款额的 87.6%。

如何将隐私 DeFi 带入 L2?-欧易OKX官网注册

来源:https://dune.com/poma/tornado-cash_1

其二,当 Web3 发展到投资之外的范围,如通讯社交等场景时,隐私的需求一定也会凸显。相信没有人希望自己的账户不断被垃圾信息干扰,也没有人会希望自己和密友间的聊天内容被公开。

总结而言,由于 Web3 当前的使用场景集中于交易投资,仅大户对于隐私有较强需求;而随着 Web3 功能场景的拓展,隐私需求也会拓展到散户。

从目前的供给来看,实现了隐私功能的项目绝大多数只能满足简单的转账功能。隐私赛道的头部项目包括:FDV~21 亿美元的 Monero 和~11 亿美元的 Zcash,二者都是独立的 L1 公链,不支持智能合约;FDV~2.3 亿美元的 Tornado Cash 则是建立在以太坊上的智能合约,只能支持按照有限面额的存提款。除此之外,个别项目如 Secret Network 可以支持智能合约,FDV~1.7 亿美元,然而其核心的隐私功能依赖于硬件设备,安全级别太低 [1]。

因此,隐私赛道缺乏功能完备、且安全级别足够高的项目。Aztec 作为新兴的隐私项目,具有补足这一缺口的潜力:作为 ZK Rollup 的项目,可以共享以太坊的安全性,且项目的中短期目标就是实现 Defi 交互的隐私性,能够为隐私赛道带来新的体验。

 2. 产品机制

Aztec 的产品体系为:基于底层的 PLONK 证明系统,实现账户间的匿名交易,并通过网关合约的嫁接来实现和 Defi 项目的隐私交互。除了网关的部分外,Aztec 的隐私实现方式其实和 Zcash 很相似,类似一个通过 Rollup 技术共享以太坊安全性的 Zcash。下文将对其隐私架构及 Defi 交互方式进行详述。

 2.1 隐私架构:UTXO 模型与隐私证明

Zcash 的记账模型遵循比特币的 UTXO(未花费交易支出)模型,每一个 UTXO 被称为一个 Note(票据),记录了每笔交易的变化。举个例子,如果我的账户中有 10 元的票据,而我此时给其他人转账 5 元,那么这张 10 元的票据就会拆分成 2 张 5 元的票据,其中一张的所有者是被转账者,另一张的所有者就是我自己。而对于一个账户地址而言,余额的全部就是所有 UTXO 的总和。

如何将隐私 DeFi 带入 L2?-欧易OKX官网注册

来源:https://medium.com/aztec-protocol/an-introduction-to-aztec-47c70e875dc7

与此相对的,则是以太坊基于账户的记账模型:每个账户对应一个余额,转账时需要在双方的地址数上做加减法。由于每个账户的余额都已经清晰记录在最近一次交易中,不像 UTXO 那样需要加总账户下的所有 UTXO,因此对于较复杂的智能合约来说,账户模型更易于计算,是较主流的记账模型,而 UTXO 则多见于比特币等简单转账网络。

如何将隐私 DeFi 带入 L2?-欧易OKX官网注册

来源:https://medium.com/aztec-protocol/fully-confidential-ethereum-transactions-aztec-networks-privacy-architecture-274f968b13d4

UTXO 模型和账户余额模型有各自的优劣势,而在隐私方面,UTXO 适于存放于同一账户的不同地址下,更能够混淆交易之间的联系 [2],这大概是 Zcash 和 Aztec 都选择了 UTXO 的原因。

在这样的记账模型下,用户的每一次交易,本质上是销毁了一张或 N 张票据,生成了另外总和相等的一张或 N 张票据,并转让了部分票据的所有权。

在 Aztec 的数据结构中,所有票据的状态存储在两个 Merkle Trees 中,其中一个是 note tree(票据树),存储着所有生成过的票据,另一个则是 nullifier tree(废弃树),存储所有被销毁过的票据。所谓「拥有」一张票据,即在 note tree 中存在对应票据、而在 nullifier tree 中不存在对应票据 [3]。

如何将隐私 DeFi 带入 L2?-欧易OKX官网注册

来源:同上图

那么,用户的隐私是在哪一步实现的,又有哪些信息经过了 Rollup(打包)呢?这就涉及到多层证明生成的过程。

当用户要进行一笔交易的时候,需要销毁并生成相应的票据,再将票据的所有权转移,而对于这笔私密交易,用户需要在本地生成一个「隐私证明」(privacy proofs)。随后,28 笔私密交易将会聚合为内部 Rollup 证明( 「inner」 rollup proof),之后又有 32 个这样的内部 Rollup 证明聚合为外部 Rollup 证明(「outer」 rollup proof),外部 Rollup 证明将会最终被提交到 L1 上,供节点验证。

下图中显示的是 4 个内部 Rollup 证明聚合为 1 个外部 Rollup 证明,总共 112 笔交易,而在今年 3 月更新的 SDK 中,提升为 32 个内部 Rollup 证明,换言之一个最终提交的 Rollup 证明中可以包含 28*32=896 笔交易。

如何将隐私 DeFi 带入 L2?-欧易OKX官网注册

来源:https://medium.com/aztec-protocol/privacy-for-pennies-scaling-aztecs-zkrollup-9f2b36615cc6

需要注意的是,只有用户在本地生成的隐私证明,是真正不泄露信息的零知识证明,也是整个系统中唯一为隐私负责的部分 [4]。而在其之上的内部 Rollup、外部 Rollup 证明,都和 StarkWare、ZKSync 等通用 ZK 系 L2 一样,并不必然是零知识。BTW,StarkWare 团队曾提议,将 ZK Rollups 改名为 Validity Proof,以免混淆概念 [5]。

Aztec 的 Rollup 方式和 StarkWare、ZKSync 等 ZK 系 L2 还有一个很大的不同:通常 ZK 系 Rollup 都是将多笔交易打包,生成聚合证明,而 Aztec 为了实现隐私,需要将每笔交易分别生成证明,再将证明打包生产证明。这大概也是 Aztec 的 gas fee 高于其他所有 Rollups 的原因。

在整个过程中,可以看到多个源自 Zcash 的做法,包括 UTXO 记账模型、两种 Merkle Trees 的设计、用户在本地生成隐私证明的方式,都和 Zcash 相同。此外,Aztec 还提供内部转账的功能,也就是一个匿名账户可以给另一个匿名账户转账,这能够隐匿两个地址之间的交易联系,避免由于某个钱包地址余额不足、需要输入矿工费等场景下,和另一个钱包产生公开联系。如此,会比 Tornado Cash 这类仅仅通过面额池存提款的方式更能保护隐私,而 Zcash 也提供这一功能。

如何将隐私 DeFi 带入 L2?-欧易OKX官网注册

Zcash 提供的多种转账模式,红框为匿名到匿名,也就是 Aztec 中的内部转账功能。来源:https://z.cash/technology/

至此,我们基本可以理解 Aztec 的隐私架构:采用 UTXO 的记账模型,以「票据」的分拆和所有权转让实现转账,由用户在本地生成隐私证明来实现隐私交易,再通过双层 Rollup 实现多笔交易的聚合证明,提交到 L1 验证。底层隐私架构有不少设计取自 Zcash,而通过 Rollup 的聚合证明方式则借用了以太坊安全性,有些类似一个 Rollup 版的 Zcash。


发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。