Liquidity Pools ¿Qué son y cómo funcionan?

Money pools

Las liquidity pools o reservas de liquidez son una tecnología esencial en el actual ecosistema de finanzas descentralizadas o DeFi.

Por una parte, permiten a los usuarios de los exchanges descentralizados intercambiar sus monedas de forma rápida y sencilla. Por otra, permiten a cualquier persona ganar dinero de forma pasiva convirtiéndose en inversor como un proveedor de fondos de estas pools.

Liquidity pool, tecnologia clave en el ecosistema defi

Pero, ¿Qué son exactamente estas liquidity pools? ¿Cómo funcionan? ¡Veámoslo! 

¿Qué es una Liquidity Pool?

Las liquidity pools son grandes cantidades de fondos almacenados dentro de Smart Contracts a disposición de un exchange descentralizado o DEX. Estos fondos se utilizan para facilitar el trading a los usuarios del exchange, proveyendo liquidez de criptomonedas.

Usuarios de un DEX compraventa en una pool

Cada una de estas reservas de liquidez generalmente contiene cantidades de dos tokens, lo que se llama el trading pair de la pool. El valor de cada una de estas monedas siempre tenderá a ser equivalente al de la otra. La pool tendrá el 50% de su valor en un activo y el otro 50% en el otro. Más adelante veremos qué estrategias se siguen para mantener esto, pero por ahora con saber esto nos vale.

50 50 el trading pair en la lp, busd y eth

Imaginemos una liquidity pool basada en el par ETH – BUSD en un momento en el que 1 Ether equivale a 1.500 dólares. Si en ese caso tuviésemos un total equivalente a 600.000 dólares en la pool, se distribuiría en 300.000 Binance USD y 200 Ethers.

Esto permite a cualquier usuario del exchange comprar o vender Ethereum a cambio de BUSD de forma sencilla y en cualquier momento.

Reparticion de fondos en una liquidity pool, mitad y mitad

Estas piscinas de liquidez son muy populares en el ecosistema DeFi, siendo introducidas por primera vez por el protocolo Bancor. Su mayor popularidad llegó de la mano de Uniswap. Otros grandes exchanges que utilizan este sistema en el blockchain de Ethereum son SushiSwap, Balancer o Curve.

No sólo existen liquidity pools sobre el protocolo ERC-20 de ethereum, sino también en otros blockchains como el de Binance. Aquí encontramos pools con tokens BEP-20, en exchanges de gran popularidad como PancakeSwap, BakerySwap o BurgerSwap.

Reservas de liquidez: Alternativa a los order books

Para entender el porqué de las Liquidity Pools es necesario entender la alternativa tradicional, que son los libros de órdenes u order books. Ese sistema, es el utilizado por plataformas de finanzas centralizadas como exchanges clásicos o brokers de acciones.

El funcionamiento de este sistema es sencillo, consiste en poner de acuerdo a vendedores y compradores de un mismo activo para ejecutar el intercambio.

Veamos un ejemplo ilustrativo sencillo, siguiendo de nuevo la situación del par Ethereum / Binance USD.

El libro de órdenes contendrá todas las intenciones de compra de los usuarios interesados en comprar ETH con BUSD. Podríamos tener algún usuario interesado en comprar 1 ETH por 1,499 USD, otro usuario que estaría dispuesto a comprar 0.5 ETH por 1,495, y otro grupo de usuarios dispuestos a comprar un total de 10 ETH por 1,490 BUSD.

Por parte de la venta, tendríamos también varios usuarios interesados en vender, en este caso por precios ligeramente más elevados. En este ejemplo, tenemos un usuario dispuesto a vender 2 ETH por un precio de 1,500 BUSD cada uno, otro usuario que querría vender 3 ETH por 1,505 y otro usuario que quiere vender 0.2 ETH a 1,507 BUSD. Una imagen vale más que mil palabras:

order book de ejemplo previo a actualización

En este escenario podemos determinar que el precio de compra de ETH es de 1,500 USD, ya que esta es la orden de venta más baja, mientras que el precio de venta es de 1499, debido a que existe un usuario con quien podríamos ejecutar la orden por ese precio.

Si en este punto llegase un usuario con intención de vender 2 ETH a 1,495 usd, ejecutaría su intención contra la primera de compra a 1,499 de forma completa, y contra la segunda de 1495 de forma parcial. Tras esta acción, se mantendría el precio de compra a 1,500 BUSD (2 ETH)y se actualizaría el precio de venta a 1495 BUSD (0.5 ETH).

order book actualizado de ejemplo

Los libros de órdenes funcionan con un sistema llamado peer-to-peer, dado que los intercambios se llevan a cabo entre los monederos de los usuarios.

Por su parte, en el caso de las liquidity pools el sistema es peer-to-contract, ya que los usuarios intercambian criptomonedas directamente con el contrato, sin necesidad de otro usuario directamente dispuesto a ejecutar la orden de contrapartida.

Entonces, si los order books funcionan bien, ¿para qué hacen falta las pools de liquidez?

Inconvenientes de los order books en DeFi

Bien, aquí existen principalmente dos problemas:

  • El primero es la falta de usuarios dispuestos a intercambiar ciertos pares de monedas. Este problema afecta sobre todo a los pares de altcoins o monedas con un volumen de órdenes pobre debido a su baja popularidad. Si no hay usuarios dispuestos a vender, nadie podría comprar y viceversa.
  • El segundo y principal problema es que en un sistema de finanzas descentralizadas o DeFi debemos ejecutar sobre la blockchain cada interacción con el order book. A su vez cada una de estas interacciones con la cadena de bloques conlleva un coste de gas asociado: Crear una orden, gas; modificar una orden, gas; eliminar una orden, más gas.

Dado que este gas tiene un coste, se desincentiva fuertemente la creación de nuevas órdenes, lo que termina por paralizar el mercado por falta de liquidez.

desventajas order books en entornos defi

Características de las liquidity pools

Ya hemos visto qué son las liquidity pools, así como su popularidad como alternativa a los order books tradicionales. Veamos ahora en detalle cómo funciona una liquidity pool.

Empezaremos por ver de dónde salen estas cantidades de dinero almacenadas en las pools. Aquí es donde entra el concepto de liquidity provider o proveedor de liquidez. Como su propio nombre indica, estos usuarios prestan fondos a la pool para que ésta tenga liquidez. A cambio reciben lo que se llama LP tokens o Liquidity Pool tokens. Estos tokens reciben un pequeño porcentaje en forma de comisión cada vez que un usuario ejecuta una orden en la reserva de liquidez.

Las comisiones pagadas por los usuarios son bajas, pero si la pool ejecuta muchas órdenes, los proveedores pueden terminar generando una buena cantidad de dinero de forma pasiva solo por proveer liquidez.

Cualquier persona puede ser un liquidity provider y generalmente no hace falta un mínimo para participar. Las recompensas de la pool se distribuyen de forma proporcional al capital aportado.

liquidity provider, pieza clave del ecosistema que ayuda a ganar dinero

Para crear liquidez, generalmente es necesario aportar el mismo valor de cada una de las monedas del par. Sin embargo, muchas plataformas permiten añadir toda la liquidez en una sola moneda, aunque internamente lo que hacen es convertirlas de modo que se añade un 50% de cada moneda del par. En el ejemplo anterior, aportar 2 ETH a la pool supondría aportar 1 ETH + 1,500 Binance Dollars.

Si estás interesado en aportar liquidez para generar unos ingresos extra de forma pasiva, puedes hacerlo desde prácticamente cualquier DeFi, e incluso desde Binance. Anteriormente hemos visto las plataformas más representativas tanto en el protocolo ERC-20 como BEP-20, pero existen muchas más.

plataformas para participar en liquidity pools como inversor

Otra opción para generar dinero de forma pasiva con tus criptos a través de BlockFi, con APYs de hasta un 7.5%. Si te interesa, en este enlace puedes obtener hasta 250$ gratis al crearte una cuenta.

Desde el punto de vista de los usuarios que quieren comprar o vender tokens en una liquidity pool hemos visto que parece más ventajoso que los order books puesto que siempre hay monedas disponibles para convertir. En parte esto es así, aunque hay escenarios en los que un usuario necesita cambiar una gran cantidad de monedas. Ahí es donde puede haber dificultades utilizando una liquidity pool que no tenga suficiente liquidez.

Para entender esto, veamos qué estrategias siguen las reservas de liquidez para mantener una equidad en las dos monedas del par en cuestión.

Volvamos al ejemplo previo de la Liquidity Pool de ethereum y Binance USD. Recordemos que teníamos un total de 200 Ethers y 300.000 BUSD. Si un usuario quisiese comprar 1 ethereum, podría utilizar la pool y pagar el precio actual, 1,500$ más una pequeña comisión destinada a los proveedores de liquidez, por ejemplo del 0.1%. Es decir, que en total pagaría 1501.5 BUSD y obtendría 1 ETH.

Ahora bien, en este caso la liquidity pool ya no está al 50% – 50% si no que ahora dispone de 199 ETH y 301.500 BUSD:

¿Qué herramientas tiene una liquidity pool para incentivar el balance de ambos activos?, te puedes estar preguntando. La respuesta es el precio. Lo que la reserva de liquidez va a hacer es modificar el precio de compra ligeramente, de modo que sea más atractivo vender ethereum que comprarlo. Poniendo un precio, por ejemplo, de 1,503$ en lugar de 1,500$. De este modo estás atrayendo a más vendedores que a compradores, puesto que el precio de la pool está ligeramente por encima del precio de mercado.

Los detalles del algoritmo encargado de calcular el precio varían entre diferentes pools y pueden ser algo complejos, así que los dejaremos para un artículo posterior.

Por ahora comentaremos que cuanto mayor sea la compra, mayor será el impacto en el precio, teniendo en cuenta claro el tamaño de la pool. A esta diferencia de precio se le llama slippage.

Si por ejemplo en lugar de haber comprado 1 Ether, se hubiesen comprado 20, el slippage sería más elevado debido al mayor cambio en el precio. En ese escenario la pool tendría aproximadamente 180 ETH y 330.000 BUSD. Esto llevaría al precio a unos 1,540$ en lugar de 1,503$, lo que genera ya un incentivo considerable.

Pool desbalanceada al hacer compras grandes

Tenemos que tener en cuenta que nuestra pool es pequeña, por lo que pequeños cambios tienen un impacto elevado. Cuanto mayor es una pool, más difícil es causar un impacto en el precio. Es por esto que muchas plataformas incentivan a los proveedores de liquidez con tokens extra más allá de las recompensas obtenidas por las comisiones de los usuarios.

Puedes estar preguntándote el porqué los usuarios no se aprovechan de estos escenarios con precios desajustados. Y la respuesta es que y tanto que se aprovechan. Aquí es donde entran los usuarios o sistemas que se dedican a hacer arbitraje financiero. Esto es, cuando un activo cotiza a precios diferentes en diferentes mercados, estas entidades, se dedican a comprar en el mercado donde está más barato para después vender otros mercados donde cotice a un precio más elevado. En realidad estas entidades son una pieza clave del ecosistema, ayudando a mantener precios similares en diferentes exchanges.

