¿Los saldos de los canales se anuncian públicamente en tiempo real en Lightning Network?

En Lightning Network, ¿el saldo se anuncia públicamente en tiempo real?

Por un lado, debe ser público ya que es crucial para el mecanismo de enrutamiento.

Pero, en caso de que el saldo pueda revelar alguna información privada a la red...

No encontré la respuesta en la documentación de BOLT.

Gracias.

Respuestas (2)

Los canales no anuncian públicamente su saldo por varias razones obvias

  • Sería un gran problema de privacidad si los saldos pudieran verse en vivo en la red. Las personas podrían monitorear grandes partes de la red y agregar datos sobre cómo cambian los saldos con el tiempo, que luego podrían usarse para rastrear pagos a través de la red y desanonimizar a los usuarios.

  • Si cada transacción de cada nodo requiriera una transmisión del nuevo balance del canal, entonces el uso del ancho de banda sería extremadamente grande. La red no escalaría por las mismas razones por las que Bitcoin no puede tener bloques masivos. Haría imposible ejecutar un nodo en una computadora básica y una conexión a Internet.

  • El balance de canales de transmisión sería realmente bastante inútil porque el concepto de "tiempo real" no existe en una red distribuida. Un nodo podría anunciar los saldos de su canal a sus pares, pero antes de que cualquier par tenga la oportunidad de actuar sobre esos datos, esos saldos podrían haber cambiado si enrutan un pago para otro par. El sistema está en constante cambio, y no hay forma de verificar atómicamente el saldo de un canal y luego enviar un pago a través de ese canal. Sería una mala idea intentar agregar tales bloqueos porque no hay un coordinador central de ellos, y daría lugar a todo tipo de condiciones de carrera, como bloqueos en vivo y puntos muertos.

Los canales solo anuncian sus capacidades, características, tarifas, valores de transacción mínimos y máximos (opcional). No hay garantía de que un pago se enrute correctamente incluso si ha proporcionado una cantidad válida entre el mínimo y el máximo con las tarifas correctas.

El balance de canales no es una información pública. Si miras channel_announcement-messageen BOLT7 ves que la siguiente información del canal es pública:

[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]

Allí no puede ver ni la capacidad ni el saldo, sin embargo, short_channel_id consta de la altura del bloque de la transacción de financiación y el índice de la transacción y el índice de la salida dentro de la transacción como se describe aquí .

También de BOLT7 puede tomar la siguiente cita sobre channel_update_message:

Tenga en cuenta que el htlc_maximum_msatcampo es estático en el protocolo actual durante la vida útil del canal: no está diseñado para ser indicativo de la capacidad del canal en tiempo real en cada dirección, lo que sería tanto una fuga masiva de datos como spam inútil en la red (se necesita un promedio de 30 segundos para que el chisme se propague en cada salto).

Espero que ambos puntos te den una respuesta definitiva (: