<p>Nothing makes Millisatoshi real. </p>

<p>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. </p>

<p>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. </p>

CC BY-SA 4.0
2019-01-08T11:10:40.170Z
Why would it make it harder? It seems to be simpler to use the same data types as the main chain code.
Osias Jota
CC BY-SA 4.0
2019-01-08T11:11:48.727Z
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
CC BY-SA 4.0
2019-01-09T11:43:50.600Z
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
CC BY-SA 4.0
2019-01-08T11:08:52.647Z
2019-01-08T11:08:52.647Z
Rene Pickhardt
<p>Millisatoshis 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.</p>
<p>However, there is a difference between accounting for and actually delivering this balance on the Bitcoin blockchain. Two nodes may negotiate a balance in millisatoshis, but the signed commitment transactions cannot actually deliver this balance, only to the closest Sat value.</p>
<p>Millisatoshis are not captured in HTLCs of commitment transactions, since these are denominated in sats. 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.</p>
<p>Therefore, millisatoshis 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 (outputs in <a href="https://github.com/lightning/bolts/blob/master/03-transactions.md#commitment-transaction-outputs" rel="nofollow noreferrer">commitment transactions</a> and <a href="https://github.com/lightning/bolts/blob/master/03-transactions.md#closing-transaction" rel="nofollow noreferrer">closing transactions</a> are always rounded down to the next satoshi).</p>
<p>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.</p>

CC BY-SA 4.0
2019-01-08T12:49:38.490Z
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.
CC BY-SA 4.0
2019-01-08T12:42:16.930Z
2022-12-30T19:51:42.957Z
2022-12-30T19:51:42.957Z
James C.
<p>In the Lightning Network, it's possible to pay in units a thousandth of a satoshi, a millisatoshi.</p>

<p>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.</p>

<p>But how they can exist <em>before</em> that? Is that part of the LN based on <strong>trust</strong>? 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?</p>

CC BY-SA 4.0
2019-01-08T11:32:22.353Z
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
<lightning-network><divisibility>
What makes millisatoshi real?
Osias Jota
# What makes millisatoshi real?

(Asked by: username_0 on 2019-01-08)

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?

**Tags:** lightning-network, divisibility

> **Comments:**
> **username_1**: 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?  

---

## 2 answers

### Answer by username_4 on 2019-01-08. Score: 8 | Accepted answer

Millisatoshis 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 millisatoshis, but the signed commitment transactions cannot actually deliver this balance, only to the closest Sat value.

Millisatoshis are not captured in HTLCs of commitment transactions, since these are denominated in sats. 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, millisatoshis 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 (outputs in [commitment transactions](https://github.com/lightning/bolts/blob/master/03-transactions.md#commitment-transaction-outputs) and [closing transactions](https://github.com/lightning/bolts/blob/master/03-transactions.md#closing-transaction) are always rounded down to the next satoshi).

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.

> **Comments:**
> **username_4**: 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.  

---

### Answer by username_2 on 2019-01-08. Score: 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.

> **Comments:**
> **username_0**: Why would it make it harder? It seems to be simpler to use the same data types as the main chain code.  
> **username_0**: 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.  
> **username_3**: 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).  

---

