前序博客有:
Aztec团队认为:
为此Aztec的目标有两个:
伟大的隐私优先应用程序将建立在一流工具的基础上,这些工具可以轻松构建功能强大的软件,让用户能够顺利直观地保护隐私。这意味着更多的代码,更少的加密。
本文重点关注如何通过账号抽象来改进交易处理,以及public-private组合设计。
当前,专注于用户隐私的协议已经暴露了底层的隐私架构。而事实上,用户不喜欢处理机器内部的螺母和螺栓。
Aztec认为,用户友好的抽象代表了区块链中直观用户体验的未来——这是将加密货币与web2相提并论的必要步骤。Aztec将定义交易路径,解释其含义,并探索其如何为开发人员和用户提供经得起未来考验的Aztec体验。
在以太坊中,每个账号都由私钥控制,私钥通常源自助记符。需雕刻、记忆或至少记下单词列表,以确保账号安全。
注意,在此谈论的是以太坊外部拥有的账号(externally-owned accounts,EOA),而不是合约账号,因为在以太坊上,EOA是唯一可以发起交易的账号。
当在以太坊上发起交易时,网络需要 源自控制账号的私钥的签名。若创建了一个与交易相关的公钥匹配的签名,则交易将与其交易palyload一起提交,该payload指名以太坊虚拟机执行哪些功能。
以太坊账号中的种子助记词存在如下问题:
该如何绕过种子助记词和私钥作为账号验证的唯一形式呢?种子助记词只是一种非常安全但有缺陷的账号验证形式。账号验证有无数种方法,从非常安全到完全不安全,从直观到令人困惑,包括但不限于:
请记住,账号验证可像你希望的那样安全。一个简单的帐号验证方案是:“若你点击‘是’按钮,帐号就会被验证。”这根本不安全,但你可以做到!
帐号抽象作为一个术语是令人困惑的,因为它包含“除了种子助记词之外的所有内容”,但身份验证的圣杯将包括三个因素:
Aztec组合以上3者。不过,Aztec对以太坊的改进超出了替代身份验证方案的实施范围。
Aztec的交易结构也有点不同——用户发送计算证明,而不是从EOA签署交易。
Aztec交易支持2种交易类型:
这些交易的核心为kernel circuit。kernel circuit是Aztec系统的心脏,用于验证隐私交易。
所谓区块链交易,是指:
Aztec是EVM之外的一个全新的执行环境,其使用基于客户端的零知识证明来证明单笔交易。即意味着应用开发者的工作是适当地约束函数并证明用户意图。

Aztec隐私交易流程为:
应用开发者可使用Aztec.nr编写智能合约来约束用户意图。以隐私转账为例,智能合约背后的电路需检查如下条件:
其中nullifier、新note、加密log都是公开的,但也都是加密的,使得这些公开信息不暴露任何内容。即观察者只能说:“发生了一笔交易,但我不确定交易内容”。
这正是Aztec价值主张的核心——我们从数学上肯定地知道,交易是按照区块链规则进行的,但我们无法获得有关这些交易的任何信息。
Aztec公开交易有所不同,其依赖于熟悉的基于账号模型的以太坊公共交易。

Aztec公开交易的关键是:
无约束函数只是做“正常代码的事情”。“正常代码”指的是简单的执行代码,而不是像Aztec隐私交易那样证明执行。无约束函数不会设置约束,其只执行代码。
若Aztec是一台世界计算机,那么无约束函数就是计算机所理解的指令。就像EVM执行Solidity一样,Aztec VM执行Aztec字节码。
隐私交易和公共交易间的关键区别是代码执行的时间:
由于公共交易不考虑隐私问题,所以未加密地发送到节点,以进行高效的批处理,而不是依赖于用户的本地设备。
[1] Aztec团队2023年博客 Aztec Transaction Anatomy