来源:Aztec
编译:李科
混合式zkRollup
以太坊上的数据都是公开的,但很多数据和交易有隐私的需求,基于此Aztec推出了透明+隐私混合式zkRollup。大家比较熟悉混动汽车的概念,即把油和电结合起来驱动汽车。Aztec在宣布停止Aztec Connect之后,近期就推出混合式zkRollup概念,未来Aztec要做的事是将以太坊智能合约和zk加密执行结合起来,如果说之前的Aztec Connect只是针对数字资产的隐私交易,未来Aztec zkRollup的应用范围将更广,涉及一切数据的隐私计算和传输。
Aztec将结合以太坊智能合约的所有特点,再加上可编程匿名性、数据隐私和保密合约的保护能力。Aztec通过允许公共-私有可组合性,极大地扩展在区块链上可以做的空间。
Aztec技术路线图
Aztec已经开始部署基本的合约部署(Milestone1.0),目前本地开发环境的组件已经取得重大进展。开发人员可以在2023年第三季度获得本地测试网络,用户可以在2024年初体验完整的公共测试网络。
Aztec: 不是一个 zkEVM
以太坊本质上是一个状态机。它接受一个起始状态,按块排序交易,并以确定性的方式转换状态。Aztec将全局状态机扩展到了私有状态。这种混合的公共-私有状态机同时处理智能合约逻辑的公共和私有执行。与此同时,它不再像传统的区块链一样执行交易,而是证明已经计算过的交易的正确性。换句话说,Aztec是一个零知识执行环境,但它不是zkEVM。
为什么不是zkEVM呢?难道zkEVM不是最终目标吗?
在Aztec Labs研究隐私智能合约时,得出了一个早期结论:隐私与EVM不兼容。Rollup技术的美妙之处不仅在于模仿以太坊,而是扩展了其实用性。Aztec是一个机会,可以在基础层上确保隐私,并获得以太坊的安全保证。在其发明时,以太坊为公共共识而放弃了隐私。直到2018年,Zac Williamson和Ariel Gabizon发表了Plonk,第一个对于区块链应用程序具有广泛实用性的zkSNARK,才有了通过先进的零知识密码学实现无信任、私有执行的可能性。但像以太坊这样基于账户的公共区块链模型无法支持本地隐私,而UTXO-based隐私解决方案则无法支持已为公共智能合约平台创建的应用程序和工具生态系统。
这就是为什么Aztec要兼顾两者
Aztec将公共和隐私执行结合到一个单一的zkRollup中,在加密和非加密的交易中提供无缝的可组合性。如果说以太坊的创新是允许对公共状态进行读写,那么Aztec的创新是能够对公共和隐私状态进行读写。将公有和隐私结合成一个单一的混合式Rollup,可以实现保密性和可审计性的用例,比如:
- 公共DAO的私人投票
- 公共游戏的私人会议
- 公共AMM上的隐私交易
Aztec之前仅支持资产的隐私交易,现在开始支持智能合约的隐私执行,而智能合约在合规和查看权限方面更加灵活。
Aztec是如何运行的?
Aztec采用了之前在Connect架构上取得的工作成果,并大规模地扩展了其范围和功能。之前Connect利用了一个加密的UTXO架构,在Aztec中,将继续采用相同的设计,但有一个关键区别: UTXO不仅可以代表 "代币的价值",还可以代表任何数据。UTXO现在可以存储整个智能合约。
之前Connect只支持3个定制的电路。Aztec可以在公共和隐私状态上支持任意的智能合约逻辑。这意味着开发者可以访问全部的以太坊用例,以及全新的加密应用。Connect是为DeFi设计的,而且仅限于DeFi,而Aztec大大扩展了想象力。
公共和隐私的可组合型
Aztec的公共和隐私状态环境是完全可组合的,这意味着任何函数都可以调用任何其他函数。这导致了全新的区块链范式,如隐私对隐私的函数调用:智能合约的逻辑对区块链观察者来说是不可见的,可以调用其他具有不可见逻辑的合约。
Aztec正在建立一个真正的隐私生态系统:一个智能合约网络,可以从最方便的账本中获取和写入:
- 一个可见的、公开的账本,以支持像AMM和借贷协议这样需要透明度的原始协议
- 一个不可见的私人账本,能够创建隐私的去中心化治理、金融、身份和游戏。
查看权限和合规性
Aztec与Connect一样,保持了访问密钥和支付密钥之间的分离,同时将访问密钥权限扩展到每个合约,以实现对数据访问的细微控制。由于Aztec允许按合约进行权限控制,因此可以使新的区块链协议(去中心化身份、第三方验证和访问密钥共享)灵活地实施合规性。应用不再需要考虑全有或全无两种极端方式: Aztec支持全方位的可编程的私有权限。
Noir语言: 写代码,而非电路
Noir是一种通用的零知识语言,为了实现隐私智能合约的计算,Aztec Labs为Noir语言的核心开发做了很多贡献。Noir是一种开源的、通用的零知识电路编写语言,兼容任何证明后端,并可在任何区块链上进行验证,且具有可定制的智能合约验证器。
像Circom这样的低级零知识编程语言需要密码学概念的知识,而Noir让用户编写代码,而不是电路。零知识程序可以有熟悉的语法和抽象的密码学安全。开源的加密原语库意味着用户可以依赖审计过的加密代码库和加密学家以及开源贡献者社区。
Noir的愿景是成为zkSNARKs的LLVM。就像编程语言编译到中间表示而不是机器语言一样,Noir编译到抽象电路中间表示(ACIR),然后可以编译到任何加密后端。
证明可以在任何具有Solidity验证器的链上进行验证。这意味着从Solana到Cosmos的开发者都可以将ZK证明与Noir集成。
除了作为一种通用的 zk 编程语言外,Noir 还作为 Aztec 的智能合约语言:它保留了传统的智能合约语法,包括状态变量、函数和跨合约组合性(甚至跨公共 - 私有障碍!)。
可扩展性
区块链应用的最大障碍不是区块空间,而是实用性。值得庆幸的是,zkSNARKs为Aztec解锁了灵活的加密和可扩展性。
Aztec的内核电路启用的递归功能非常强大,我们已经实现了比Connect更大规模的可扩展性。Aztec的目标是在主网启动时达到100+TPS和个位数的交易量,比以太坊的吞吐量高出约5倍,比Connect高出50-100倍。预计通过EIP-4844促进的blob交易,Aztec的主要成本投入(发布调用数据到第1层)将显著下降。
Aztec的长期路线图包括自定义数据可用性、状态分片、FHE启用的状态同步、硬件加速和并行执行--所有这些都将使Aztec达到另一个数量级的规模。
下一级别的隐私用户体验
在核心基础设施之外,隐私用户体验一直是影响区块链加密工具采用的一个主要瓶颈,主要体现在以下3个方面:
- 很难对隐私进行推理
- 不灵活的查看权限使合规性变得困难
- 钱包体验令人困惑且不标准
Aztec解决了这三个问题
隐私保障
Aztec的目标是,在比Connect更强的隐私保障的同时,使其更容易理解。同时,Aztec提高了通用性并降低了成本,这意味着更好的隐私保障不需要任何折衷。简而言之,私人交易是隐私的。在以前的隐私解决方案中,用户关注隐私集。在Aztec中,隐私交易的执行完全是隐私的—不仅交易是隐私的,执行的合约也是隐私的。这意味着隐私代币转移、隐私贷款、隐私订单簿交易和隐私游戏状态对于区块链观察者来说完全无法查看。
除了触发的隐私状态更新的原始数量外,没有泄露信息的可能性,也不可能询问这些状态更新的起源或性质。观察者了解交易性质的唯一途径是调用公共函数。公共执行默认是匿名的 - 观察者无法知道谁调用了交易,但可以公开查看交易结果。虽然公共交易仍然依赖于隐私集来保证其保证,但Noir合约的组合性意味着是在整个网络中共享的。像Dai这样的稳定币将具有涵盖支付、DeFi和作为游戏货币使用的隐私集。
钱包体验和账户抽象化
为了使Aztec账户尽可能兼容现有钱包,用户密钥将采用与以太坊钱包相同的密钥。此外,原生抽象账户将允许用户将自定义的 Noir 合约部署到他们的账户地址,而不是利用现有的 ECDSA 签名流程。由 Noir 电路支持的Aztec账户抽象将支持:
- 智能合约钱包
- M of N 多重签名
- Schnorr 签名
- 基于 25519 曲线的 ECDSA(与 Apple 的 TouchID 相同的签名方案)
- 社交恢复
区块链的未来在于可编程钱包,而不是手动签名交易和授予权限。智能合约钱包将是Aztec架构的核心特点,实现面向未来的的区块链用户体验。