Crypto Academy / Season 3 / Week 7 - Homework Post for @sapwood || Lightning Network || By @nane15

2개월 전

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.

portada.png

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.

separador.png

(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.

separador.png

(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.

separador.png

(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”.


1.png

Captura tomada de electrum.org

Ahora en la nueva ventana en pantalla haremos click en ¨Yes¨.


2.png

Captura tomada de electrum.org

Ahora confirmaremos el canal, introduciremos el monto que se manejara en el y haremos click en “OK”.


3.png

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”.


4.png

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.


nodo ligh.jpeg

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.


5.png

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.


6.png

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.


7{.png

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”.


8.png

Captura tomada de Bitrefill.com

Ahora introducimos un correo de contacto y decidimos si deseamos recibir información y promociones a el.


9.png

Captura tomada de Bitrefill.com

Proseguimos seleccionando el método de pago, claramente aquí es a través de los Lightning Channels.


10.png

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.


11.png

Captura tomada de Bitrefill.com

Una vez escaneado lo siguiente es seleccionar el botón de “Pagar”.


pagar.jpeg

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.


![pago final.jpeg](

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.


detalles.jpeg

Captura tomada de Phoenix wallet

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


recarga.jpeg

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.


12.png

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”.


cerrar.jpeg

Captura tomada de Phoenix wallet

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


final.jpeg

Captura tomada de Phoenix wallet

Podemos observar la capture de la transacción final del canal cerrado.


canal cerrado.jpeg

Captura tomada de Phoenix wallet

En Electrum bastaría con ir al canal creado, seleccionar cerrar canal y confirmar.

separador.png

(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”.


1.png

Captura tomada de electrum.org

Ahora seleccionaremos el directorio o dejaremos el preestablecido, finalmente click en “ok”.


2.png

Captura tomada de electrum.org

Ya quedaría el archivo creado.


3.png

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.


4.jpeg

Captura tomada de Phoenix wallet

En la blockchain de Bitcoin es la siguiente.


5.png

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.


6.png

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.


7.jpeg

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.


8.jpeg

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.


9.jpeg

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.


10.png

Captura tomada de blockchain.com

Y para confirmar muestro la confirmación en mi billetera Spot de Binance.


11.jpeg

Captura tomada de Binance

separador.png

Conclusión.

separador.png

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.

separador.png





separador.png

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
STEEMKR.COM IS SPONSORED BY
ADVERTISEMENT
Sort Order:  trending

Thank you for attending the lecture in Steemit-Crypto-Academy Season 3 & doing the homework task-7

A payment channel is a function of the network that allows two users to block a capital "x" in the network to allow making payments

A channel is a 2of2 multisig wallet, which requires a capital to bind to it when you open a channel.

Major uses-- Exchange Arbitrage, Cross-chain payments, Escrow, and many others.

Bitcoin transactions in the Lightning Network occur outside the Bitcoin network, since it is required that the capital to be used in the Lightning Network is deposited from Bitcoin first, thus entering the Lightning Network, then whoever deposited the money establishes a channel payment next to another node and they would use the money deposited outside the main network, thanks to this fast and cheap transactions are achieved.

If a user has created a channel with a funding transaction, then he can spend as little as 1 satoshi to as much as his outbound capacity in LN. Please note that a capital is always available right from the start in a Channel, so any further spending just need a signature. Such a payment does not need mining.

so B will deliver the secret value to A, allowing A to finish the operation and send the money to B

B will not deliver the secret to A, rather he will share the hash of the secret with A. And the conditional payment HTLC will sent from A to C and then C to B with the condition that payment can be unlocked if the secret is known to a party. As B has generated the secret he knows it, so he can unlock it, once he reveals the secret, using that C can also unlock the payment from A.

due to the limitation established in the payment channels linked to a capital "x" with "z" merchant, in order to To trade with "w" merchant we must close the payment channel

In that case you, can route the payment/trade through other intermediary nodes. That's not the purpose of swap function. The swap function is ideally to avoid closing of the channel. Closing of the channel means closing of the business in LN for a merchant/eCommerce store.

in Phoenix I am not allowed because the channel is associated with the way the wallet works, it is a wallet without custodian and we cannot close the channel with the counterparty and simply open another. payment channel

That's applicable every where, because that's how the channel works, closing the channel indirectly means that you want to move the fund from LN to your wallet. In Phoenix it does have that feature if you close the channel it will ask you to provide a BTC address where you can send the fund.

To create a backup copy of a wallet in Electrum we must go to the "File" tab and click on "Save Backup".

In this Task, you have explored LN through Phoenix, so you should have had demonstrated it with Phoenix. Please note that Phoenix is an inbuild LN wallet, so other secondary features like Channel Backup is included with the main wallet back up. But in the Backend it works in the same way.

A channel backup is ideally required to close the channel.

Observation/Suggestion/Feedback:-

  • The author has demonstrated(with a real eCommerce purchase) "How to open a channel, make a payment(e-commerce, Merchant), and how to close the channel using Phoenix Wallet" with all the screenshots included.
  • The author has also practically showcased his experience with Funding Transaction, Settlement Transactions using a Block Explorer.
  • Better Quality of Analysis will portray a comprehensive understanding of the subject.
  • Pay attention to the corrections as indicated.

Thank you.


Homework Task -7 successfully accomplished
[6.5]

CriteriaCalculation
Presentation1.5/2
Consistency, Compliance with Topic1/2
Quality of Analysis0.5/2
Real Transactions/purchase2/2
Originality1.5/2
Total6.5/10
·

Muchas gracias profesor @sapwood, mejoraré mi análisis para la próxima y muchas gracias por las correcciones, en base a eso aprenderé un poco más!