Aztec 介绍

Aztec 是以太坊的隐私引擎,⽀持通过公共主⽹进⾏加密交易。该协议利⽤零知识证明来加密和隐藏在Aztec 上的交易。作为区块链隐私中间件,Aztec和前⽂所介绍的Aleo有不少共同点。不过Aleo做出的是集成开发环境(IDE),⽽Aztec做的是软件开发⼯具包(SDK)。

Aztec核⼼部分

账⼾模型

加⼊分割交易(JoinSplit)

示例:

Fig. 1: 加⼊分割交易⽰例(AZTEC Docs)

Alice 希望加密交易给 Bob 75 zkDAI。她从 2 个票据开始,其价值总和为100 zkDAI,⽽ Bob 开始时没有票据也没有 zkDAI。

为了转移,Alice 构建了⼀个 joinSplit 证明,其中她提供了 60 和 40 个 zkDAI 票据作为输⼊。她创建了两个输出票据,⼀个价值 75 zkDAI 给 Bob,另⼀个价值 25 zkDAI 给她⾃⼰。重要的是要注意 joinSplit 证明只有在总输⼊等于总输出时才能成功验证 — 这对于防⽌双重⽀付⾄关重要。

⼀旦证明在链上得到验证,输⼊票据将被销毁并且输出票据被创建。这样,Alice 就转移了 Bob 75 zkDAI。

在该协议中,票据存储在资产票据注册表中的链上,⽤⼾的余额等于⽤⼾票据的总和。

核⼼智能合约

1. AZTEC 密码引擎 (ACE): ACE 可以被认为是 Aztec 智能合约系统的“⼤脑”,它是协调智能合约。具体来说,ACE 有两个主要职责:

  • 将 zk 证明的验证委托给适当的智能合约;
  • 从成功验证的证明中处理状态更新指令;

2. 证明验证器:每个零知识证明都有⼀个证明验证器合约。验证者有责任验证提供的证据,从⽽确认提议⾏动的合法性。

3. zkAsset:可以被认为是 ERC20 合约的机密版本,例如 zkDAI。它们⽤于将⽤⼾的资⾦存储在票 据注册表中并执⾏机密交易。

标准交易流程

  • (本地)证明构造:构造证明交易正确性的 zk 证明。这发⽣在本地,通常在浏览器中
  • (本地)连接到以太坊区块链:发送所需的交易,调⽤ ZkAsset 具有适当证明数据的⽅法
  • (链上)验证证明:验证证明是正确有效的
  • (链上)执⾏相关逻辑:⼀旦证明被验证,执⾏相关逻辑

Aztec的零知识证明

零知识证明

Fig. 2: 零知识证明⽐较(Understanding PLONK)

就图上⽽⾔,很难说有什么零知识证明是完美的,SNARK的证明最⼩,但是安全性也最差,PLONK和 DARK⽐较折中,但是PLONK仍然需要信任第三⽅,STARK最安全但是需要的证明gas费也最贵。那么Aztec使⽤的是哪种零知识证明呢,我们通过两个版本的⽩⽪书分开介绍。

⽩⽪书V1

⽩⽪书V2

⼩结

参考⽂献:

https://github.com/AztecProtocol/AZTEC/blob/master/AZTEC.pdf

2. Aztec⽩⽪书v2:

https://eprint.iacr.org/2019/953.pdf

3. Aztec官⽹:Aztec

4. Plonk介绍:https://hackmd.io/Iuu9P7S5Sca0TCoYJ-sFdA

5. Aleo: Aleo介绍

6. 零知识:Rollup 学习笔记

--

--

Distributed blockchain research institution. Focusing on underlying technology research and practice. Support us: http://giveth.io/project/cyc

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
CYC

Distributed blockchain research institution. Focusing on underlying technology research and practice. Support us: http://giveth.io/project/cyc