¿Qué son las Channel Factory y cómo funcionan?

Una de las preguntas de investigación abiertas para Lightning Network es que se necesitará una gran cantidad de transacciones en cadena para crear suficientes canales de pago para todos los usuarios de Lightning Network. Últimamente, he visto aparecer el término "Fábricas de canales"¹ en este contexto.

¿Qué son las fábricas de canales? ¿Cómo trabajan? ¿Cómo ayuda eso a escalar Lightning Network?


¹ Aparentemente, el término fue introducido por el documento Scalable Funding of Bitcoin Micropaid Channel Networks de C. Burchert, C. Decker y R. Wattenhofer

Respuestas (1)

¿Qué son las fábricas de canales?

En resumen, Channel Factory son canales de pago que se pueden utilizar para crear más canales de pago. Eso suena raro, pero en realidad es bastante simple:

En un canal de pago regular, siempre tiene una transacción firmada por todas las partes participantes que está lista para comprometer los saldos del canal actual en la cadena de bloques. Por ejemplo, en un canal entre Alice y Bob, esta transacción podría tener dos salidas, una que pague a Alice 0,25 BTC y otra que pague a Bob 0,75 BTC. Si se transmitiera esta transacción de ejemplo, cerraría el canal de pago entre Alice y Bob.

Sin embargo, es posible formatear la transacción lista para confirmar como una transacción que no solo cierra el canal de pago existente sino que también abre un nuevo canal de pago. En ese caso, la misma seguridad que permite que el canal de pago inicial tenga seguridad de configuración cero también extiende su seguridad al segundo canal de pago.

La característica clave de un canal de pago regular es la capacidad de actualizar de forma segura el estado (saldo) del canal muchas veces sin crear transacciones adicionales en la cadena, por lo que la característica clave de Channel Factory es la capacidad de crear y destruir de forma segura nuevos pagos. canales sin crear transacciones adicionales en la cadena.

¿Cómo trabajan?

Al menos dos personas y preferiblemente diez o más se reúnen para crear una transacción de depósito de canal de pago (fábrica de canales). Esto tiene la lógica del canal de pago regular que permite que todos los participantes gasten el dinero si todos están de acuerdo, o que un participante insatisfecho retire individualmente sus fondos si los otros participantes no cooperan.

Cuando la transacción de depósito tiene suficientes confirmaciones para satisfacer a todos los participantes, actualizan el estado del canal de pago inicial (fábrica de canales) para crear un grupo de canales de pago que no son de transmisión abiertos entre ellos. (Los canales deben estar entre ellos porque cada uno debe asegurarse de que ninguno de los bitcoins utilizados para abrir el canal se gaste dos veces, es decir, se gastó dos veces).

Dado que el canal de pago inicial (fábrica de canales) ya tiene suficientes confirmaciones, la apertura de los canales de pago secundarios es instantánea. Los segundos canales de pago se pueden usar como canales de pago normales (por ejemplo, para pagos enrutables Lightning Network), excepto que cuando llega el momento de cerrarlos, los participantes tienen la opción de comprometer el estado final en la cadena de bloques o simplemente actualizar sus saldos. en la fábrica de canales para iniciar un nuevo canal.

¿Cómo ayuda eso a escalar Lightning Network?

Supongamos que tenemos un grupo de usuarios que quieren abrir canales de pago entre ellos. Para nlos usuarios, necesitan abrir mcanales donde m = n(n-1)/2. Para el canal Lightning Network de generación actual abierto, probablemente gastarán al menos dos entradas y generarán al menos tres salidas (alrededor de 240 vbytes por mcanales). Para una fábrica de canales, tendrán aproximadamente nentradas (a 70 vbytes) y n + 1salidas (a aproximadamente 25 vbytes) más 10 vbytes de sobrecarga. Aquí está la contabilidad de ahorros:

ingrese la descripción de la imagen aquí

Esto no cuenta los costos de cierre del canal, que son más difíciles de calcular ya que los canales pueden permanecer abiertos por períodos de tiempo variables. Tampoco se incluyen los ahorros adicionales disponibles de la agregación de firmas de Schnorr; si eso se activa en Bitcoin, aumentará moderadamente la eficiencia de Channel Factory al disminuir la cantidad de espacio utilizado por las entradas. Tenga en cuenta que los números utilizados aquí son una aproximación aproximada.

