¡Bienvenido, amigo! Estos documentos de Basis of Lightning Technology
(BOLT) describen un protocolo de capa 2 para la transferencia de Bitcoin fuera de la cadena (off-chain
) mediante cooperación mutua, confiando en transacciones en la cadena (on-chain
) para la aplicación si es necesario.
Algunos requisitos son sutiles; hemos tratado de resaltar las motivaciones y el razonamiento detrás de los resultados que ves aquí. Seguramente nos hemos quedado cortos; si encuentras alguna parte confusa o incorrecta, por favor contáctanos y ayúdanos a mejorar.
Esta es la traducción de la versión 0.
- BOLT #1: Protocolo Base
- BOLT #2: Protocolo de pares para la gestión de canales
- BOLT #3: Formatos de Transacciones y Scripts de Bitcoin
- BOLT #4: Protocolo Onion Routing
- BOLT #5: Recomendaciones para Manejar las transacciones On-chain
- BOLT #7: Descubrimiento de canales y nodos P2P
- BOLT #8: Transporte cifrado y autenticado
- BOLT #9: Feature Flags Asignados
- BOLT #10: DNS Bootstrap y Ubicación Asistida de Nodos
- BOLT #11: Invoice Protocol for Lightning Payments
Lightning es un protocolo para realizar pagos rápidos con Bitcoin utilizando una red de canales.
Lightning funciona estableciendo canales: dos participantes crean un canal de pago en Lightning que contiene una cierta cantidad de bitcoin (por ejemplo, 0.1 bitcoin) que han bloqueado en la red de Bitcoin. Solo es gastable con las firmas de ambos.
Inicialmente, cada uno de ellos tiene una transacción de bitcoin que envía todos los bitcoins (por ejemplo, 0.1 bitcoin) de vuelta a una de las partes. Más adelante, pueden firmar una nueva transacción de bitcoin que distribuye estos fondos de manera diferente, por ejemplo, 0.09 bitcoin para una parte y 0.01 bitcoin para la otra, e invalidar la transacción de bitcoin anterior para que no se gaste.
Consulta BOLT #2: Establecimiento de Canales para obtener más información sobre el establecimiento de canales y BOLT #3: Salida de la Transacción de Financiación para conocer el formato de la transacción de bitcoin que crea el canal. Consulta BOLT #5: Recomendaciones para el Manejo de Transacciones para conocer los requisitos cuando los participantes no están de acuerdo o fallan, y la transacción de bitcoin con firmas cruzadas debe ser gastada.
Un canal Lightning solo permite pagos entre dos participantes, pero los canales se pueden conectar entre sí para formar una red que permite pagos entre todos los miembros de la red. Esto requiere la tecnología de un pago condicional, que se puede agregar a un canal, por ejemplo "obtienes 0,01 bitcoin si revelas el secreto dentro de las 6 horas". Una vez que el destinatario presenta el secreto, esa transacción de bitcoin se reemplaza por una que carece del pago condicional y se agregan los fondos a la salida de ese destinatario.
Consulte el BOLT #2: Agregar un HTLC para conocer los comandos que usa un participante para agregar un pago condicional, y el BOLT #3: Commitment Transaction o Transacción de compromiso
para conocer el formato completo de la transacción bitcoin.
Un pago condicional de este tipo se puede enviar de forma segura a otro participante con un límite de tiempo más bajo, por ejemplo "obtienes 0,01 bitcoin si revelas el secreto dentro de las 5 horas". Esto permite encadenar canales en una red sin confiar en los intermediarios.
Consulte BOLT #2: Reenvío de HTLCs para obtener detalles sobre el reenvío de pagos, BOLT #4: Estructura de paquetes para saber cómo se transportan las instrucciones de pago.
Para realizar un pago, un participante necesita saber a través de qué canales puede enviar. Los participantes se cuentan entre sí sobre la creación y las actualizaciones de canales y nodos.
Consulte el BOLT #7: Descubrimiento de canales y nodos P2P para obtener detalles sobre el protocolo de comunicación, y el BOLT #10: Arranque DNS y ubicación asistida de nodo para el arranque inicial de la red.
Un participante recibe facturas que le indican qué pagos realizar.
Consulte BOLT #11: Protocolo de factura para pagos Lightning para conocer el protocolo que describe el destino y el propósito de un pago, de modo que el pagador pueda demostrar posteriormente que el pago fue exitoso.
-
-
El hash de identificación único de la cadena de bloques de destino (generalmente el hash génesis). Esto permite que nodos creen y hagan referencia a canales en varias cadenas de bloques. Los nodos deben ignorar cualquier mensaje que haga referencia a un
chain_hash
que les sea desconocido. A diferencia debitcoin-cli
, el hash no se invierte sino que se usa directamente.Para la cadena principal de la cadena de bloques de Bitcoin, el valor
chain_hash
DEBE ser (codificado en hexadecimal):6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000
.
-
-
- Un método rápido, fuera de la cadena, de intercambio mutuo entre dos pares. Para realizar transacciones de fondos, los pares intercambian firmas para crear una transacción de compromiso actualizada.
- Ver métodos de cierre: cierre mutuo, cierre de transacción revocada, cierre unilateral
- Ver relacionado: ruta
-
- Una transacción generada como parte de un cierre mutuo. Una transacción de cierre es similar a una transacción de compromiso, pero sin pagos pendientes.
- Ver relacionado: transacción de compromiso, transacción de financiación, transacción de penalización
-
- Un contador incremental de 48 bits para cada transacción de compromiso; Los contadores son independientes para cada par en el canal y comienzan en 0.
- Ver contenedor: transacción de compromiso
- Ver relacionado: transacción de cierre, transacción de financiación, transacción de penalización
-
- Cada transacción de compromiso tiene un valor de clave privada de revocación de compromiso único que permite al otro par gastar todos los resultados inmediatamente: revelar esta clave es cómo se revocan las transacciones de compromiso antiguas. Para admitir la revocación, cada resultado de la transacción de compromiso hace referencia a la clave pública de revocación del compromiso.
- Ver contenedor: transacción de compromiso
- Ver autor: secreto por compromiso
-
- Una transacción que gasta la transacción de financiación. Cada par tiene la firma del otro par para esta transacción, de modo que cada uno siempre tiene una transacción de compromiso que puede gastar. Después de negociar una nueva transacción de compromiso, la anterior se revoca.
- Ver partes: número de compromiso, clave privada de revocación de compromiso, HTLC, por-secreto de compromiso, punto de salida
- Ver relacionado: transacción de cierre, transacción de financiación, transacción de penalización
- Ver tipos: transacción de compromiso revocada
-
- Este es un cierre forzoso del canal. Muy pronto (antes de abrir), esto puede no requerir ninguna acción más que olvidar la existencia del canal. Por lo general, requiere firmar y transmitir la última transacción de compromiso, aunque durante el cierre mutuo también se puede realizar firmando y transmitiendo una transacción de cierre mutuo. Consulte BOLT #5.
-
- Esto significa cerrar la comunicación con el par (como cerrar el socket TCP). No implica cerrar ningún canal con el par, pero sí provoca el descarte del estado no comprometido para conexiones con canales: consulte BOLT #2.
-
- El destinatario final de un paquete que enruta un pago desde un [nodo de origen](#nodo-de origen) a través de algún número de saltos. También es el par receptor final de una cadena.
- Ver categoría: nodo
- Ver relacionado: nodo origen, nodo enrutador
-
- Una transacción irreversible en cadena que paga a ambos peers en un channel. Sólo puede gastarse de mutuo acuerdo.
- Ver relacionado: transacción de cierre, transacción de compromiso, transacción-de-penalización
-
- Un nodo. Generalmente, un nodo intermedio que se encuentra entre un nodo origen y un nodo final.
- Ver categoría: nodo
-
- Un pago condicional entre dos pares: el destinatario puede gastar el pago presentando su firma y una preimagen de pago, de lo contrario, el pagador puede cancelar el contrato gastándolo después de un tiempo determinado. Estos se implementan como resultados de la transacción de compromiso.
- Ver contenedor: transacción de compromiso
- Ver partes: Hash de pago, Preimagen de pago
-
incluido el tipo de pago, el monto del pago, el vencimiento y otra información. Así es como se realizan los pagos en Lightning Network, en lugar de utilizar direcciones estilo Bitcoin.
-
- En inglés
It's ok to be odd
. Una regla aplicada a algunos campos numéricos que indica compatibilidad opcional u obligatoria para funciones. Los números pares indican que ambos puntos finales DEBEN admitir la característica en cuestión, mientras que los números impares indican que el otro punto final PUEDE ignorar la característica.
- En inglés
-
- Un milisatoshi, utilizado a menudo como nombre de campo.
-
- Un cierre cooperativo de un canal, logrado mediante la transmisión de un gasto incondicional de la transacción de financiación con una salida para cada par (a menos que una salida sea demasiado pequeño y por lo tanto no está incluido).
- Ver relacionado: cierre de transacción revocada, cierre unilateral
-
- Una computadora u otro dispositivo que sea parte de la red Lightning.
- Ver relacionado: pares
- Ver tipos: nodo final, salto, nodo origen, nodo enrutador, nodo receptor, nodo emisor
-
- El nodo que origina un paquete que enrutará un pago a través de una cierta cantidad de saltos a un nodo final. También es el primer par emisor de una cadena.
- Ver categoría: nodo
- Ver relacionado: nodo final, nodo enrutador
-
- Un hash de transacción y un índice de salida que identifican de forma única una salida de transacción no gastada. Necesario para componer una nueva transacción, como entrada.
- Ver relacionado: transacción de financiación, transacción de compromiso
-
- El HTLC contiene el hash de pago, que es el hash de la preimagen de pago.
- Ver contenedor: HTLC
- Ver autor: Preimagen de pago
-
- Comprobante de recepción del pago, en poder del destinatario final, que es la única persona que conoce este secreto. El destinatario final libera la preimagen para liberar fondos. La preimagen de pago tiene un hash como hash de pago en el HTLC.
- Ver contenedor: HTLC
- Ver derivación: hash de pago
-
- Una transacción que gasta todos los resultados de una transacción de compromiso revocada, utilizando la clave privada de revocación de compromiso. Un par usa esto si el otro par intenta "hacer trampa" transmitiendo una transacción de compromiso revocada.
- Ver relacionado: transacción de cierre, transacción de compromiso, transacción-de-financiación
-
- Cada transacción de compromiso deriva sus claves de un secreto por medio del compromiso, que se genera de manera que la serie de secretos por compromiso para todos los compromisos anteriores se pueda almacenar de forma compacta.
- Ver contenedor: transacción de compromiso
- Ver derivación: clave privada de revocación de compromiso
-
- Un nodo que está procesando un paquete que se originó con un nodo origen y que se envía hacia un nodo final para enrutar un pago. Actúa como un par receptor para recibir el mensaje, luego un par remitente para enviar el paquete.
- Ver categoría: nodo
- Ver relacionado: nodo final, nodo origen
-
- Un nodo que está recibiendo un mensaje.
- Ver categoría: nodo
- Ver relacionado: nodo emisor
-
- Un nodo que está recibiendo un mensaje de un par conectado directamente.
- Ver categoría: pares
- Ver relacionado: par emisor
-
- Una transacción de compromiso antigua que ha sido revocada porque se ha negociado una nueva transacción de compromiso.
- Ver categoría: transacción de compromiso
-
- Un cierre no válido de un canal, logrado mediante la transmisión de una transacción de compromiso revocada. Dado que el otro par conoce la clave secreta de revocación de compromiso, puede crear una transacción de penalización.
- Ver relacionado: cierre mutuo, cierre unilateral
-
- Una ruta a través de Lightning Network que permite un pago desde un nodo de origen a un nodo final a través de uno o más saltos.
- Ver relacionado: canal
-
- Un nodo que está enviando un mensaje.
- Ver categoría: nodo
- Ver relacionado: nodo receptor
-
- Un nodo que envía un mensaje a un par conectado directamente.
- Ver categoría: pares
- Ver relacionado: par receptor.
-
- Un cierre no cooperativo de un canal, logrado mediante la transmisión de una transacción de compromiso. Esta transacción es más grande (es decir, menos eficiente) que una transacción de cierre, y el par cuyo compromiso se transmite no puede acceder a sus propios resultados durante un tiempo previamente negociado.
- Ver relacionado: cierre mutuo, cierre de transacción revocada
Why this network could be democratic...
Numismatic...
Cryptographic!
Why it could be released Lightning!
(Release Lightning!)
We'll have some timelocked contracts with hashed pubkeys, oh yeah.
(Keep talking, whoa keep talkin')
We'll segregate the witness for trustless starts, oh yeah.
(I'll get the money, I've got to get the money)
With dynamic onion routes, they'll be shakin' in their boots;
You know that's just the truth, we'll be scaling through the roof.
Release Lightning!
(Go, go, go, go; go, go, go, go, go, go)
[Chorus:]
Oh released Lightning, it's better than a debit card..
(Release Lightning, go release Lightning!)
With released Lightning, micropayments just ain't hard...
(Release Lightning, go release Lightning!)
Then kaboom: we'll hit the moon -- release Lightning!
(Go, go, go, go; go, go, go, go, go, go)
We'll have QR codes, and smartphone apps, oh yeah.
(Ooo ooo ooo ooo ooo ooo ooo)
P2P messaging, and passive incomes, oh yeah.
(Ooo ooo ooo ooo ooo ooo ooo)
Outsourced closure watch, gives me feelings in my crotch.
You'll know it's not a brag when the repo gets a tag:
Released Lightning.
[Chorus]
[Instrumental, ~1m10s]
[Chorus]
(Lightning! Lightning! Lightning! Lightning!
Lightning! Lightning! Lightning! Lightning!)
C'mon guys, let's get to work!
-- Anthony Towns [email protected]
[ FIXME: Insert Author List ]
This work is licensed under a Creative Commons Attribution 4.0 International License.