跳转到正文
buybitcoinsmart

术语表 /闪电网络与 Layer 2

毫聪

又称 msat。

毫聪是什么?
毫聪是一聪的千分之一,是闪电网络用来计量通道余额和路由手续费的单位,也是比特币区块链本身无法记录的金额。

闪电网络的记账比区块链再细一级,精确到聪的千分之一。BOLT 2直接规定了换算比例:push_msat 不得超过 funding_satoshis 的1000倍,而链上只能对整数聪的金额强制执行。您余额中不足一聪的毫聪部分在通道内是真实存在的,但通道一关闭就会被舍去。

运作方式

毫聪是闪电网络通道内部的记账单位,而不是区块链上的结算单位。

通道内每一笔付款金额都以毫聪书写,并在字段名中注明。向通道添加付款的消息 update_add_htlc 带有一个64位的 amount_msat,而开通通道时协商的 push_msat、htlc_minimum_msat 和 max_htlc_value_in_flight_msat 也使用同一单位。BOLT 2在定义旁说明了其中的限制:金额以毫聪计,"though on-chain enforcement is only possible for whole satoshi amounts greater than the dust limit"(但链上只能对大于粉尘限额的整数聪金额强制执行),承诺交易会将其向下取整。

换算系数并非传闻。开通通道的节点必须将 push_msat 设置为不超过 funding_satoshis 的1000倍,接收该消息的对等节点在 push_msat 大于 funding_satoshis 乘以1000时必须使该通道失败。1,000比1的比例从双方两端都写入了握手流程。

发票沿用同一下限。BOLT 11的金额以比特币加倍数字母表示,其中最小的 p(皮可)带有其他字母所没有的规则:金额的最后一位数字必须为零。一皮可比特币是一毫聪的十分之一,所以末尾的零迫使请求金额成为整数毫聪。规范对原因的说明很直接:HTLC 以毫聪计价,因此不足一毫聪的金额无法在网络上转移,测试向量中也包含一张因"Invalid sub-millisatoshi precision"(亚毫聪精度无效)而被拒绝的发票。

多出来的三位小数在手续费计算中发挥作用。转发节点收取的比例费率以每转发一聪的百万分之几聪计,所以1的费率用于1,000聪的付款,结果恰为一毫聪。若将其取整为整数聪,手续费要么被放大一千倍,要么被直接舍掉。

在哪里会遇到它

凡是闪电网络工具展示真实数值而不是取整后的显示值,就会出现毫聪数字。

解码 BOLT 11发票时,路由提示便以这一单位出现。规范自带的示例列出了两个跳点,基础手续费分别为1毫聪和2毫聪,而其中为 Blockstream 商店订单开具的示例发票带有一条路由提示,基础手续费为1000,即整整一聪。通道的 gossip 更新以同一单位发布 htlc_minimum_msat 和 fee_base_msat,所以仪表盘读取这些字段时,显示的数字比旁边以聪计的数字大一千倍。

面向普通用户的钱包隐藏了这个单位,却没有隐藏其中的算术。Phoenix 公布一张费率表,而不是在付款时才确定手续费,其闪电网络转出的费用为0.4%加4聪;对一笔137聪的付款,百分比部分折合548毫聪,这个数量在链上根本没有对应的表示。Muun 将链上和闪电网络呈现为一个余额,这样做把两者的界线完全隐藏了起来,但并没有消除它。

毫聪 vs 聪

聪是比特币区块链能够记录的最小金额,而毫聪是它的千分之一,只存在于闪电网络的消息和通道双方各自保存的账目中。

这一差别在关闭通道时才会显现。1,234,567毫聪的通道余额只能按1,234聪强制执行,不能再多,因为在链上结算该通道的承诺交易只支付整数聪;剩余的567毫聪没有可存放的链上输出,只有在通道保持开启时才能花费。这个差额只值不到一美分,但它仍然是这两个单位在任何涉及区块链的场合都不能互相替换的原因。

请勿混淆

常见问题

一聪等于多少毫聪?

恰好是1,000。闪电网络规范将这一比例写入了开通通道的握手流程:节点必须将 push_msat 设置为不超过 funding_satoshis 的1000倍,接收该消息的对等节点在 push_msat 大于 funding_satoshis 乘以1000时必须使该通道失败。

我真的能提币一毫聪吗?

不能,因为比特币区块链只记录整数聪。毫聪余额在闪电网络通道开启期间是真实存在的,但 BOLT 2指出,链上只能对高于粉尘限额的整数聪金额强制执行,承诺交易会将余数向下取整。

闪电网络为什么要使用这么小的单位?

因为比例路由手续费按每转发一聪的百万分之几聪来报价,所以小额支付的手续费会落在聪与聪之间。对1,000聪的支付按1的费率计算,手续费为一毫聪;若取整到整数聪,要么手续费被抹去,要么被放大一千倍。

接着阅读

相关术语

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

阅读本页英文版