Buenas a todos mis amigos de Steemit, en esta ocasión llego con mi tarea para el profesor @sapwood acerca de Lightning Network una blockchain oráculo que funciona como una segunda capa para la red de Bitcoin, con la que se permite adoptar el uso de contratos inteligentes en una red (de cierta manera realmente fuera de ella) en la que es imposible, permitiendo así efectuar pagos más rápidos utilizando el Bitcoin como moneda base. Muchas gracias al profesor por tan buena y explicativa clase, la tarea fue ardua pero estoy feliz de haberla completado. Empiezo.
Imagen diseñada en PowerPoint Fondo de pixabay.com
(1) Explique qué quiere decir con Lightning Network, Lightning Node, Lightning Channels. ¿Cómo logra un asentamiento casi instantáneo, una escalabilidad casi infinita? ¿Cuáles son los diferentes usos?
¿Que es Lightning Network?
Es una segunda capa que funciona en la red de Bitcoin pensada para mejorar los problemas de escalabilidad que tiene esta blockchain, dado que dichos problemas son imposibles de mejorar debido a como esta construida la red, Lightning Network funciona como una segunda capa pensada para implementar contratos inteligentes en Bitcoin de manera indirecta, así poder implementar solucines en la red con las que solucionar los problemas actuales de una manera increíble, logrando incluso a superar la mayoría de los sistemas de pago más escalables, como lo es el caso de Visa quien puede procesar miles de transacciones por segundo, con esta solución se espera que Bitcoin pueda superar los billones de transacciones por segundo.
Fuente
¿Que es Lightning Node?
Un nodo es un ente que se encarga de validar las transacciones realizadas en la red de lightning, como en cualquier otra blockchain, con la diferencia de que como la red funciona con canales de pago es un poco diferente de las redes convencionales que permiten realizar el pago a cualquier usuario y todos los nodos se encargan de validar la red. En Lightning network un nodo es quien permite que un usuario envié dinero a otro sin la necesidad de establecer un canal de pago directo con dicho usuario, solo se necesita establecer un bucle que conecte el usuario remitente y el recibidor.
¿Que es Lightning Channel?
Un canal de pago es una función de la red que permite a dos usuarios bloquear un capital “x” en la red para permitir realizar pagos en ese canal sin la necesidad de cobrar comisiones y que sea de manera instantánea cada pago, claro que solo se podrá gastar la misma cantidad que se bloquea en dicho capital.
Básicamente la implementación de los nodos y canales Lightning son lo que hacen especial a esta red complementándose uno a otro.
¿Cómo logra una transacción casi instantáneo, una escalabilidad casi infinita? ¿Cuáles son los diferentes usos?
Todas las blockchain por lo general requieren que sus nodos se conecten entre sí y validen un bloque nuevo donde van las transacciones hechas en cierto periodo de tiempo, este trabajo se complica en redes como la de Bitcoin que tienen una gran demanda y además cuenta con un protocolo complicado como el PoW basado en la resistencia a las fallas bizantinas que requiere que sus nodos realicen complicadas operaciones matemáticas para poder validar una transacción, hay un dicho que dice que en un bosque en el que cae un árbol y nadie lo oye no se pudo producir un sonido, exactamente así pasa con Lightning newtwork, dado que un canal de pago son básicamente dos nodos que están conectados entre sí no existe la necesidad de que nadie más que ellos valide la transacción, haciendo a esta prácticamente instantánea.
La escalabilidad casi infinita viene en base a lo mismo, dado que no existe la necesidad de perturbar a la red principal, todo lo que se necesita es que los mismos nodos interactúen entre sí para realizar pagos entre ellos, o entre nodos especiales que los conecten a otros canales de pago para realizar operaciones entre canales de pago, dicha operación solo requeriría de pocos nodos y poco esfuerzo en la red. Solo se requeriría un pago simbólico a dicho nodo, y las comisiones de red son tan bajas que permiten realizar transacciones sumamente bajas.
Dada la naturaleza sumamente útil de esta solución que brinda Lightning Network a Bitcoin se permite una serie de operaciones que hoy en día son imposibles o muy complicados en Bitcoin como por ejemplo:
Permite realizar pagos rapidos entre dos nodos conectados, por ejemplo si necesitara compartir un capital entre dos negocios con Lightning Network resultaría muy fácil, permitiría incluso mover altas cantidades de dinero sin la necesidad de comisiones por transaccion.
Abre la posibilidad de realizar micropagos, permitiría la transacción de cantidades bajas de Satoshis dado que el pago se realiza en canales de pago que no precisan de comisiones.
Brinda una gran cantidad de soluciones empresariales e individuales, básicamente todo lo que se necesita es confianza con el nodo a trabajar para abrir un canal de pago, las posibilidades van de acuerdo a como dichos usuarios deseen comerciar con tales fondos, además permitiría realizar pagos en la red entre varios canales permitiendo vínculos inter-empresas por ejemplo.
(2) ¿Cómo permite una red Lightning a dos pares realizar una transacción o transacciones recurrentes o múltiples sin ningún cargo por transacción? ¿Ocurre dentro o fuera de la cadena?
Parte del funcionamiento de la red se basa en esta cuestión, en Lightning Network dos pares abren la posibilidad de realizar transacciones en la red sin necesidad de comisiones porque el dinero manejado en esta red no necesita ser validado por ningún minero o nodo, solo por las partes que funcionan en “x” canal de pago, por ejemplo si el nodo “a” y el nodo “b” abren un canal de pago estos dos bloquearan cierto capital, y tendrán la posibilidad de gastar el mismo entre ellos, asi mismo solo ellos necesitaran validar sus transacciones en la red, como vemos no existe ningún coste por mantenimiento por lo que se pueden realizar incluso micro pagos o pagos grandes y no habría ninguna comisión de por medio.
Las transacciones de Bitcoin en Lightning Network ocurren fuera de la red de Bitcoin, ya que se precisa que el capital a utilizar en Lightning Network se deposite desde Bitcoin primero, entrando así en la red de Lightning Network, luego quien deposito el dinero establece un canal de pago junto a otro nodo y estos usaría el dinero depositado de manera ajena a la red principal, gracias a esto se logran así transacciones rápidas y baratas.
(3) ¿Cómo el enrutamiento del pago a través de nodos intermedios (o pares) se vuelve posible sin confianza con HTLC?
La red de Lightning Network se creo para poder utilizar contratos inteligentes en Bitcoin y así mejorar entre tantas cosas los problemas de escalabilidad, sin embargo el uso de contratos inteligentes en la red no se limita solo a esto, HTLC es la prueba, con este contrato inteligente que funciona en Lightning Network podemos realizar pagos en Bitcoin entre nodos sin la necesidad de confiar en el destinatario, haciendo que la posibilidad de que el dinero en un canal de pago se quede atrapado debido a que la otra parte pierda las claves, sea algo inexistente.
Supongamos que yo deseo desea realizar un pago a otra persona, pero no tengo confianza suficiente para establecer una billetera multifirma en la que compartamos los fondos para moverlos, entonces a través de un contrato HTLC podremos realizar un pago en Bitcoin en la red de Lightning Network como si de una billetera multifirma se tratara pero sin la necesidad de confiar en la otra persona, esto gracias a la interacción de un tercero en la transacción creándose así un canal de pago bidireccional.
Esto se logra gracias al sistema del contrato que funciona en base a un Hash Lock y un Hash time, estos forman la base del contrato haciendo que una operación solo se puede procesar si la contraparte quien recibirá puede producir el hash necesitado para procesar está en cierto periodo de tiempo preestablecido.
Una transacción común respondería al siguiente proceso:
Digamos que existen dos partes que desean concretar una operación de compra o venta de “x” cosa, A es quien desea enviar dinero a B a través de Lightning Network sin establecer un canal de pago directo, para ello intervendrá un tercero quien será C, A y B no estarán conectados directamente y C será quien funcione de intermediario entre ellos dos utilizando su capital propio y cobrando una comisión baja por ello.
Primero quien recibirá la transacción ósea B, creara el valor secreto y lo encripta, A y B estarán haciendo la operación, por lo que B le entregara el valor secreto a A, permitiendo que A pueda finalizar la operación y enviar el dinero a B, ahora A inicia la operación HTLC junto con el canal de pago establecido con C quien es el intermediario de la operación, este no conoce el valor secreto, y esto brinda la seguridad en este tipo de operación, entonces ahora C realiza el pago con B con quien tiene un canal de pago también, pero al momento de que el valor de B sea finalmente revelado el contrato estipula que C pueda reclamar su dinero, ósea el momento en el que A finalice su envió de fondos a B, esto claramente en el periodo de tiempo establecido.
(4) Configure Lighting Wallet (cree una billetera estándar, luego abra un canal), abra un Lightning Channel usando Electrum (Nodo de trampolín), Phoenix o cualquier otra billetera sin custodia que admita Lightning Network, realice una compra de comercio electrónico (o una micro-transacción) usando Lightning Channel, luego cerrar el canal. ¿Incurre en tarifas? ¿Registra la transacción en cadena? En caso afirmativo, indíquelo, si no, díganos por qué no registra la transacción en la cadena. ¿Cómo ayuda la función Swap a mejorar la capacidad de envío y recepción?
Abra un Lightning Channel usando Electrum.
Para realizar esto lo primero que deberemos hacer es configurar una billetera estándar en la billetera de Electrum y luego seguir los siguientes pasos:
Primero debemos hacer click en la pestaña de “Channels” y luego hacer click en el botón de “Open Channel”.
Captura tomada de electrum.org
Ahora en la nueva ventana en pantalla haremos click en ¨Yes¨.
Captura tomada de electrum.org
Ahora confirmaremos el canal, introduciremos el monto que se manejara en el y haremos click en “OK”.
Captura tomada de electrum.org
Una vez que hayamos hecho esto introduciremos la contraseña de la billetera y elegiremos la manera en la que pagaremos los fees de acuerdo a lo que deseemos pagar y haremos click en “Send”.
Captura tomada de electrum.org
Ahora finalmente el canal quedara establecido y la pantalla mostrara un mensaje de confirmación.
Nota la creación del canal requiere un monto mínimo que es equivalente a casi 100 dolares, debido a que no lo utilizare decidí no continuar en este paso.
Simplemente quedaría esperar las confirmaciones de la red, pues el proceso tarda un poco, luego de 3 confirmaciones quedaría establecido el canal de pago en el que aún no podríamos gastar el dinero, pues la capacidad de este canal queda vinculado al capital introducido y dependiendo de este podremos gastar, ya cuando hayamos gastado podremos recibir siempre que no sobrepasemos la capacidad del canal.
Sin embargo dejo la captura de mi canal en la billetera de Phoenix que se crea automáticamente, este a fines cuenta como un canal en la red de Lightning network, aunque es más fácil de usar y permite montos pequeños para iniciar.

