最后更新:
Nullmask 是一种零知识 (ZK) 隐私协议,它允许用户通过将资产屏蔽到资金池中并在其中进行交易,从而使 以太坊虚拟机 (EVM) 区块链 上的交易变得私密,且不会在充值和提现之间留下链上关联。[1][2] 该协议于 2026 年 3 月 17 日推出,由密码学家 Tomas Krnak 设计并撰写,其加密架构和技术文档均以他的名义而非具名的公司实体发布。[8] 该协议的独特之处在于,它作为“虚拟网络”安装在用户现有的钱包中,而不需要单独的应用程序、专用钱包或新的 助记词。[1] 其核心设计主张是支出权限永远不会离开用户的钱包,因为屏蔽操作是通过标准的 以太坊 交易授权的。[3] 该项目用一句话总结了自己的宗旨:“只需点击一下,即可让任何钱包和任何交易变得私密。”[4]
Nullmask 是一个针对 EVM 兼容 blockchains 的隐私层。用户将资产存入(或称“屏蔽”)到一个零知识池中,在其中进行私密转账和交换,随后再将资金“解除屏蔽”到任何地址。该协议的设计确保了原始存款与最终取款之间不存在可观察的链上关系。[1][2] 该协议支持四种私密操作:屏蔽存款、屏蔽转账、屏蔽取款和屏蔽交换。[6]
该协议并不运行自己的 blockchain。相反,它构建在现有的 layer 2 (L2) 基础设施之上,为用户的钱包附加一个屏蔽账户,并将其自身网络上的操作视为“屏蔽操作意图”,这些意图最终在底层的 EVM 链上执行。[3] 该项目被第三方追踪机构标记在“zk”和“Privacy”类别下。[1][5]
屏蔽到 Nullmask 中的资金保存在基于 UTXO 的隐私池中,这是一种余额由离散的未花费输出而非单一可变账户余额表示的模型。该池使用 Poseidon2 承诺和默克尔成员证明(Merkle membership proofs)进行保护,这些加密结构允许协议在不透露具体是哪笔存款的情况下,确认某笔存款属于该池。[6] 当用户发起操作时,协议会拦截交易,在客户端生成零知识证明,并通过中继器(relayer)提交。中继器是一个广播交易的中间机构,确保原始发送者的身份不会在链上暴露。[6]
屏蔽转账(Shielded Transfers)允许在不泄露链上发送者、接收者或金额的情况下发送代币。屏蔽交换(Shielded Swaps)在不暴露用户身份的情况下执行 Uniswap V2 交易,而隐私存款和取款均由零知识证明验证。[6] 隐私转账金额在设计上是隐藏的,该项目的分析方法指出,这意味着它们不包含在报告的交易量数据中。[2]
Nullmask 并非作为一个独立的应用程序运行,而是作为虚拟网络安装到用户的钱包中,项目方称这一过程为一次性设置,耗时约 20 秒。[3] 该虚拟网络使用 Nullmask RPC 中间件来解密屏蔽余额,并将发出的交易转换为相应的屏蔽等效交易。该中间件可以远程运行以实现更快的入门体验,也可以本地运行以实现项目所称的最大隐私。[3] 协议声明,一旦安装,用户就可以直接从现有的 web3 钱包发送、提取资金并与去中心化应用程序交互,无需使用单独的应用。[3]
该协议旨在与 MetaMask 以及任何兼容 EIP-1559(以太坊交易费标准)的钱包配合使用,并保留了标准的钱包用户体验。[6] Nullmask 使用标准的 0x 地址和以太坊域名服务 (ENS) 名称,而不是采用单独的屏蔽地址方案。由于它由钱包现有的助记词支持,项目方表示无需存储额外的助记词。[3] 它还支持硬件钱包,项目方称其在不从设备中提取支出权限的情况下提供了完整的安全性。[6]
Nullmask 自行发布的设计文档中一个反复出现的主题是其对支出权限的处理。该项目将其方法与它直接点名的其他隐私解决方案——Railgun、0xbow、Hinkal、zERC20 和 Zcash——进行了对比,声称这些方案依赖于从钱包中提取支出权限。[3] 根据文档,提取支出权限使这些方法容易受到网络钓鱼攻击,并违反了其所谓的硬件钱包基本原则,即支出权限永远不离开设备。[3]
文档指出,Railgun 和 Zcash 通过要求对屏蔽交易进行额外签名来解决此问题,但两者都依赖于自定义哈希函数——它指出了 Zcash Orchard 的 Sinsemilla 和 Railgun 的“多速率 Poseidon”——并声称这些函数需要大型预计算查找表,这对于 硬件钱包 的受限环境来说是不切实际的。[3] 与此不同,Nullmask 使用标准的 EIP-1559 交易来授权屏蔽交易,文档称所有硬件钱包都已实现该标准,从而允许在不更改钱包代码的情况下通过硬件钱包进行屏蔽交易。该项目通过“当隐私不再让人感到是一种权衡时,隐私就会获胜”这一声明总结了其立场。[3]
Nullmask 包含内置的合规工具,旨在限制隐私池的滥用。该协议执行存款筛选,并通过撤销密钥提供追溯性污点恢复,文档将这一机制描述为:如果随后发现先前接受的存款是非法的,则允许对其进行追溯。[6] 该项目的分析方法指出,待筛选的资金不计入报告的总锁定价值(TVL)中。[2]
Nullmask 的资金池合约部署在采用 UUPS 代理模式的 ERC1967 包装器之后,因此用户与代理地址交互,而合约逻辑可以通过授权的升级控制器进行升级。[9] 在启动时,升级权限由 AdminUpgradeController 合约持有,该合约充当单一升级管理员,最初由部署者控制。[9] 升级权限本身可以通过 setUpgradeController() 函数进行升级,该函数可以将 upgradeController 角色转移给其他安排,例如时间锁合约、多重签名钱包或 DAO 治理合约,且只有当前的 upgradeController 有权执行此迁移。[9]
合规相关参数也与此升级控制器绑定。守卫(Guard)地址是一个特权合约状态变量,可以由现有守卫或升级控制器通过 setGuard() 进行更改,而验证者合约和白名单管理器则通过需要升级控制器批准的函数进行更新。[9][10] 守卫作为一个后端服务运行,监控进入隐私池的存款,并且是唯一获准调用 approveDeposit() 和 rejectDeposit() 的地址。对于每笔批准的存款,它都会发布一对撤销密钥,其公共组件和哈希值嵌入在存款事件和承诺中。[10][11] 这些撤销密钥通过允许参与者检测其票据(notes)是否由随后被标记的存款资助、证明与受污点资金无关或选择性清理受影响的余额来实现追溯性污点恢复,撤销机制的控制通过智能合约规范中描述的守卫服务和升级控制器进行协调。[11][9]
Nullmask 的文档列出了在 Ethereum、Arbitrum、MegaETH、Base 和 BSC (BNB Smart Chain) 上的部署情况,该协议支持原生 ETH 以及任何受支持的 ERC-20 代币。[6] 反映实时运行情况的项目分析仪表板记录了在两条链上活跃的隐私池:Ethereum,支持 ETH 和 USDT,自 2026 年 10 月 1 日起上线;以及 Base,支持 ETH 和 USDC,自 2026 年 10 月 7 日起上线。[2] 隐私池合约在两条链上均部署在相同地址,可通过 Etherscan 和 Basescan 区块浏览器查看活动详情。[2]
MASK 代币是在 Solana 区块链上发行的,并被数据聚合平台归类在 Solana 生态系统下。[5][2] 数据提供商报告的供应量数据略有不同:CoinMarketCap 列出的总供应量和最大供应量为 990,994,347 MASK,项目方自报该数量为完全流通供应量;而 CoinGecko 列出的总供应量约为 9.863 亿,最大供应量为 10 亿。[7][5] 该代币在去中心化交易所(包括 Meteora、Raydium 和 Manifest)以及中心化交易所(如 LBank、MEXC 和 KCEX)上均有交易,其流动性池以 SOL、USDC 和 USDT 计价。[5][7]
该代币通过与 Zcash (ZEC) 挂钩的奖励和回购系统与协议经济联系在一起。根据项目仪表板显示,StonkFun 向 MASK 持有者分发 ZEC,截至 2026 年 10 月初,记录的累计持有者奖励约为 101 万美元。[2] 另外,开发钱包赚取的 ZEC(按每日 ZEC 价格计算总计约 51.4 万美元)被用于回购 MASK,仪表板报告显示,在链上销毁的 MASK 数量约占该代币 10 亿初始供应量的 1.22%。[2]
截至 2026 年 10 月,现有的协议文档和智能合约参考资料并未描述 MASK 对 Nullmask 池合约拥有任何链上治理权,其升级权限由 EVM 侧的升级控制器合约掌握。[9] 公开资料将 MASK 的经济角色主要描述为:通过与以 ZEC 计价的持有者奖励以及由 ZEC 资助的永久销毁代币的回购机制相挂钩,而非通过费用分摊机制或基于质押的协议参数治理。[2]
该项目在 Dune 上维护一个公共分析仪表板,其数据通过解码自发布以来各条链上资金池合约的链上事件得出,汇总了两条链的总额,同时也显示了各链的详细细分。仪表板指出其数据并非实时的,小组件的刷新周期从每 30 分钟到每 6 小时不等。[2] 在其方法论中,交易量(Volume)被定义为所有屏蔽(Shield)和解除屏蔽(Unshield)操作在交易发生时的美元价值;总锁仓价值 (TVL) 是指目前在资金池中屏蔽的资金,不包括未提取的协议费用和等待筛选的存款;总转账次数(Total Transfers)则统计了所有资金池操作,包括存款、取款、隐私转账和兑换。[2]
该协议对每笔存款收取 0.5% 的费用,对每笔取款收取 0.5% 的费用,并声明中继器的 gas 补偿不计入协议费用。[2] 从 2026 年 10 月 1 日 Ethereum 发布到 2026 年 10 月 8 日,仪表板记录的累计交易量从第一天的约 107 万美元上升到约 1597 万美元,产生的累计费用约为 79,800 美元。[2] 每日活动在 2026 年 10 月 4 日达到顶峰,交易量约为 364 万美元,总转账次数为 1,000 次,随后在该周后期有所下降。Base 的活动于 2026 年 10 月 7 日首次出现在数据中,当天贡献了约 25.6 万美元的交易量。[2] 在两条链上,仪表板报告的总平台交易量约为 1603 万美元,总平台费用约为 80,100 美元。[2]
Nullmask 作为一个跨越多个组件的单体仓库(monorepo)构建。其零知识电路使用 Noir(一种编写 ZK 程序的语言)以及 Barretenberg 证明后端。[6] 智能合约 使用 Solidity 0.8.28 编写,并采用 Hardhat v3 框架和 OpenZeppelin v5 库进行开发。[6] 前端使用 Next.js 15、React 19 和 TailwindCSS 4,而后端服务运行在 Fastify 5 和 Node.js 24 上。web3 集成层使用 Viem 和 Wagmi 库,持久化存储使用 LMDB,单体仓库通过 Turborepo 和 pnpm 包管理器进行管理,同时配备了包括 Biome、TypeScript 5.9 和 knip 在内的代码质量工具。[6]
该协议的文档通过 GitBook 发布,分为多个章节,涵盖协议介绍、工作原理、详述加密算法和证明的协议规范、提供用于存款、转账和交换的 Solidity API 的智能合约参考、描述代理公开的 JSON-RPC 方法的 RPC API 参考、用于本地构建和运行协议的开发者指南,以及包含分步说明的用户指南。[6] 每个页面均以 Markdown 形式提供,并且可以通过 GitBook API 以编程方式查询文档,该 API 会根据文档内容返回带有摘录和来源的直接回答。[6]