路由表需要一个多小的钥匙
闪电节点做路径搜索时,脑子里装的是一张几十万条通道的图:每条通道要能存下它的身份、费率、时限、方向标志。给每条通道发一个三十二字节的链上编号太占内存,发一个自增整数又无法向全网证明通道真实存在。闪电规范(BOLT 7)选了第三条路:用一个八字节的短频道标识 short_channel_id,它本身就是资金交易的坐标。
规范的构造分三段:最高三个字节是资金交易被确认的区块高度;中间三个字节是这笔交易在区块内的序号;最低两个字节是付款给通道的那笔输出的索引。拼起来正好八字节,任何收到公告的节点都能循着坐标去链上把出资交易翻出来验证。

口语格式与防冒充
规范给出的标准口语写法是三段十进制数、用小写字母 x 连接,例如 539268x845x1,表示第 539268 块里第 845 笔交易的第 1 号输出。规范在理由部分写得很直白:双击或长按能在多数系统里选中整个标识;人读十进制比读十六进制快;字母 x 在多数字体里比数字矮,视觉上天然分段。
这套坐标同时是一道防伪机制。要伪造一条通道公告,攻击者必须先在对应高度、对应序号、对应输出位置真金白银放一笔符合规范格式的资金交易。想“凭空捏造一条不存在的通道”骗路由,成本是真实的链上出资。想冒充别人的通道也一样:公告要求用双方的出资公钥与身份公钥交叉签名,坐标只能定位交易,冒充不了所有权。
公告、拼接与改道
通道公告消息 channel_announcement 的核心字段就是这个短频道标识。规范对它有两套要求:宣告新开通道时,标识必须指向已经确认的资金交易;宣告拼接交易(splice,即不关通道改余额的那笔链上交易)时,标识必须指向双方都已经确认锁定完成的拼接交易,并且节点应当继续沿用旧标识转发在途付款,同时用最新公告匹配的标识发送新的通道更新。换句话说,通道在链上“换了一次身份证”,网络里的地址簿要靠时间序更新。
一个容易混淆的点
短频道标识常被拿来和通道标识 channel_id 混谈。后者是三十二字节、从资金交易哈希衍生的长标识,用在两个当事节点之间的双边消息里;short_channel_id 才是面向全网路由图的公共门牌号。读路由工具、看节点日志时,两个字段各管一层,不要互相替换。
一条排查路径
拿到一串形如 高度x序号x输出 的数字,想验证它对应的通道,标准动作是:按高度取区块,数到序号定位交易,检查输出索引是否为支付到 P2WSH 的那笔——闪电通道的出资输出在规范里被钉死为这种形态。三项都对上,坐标有效;再按公告里的节点身份与出资公钥交叉验签,所有权成立。路由工具显示“通道存在”与“公告可信”是两步检查,缺一步都会把未验证的信息带进路径决策。
快速问答
问:同一笔交易能开多条通道吗?标识怎么区分? 答:可以。多个输出各自对应不同的两字节输出索引,因此同一区块同一序号下会派生出多个标识,尾部数字不同。
问:通道关闭后标识还在吗? 答:标识是历史坐标,指向的那笔出资交易永久在链上;通道关闭后,网络会收到指向该输出的支出信息并把它从路由图里剪掉,但标识本身作为历史坐标不会失效。
风险提示
本文描述闪电网络公开规范,不构成任何组网、开台或流动性服务建议。具体消息字段以 BOLT 规范当前版本为准。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。