跳转到正文
buybitcoinsmart

术语表 /闪电网络与 Layer 2

节点别名

节点别名是什么?
节点别名是闪电网络节点写入其自身已签名 node_announcement 消息的32字节名称,让区块浏览器和钱包可以显示便于阅读的名称,而不是原始公钥。

每个闪电网络节点都自行选择名称并为其签名,这既是整个机制,也是整个问题所在。BOLT 7为该字段规定了恰好32字节,其余部分用零填充,并要求接收方软件提示该名称为自行签名。没有任何机制阻止两个节点使用相同的名称,因此切勿将别名视为您所付款对象身份的证明。

运作方式

节点别名包含在 node_announcement 内,这是类型为257的 gossip 消息,由其所指称的同一个密钥签名。

该消息包含一个签名、一个功能位字段、一个时间戳、node_id、一个3字节的 rgb_color、32字节的别名,以及该节点接受连接的网络地址。设置别名和颜色是可选的;但别名必须是有效的 UTF-8,未使用的末尾字节必须为零。

三十二字节是字节预算,而不是字符数。该字段存放的是有效的 UTF-8,因此使用每个字符占多个字节的文字书写的名称,能容纳的字母比普通拉丁字母的名称更少。

更改名称成本很低。节点必须使每个时间戳都大于上一个,因此新名称只是一条新的 node_announcement,对等节点会接受它以取代旧记录,并将其排队等待重新广播。协议中没有注册机构,没有费用,也没有唯一性检查。

该字段并非免费的广告空间。BOLT 7会忽略来自尚未与任何已知通道关联的节点的公告,并且在通道的注资输出获得六次确认之前,不得公告任何通道,因此一个可读的名称需要先付出一笔链上交易和被锁定的资金,才会有人转发。

BOLT 7还有一个专门针对别名撰写的安全章节。由于别名由用户自定义,在渲染和存储时都是注入攻击的途径,因此实现者被要求在将其放入 HTML 或 JavaScript 之前进行净化处理,并在持久化存储时使用预处理语句。显示别名的软件还被要求暗示其为自行签名的来源。

在哪里会遇到它

凡是为人类绘制闪电网络图的地方,都会出现节点别名。

BOLT 7允许接收方软件使用别名和 rgb_color 在其界面中指代节点,因此图浏览器或对等节点选择器显示的是名称而不是密钥。路由运营者依赖这一点,因为 node_id 不是任何人会输入第二次的东西。

您是否拥有节点,取决于您的钱包实际是什么。Phoenix 在手机上运行一个真正的、自成一体的闪电网络节点,因此持有身份密钥,并且可以公告名称。Wallet of Satoshi 在托管模式下代您保管密钥,因此图中没有属于您的节点,也就没有可命名的对象。

您支付或收到的任何款项都不取决于该名称:发票、路由和通道开启都以 node_id 为依据。

节点别名 vs 闪电地址

节点别名为一台机器命名,而闪电地址为一个可以索取发票的地点命名。您无法向别名付款:它不含域名、端点和金额,协议中也没有任何机制能将其解析为可支付的内容。闪电地址的作用恰好相反,它通过 HTTPS 解析,并向您的钱包提供一张真实的发票。

节点别名 vs 短通道 ID

短通道 ID 是通道注资输出的八字节定位符,BOLT 7还允许对等节点提供一个别名短通道 ID 来代替它。第二种别名与节点别名除了名称相同之外毫无共同之处。节点可以为一个尚未公告的通道发送 channel_update,将 short_channel_id 设置为其对等节点提供的别名而不是真实值,并且出于隐私原因,必须设置 dont_forward,且绝不转发该更新。一种别名是节点希望被看到的公开名称,另一种则是节点希望隐藏的数字的私有替代。

请勿混淆

常见问题

两个闪电网络节点可以使用相同的别名吗?

可以,别名不是唯一的。BOLT 7没有注册机构,没有费用,也没有唯一性检查,因此任何人都可以公告一个知名节点已在使用的名称。请核对 node_id,切勿只看显示的名称。

我需要设置节点别名吗?

不需要,没有别名节点也能正常工作。路由、发票和通道开启都以 node_id 为依据,别名只是让您的节点便于人们阅读。在拥有公开通道之前,您也无法公告别名,因为对等节点会忽略来自没有已知通道的节点的公告。

节点别名和闪电地址是同一回事吗?

不是。节点别名为一台机器命名,无法向其付款,而闪电地址通过 HTTPS 解析,并向您的钱包提供发票。

接着阅读

来源

最近审阅:2026年9月6日。

相关术语

闪电网络与 Layer 2中的更多术语

阅读本页英文版