2025年企业ENS指南:从'可有可无'到可编程品牌身份
多年来,以太坊名称服务(ENS)被许多人视为加密货币爱好者的小众工具——一种将冗长笨拙的钱包地址替换为人类可读的.eth
名称的方法。但在2025年,这种认知已经过时了。ENS已经演化为可编程品牌身份的基础层,将一个简单的名称转变为公司整个数字存在的便携、可验证和统一锚点。
这不再仅仅是关于brand.eth
。而是关于让brand.com
具备加密货币感知能力,为员工发放可验证的角色,并通过单一规范的真实来源与客户建立信任。这是为企业准备的指南,说明为什么ENS现在很重要以及如何在今天实施它。
要点总结
- ENS将名称(例如
brand.eth
或brand.com
)转换为可编程身份,映射到钱包、应用程序、网站和已验证的个人资料数据。 - 您无需放弃DNS域名:通过无Gas DNSSEC,
brand.com
可以在设置时无需支付链上费用即可作为ENS名称运行。 .eth
定价透明且基于续费(较短名称成本更高),收入通过ENS DAO为公共利益协议提供资金。- 像
alice.brand.eth
或support.brand.com
这样的子名称让您可以发放有时限且受NameWrapper"熔断"和到期约束的角色、福利和访问权限。 - ENS正在ENSv2中将核心功能迁移到L2,通过CCIP‑Read实现信任最小化解析——这对成本、速度和规模都很重要。
为什么ENS对现代企业很重要
对于企业而言,身份是分散的。您有用于网站的域名、用于营销的社交媒体账号,以及用于支付和运营的独立账户。ENS提供了一种统一这些的方法,创建单一的权威身份层。
-
统一的人类可读身份: 在其核心,ENS将一个易记的名称映射到加密地址。但其威力远远超出单一区块链。通过多链支持,您的
brand.eth
可以同时指向您的比特币资金库、Solana运营钱包和以太坊智能合约。您品牌的名称成为整个web3生态系统中支付、应用程序和配置文件的单一用户友好锚点。 -
深度生态系统集成: ENS不是对小众协议的投机性押注;它是web3基元。它在主要钱包(Coinbase Wallet、MetaMask)、浏览器(Brave、Opera)和去中心化应用程序(Uniswap、Aave)中得到原生支持。当GoDaddy等合作伙伴集成ENS时,这标志着web2和web3基础设施的融合。通过采用ENS,您正在将品牌连接到一个庞大的互操作网络。
-
丰富且可验证的个人资料数据: 除了地址之外,ENS名称可以存储个人资料信息的标准化文本记录,如头像、电子邮件、社交媒体账号和网站URL。这将您的ENS名称转变为规范的机器可读名片。您的支持、营销和工程工具都可以从同一验证来源提取,确保一致性并与用户建立信任。
两个入口:.eth
vs. "携带您自己的DNS"
开始使用ENS很灵活,提供两个可以且应该一起使用的主要路径。
1. 注册brand.eth
这是web3原生方法。注册.eth
名称为您提供一个加密原生资产,标志着您品牌对生态系统的承诺。过程简单透明。
- 清晰的收费时间表: 费用每年用ETH支付以防止抢注并为协议提供资金。价格基于稀缺性:5+字符名称只需每年5美元,4字符名称每年160美元,3字符名称每年640美元。
- 设置主名称: 拥有
brand.eth
后,您应该将其设置为公司主钱包的"主名称"(也称为反向记录)。这是一个关键步骤,允许钱包和dapp显示您的易记名称而不是长地址,大大改善用户体验和信任度。
2. 在ENS内增强brand.com
(无需迁移)
您无需放弃宝贵的web2域名。得益于称为无Gas DNSSEC的功能,您可以将现有DNS域名链接到加密钱包,有效地将其升级为功能齐全的ENS名称。
- 所有者零链上成本: 该过程允许
brand.com
在ENS生态系统内变得可解析,而无需域名所有者提交链上交易。 - 主流注册商支持: GoDaddy已经通过由此ENS功能驱动的一键"Crypto Wallet"记录简化了这一过程。其他支持DNSSEC的主要注册商也可以配置为与ENS配合工作。
实用建议: 两者都做。对您的web3原生受众和资金库操作使用brand.eth
。同时,将brand.com
带入ENS以统一您的整个品牌足迹并为现有用户群提供无缝桥梁。
零到一部署:一周计划
部署ENS不必是多季度项目。专注的团队可以在大约一周内建立强大的存在。
-
第1-2天:名称和政策 声明
brand.eth
并使用无Gas DNSSEC方法链接您现有的DNS名称。这也是建立关于规范拼写、表情符号使用和标准化规则的内部政策的时候。ENS使用名为ENSIP-15的标准来处理名称变体,但关键是要了解同形异义字符(看起来相似的字符),以防止针对您品牌的钓鱼攻击。 -
第3天:主名称和钱包 对于公司的资金库、运营和支付钱包,设置主名称(反向记录),以便它们解析为
treasury.brand.eth
或类似名称。利用这个机会填充多币种地址记录(BTC、SOL等),确保发送到您ENS名称的付款无论在哪个链上都能正确路由。 -
第4天:个人资料数据 填写主ENS名称的标准化文本记录。至少设置
email
、url
、com.twitter
和avatar
。官方头像在支持的钱包中增加即时视觉验证。为了增强安全性,您还可以添加公共PGP密钥。 -
第5天:子名称 开始为员工发放像
alice.brand.eth
这样的子名 称,或为部门发放support.brand.com
。使用NameWrapper应用安全"熔断",例如可以防止子名称被转移。设置到期日期,以便在合同结束或员工离职时自动撤销访问权限。 -
第6天:网站/文档 去中心化您的网络存在。将您的媒体资料包、服务条款或状态页面固定到像IPFS或Arweave这样的去中心化存储网络,并通过
contenthash
记录链接到您的ENS名称。为了通用访问,用户可以通过像eth.limo
这样的公共网关解析此内容。 -
第7天:集成到产品中 在您自己的应用程序中开始使用ENS。使用像
viem
和ensjs
这样的库来解析名称、标准化用户输入并显示头像。查找地址时,执行反向查找以显示用户的主名称。确保使用支持CCIP-Read的解析器网关,以确保您的应用程序对ENSv2的L2架构具有未来兼容性。
快速见效的常见模式
设置完成后,ENS解锁了强大且实用的用例,提供即时价值。
-
更安全、更简单的支付: 与其复制粘贴冗长易错的地址,不如在发票上放上
pay.brand.eth
。通过在一个名称下发布所有多币种地址,您大大降低了客户将资金发送到错误地址或链的风险。 -
真实的支持和社交存在: 在您的ENS文本记录中发布官方社交媒体账号。一些工具已经可以验证这些记录,为防范冒充创建强大防护。
support.brand.eth
名称可以直接指向专用支持钱包或安全消息端点。 -
去中心化网络存在: 使用
contenthash
在brand.eth
托管防篡改状态页面或关键文档。由于链接在链上,它不能被单一提供商删除,为重要信息提供更高程度的弹性。 -
可编程组织结构图: 发放授予访问内部工具或代币门控频道的
employee.brand.eth
子名称。通过NameWrapper熔断和到期日期,您可以为整个组织创建动态、可编程且自动可撤销的身份系统。 -
轻Gas用户体验: 对于像发放忠诚度ID或作为子名称的门票这样的高容量用例,链上交易太慢且昂贵。使用带有CCIP-Read的链下解析器。此标准允许ENS名称以信任最小化的方式从L2甚至传统数据库解析。像Uniswap(
uni.eth
)和Coinbase(cb.id
)这样的行业领导者已经使用此模式来扩展其用户身份系统。
不应跳过的安全和治理
像对待主域名一样对待您的主ENS名称:作为公司基础设施的关键部分。
-
分离"所有者"和"管理者": 这是核心安全原则。拥有转移名称权力的"所有者"角色应在冷存储多签钱包中保护。可以更新IP地址或头像等日常记录的"管理者"角色可以委托给更易访问的热钱包。这种权力分离大大减少了密钥泄露的爆炸半径。
-
使用NameWrapper保护: 发放子名称时,使用NameWrapper燃烧像
CANNOT_TRANSFER
这样的熔断将它们锁定给特定员工,或使用CANNOT_UNWRAP
强制执行治理政策。所有权限都由您控制的到期日期管理,默认提供有时限的访问。 -
监控续费: 不要因为错过付款而丢失您的
.eth
名称。将续费日期列入日历,并记住虽然.eth
名称有90天宽限期,但子名称的政策完全由您决定。
开发者快速入门(TypeScript)
使用像viem
这样的现代库将ENS解析集成到您的应用程序中很简单。此代码片段显示如何从名称查找地址,或从地址查找名称。
import { createPublicClient, http } from "viem";
import { mainnet } from "viem/chains";
import { normalize, getEnsAddress, getEnsName, getEnsAvatar } from "viem/ens";
const client = createPublicClient({ chain: mainnet, transport: http() });
export async function lookup(nameOrAddress: string) {
if (nameOrAddress.endsWith(".eth") || nameOrAddress.includes(".")) {
// 名称 → 地址(按ENSIP-15规范化输入)
const name = normalize(nameOrAddress);
const address = await getEnsAddress(client, {
name,
gatewayUrls: ["https://ccip.ens.xyz"],
});
const avatar = await getEnsAvatar(client, { name });
return { type: "name", name, address, avatar };
} else {
// 地址 → 主名称(反向记录)
const name = await getEnsName(client, {
address: nameOrAddress as `0x${string}`,
gatewayUrls: ["https://ccip.ens.xyz"],
});
return { type: "address", address: nameOrAddress, name };
}
}
此代码的两个关键要点:
normalize
对安全至关重要。它强制执行ENS命名规则并帮助防止来自相似名称的常见钓鱼和欺骗攻击。gatewayUrls
指向支持CCIP-Read的通用解析器。这使您的集成对即将到来的L2和链下数据迁移具有前向兼容性。
对于使用React构建的开发者,ENSjs库提供包装这些常见流程的高级钩子和组件,使集成更加快速。