Desventajas y riesgos

Por último, no podemos olvidarnos de los potenciales riesgos de las liquidity pools. En otro artículo sobre smart contracts ya explicamos sus riesgos de forma general. En ese post mencionábamos los bugs o fallos en el contrato inteligente entre otros. La liquidity pool la gestiona un Smart Contract por lo que estos riesgos aplican también en este caso. Si quieres refrescar conceptos sobre Smart Contracts o contratos inteligentes puedes revisar este artículo.

Impermanent loss en liquidity pools

Además de los riesgos genéricos de los contratos inteligentes, existe un concepto llamado Impermanent Loss o Pérdida impermanente. Esto ocurre cuando el precio de los activos varía mucho con respecto a cuando se insertaron en la liquidity pool. A mayor variación de precio entre sí, mayor impermanent loss. Veamos un ejemplo.

pool inicial 300k usd y 200 eth

Pongamos la misma liquidity pool anterior, 200 ETH y 300.000 BUSD, con el precio de ETH a 1.500 usd la unidad. Un pequeño proveedor de liquidez puede haber metido recientemente 1 ETH y 1.500 USD.

Imaginemos ahora que un par de usuarios influyentes ponen un par de tweets y hacen que el mercado empuje el precio del ETH hasta los 6.000 USD. Esto hará que las operaciones de arbitraje rebalanceen la pool, que venderá ETH y comprará BUSD. En esta situación, la pool pasaría a tener 100 ETH y 600.000 BUSD. La participación actual de este pequeño proveedor de liquidez sería ahora de 0.5 ETH y 3.000 BUSD lo que equivale a un total de 6.000$.

En términos absolutos, esto es más de lo que inicialmente proveyó a la pool, que fue un total de 3,000 USD (1 ETH a 1.500 USD y otros 1.500 BUSD), habiendo doblado su inversión.

Sin embargo, es menos de lo que hubiese obtenido si hubiese mantenido los activos originales, puesto que tendría 1 ETH y 1.500 BUSD, lo que en este momento equivaldría a 7.500 USD, un total de 1.500 USD más que en el caso de la liquidity pool.

Si en este punto nuestro inversor decidiese sacar su participación de la liquidity pool, este impermanent loss pasaría a materializarse, siendo ahora una pérdida permanente.

Este ejemplo es muy simplista y no estamos teniendo en cuenta que durante el tiempo transcurrido, nuestro pequeño inversor ha estado cobrando comisiones por el servicio ofrecido, que en muchos casos puede compensar esta pérdida. Aún así la situación ejemplifica el concepto del impermanent loss.

En el caso de activos muy volátiles, este impermanent loss puede superar el beneficio generado con las comisiones. Lógicamente cada uno tiene que hacer sus propios análisis, pero en este caso es preferible apostar por pares que consideremos menos volátiles y como siempre sólo invertir en activos fuertes en los que confiemos.

Decirte también que si te interesa el contenido de este artículo de una forma un poco más didáctica, te dejo un vídeo donde lo explica a la perfección.

Por último te pregunto a ti, ¿Qué te parece este concepto de Liquidity Pools? ¿Estás invirtiendo o considerando invertir como proveedor de liquidez? ¡Déjamelo en los comentarios!

Proof of Stake ¿Qué es y para qué se utiliza?

Grafica con criptomonedas

Seguro más de una vez has oído hablar de del Proof of Stake o prueba de participación. Este sistema, presente en criptomonedas como Cardano o TRON y recientemente adoptado por Ethereum tiene muchas ventajas con respecto al tradicional Proof of Work de monedas como el bitcoin.

Veamos en qué se diferencia de Proof of Work, qué utilidad tiene, cómo puedes ganar dinero con él y porqué Ethereum 2.0 está trabajando en implementarlo.

Grafica con criptomonedas
Llegará el fin de las gráficas en la industria de las criptomonedas?

Pagos por internet

Antes de entrar a fondo en Proof of Stake o PoS, necesitamos ver cómo funcionan los pagos con tarjeta y pagos digitales, así como los incentivos de quienes los gestionan.

Cuando queremos pagar con tarjeta o con algún otro tipo de medio digital tradicional existen ciertos procesos que tienen que asegurar que el dinero se mueva de forma segura desde la cuenta del emisor al receptor. A día de hoy estamos ya muy familiarizados con este tipo de compras a través de un punto de venta TPV. En este sistema, los comercios se comunican con ambos bancos para poder mover el dinero, verificando primero que existan fondos en la cuenta del comprador. Estos intermediarios también tienen que asegurar que cuando termine la transacción esos fondos estén disponibles ya en la cuenta del vendedor.

Diagrama movimiento dinero entre bancos
Existen validaciones necesarias entre bancos para hacer una transacción evitando el “double spending”

Este proceso, aparentemente básico, requiere de ciertas validaciones para evitar robos y fraudes en compras con tarjeta de crédito o medios digitales. Estas sencillas operaciones se tienen que realizar por ciertos ordenadores que conllevan un coste de mantenimiento. Pese a no ser un coste elevado, los servidores que han de estar disponibles 24 horas al día y 7 días por semana.

Lógicamente no es ideal salir de compras y que justo en ese momento no se pueda ejecutar la transacción porque los servidores no estén disponibles.