Captura tomada de Phoenix wallet
Realice una compra de comercio electrónico (o una micro-transacción) usando Lightning Channel, luego cierre el canal. ¿Registra la transacción en cadena? En caso afirmativo, indíquelo, si no, díganos por qué no registra la transacción en la cadena.
Para realizar el ejemplo de la compra decidí utilizar la plataforma de www.bitrefill.com la cual acepta pagos a través de los Lightning Chanels.
Captura tomada de Bitrefill.com
Para empezar basta con hacer click en Browse Products, y luego encontrar uno que deseemos, yo para la demostración comprare una recarga para un servicio telefónico que utilizo el de Movistar.
Captura tomada de Bitrefill.com
Para continuar, en la nueva ventana introduciremos los datos necesarios para continuar con el pago, en este caso la oferta y el número telefónico, luego click en “Purchase” para continuar.
Captura tomada de Bitrefill.com
Ahora confirmaremos la compra, yo introduje una demás y luego la elimine, para eso es la siguiente ventana. Finalmente confirmado click en “Checkout”.
Captura tomada de Bitrefill.com
Ahora introducimos un correo de contacto y decidimos si deseamos recibir información y promociones a el.
Captura tomada de Bitrefill.com
Proseguimos seleccionando el método de pago, claramente aquí es a través de los Lightning Channels.
Captura tomada de Bitrefill.com
Para el siguiente paso realizaremos el pago, debido a la facilidad que brinda Phoenix trabaje con esta wallet y solo me queda escanear el código QR y proceder con el pago.
Captura tomada de Bitrefill.com
Una vez escaneado lo siguiente es seleccionar el botón de “Pagar”.

