一、一条通道装不下,怎么办
闪电付款沿通道接力:每跳锁一份 HTLC。单路径凑不出足额是常态——通道余额一边倒、单份 HTLC 有金额与条数上限、路由软件凑不出一条整路。拆包付款由此成为刚需:一笔钱拆成多个分支,沿不同路径分头送达,缺一路则整单作废。
拆分还要对付一个协议层的暗礁:闪电的原子性原本建立在一笔付款一把哈希锁的模型上——同一个哈希沿路传下去,末端用秘密解开,解锁信号像多米诺一样倒回每一跳。拆成多支之后,同一个哈希会出现在多条路径上,若各支彼此不知情,中间节点就能把两笔本无关的付款拼成一条线索,甚至试探出拆分者的意图。分片规则的设计核心,就是让同一笔付款的若干分支在协议上互相绑定、在旁观者眼里彼此陌生。

二、基础 MPP:密文当铆钉
BOLT 4 的 basic_mpp 路线把原子性铆在一枚支付密文上。收款方在发票里带出 payment_secret;付款方拆出的每个分支都必须携带同一枚密文与各自的金额份额,收款方逐支核对密文并累计——凑不齐发票声明的总额,一支都不放行。规范还给它配了等待窗口:支持 basic_mpp 的收款方收到头几支时按 mpp_timeout 秒的超时判定,给慢路径留时间;超窗仍未凑齐,整包 HTLC 随超时退回,付款方不损失。密文对不上、或该付款要求密文而分支没带,末端直接判无效——伪造一支密文对不上的假分支,除了浪费路由费换不来任何进度。
三、分片怎么配
分支的金额切分没有规范硬约束,路由软件自行决定怎么配:哪些通道还有余额、每条通道能吃多少份 HTLC、费率与延迟怎么权衡。拆分同时是一次路由算术和一次反探测设计:单看任何一支,都只像一笔普通付款,金额、时间、路径都没有把兄弟支串联起来的显式线索。但对中间节点而言,同一收款方在短时间内收到多笔金额合计可疑的小额流入,仍是统计推断的素材——拆分降低的是单次探测的命中率,不消除长期统计的信号积累。
四、AMP:把秘密本身切碎
AMP 变体更进一步——秘密被切成 n 份碎片,n 个分支各带一片,收款方集齐碎片才能重构出完整秘密去解锁;碎片不全,一个都解不开。与 basic_mpp 的”同一枚密文重复出示”相比,AMP 的每支在网络上看连密文都不重复,份额信息交给报价体系(BOLT 12 一族)带进订单。这条路线以独立规范与实现实践存在,不在 BOLT 4 正文里,支持度随实现与报价链路而异。
五、对路由的现实影响
拆分把路由问题翻译成凑路算术:一笔大额可以拆五个十分之一摊到不同邻居,也可以只分两路走大容量通道——前者考验多路可达,后者考验单路余额与槽位。付款方软件在费率、延迟与份额形状之间做三方权衡,失败回退的顺序同样被写进策略:先窄后宽、先便宜后贵,或者反过来,取决于钱包的哲学。
六、失败回退的账
任何一支在途中阵亡,收款方的等待窗口耗尽后整包退回;已落地的支路随超时蒸发,不留悬账。多部分支付没有部分成交的中间态——要么全成、要么全回,原子性的账由密文与超时两头结。
风险提示:本文仅为技术机制科普,不构成任何投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。