Tiene que existir alguna entidad que mantenga estos ordenadores, con un interés real por mantener esta red en marcha. En el caso de las compras tradicionales estos servidores pertenecen a empresas como Visa o Mastercard. Plataformas digitales como Paypal o Stripe, se sustentan gracias a comisiones que cobran bien al vendedor bien al comprador o incluso a ambos. Esto es lo que les permite tener un interés muy fuerte en mantener esta red de servidores con una disponibilidad 24/7.

visa masterdard paypa o stripe
Entidades típicas que gestionan los pagos digitales hoy en día

Conforme más estabilidad tiene la red, más transacciones se van a realizar y más comisión van a ganar estas entidades. Tenemos que tener en cuenta que de forma diaria se realizan millones de transacciones con estos métodos digitales.

Descentralización

Tenemos claro que estas empresas financieras anteriormente mencionadas tienen un gran interés en mantener esta red en marcha, pese a que les supone un gran coste de negocio. Ahora, para las criptodivisas que no tienen ninguna empresa detrás al estar descentralizadas

¿Quién tiene un interés en hacer que toda esta red funcione? ¿Cómo se incentiva a mantener toda esta red en marcha y hacerla tan segura como la conocemos?

Proof of Work

El primer sistema o algoritmo que vamos a ver para poder entender el proof of stake es el proof of work o prueba de trabajo.

Este algoritmo es quizás el más popular porque es el utilizado por Bitcoin y fue el primer algoritmo en aplicarse para una criptomoneda. El proof of work o existe desde 1993, cuando se implementó para evitar spam en los mails. Antes de de enviar un correo, los ordenadores debían hacer pequeños cálculos. Así se evitaba que se mandasen miles de correos por minuto.

Sin embargo, este algoritmo consiguió la mayor parte de su fama en 2009 con la creación del bitcoin. Vamos a ver cómo funciona este sistema y qué incentivos existen para los usuarios que quieran poner sus ordenadores a la disposición de la red.

Veamos cómo hacer una transferencia de fondos de una cuenta a otra. Para ello existe una red descentralizada de ordenadores o servidores que se encargan de resolver problemas matemáticos. Este tipo de problemas que se llaman de prueba y error son operaciones computacionalmente muy caras de resolver, pero muy baratas de validar. Para explicarlo en términos sencillos sin entrar en materia técnica, podríamos decir que este problema matemático es como una especie de cofre que solo se puede abrir con una llave. Esta llave es un número, y una vez dispones de ella puedes corroborar que efectivamente se abre este cofre sin esfuerzo.

Diagrama pow básico
El problema a resolver se entrega a todos los nodos participantes

Los ordenadores o mineros de la red están constantemente probando llaves diferentes intentando abrir el cofre. Este proceso tiene una dificultad mayor o menor en función del posible de número de llaves o números, puesto que a más números que probar, más difícil será encontrar el correcto. Este problema, de difícil solución, se da a todos los ordenadores que participen en la red de minado.

Una vez uno de estos mineros encuentra la solución al problema matemático, se la envía al resto de mineros para que la validen. Recordemos que corroborar que la solución es corroboren que efectivamente es correcta. Una vez la mayoría de la red ha verificado que la solución es correcta, el minero que ha encontrado este número o llave obtiene una pequeña recompensa.

En el caso particular de Bitcoin, inicialmente se entregaban 50 bitcoins al minero que resolvía el problema. Este bloque de 50 recompensas, ha ido bajando, mediante un proceso llamado halving. Esta reducción de recompensas con el paso del tiempo, tiene como objetivo hacer que el sistema sea lo más estable y justo posible.

Estas recompensas son el incentivo para que diferentes mineros pongan su hardware o computadoras a disposición de la red. Mantener estos ordenadores tiene un coste, dado que la resolución de estos problemas es compleja y computacionalmente costosa, estos aparatos requieren de mucha energía.

Por su parte, este problema matemático tiene una dificultad variable. Esto es así, porque cada bloque de bitcoin se debe generar en aproximadamente 10 minutos, por lo tanto si un bloque a se genera en 9 minutos de media, la red va a incrementar la dificultad de los siguientes problemas matemáticos para que la media se mantenga en 10 minutos.
Si por el contrario un problema tarda en resolverse una media de 12 minutos, la dificultad de los siguientes problemas disminuirá ligeramente. Esto, entre otras cosas, consigue que los halvings de bitcoin se produzcan aproximadamente cada 4 años.

Hay mucha competencia de minado para encontrar la solución
Una vez un nodo encuentra la solución y el resto validan, se le entrega una recompensa en forma de bitcoin

Sin embargo, la reciente popularidad del bitcoin ha hecho que la dificultad incremente mucho debido al atractivo precio del bitcoin. Cada vez existen más mineros interesados en aportar hardware a la red y esto lógicamente conlleva un gran incremento de la energía requerida por la red de minería de Bitcoin.

Consumo energético

A nivel global la red bitcoin consume más de 120 teravatios/hora (TW/h). Este número puede no decir mucho, pero para hacernos una idea de la magnitud es mayor al consumo energético de un país como Argentina.

consumo de la red btc, 120 terawatios hora
El consumo de electricidad es mayor que el de un país entero como Argentina

De hecho, si la red bitcoin fuese considerada un país estaría el número 30 en el ranking global de consumo energético. En países hispanohablantes tendríamos que únicamente México y España consumirían más electricidad que la red global de minería de bitcoin. En este enlace puedes comprobar el consumo actualizado de la red bitcoin y aquí te dejo el ranking de consumo energético por país para ver la magnitud de la red de Btc.

Latencia y comisiones

Además del gran consumo energético del proof of work existen otros problemas como puede ser la alta latencia de la red. Esto quiere decir que desde que se emite una transacción hasta que se valida puede pasar bastante tiempo, de la orden de varios minutos.

