7

In the Lightning Network, it's possible to pay in units a thousandth of a satoshi, a millisatoshi.

But you can't redeem them directly on the main chain when closing a channel, it will be subject to a round error, your value will be 'trimmed' of some millisatoshis.

But how they can exist before that? Is that part of the LN based on trust? The nodes store the number somehow, but what if the decided to change it? How can the digital signatures 'cover' the value, if they sign only the data of a on-chain transaction?

  • 2
    If I understand it correctly, you're asking: on a technical level, what is the difference between the partially signed transactions exchanged between LN nodes, before and after transacting a sub-satoshi amount? – chytrik Jan 8 at 11:32
6

Millisatoshi's are the unit in which channel balances are accounted for. They are a necessary accounting unit, if the aim is to enable very small lightning payments amounts, which represents a protocol design choice. If I wish to send, let's say, 1 satoshi on lightning, the routing fee should necessarily be denominated in a sub-satoshi unit, or else fees could only be 1 or 0 satoshis.

However, there is a difference between accounting for and actually delivering this balance on the Bitcoin blockchain. Two nodes may negotiate a balance in millisatoshi's, but the signed commitment transactions cannot actually deliver this balance, only to the closest Sat value.

Millisatoshis are not captured in HTLC's of commitment transactions, since these are denominated in sat's. So in the case of a unilateral channel close, the delivered balance will differ from the one negotiated between two lightning peers. A collaborative channel close can also not deliver a balance denominated in fractional Sats.

Therefore, millisatoshi's are a real accounting unit, which enables very small lightning payments (and even smaller fee capture along the way), whilst trading off deliverable balance accuracy during channel closing (The rounding can go both ways).

There is no trust involved, it is clear to each participant independently what the channel balance is (mSat), and how much of the balance is deliverable(Sat) in the Blockchain during any Channel state.

  • 2
    Note: I think it is also important not to equate a lightning channel balance to confirmed, spendable Bitcoin UTXO's. A payment channel balance is not Bitcoin (Denominated in Sat's). It is the "opportunity" of capturing this balance (with a certain accuracy) in a confirmed transaction after a successful channel close, which is notably less security than a confirmed transaction. Since the channel balance is not Bitcoin, it doesn't necessarily need to denominated as such. – James C. Jan 8 at 12:49
2

Nothing makes Millisatoshi real.

They are indeed backed on trust. They are needed due to rounding issues. It is not an issue because otherwise during fee calculation people would also loose up to half a Satoshi due to rounding.

Actually due to fees and dust limits even small Satoshi amounts can not be claimed. I guess this should be seen as collateral of using lightning. It was even discussed to remove Millisatoshi from the protocol during the last spec meeting in Australia. But this would make implementing lightning much harder.

  • Why would it make it harder? It seems to be simpler to use the same data types as the main chain code. – Osias Jota Jan 8 at 11:10
  • BTW, thinking about it, I think it's not actually 'trust' the word we should use, but I'll wait for other answers to elaborate on that. – Osias Jota Jan 8 at 11:11
  • People could lose 999mSat because the amount isn't rounded but floored. (with the 1 sat over being collected by the miner as part of the transaction fee). – Mark H Jan 9 at 11:43

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.