Captura tomada de Phoenix wallet
El proceso es básicamente instantáneo, yo tuve un problema procesando la primera transacción y lo conseguí en un segundo intento que me llevo cuestión de segundo pasar del primer intento al segundo.

Captura tomada de Phoenix wallet
Vemos los detalles de la transacción que tomo como comisión 2 satoshis, algo increíblemente bajo en comparación a una transacción en la red de Bitcoin de billetera a billetera.

Captura tomada de Phoenix wallet
El pago del servicio me llego en unos minutos luego, demostrando la alta fiabilidad de la página.

Captura tomada de mi dispositivo Android
La siguiente es la ventana de finalización en la página de bitrefill, donde podemos dar la operación por concluida.
Captura tomada de Bitrefill.com
La transacción cobra una tarifa sumamente pequeña esto porque se para efectuar el pago entre los canales Lightning Network hace uso de un intermediario, el proceso igual es increíblemente rápido, la comisión en mi caso fue de 2 satoshis, esta transacción como ya he explicado en lo que va de publicación no se registra en la red de Bitcoin como tal, este capital está depositado en la red de Lightning Network y solo se registra entre los nodos que interactúan en la operación, así se evita la congestión en la red principal de Bitcoin y se mejora la escalabilidad en transacciones realizadas con este activo digital
La función de Swap es una función pensada para mejorar la experiencia de usuario a la hora de recibir o enviar fondos, debido a la limitación que se establece en los canales de pago ligada a un capital “x” con “z” comerciante, para poder comerciar con “w” comerciante deberemos cerrar el canal de pago, para esto es la función de “Swap” la cual nos permitirá mover fondos de nuestro canal de pago sin tener que cerrarlo.
Por ultimo cerrar el canal depende de la plataforma, en Phoenix no se me permite pues el canal está asociado con relación a la manera de funcionar de la billetera misma es una billetera sin custodio y no podemos cerrar el canal con la contraparte y simplemente abrir otro canal de pago, así que sí cerramos el canal tendremos que vaciar los fondos.
Basta con ir a las configuraciones de la app y seleccionar “Cerrar todos los canales”.