Tenga en cuenta que aunque las fábricas de canales ofrecen costos significativamente más bajos incluso para un pequeño número de participantes, donde realmente sobresalen es en abaratar la construcción de una red densa de canales de pago entre usuarios. Es probable que esto mejore significativamente la calidad del servicio de una Lightning Network ampliamente distribuida al garantizar que la mayoría de las rutas desde el consumidor hasta el destinatario sean cortas, lo que ayuda a que la red ampliamente distribuida compita de manera más efectiva con una red más centralizada que tiene rutas cortas entre grandes hubs. como entidades.

Gracias por la explicación. El documento también dice: "La nueva capa aborda el problema de escalabilidad al permitir la financiación del canal fuera de la cadena de bloques sin confianza". ¿Qué quieren decir con "financiamiento de canal fuera de blockchain"? Según tengo entendido, la financiación de un canal también puede ocurrir fuera de blockchain actualmente: si su canal está agotado, puede "reembolsarlo" simplemente cobrando (comprando en un intercambio en LN).
@LucaMatteis Creo que significa que puede agregarse a una fábrica de canales existente sin necesidad de nuevas transacciones en cadena. Por ejemplo, imagine que Alice, Bob y Charlie inician una fábrica de canales. Ahora pueden abrir cualquier canal de pago que todos acuerden, incluidos los canales de apertura para Dan, que no formaba parte del conjunto original. Esto requiere asignar a Dan algunos de los BTC que se usaron para crear la fábrica de canales, pero eso solo significa que Dan compró los BTC a (digamos) Alice. Una vez que el canal de Dan está abierto, sus fondos están asegurados por la capacidad de comprometerse en la cadena si es necesario.
Entonces, ¿los nuevos usuarios podrían unirse a la red sin crear una transacción de cadena de bloques? Eso es interesante. ¡Gracias!
@LucaMatteis Lo siento, reflexionando, no creo que lo que describí anteriormente sea seguro: necesita que su clave pública sea parte del conjunto multisig que se usa para abrir la fábrica de canales para usar de manera segura los canales creados por ella. Ahora creo que la cláusula que citó se refiere simplemente a la capacidad de crear y destruir canales sin confianza dentro del conjunto de usuarios de una sola fábrica. Por ejemplo, Alice inicialmente abre un canal de 1 BTC a Bob y un canal de 2 BTC a Charlie; luego cierra esos canales y abre un canal de 1.5 BTC para cada uno, todo hecho fuera de la cadena.
¿Cuales son las desventajas? ¿Los usuarios que no cooperan son más peligrosos?
@DavidA.Harding Usted dice "la misma seguridad que permite que el canal de pago inicial tenga seguridad de configuración cero". ¿A qué seguridad de configuración cero te refieres? ¿Cómo es que las confirmaciones cero son seguras?
@GiovanniDiStasi No puedo pensar en ningún nuevo riesgo de seguridad. Un participante que no coopere puede evitar que la fábrica de canales cree nuevos canales en cualquier momento, pero no puede afectar a ningún canal ya establecido además del suyo, por lo que básicamente tiene la misma seguridad que LN. Los participantes en una fábrica de canales pueden obtener más información sobre los saldos de los demás que en LN puro, pero incluso hay menos datos que van a la cadena de bloques pública, por lo que las fábricas de canales parecen neutrales en términos de privacidad o mejoran ligeramente la privacidad.
@almel Todos los canales de pago que he escuchado descritos (Spillman, CLTV, HTLC, Duplex) usan alguna variación en la seguridad multisig. Alice y Bob depositan cada uno 0,5 BTC en una dirección multigrado 2 de 2 que requiere la firma de ambos para gastar. Esperan a que esto se confirme. Ahora Alice puede firmar un gasto de transacción desde esa dirección dándole a Bob 0,75 BTC y devolviéndole 0,25 BTC a ella. Bob puede aceptar de forma segura esa transacción de inmediato sin buscar confirmación porque la transacción también requiere que su firma esté completa, por lo que no hay forma de que Alice pueda recuperar los 0.25 BTC que le pagó.
@DavidA.Harding: Creo que debería aclarar que su mención de "seguridad de configuración cero" se refiere a las transacciones de compromiso creadas al actualizar el canal, no a la financiación inicial de la transacción.