10 minutos para realizar una transacción... algo elevado
Las transacciones de bitcoin son muy lentas a día de hoy, no es comparable con las transacciones digitales más extendidas

En comparación con los métodos de pago tradicionales con tarjetas de crédito que son prácticamente instantáneos, esto es una eternidad. En algunos casos de uso esto puede llegar a ser una gran ventaja, por ejemplo, puedes hacer un pago desde Latinoamérica a Rusia y en varios minutos se va a realizar, mucho más rápido que una transacción bancaria actual

Sin embargo, para un uso cotidiano quedaría descartado. No parece el mejor de los casos el ir a comprar al supermercado y tener que esperar varios minutos a que se complete la transacción para que te den el cartón de leche.

Por su parte, las comisiones de la red también fluctúan bastante. Generalmente no pasan de unos pocos dólares, sin embargo ha habido casos puntuales como en enero de 2018, donde hacer una sola transacción de bitcoin llegó a costar el equivalente a más de 55 dólares.

De nuevo, esto puede ser relativo ya que para ciertos casos puede ser un coste aceptable, como el caso de la transacción internacional que comentábamos. Sin embargo, para compras cotidianas, lógicamente es una barbaridad y no tendría sentido.

Prepara la billetera para pagar comisiones altas
Una comisión de más de 50$ por transacción no es viable para una moneda, pero sí para una reserva de valor

Centralización de la red

Otra desventaja que hemos de tener en cuenta de la prueba de trabajo es la potencial centralización de la red.

Precisamente, la idea de las criptomonedas es descentralizar la red. Sin embargo, con dificultades de minería tan altas como las que tenemos hoy en día en la red de bitcoin, lo que hacen los mineros es unirse a lo que se llama pools o piscinas de minado. Estas pools distribuyen entre los diferentes mineros conectados una pequeña parte del problema matemático a resolver. De este modo, si cualquiera de los mineros encuentra la solución, la recompensa se distribuye de forma proporcional entre todos los mineros conectados a la propia pool.

La ventaja de esto es que no es necesario tener un gran equipo de minería para participar, porque de ser así y sin una pool nunca conseguirías minar ningún bloque, ya que estarías compitiendo contra sistemas muy grandes.

Reparto de hashrate en las mayores pools de minería
En este diagrama podemos ver la distribución de la red de minado de bitcoin en Febrero de 2021. Si nos fijamos, entre F2Pool, Poolin, BTC.com y Binance Pool controlaban el 51.5% del hashrate total de la red.

Como podemos comprobar, actualmente entre cuatro pools tienen más del 51% de cuota. En el improbable caso de que estas cuatro pools se pusiesen de acuerdo, podrían realizar un ataque a la red de bitcoin y conseguir por ejemplo realizar transacciones fraudulentas. Esto ocurriría dado que la solución a un problema encontrado por alguna de estas pools va a poder ser validado por más de la mitad de la red, y si más de la mitad de los mineros de la red están “de acuerdo” con ese ataque, el bloque se escribirá en la blockchain.

Proof of Stake

Por ahora hemos visto el proof of work y ahora vamos a ver el proof of stake, que aparece como un algoritmo o sistema alternativo al que acabamos de ver.

Imaginemos un escenario similar, en este caso una persona quiere enviar dinero a otra. Ambos algoritmos son bastante similares el sentido de que en ambos sistemas existe un problema matemático que ha de ser resuelto por los diferentes ordenadores que forman parte de la red.

La primera diferencia que encontramos es la terminología, en el caso de proof of work a cada computador de la red se le denomina minero, se dedican a minar bloques. Sin embargo, en el caso de la prueba de participación o proof of state cada uno de los ordenadores de la red son validadores que forjan bloques.

Mineros -> Validadores
Minar -> Forjar (mint)
La primera diferencia es a nivel de terminología

En la prueba de participación, cada uno de los nodos validadores contiene una wallet que debe poseer cierta cantidad de la moneda en cuestión. Estas monedas han de mantenerse en los nodos en lo que se llama staking.

Staking supone que las monedas están congeladas en estas cuentas y no se pueden utilizar mientras el validador esté activo dentro de la red. Es decir, que es necesario mantener cierta cantidad de la moneda para que la red te dé acceso a formar parte en ella.

Accesibilidad y proporcionalidad

En el caso de PoS, la cantidad de moneda stakeada por cada uno de los nodos no tiene por qué ser la misma. Esto es así porque el problema matemático no se reparte por igual a todos los nodos, sino que es la misma red elige uno de los nodos para resolver el problema. Este problema a nivel de computación tiene una complejidad infinitamente inferior al equivalente en un escenario de proof of work.

Existen diferentes algoritmos utilizados para determinar qué nodo va a poder forjar el siguiente bloque. Los más justos, que son los más populares, suelen tener en cuenta la cantidad de monedas de las cuales dispone cada nodo así como la fecha en la cual cada nodo validó su último bloque, para hacer una repartición equitativa.

Si por ejemplo nuestro validador es elegido para forjar el siguiente bloque, este nodo para resolver el problema matemático de la red y lo va a compartir con el resto de nodos. El resto de nodos, al igual que en PoW validarán que la solución es correcta para así evitar ataques. Una vez el resto de nodos lo han validado correctamente, nuestro nodo recibirá una pequeña recompensa.

