<p>Channels do not publicly announce their balance for several obvious reasons</p>

<ul>
<li><p>It would be a huge privacy concern if balances could be viewed
live on the network. People could monitor large parts of the network and
aggregate data about how balances change over time, which could then
be used to trace payments through the network and deanonymize users.</p></li>
<li><p>If every transaction by every node required a broadcast of the new
channel balance, then bandwidth usage would become extremely large.
The network would not scale for the same reasons Bitcoin can't have
massive blocks. It would make running a node impossible on a
commodity computer and internet connection.</p></li>
<li><p>Broadcasting channel balance would really be quite useless because
the concept of "real-time" does not exist in a distributed network. A
node could advertize its channel balances to its peers, but before
any peer has chance to act on that data, those balances could have
changed if they route a payment for another peer. The system is in
constant change, and there is no way to atomically check a channel
balance and then send a payment over that channel. It would be a bad
idea to attempt to add such locks because there is no central
coordinator of them, and it would result in all kinds of race
conditions happening, like livelocks and deadlocks.</p></li>
</ul>

<p>Channels only advertize their capacities, features, fees, minimum and maximum (optional) transaction values. There is no guarantee that a payment will route successfully even if you've provided a valid amount between the minimum and maximum with the correct fees.</p>

CC BY-SA 4.0
2018-10-17T19:01:20.947Z
2018-10-17T19:01:20.947Z
Mark H
<p>The channel balance is not a public information. If you look at the <code>channel_announcement-message</code> in <a href="https://github.com/lightningnetwork/lightning-rfc/blob/master/07-routing-gossip.md#the-channel_announcement-message" rel="nofollow noreferrer">BOLT7</a> you see that the following information of the channel is public: </p>

<p><code>[64:node_signature_1]
[64:node_signature_2]
[64:bitcoin_signature_1]
[64:bitcoin_signature_2]
[2:len]
[len:features]
[32:chain_hash]
[8:short_channel_id]
[33:node_id_1]
[33:node_id_2]
[33:bitcoin_key_1]
[33:bitcoin_key_2]
</code></p>

<p>There you can see neither capacity nor balance however the short_channel_id consists of the blockheight of the funding transaction and the index of the transaction and the index of the output within the transaction <a href="https://twitter.com/renepickhardt/status/1022478182249844736" rel="nofollow noreferrer">as described here</a>.</p>

<p>Also <a href="https://github.com/lightningnetwork/lightning-rfc/blob/master/07-routing-gossip.md#the-channel_update-message" rel="nofollow noreferrer">from BOLT7</a> you can take the following quote about the <code>channel_update_message</code>: </p>

<blockquote>
  <p>Note that the <code>htlc_maximum_msat</code> field is static in the current protocol over the life of the channel: it is not designed to be indicative of real-time channel capacity in each direction, which would be both a massive data leak and uselessly spam the network (it takes an average of 30 seconds for gossip to propagate each hop).</p>
</blockquote>

<p>I hope both points give you a definite answer (:</p>

CC BY-SA 4.0
2018-10-17T16:39:49.940Z
2018-10-17T16:39:49.940Z
Rene Pickhardt
<p>In Lightning Network, is the balance publicly announced in real-time?</p>

<p>On the one hand, it should be public as it is crucial to the routing mechanism.</p>

<p>But, in case that the balance might reveal some private information to the network..</p>

<p>I didn't find the answer in the BOLT documentation.</p>

<p>Thanks.</p>

<lightning-network><privacy><lightning-routing><ln-gossip>
Do the channel balances get publicly announced in real-time on Lightning Network?
user1387682
# Do the channel balances get publicly announced in real-time on Lightning Network?

(Asked by: username_0 on 2018-10-16)

In Lightning Network, is the balance publicly announced in real-time?

On the one hand, it should be public as it is crucial to the routing mechanism.

But, in case that the balance might reveal some private information to the network..

I didn't find the answer in the BOLT documentation.

Thanks.

**Tags:** lightning-network, privacy, lightning-routing, ln-gossip


---

## 2 answers

### Answer by username_1 on 2018-10-17. Score: 4

Channels do not publicly announce their balance for several obvious reasons

* It would be a huge privacy concern if balances could be viewed
  live on the network. People could monitor large parts of the network and
  aggregate data about how balances change over time, which could then
  be used to trace payments through the network and deanonymize users.
* If every transaction by every node required a broadcast of the new
  channel balance, then bandwidth usage would become extremely large.
  The network would not scale for the same reasons Bitcoin can't have
  massive blocks. It would make running a node impossible on a
  commodity computer and internet connection.
* Broadcasting channel balance would really be quite useless because
  the concept of "real-time" does not exist in a distributed network. A
  node could advertize its channel balances to its peers, but before
  any peer has chance to act on that data, those balances could have
  changed if they route a payment for another peer. The system is in
  constant change, and there is no way to atomically check a channel
  balance and then send a payment over that channel. It would be a bad
  idea to attempt to add such locks because there is no central
  coordinator of them, and it would result in all kinds of race
  conditions happening, like livelocks and deadlocks.

Channels only advertize their capacities, features, fees, minimum and maximum (optional) transaction values. There is no guarantee that a payment will route successfully even if you've provided a valid amount between the minimum and maximum with the correct fees.


---

### Answer by username_2 on 2018-10-17. Score: 3

The channel balance is not a public information. If you look at the `channel_announcement-message` in [BOLT7](https://github.com/lightningnetwork/lightning-rfc/blob/master/07-routing-gossip.md#the-channel_announcement-message) you see that the following information of the channel is public:

`[64:node_signature_1]
[64:node_signature_2]
[64:bitcoin_signature_1]
[64:bitcoin_signature_2]
[2:len]
[len:features]
[32:chain_hash]
[8:short_channel_id]
[33:node_id_1]
[33:node_id_2]
[33:bitcoin_key_1]
[33:bitcoin_key_2]`

There you can see neither capacity nor balance however the short\_channel\_id consists of the blockheight of the funding transaction and the index of the transaction and the index of the output within the transaction [as described here](https://twitter.com/renepickhardt/status/1022478182249844736).

Also [from BOLT7](https://github.com/lightningnetwork/lightning-rfc/blob/master/07-routing-gossip.md#the-channel_update-message) you can take the following quote about the `channel_update_message`:

> Note that the `htlc_maximum_msat` field is static in the current protocol over the life of the channel: it is not designed to be indicative of real-time channel capacity in each direction, which would be both a massive data leak and uselessly spam the network (it takes an average of 30 seconds for gossip to propagate each hop).

I hope both points give you a definite answer (:


---

