Aztec 技术栈:实现可编程隐私 Layer2 的四层架构

aztec_ 发布于 2026-05-27 阅读 103

Aztec是一个基于以太坊的隐私保护L2网络,其核心思想是让开发者能够选择智能合约中哪些部分公开、哪些部分私有。

Aztec 的核心理念是:在以太坊上,开发者可以自主选择智能合约中哪些内容公开、哪些私有。这意味着不仅仅是交易隐私,还包括谁在操作(身份)、交易什么(状态)以及如何执行(计算)都可以是私有的。Aztec 实现了端到端的隐私;甚至合约本身也可以是私有的。

但隐私也必须实用。Aztec 在同一合约中集成了私有与公开执行,使应用能够无缝融合私有状态与公开状态。每个账户都是一个智能合约,用户可授予细粒度、可撤销的访问权限以实现选择性披露,这对合规、税务报告或代理权限非常有用。

最后,Aztec 是一个去中心化的 L2,目前已有超过 3,500 个排序器参与网络运行。这种无需许可的特性使 Aztec 成为全球隐私层的可信基础。

在本文中,我们将探讨 Aztec 技术栈以及我们如何实现可编程隐私。我们将解答诸如“在 Aztec 上你能做什么?”、“它是如何工作的?”以及“使这一切成为可能的系统核心层是什么?”等问题。

TL;DR

Aztec 技术栈的四层架构,目前均在 Alpha 网络 上运行:

  1. Noir: 一种用于编写隐私程序的编程语言,具有简单、熟悉的语法。

  2. Aztec 智能合约: 使用 Aztec.nr 框架用 Noir 编写,可轻松编写同时具备公开和私有状态的智能合约。

  3. Aztec 网络: 一个完全去中心化、保护隐私的以太坊 L2,用于构建实用应用。私有状态使用 UTXO 模型,公开状态使用类似以太坊的账户模型。

  4. 以太坊: L2 交易汇总证明存储在以太坊上,继承其强大的经济安全性。

第1层:Noir,ZK 的通用语言

Aztec 智能合约使用 Noir 编写,这是一种具有类似 Rust 语法的编程语言,专为编写隐私程序而优化。Noir 是由 Aztec 开发的开源项目,现已成为使用零知识证明编写隐私应用的行业领先语言。让我们深入了解 Noir 是什么,以及我们为什么将其作为编写智能合约的构建块。

没有密码学背景,编写 zk 程序极其困难。在开发 Noir 时,我们的首要目标是创建一种高度优化且易于编写的 zk 领域特定语言(zkDSL),让开发者无需了解任何底层数学。因此,Noir 处理所有密码学复杂性,并自动将你的代码转换为复杂的 zk 电路。

Noir 底层机制

Noir 编译为抽象电路中间表示(ACIR),这是一种适应性强的中间语言,可轻松接入各种流行的证明后端。这些证明后端(例如 Aztec 的 Barretenberg 证明系统)获取编译后的零知识电路,生成证明以验证程序执行的有效性,同时不泄露任何私有输入。从将密码保存在用户设备上的授权系统,到使用递归证明验证链下状态的复杂链上状态通道;Noir 和证明后端为你处理从编译到密码学的一切。

除了简化开发者体验,我们还希望让指定哪些元素保持私有、哪些公开变得直观。使用 Noir,隐私默认集成,所有变量和函数都自动完全保持私有,并在用户设备上执行。

如果你想使代码的任何部分公开,只需添加一个 pub 属性即可。

同时使用公开和私有输入

Noir 本身非常适合编写需要执行无状态函数的程序,例如证明你根据护照数据居住在某个特定国家,或证明你持有一定数量的代币而不透露具体数量。在 Aztec 之外,Base、Scroll、Starknet 等其他链上的项目已经开始使用 Noir 进行构建。然而,如果你想编写在链上存储私有状态数据的隐私保护应用,使用一个专门处理这些复杂性的智能合约库会很有帮助。这正是我们在 Aztec 构建的,我们将在下一部分探讨。

第2层:智能合约

Aztec 智能合约利用 Noir 创建具有链上私有和公开状态的应用。本节介绍智能合约在 Aztec 上如何工作,以及你如何部署和与合约交互。

Aztec 智能合约是用 Noir 编写的一组公开和私有函数,部署在 Aztec 网络上。它们使用 Aztec.nr 框架 编写,该框架在底层处理所有密码学操作,包括管理私有和公开状态以及与网络上其他合约的交互。