Como vemos, existen características similares al proof of work y características que son bastante diferentes. Por ejemplo en el caso de prueba de participación tenemos una mayor democratización del sistema. Esto es así ya que es más accesible entrar a la red como un nuevo validador que por ejemplo en el caso del proof of work. Si quisiésemos minar bitcoin requerimos de herramientas potencialmente muy costosas (hardware) para poder minar dentro de la red.

Algoritmo de prof of stacke para resolver el problema
El algoritmo elegirá el nodo para resolver el problema de la forma más justa posible

Otro punto a favor de la prueba de participación es que mantiene la proporcionalidad de la riqueza. Pese a que este algoritmo ha sido tachado de injusto, es mucho más equitativo que el sistema del proof of work. Es cierto que las cuentas que tienen más dinero stakeado va a ser más posible que obtengan nuevas recompensas. Sin embargo, la proporción de riqueza va a ir acorde a la cantidad stakeada por cada nodo lo cual hace que este algoritmo no agrande proporcionalmente hablando las diferencias en la distribución de la moneda.

Coste y velocidad

El siguiente punto en pro del proof of stake es el bajo coste del mismo, dado que como hemos visto no requiere de caros sistemas de minería y además el coste energético es mucho más bajo. Lo único que requerimos es que nuestro nodo esté disponible en la red la máxima cantidad del tiempo y disponer de una cantidad de monedas para bloquear temporalmente. Recordemos que una vez decidamos dejar de ser un validador las monedas no se pierden. Esto lo hace mucho más económico que en el caso de una red como la de bitcoin.

Una última ventaja a remarcar es que la latencia de la red es mucho más baja, es decir, es mucho más rápido realizar una transacción. No hay necesidad de halving, no es necesario limitar el tiempo y se pueden validar más transacciones por segundo.

Seguridad

Veamos ahora la parte de seguridad de la prueba de participación y los sistemas que usa para evitar ataques.
Como veíamos, una de las características de una red pos es que al nodo que resuelve el problema se le otorga una recompensa. una vez se le otorga una recompensa. Un sistema de seguridad que se aplica, es que esta recompensa no está disponible inmediatamente si no que el nodo ha de esperar a que el resto de nodos validen.

Esto permite es que si otros nodos detectan que la transacción es fraudulenta o que la validación no es correcta esta recompensa se va a retirar del nodo. La red también va a penalizar a ese nodo por este comportamiento, existiendo la posibilidad de que incluso pierda parte de su stake.

Como podemos imaginar, este sistema fomenta que los nodos validen correctamente, dado que si un nodo intenta realizar ataques maliciosos podría perder todas las monedas que tuviese stakeadas en la red. Y a más monedas stakeadas por un nodo de la red, más interés en validar correctamente puesto que tiene más que perder.

Ethereum 2.0

logo ethereum, de pow a pos
Ethereum está moviendo a 2.0, pasando de PoW a PoS

Un evento muy importante para el algoritmo de prueba de participación es la reciente inclusión de Ethereum moviéndose de proof of work a proof of stake. El proyecto de Ethereum se ha dado cuenta que hay ciertos problemas en la red de proof of work como hemos comentado y está trabajando en moverse a un sistema de proof of stake.

Si te interesa este proyecto, es posible participar de forma flexible con una cantidad mínima en un nodo conjunto. Puedes utilizar este enlace de Binance, donde puedes participar tanto en staking de Ethereum 2.0 como de otras muchas criptomonedas. No hay mejor forma de entender las cosas que viendo su funcionamiento en la práctica.

Ataque 51%

Veamos ahora qué ocurriría con un ataque del 51% que consiste en una persona maliciosa haciéndose con el control de más de la mitad de la red para validar transacciones fraudulentas. Ethereum actualmente tiene una capitalización de mercado o market cap de más de 250.000 millones de dólares, es decir, más de 250 billones americanos.

Si suponemos que la red de validadores almacena el 80% de esa cantidad, podemos deducir que harían falta más de 100.000 millones de dólares americanos para que alguien pudiese realizar un ataque 51 por ciento sobre la red de Ethereum. Haría falta alguien que tenga más de 100 mil millones de dólares y esté dispuesto a arriesgarlos.

Estos números a mí personalmente me resulta muy difícil ponerlos en contexto, pero para que nos hagamos una idea esto es más que el PIB de países como Panamá, Costa Rica y Uruguay combinados, una auténtica barbaridad.

panama costa rica o uruguay tendrían que usar todo su pib para atacar a eth, una locura
Haría falta una cantidad de dinero superior al PIB de muchos países para atacar la red de Ethereum 2.0

Vídeo explicativo

Si prefieres esta explicación en un vídeo un poquito más interactivo y entretenido, aquí te dejo en enlace, un poquito más conveniente:

¿Qué te parece el método de proof of stake? ¿Crees todas las criptomonedas tenderán hacia pos en lugar de pow?
Déjamelo en los comentarios. Un saludo, y hasta la próxima!

Contratos Inteligentes o Smart Contracts

Los Smart Contracts no son tan complicados como parecen

Seguro que más de una vez has oído hablar de los Smart Contracts o Contratos Inteligentes. Qué si van a revolucionar el mundo, van a cambiar completamente ciertas industrias tal y como las conocemos o van a reemplazar el sistema financiero de hoy en día.

Pero, ¿Qué son estos contratos? ¿Cómo funcionan? ¿Pueden realmente tener tanto impacto y cambiarán el mundo? 

¡Veámoslo!

Los Smart Contracts no son tan complicados como parecen

¿Qué son los Smart Contracts?

Un contrato inteligente es una pequeña aplicación que se puede ejecutar por sí misma y obligar al cumplimiento de ciertas reglas programadas. Su objetivo principal es la automatización y eliminación de intermediarios.

