7 月 28 日,以太坊二层隐私解决方案 Aztec Network 宣布开源 EVM 编程语言 Huff。该语言由 Aztec Network 创始人 Zac Williamson 在2019年创建,是一种类汇编语言,允许开发者直接在 EVM 机器代码中进行编程,相比Solidity、Vyper,用 Huff 语言编写智能合约最高可降低 80% gas fee。
一般而言,项目方开源语言往往用于推动自身生态发展,而 Aztec 开源 Huff 则可能为行业带来积极影响。
Aztec简介
Aztec Network (以下简称Aztec)是以太坊上主打隐私的 ZKR 项目,它能够加密用户的交易行为,使用户的交易信息不被外部观察者所掌握,从而保护用户隐私。
Aztec 于去年 12 月份完成由 Paradigm 领投的 1700 万美元 A 轮融资。目前TVL达到了490万美元,在 L2 项目中排名 12。
图片来源:https://l2beat.com/
Aztec 的工作原理类似多个用户都把自己的球不记名地放进一个池子,而后分批次、不定量地取出。在账户之间转移资金,而无需透露每个交易中转移的金额,从而使得外部观察者无法推断向 Aztec 汇入存款的后续流向。
图片来源:https://medium.com/aztec-protocol/infinite-privacy-new-anonymity-paradigms-with-aztec-network-1b02e84bbce2
在设计上,Aztec 并没有使用加密账户的方案,而是将数字货币交易抽象为现金交易来处理,使用类似于比特币的 UTXO 模型来跟踪其合约中的所有权,导致有两棵默克尔树存储 Aztec 网络的状态。
加上 ZKR 项目之间的性能竞争(Aztec 的 gas 在 L2 中最高)以及 Aztec 对优化 gas 的固执,使得 Aztec 对合约有非常高的效率要求。
在这种情况下, Aztec 对合约效率的需求超过了传统 EVM 汇编语言 Yul 的能力,不得不开发一种更高效率的汇编/类汇编语言--Huff。
Aztec的gas是L2中最高的,图片来源:https://l2fees.info/
Huff语言
Huff 语言是一种用于 EVM 的、非常低级的类汇编语言,更接近可以直接被机器直接”理解“并执行的机器语言。
图片来源:https://huff.sh/
优点是相比高级语言(更抽象,更利于人类理解和编写的语言,如 Solidity,Vyper,Python 等),用 Huff 语言写出的程序代码冗余量更少,更节省计算、存储资源,执行效率更高,可以让工程师编写高效率的、可完全控制的智能合约。
因此,相比 Solidity 和 Vyper 等用于合约开发的主流高级语言,使用 Huff 这种类汇编语言编写合约会有更少的代码冗余、调动更少的计算与存储资源、有更高的执行效率,从而节省更多gas。Aztec 表示使用 Huff 编写合约节省的gas可高达 80%(官方暂未给出测算过程) 的 gas 。
不过,它也有一起些缺点,包括学习难度极大,编程效率低,编写时间长,项目周期长,不利于与非EVM的网络兼容。
Huff 已经开源,也许我们可以期待在未来的某一天,可以在以太坊主网用上两毛钱的 gas。
注:两毛钱 gas 的计算方式如下,以太坊 Send ETH 的 gas 为1.3美元,官方推特表示使用 Huff 语言将减少80% gas,1.3*(100%-80%)=0.26 美元。