What makes millisatoshi real?












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?










share|improve this question




















  • 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
















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?










share|improve this question




















  • 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














7












7








7


1






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?










share|improve this question
















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?







lightning-network divisibility






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 8 at 17:53









Murch

34.8k27114325




34.8k27114325










asked Jan 8 at 10:57









Osias JotaOsias Jota

694115




694115








  • 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














  • 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








2




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





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










2 Answers
2






active

oldest

votes


















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.






share|improve this answer





















  • 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.






share|improve this answer
























  • 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








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "308"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fbitcoin.stackexchange.com%2fquestions%2f83475%2fwhat-makes-millisatoshi-real%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









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.






share|improve this answer





















  • 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
















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.






share|improve this answer





















  • 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














6












6








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.






share|improve this answer















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.







share|improve this answer














share|improve this answer



share|improve this answer








edited Jan 8 at 12:53

























answered Jan 8 at 12:42









James C.James C.

1,247113




1,247113








  • 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





    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




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





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.






share|improve this answer
























  • 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


















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.






share|improve this answer
























  • 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
















2












2








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.






share|improve this answer













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.







share|improve this answer












share|improve this answer



share|improve this answer










answered Jan 8 at 11:08









Rene PickhardtRene Pickhardt

74413




74413













  • 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





















  • 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



















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





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





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







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




















draft saved

draft discarded




















































Thanks for contributing an answer to Bitcoin Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fbitcoin.stackexchange.com%2fquestions%2f83475%2fwhat-makes-millisatoshi-real%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

How to change which sound is reproduced for terminal bell?

Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents

Can I use Tabulator js library in my java Spring + Thymeleaf project?