Captura tomada de Phoenix wallet
Para finalizar solo debemos introducir la dirección y seleccionar el botón de “Vaciar mi cartera”.

Captura tomada de Phoenix wallet
Podemos observar la capture de la transacción final del canal cerrado.

Captura tomada de Phoenix wallet
En Electrum bastaría con ir al canal creado, seleccionar cerrar canal y confirmar.
(5) ¿Cómo se hace una copia de seguridad de un archivo de cartera (Copia de seguridad de canal), por qué y cuándo se necesita? Indique la Transacción de financiación, la Transacción de compromiso y la Transacción de liquidación tanto en su billetera como en Block Explorer.
¿Cómo se hace una copia de seguridad de un archivo de cartera?
Para crear una copia de seguridad de una cartera en Electrum deberemos ir a la pestaña de “File” y hacer click en “Save Backup”.
Captura tomada de electrum.org
Ahora seleccionaremos el directorio o dejaremos el preestablecido, finalmente click en “ok”.
Captura tomada de electrum.org
Ya quedaría el archivo creado.
Captura tomada de electrum.org
Este respaldo es útil para evitar algún daño a nuestros activos en la billetera en caso de perdida de las claves o de tener algún problema con los dispositivos en los que este nuestra billetera, claramente deberemos respaldarlo en algún otro dispositivo seguro como un usb o en la nube en un servidor de cuidado.
Indique la Transacción de financiación, la Transacción de compromiso y la Transacción de liquidación tanto en su billetera como en Block Explorer.
La transacción de financiación o de pago es la incial que realizamos a nuestra billetera y con la que establecemos el canal de pago, en Phoenix se visualiza como la transacción inicial.

Captura tomada de Phoenix wallet
En la blockchain de Bitcoin es la siguiente.
Captura tomada de blockchain.com
Esta es la dirección que se creo en la Exchange de ChangeNow para realizar mi operación de cambio de ADA a Bitcooin.
Captura tomada de blockchain.com
La transacción de compromiso es la que realice con mi capital una vez que se ubicó en el canal de pago, la cual fue desde mi canal de pago al de mi vendedor, con la que financie la recarga de mi saldo en mi teléfono móvil. A continuación esta la transacción en wallet de Phoenix.

Captura tomada de Phoenix wallet
Y desde la misma aplicación podemos ver la información de la operación que se realizó entre canales de pago a través de un intermediario, esta ocurre fuera de Bitcoin y podemos ver los detalles de la transacción fuera de la billetera en al cadena a través de la misma billetera. Información con el hash del pago y la dirección que recibe el pago.

Captura tomada de Phoenix wallet
Finalmente la tracción de liquidación es la que ocurre cuando cerramos nuestra billetera, fue mi proceso final y la podemos ver en la billetera de Phoenix como la liquidación final del saldo.

Captura tomada de Phoenix wallet
Finalmente dejo la captara de la transacción de finalización que envió mis fondos a mi billetera de Bitcoin como parte del proceso del cierre del canal.
Captura tomada de blockchain.com
Y para confirmar muestro la confirmación en mi billetera Spot de Binance.

Captura tomada de Binance
Conclusión.
Lightning Network es una solución pensada para mejorar todo tipo de problemas en la red de Bitcoin, sobretodo el principal acerca de la escalabilidad que impide a la red competir con los sistemas de pago tradicionales como Visa, su adopción y mejoría a futuro traerán sin duda una gran cantidad de inversores a la red, como pudimos observar en mi publicación aun es bastante compleja de usar hasta cierto punto y tarda un poco al comienzo realizar todos los procesos de fondeo a una billetera, sin embargo una vez que tienes tus Bitcoin en la red y estableces un canal de pago, tienes la posibilidad de efectuar operación con Bitcoin de manera instantánea, haciendo la compra de servicios o inmuebles con este activo digital algo ameno y sencillo, además de rápido y seguro.