为了构建有用的应用,开发者需要能够将私有和公开组件整合到他们的合约中。例如,一个链上投票合约可能希望对选民信息保密,并防止某人重复投票,但公开显示已投票数和结果。

由于合约是用 Noir 编写的,这种功能就像在函数上方添加 private 注释一样简单。以下函数将在用户设备上私有执行,允许用户在不透露地址的情况下投票:

私有本地执行的输出将被发送到网络,网络会验证执行的正确性并执行公开函数调用。以下函数被设计为公开执行,将一票添加到总计数中,而不透露其来源。

为了将可轻松与链上状态交互的私有和公开组件无缝编织在一起,Aztec 智能合约利用 Aztec.nr 框架在用户设备上执行私有函数,并将这些交易的证明与将由 Aztec 虚拟机(AVM)执行的公开函数捆绑。

该框架增加了构建链上隐私保护应用所需的功能,包括定义合约、访问私有或公开上下文以及与 Aztec 网络交互。类似普通 Noir 程序编译为 zk 电路,Aztec 智能合约被编译为用于私有函数的 zk 电路或用于公开函数的 AVM 字节码,并存储在 Aztec 合约树中。

Aztec 账户也以智能合约形式编写,实现了账户抽象。账户抽象允许应用开发者创建可编程账户,以显著改善用户体验,包括社交恢复、赞助交易和多因素认证。它还使合规变得实用,允许对账户进行细粒度的访问控制。

第3层:Aztec 网络

Aztec 网络是以太坊上唯一的去中心化 L2。目前有超过 3,500 个排序器 在运行 alpha 网络。查看 alpha 网络的实时区块链浏览器

为了完全保护用户及其数据,网络必须保证三个层次的隐私:

  • 私有数据: 输入和输出值被隐藏
  • 私有身份: 地址被隐藏
  • 私有计算: 合约函数被隐藏

当你编写 Aztec 智能合约时,上述所有内容都已为你处理。正如前两节所讨论的,你可以通过编织公开和私有函数,轻松在细粒度上选择隐私保护。

为了理解所有这些组件如何协同工作,让我们看看交易如何在 Aztec 网络上执行。

当用户与应用交互时,私有函数在客户端(用户设备:手机、个人电脑等)上执行。这发生在私有执行环境(PXE)中,该环境即使在浏览器和移动设备上也能高效创建 zk 证明。任何私有状态更新都会添加到网络的追加式数据库(UTXO 树)中。由于证明是在客户端生成的,因此不会泄露有关输入、输出、账户甚至已执行函数的信息。

另一方面,公开交易与客户端的私有证明捆绑在一起,并发送到由独立社区运行的排序器所组成的去中心化网络驱动的 Aztec 网络。排序器检查私有执行证明的有效性,执行任何公开函数并更新公开状态,提议区块,并将状态更新(“差异”)发布到以太坊 L1。排序器还与一个去中心化的证明者网络协调,该网络为每个 Aztec“纪元”(定义为连续 32 个 L2 区块的序列)计算最终证明,并将其发布到以太坊。排序器执行的任何公开函数都会更新一个类似以太坊的基于账户的数据库。

排序器和证明者的角色是完全无需许可的。任何人都可以启动所需硬件并加入排序器集,或运行证明者并开始竞标以生成 Aztec 纪元的证明。

结论

Aztec 实现了一个简单而强大的理念:在以太坊上,你可以选择智能合约中哪些内容公开、哪些私有,涵盖身份、数据和计算。我们介绍的四个层次正是实现这一理念的基础。

Noir 为开发者提供了一种类似 Rust 的语言,无需密码学背景即可编写零知识程序,且默认保护隐私。Aztec 智能合约 通过 Aztec.nr 框架构建在 Noir 之上,让你将私有和公开函数编织到单个合约中,并使用账户抽象解锁细粒度的访问控制,用于合规、税务报告和选择性披露。Aztec 网络 是以太坊上唯一的去中心化 L2,拥有超过 3,500 个排序器,为数据、身份和计算提供端到端的可编程隐私。这一切最终在 以太坊 上结算,继承了 L1 的经济安全性。

其结果是以太坊上首个实用的隐私平台,也是未来全球结算层的可信候选。

现在轮到你来构建了。前往 docs.aztec.network 发布你的第一个隐私保护应用。

在 X 上关注 Aztec 以获取网络当前状态的最新信息。

  • 原文链接: aztec.network/blog/the-a...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~

相关文章

0 条评论