名字自带一个钱包:ERC-4972 名字所有账户的派生与回收 图 1
名字自带一个钱包:ERC-4972 名字所有账户的派生与回收 · 图 1

名字自带一个钱包:ERC-4972 名字所有账户的派生与回收

一个好记的链上名字(比如 ENS 域名)今天只是一条解析记录:别人能看到它属于你,但名字本身“肚子里装不了东西”——不能持有资产、不能挂配置。想把 NFT 和域名分别托管给同一套过户流程的人,要面对两条独立的所有权链条,任何一条转错,另一条就成了漏点。ERC-4972(2022 年 4 月 4 日创建,提案状态 Draft)提出的名字所有账户(Name-Owned Account, NOA)想法很直接:每个名字背后都配一个属于这个名字的合约账户,资产与信息可以存在名字名下,而不是存在“当时拥有名字的那个人”名下。

三方关系与两个查询函数

标准用一张极简关系图开场:名字所有账户被名字节点拥有,名字节点被名字主人拥有,两重所有权都由名字服务合约保证。接口同样精简:名字服务一侧暴露 ownedAccount(node),输入名字节点哈希,返回其名下账户地址;账户一侧提供 name() 反查自己对应的名字节点,以及 nameService() 说明自己注册于哪个名字服务——两个函数拼起来,任何人拿到一个 NOA 地址都能沿链回溯到它属于哪个名字、归属逻辑归谁裁判。地址的生成规矩藏在参考实现一节:工厂合约预期用 CREATE2 而非普通 CREATE 部署账户,把名字节点当作盐值,配合一致的 initcode,保证名字与账户地址一一对应、且可以被提前推算——哪怕账户还没上链,资金也可以先打向那个注定属于该名字的地址。

名字自带一个钱包:ERC-4972 名字所有账户的派生与回收 图 2
名字自带一个钱包:ERC-4972 名字所有账户的派生与回收 · 图 2

名字过户时,哪些东西跟着走

这套结构对 NFT 用户最实际的收益在过户场景。传统模式下卖掉一个域名 ENS,头像解析、会员名单、金库权限都挂在原主人地址上,交割需要逐项迁移、逐项签交易,漏一项就是一个纠纷。NOA 的世界里,上述资产若存在名字名下账户里,转让名字节点就自动连带账户控制权——“资产跟着名字走”从一份人工对账单变成一次所有权指针的翻转。标准文本点名的用例正是如此:名字节点转让同时转移 NOA 及其持有的资产与信息。这也是它常被拿去和 Name Wrapper 之类域名代币化方案对照的原因:后者把域名本身做成可持有可转让的 NFT,NOA 的侧重点则是给名字配一个能装东西的合约账户,两种思路解决过户摩擦的角度不同。

冷静清单:三条边界

Draft 提案的身份决定了它更多是设计样本而非现成服务,落地前有几条边界必须看清。第一,名字本身的规则压倒一切:二级域名、过期、赎回期、托管仲裁等 ENS 层机制同样作用于 NOA,名字没赎回,账户控制权自然谈不上。第二,工厂与 initcode 的可预测性是安全前提——地址由名字派生意味着任何人都能算出这个地址,账户内部的访问控制必须严格实现,才能防止在名字易主过程中被第三方预先部署抢占,这考验工厂合约实现质量而非标准文本。第三,也是老生常谈但必须重申:资产“存在名字名下账户”只解决了控制权路由问题,不能替代法律权属登记,域名或 NFT 谁拥有的现实纠纷,不会因为地址派生巧妙而自动裁决。动手之前,确认你面对的名字服务是否真的部署了工厂、ownedAccountname 两个查询是否可用,以及过户路径是否经过名字服务的官方文档指引。本文只解释提案机制,不构成任何资产转移或买卖建议。

和 Name Wrapper、链上名片的边界

同一个“域名与身份”地带还有几位邻居,混谈最容易出错。Name Wrapper 类方案把域名本身包装成可持有、可组合的 NFT,解决的是域名作为资产的管理与嵌套授权;ERC-6821 处理网页 URL 里把 ENS 名字解析为合约的路线;ERC-8127 给代币挂可读标识符。NOA 占据的位置是“名字后面那个能装东西的账户”:它不把域名变成 NFT,也不改变解析流程,只是让每个名字多出一个可寻址、可持有资产、可随名字过户的实体。三套机制理论上可以叠加——域名被包装成 NFT 便于交易,其名下再挂 NOA 承载资产,URL 层继续用名字解析合约——但对用户而言复杂度随之上升,每一次叠加都是新的核验面。判断某个产品宣传属于哪一层,最简单的提问是:你说的是名字变成币(Wrapper),名字下面有个钱包(NOA),还是浏览器认这个名字(解析类)?三个词答错任何一个,说明对方的叙事还没落地成实现。