Estas aplicaciones se almacenan dentro de una blockchain, como por ejemplo la red Ethereum.

Los Smart Contracts permiten realizar transacciones seguras, rastreables e irreversibles sin necesidad de intermediarios.

Esto ofrece una seguridad superior a los contratos legales tradicionales y reduce los costes. Por ejemplo, al prescindir de intermediarios cuya función es asegurar el cumplimiento del contrato.

Los contratos inteligentes eliminan el factor humano a la hora de tomar decisiones, que generalmente es lo más propenso a errores. Y esto precisamente los convierte en un complemento e incluso en algunos casos un reemplazo de los contratos tradicionales.

Estos contratos inteligentes también permiten almacenar, enviar y recibir fondos, así como contactar con otros contratos automáticamente. Siguen una semántica sencilla If … Then. Es decir, si ocurre un cierto evento predefinido, entonces ejecuta cierta acción.

Ejemplos de Contratos Inteligentes

Pero, esto no parece una tecnología tan revolucionaria, no? Vamos a ver algunos ejemplos.

El más sencillo de comprender probablemente sea una máquina expendedora. Estas máquinas tienen unas reglas muy sencillas, metes unas monedas y te entregan un refresco. Si no metes suficientes monedas, no te dan el refresco, y si metes más monedas de las necesarias te devuelven el resto. Esto, al igual que los smart contracts es un sistema determinista. Esto quiere decir que siempre va a actuar igual ante las mismas condiciones, monedas recibidas, refresco entregado. Quizá parezca un ejemplo un poco tonto, pero pensemos que un contrato similar puede ser aplicado por ejemplo a la hora de comprar activos digitales, de vendedores desconocidos, reduciendo la brecha de la desconfianza.

Diagrama de una máquina expendedora determinista

Quizá conozcas alguna empresa de crowdfunding, como por ejemplo Kickstarter. A esta empresa acuden generalmente start ups en búsqueda de inversores para el desarrollo de algún producto o proyecto.

Se publica el anuncio en la plataforma entonces los pequeños inversores pueden aportar capital para participar en el proyecto ofertado.

En este punto pueden ocurrir dos situaciones, que Kickstarter recolecte el valor total solicitado por el proyecto, entregando estos fondos, a la start up tras descontar una comisión por el servicio ofrecido, o que no se alcance el valor esperado. Dado este caso, se devolverá el dinero aportado por cada inversor.

En este escenario tanto la empresa en busca de fondos como los pequeños inversores tienen que confiar en Kickstarter

Este es un sistema perfectamente reemplazable por un smart contract. Reduciría los problemas de credibilidad, puesto que no habría que confiar en un tercero. Aumentaría la velocidad del proceso, ya que en el momento se cumplen las condiciones, se transfieren los fondos a un destinatario u otro.

Ejemplo diagrama crowfunding, reemplazable por un smart contract

Si nos paramos a pensar, las áreas de aplicación son prácticamente infinitas. 

Podemos pensar en sistemas similares como pueden ser juegos de lotería completamente autónomos evitando las comisiones de terceros y con una transparencia absoluta. Con un paso más tendríamos juegos de casino online con juegos como la ruleta o el blackjack siendo ejecutados desde smart contracts de forma completamente justa y transparente.

Extrapolando el escenario del casino, los contratos inteligentes también pueden automatizar el sector de apuestas deportivas. 

Uno de los sectores más propicios a adoptar los cambios ofrecidos por estos contratos inteligentes es el sector financiero. No sólo por los ecosistemas de finanzas descentralizadas DeFi, si no por las mejoras en los ámbitos de validación y trazabilidad. Podemos utilizar este tipo de contratos para evaluar y conceder hipotecas y préstamos, gestionar alquileres, automatizar herencias o incluso aportar credibilidad en ecosistemas de economía colaborativa. Algunos ejemplos de estos servicios pueden ser el alquiler vacacional de apartamentos como Airbnb, los vehículos de transporte con conductor como Uber, o el carsharing tipo blablacar, donde diferentes viajeros se organizan para compartir gastos en un mismo trayecto.

¿Dónde está la información?

Los contratos inteligentes pueden utilizar información del blockchain o información externa. Por ejemplo, de los ejemplos anteriores, la máquina expendedora, la plataforma de crowdfunding o la lotería se basan en información fiable que existe en la blockchain. Ya sea porque es algo implícito que genera el contrato, como el número ganador de la lotería, o porque la insertan los consumidores e interesados en la aplicación, como las ofertas realizadas en el caso de kickstarter.

Por otra parte, algunos de los casos planteados anteriormente están basados en información externa del mundo real, como el caso de las apuestas deportivas, donde el resultado de cada evento se tiene que trasladar de forma segura a la blockchain. Esto puede parecer algo sin importancia, pero la realidad es que la ventaja de la fiabilidad y veracidad de los contratos se puede ver afectada si las fuentes de datos no son confiables o pueden ser alteradas.

Para atajar este problema se utilizan los llamados oráculos, sistemas que crean puentes de conexión entre los datos del mundo real y los datos proveídos al blockchain. Existen proyectos muy grandes que se encargan de que esto ocurra de la forma más segura posible, como por ejemplo ChainLink, que con un fuerte sistema de incentivos y penalizaciones a los proveedores de datos, permite que la información llegue a las cadenas de bloques de forma muy confiable.

Posibles fuentes de información para un contrato inteligente. oraculos

Ethereum, el gran precursor

No podemos hablar de smart contracts sin hablar de Ethereum.

Este proyecto es un buen ejemplo de blockchain que permite a cualquier desarrollador escribir sus propios contratos inteligentes en la red. Utiliza un lenguaje de programación relativamente sencillo llamado Solidity que se creó para este fin.

Sin embargo Ethereum no inventó los Smart Contracts, que fueron mencionados por primera vez en una publicación de Nick Szabo en 1995. Muchos creen que Nick es en realidad la persona detrás del pseudónimo de Satoshi Nakamoto, creador de Bitcoin.

De hecho, Bitcoin también permite ejecutar contratos inteligentes en un lenguaje llamado sCrypt. Sin embargo, en la red bitcoin los contratos son mucho menos flexibles que en Ethereum, hecho que se hizo a propósito por razones de seguridad.

Tras Ethereum, han aparecido diferentes plataformas que permiten la ejecución de smart contracts, como puede ser la apuesta de Binance, Binance Smart Chain, Cardano, TRON, Tezos o EOS.

Blockchains alternativas a Ethereum para ejecutar programas

Los casos de uso de los contratos inteligentes son muy amplios y pueden mejorar muchos sectores tal cual los conocemos hoy en día.

Facilitar pagos por internet, mejorar la trazabilidad y seguridad de cadenas de suministro, crear transparencia en plataformas de recaudación de fondos o donaciones, sistemas de votación, análisis y concesión de hipotecas, seguros y finanzas en general, en particular la nueva industria DeFi, así como las aplicaciones descentralizadas o dApps.

Smart Contracts ¿La solución a todos los problemas?

Viendo esto parece que los Smart Contracts son la panacea y esto tampoco es así, puesto que también tiene sus riesgos.

Bugs en el código

Uno de los problemas más difíciles de resolver son los bugs de código en los contratos. Como en cualquier otro tipo de programa, pueden aparecer problemas inesperados, que en el caso de los smart contracts, al ser inmutables, conllevan una problemática mayor en comparación con el desarrollo de software tradicional.

Uno de los casos más resonados, fue el hack de DAO, cuando se robó el equivalente a más de 60 millones de USD en Ether utilizando una vulnerabilidad de un Smart Contract. Esto causó grandes discusiones en la comunidad de ethereum, que terminó por bifurcar el proyecto con un “hard fork” en lo que hoy conocemos como Ethereum y Ethereum Classic. Tras este ataque la seguridad aumentó mucho, con múltiples revisiones y auditorías de los grandes proyectos, debido a la desconfianza generada.

Cambios en la blockchain

Un Smart Contract puede funcionar perfectamente de la forma esperada, sin embargo, cambios en la red blockchain subyacente, pueden resultar en comportamientos inesperados. Esto es algo bastante poco probable ya que también se intenta hacer todo con la máxima compatibilidad posible, pero no deja de ser algo a considerar. Un ejemplo, sería un upgrade de la blockchain de Ethereum.

Dificultades a la hora de traducir datos

Existen casos en los que es muy difícil traducir los datos del mundo real a la red blockchain, incluso para los ya mencionados servicios de oráculos. Por ejemplo, imaginemos un contrato inteligente para gestionar alquiler de una vivienda. Una vez termina este contrato, el inquilino ha causado ciertos daños a la vivienda, que hay que analizar y cuantificar. Como podemos imaginar, este escenario es muy difícil de cuantificar de forma justa y sin intervención humana para un Smart Contract.

Ventajas e Inconvenientes de los contratos inteligentes

Veamos ahora un breve resumen de los beneficios e inconvenientes de los Smart Contracts. El cuadro esquematizado sería algo como esto:

Ventajas e inconvenientes de los Smart Contracts

Ventajas:

  • Velocidad, eficiencia y precisión. Una vez se cumplen las condiciones, el contrato se ejecuta inmediatamente. Como estos smart contracts son digitales y están completamente automatizados, no es necesario realizar el papeleo administrativo de un contrato tradicional. También se eliminan posibles errores humanos como por ejemplo al rellenar documentos.
  • Credibilidad y transparencia. No hay un tercero involucrado en el proceso y los registros están encriptados y disponibilizados a los participantes del contrato. Esto aporta transparencia y evita que la información se pueda modificar con fines poco éticos o para un beneficio personal. A su vez esto aporta una fuerte herramienta contra el fraude.
  • Seguridad. Los contratos inteligentes viven dentro de una red blockchain. Los registros de transacciones están encriptados, lo que hace que sean muy difíciles de hackear. Dentro de una red blockchain, cada registro depende del anterior, lo que obligaría a modificar la cadena entera de bloques para modificar un solo registro.
  • Ahorro. Eliminando la necesidad de intermediarios para realizar la transacción, estamos consecuentemente reduciendo tiempo, tasas y posibles retrasos.
  • Inmutable. Una vez un contrato está en la blockchain, no se pueden alterar sus reglas, evitando ataques que cambien la lógica.
  • Distribuido. No existe un solo ordenador que controle el contrato, si no que cada nodo del blockchain tiene una réplica del mismo contrato con el mismo estado. 

Por la parte de las desventajas, tenemos las anteriormente mencionadas:

  • Bugs. 
  • Cambios de protocolo.
  • Dificultad para convertir información del mundo real.

Estas desventajas estoy convencido que tarde o temprano se acabarán reduciendo e incluso solucionando completamente.

Te dejo también un vídeo del canal donde explico este mismo artículo de forma más amena.

Y tú, ¿Crees que los Smart Contracts van a ir introduciéndose poco a poco en nuestras vidas? ¿Se te ocurren otros casos o industrias donde aplicar estos contratos? Déjamelo en los comentarios!