Traducción al español de Cardano can bring stability and reliability to the World of DeFi por Rodrigo [RODRI].
Publicado en el blog de Cardanians, el 28 de Agosto de 2020.
Las finanzas descentralizadas (DeFi) son el movimiento más interesante de todo el ecosistema cripto en este momento. Al mismo tiempo, es sinónimo de altos beneficios pero también de alto riesgo. No es algo bueno. DeFi debe ser ante todo un espacio estable y confiable.
¿Qué es DeFi y por qué la necesitamos?
Como su nombre lo indica, la finanza descentralizada es un movimiento que tiene por objeto recrear los servicios financieros y bancarios tradicionales sin tecnologías centralizadas. Es una continuación natural del éxito de Bitcoin. La blockchain, en general, es una máquina de confianza que es capaz de actuar en el papel de un tercero de confianza. En el mundo tradicional, confiamos en muchos terceros, como los bancos que están representados por personas. Todo el espacio cripto se esfuerza por transferir la confianza a las máquinas distribuidas. Para ser más precisos, a los códigos fuente de protocolos e infraestructuras distribuidas, que son mantenidos por un montón de personas independientes. El poder y la influencia de los individuos se debilitan al establecer un colectivo de validadores que ejecutan automáticamente todas las operaciones válidas de los usuarios.
DeFi necesita más funcionalidades que el simple envío de transacciones entre dos direcciones. Los contratos inteligentes permiten definir un conjunto de reglas y condiciones, y ejecutarlas automáticamente en función de la evolución real de los acontecimientos previstos. Alice estará dispuesta a enviar un valor a Bob sólo en caso de que lo conozca o sea capaz de obligarlo a cumplir los términos de las condiciones. Si Alicia no conociera a Bob en absoluto y viceversa, entonces sería difícil intercambiar una moneda por otra entre ellos. ¿Por qué? DeFi es naturalmente un servicio global sin KYC (Conoce Tu Cliente). Ambas partes pueden permanecer en el anonimato si lo desean. Ya sea Alice o Bob, uno de ellos tendría que enviar su moneda como parte de la transacción. Es arriesgado ya que la otra parte podría no enviar su moneda a la contraparte, pudiéndo quedarse con ambas. Un sistema puramente transaccional y descentralizado no es capaz de establecer confianza en un escenario tan simple como éste.
Sólo los contratos inteligentes pueden ayudar aquí. Debe ser posible configurar las condiciones al principio, y luego dejar que la red desempeñe el papel de la tercera parte en la cual ambas partes confían. Ambas partes pueden de manera independiente comprobar las condiciones antes de enviar sus monedas. El contrato inteligente se encargará de prestar un servicio de custodia a corto plazo. Si Alice envía sus monedas primero, el contrato inteligente las bloqueará y esperará las moendas de Bob. Si Bob envía sus monedas a tiempo, el contrato inteligente intercambiará las monedas, y las enviará a Alice y a Bob en simultáneo. Si Bob no envía sus monedas, el contrato inteligente devolverá las monedas de Alice. Como puedes ver, Alice y Bob necesitan un tercero de confianza ya que no hay confianza del uno con el otro.
Sin embargo, encontramos una trampa. La mayoría de los usuarios nunca serán capaces de corroborar el código fuente de los contratos inteligentes. ¿Es un problema? La gente no es capaz de verificar el código fuente de los protocolos transaccionales y sus mecanismos de consenso. A pesar de eso, poco a poco empiezan a construir la confianza en él. La gente también confiará en las aplicaciones y servicios descentralizados en un futuro próximo. Es una cuestión de tiempo.
¿Qué servicios descentralizados podemos construir? Bueno, si se mira más de cerca el ejemplo de Alice y Bob, entonces uno se da cuenta de que el contrato inteligente realizó un servicio similar al que se espera que cumpla un exchange descentralizado (DEX). Los exchanges descentralizados tendrán más funcionalidades, pero básicamente conectan la oferta con la demanda. La rueda de la economía se apoya en las transacciones y el intercambio de valores. El espacio cripto definitivamente necesita de estos servicios. Sin ellos, tendremos que confiar en los exchanges centralizados tradicionales. El negocio real también necesita préstamos, y la capacidad de operar con deuda. Podríamos repetir que la construcción de tales servicios sólo es posible con contratos inteligentes. Las partes necesitan definir los términos, condiciones y penalidades. DeFi trabaja a menudo con préstamos garantizados. La colateralización es una situación en la que un prestatario entrega un activo en prenda como medio para que el prestamista compense su capital en caso de que el prestatario no pague el préstamo. Cuando el prestatario incumple continuamente los pagos de la deuda durante un período prolongado, la propiedad de la parte proporcional de la garantía pasará al prestamista. En las finanzas tradicionales, los tipos de garantía más comunes que se utilizan para asegurar un préstamo incluyen bienes raíces, automóviles, arte, joyas y valores.
Sería difícil o incluso imposible trabajar con la deuda si tuviéramos que depender de activos volátiles. Tanto los prestamistas como los prestatarios deben evaluar cuidadosamente las condiciones de los acuerdos y tienen que calcular cuidadosamente cuánto pueden pagar regularmente. La volatilidad de los criptoactivos puede no ser un enemigo. Por lo tanto, es necesario trabajar con alguna forma de estabilidad que podemos encontrar en el mundo tradicional de las finanzas. Es posible utilizar servicios especiales llamados Oráculos, que son capaces de proporcionar contratos inteligentes con información del mundo real. Gracias a los Oráculos, los contratos inteligentes son capaces de trabajar con el precio real de las monedas fiduciarias y crear muchas formas de monedas estables. Hemos cubierto sólo las partes más importantes de DeFi. Hay más servicios e ideas que esperan ser realizadas.
Algunas personas a menudo olvidan por qué la tecnología blockchain es un invento tan grande. Se trata principalmente de la capacidad de intermediar la confianza entre dos partes que no confían entre sí. Cuantos más casos y servicios podamos cubrir, más valor aportaremos al mundo. Los contratos inteligentes son la continuación natural de ese esfuerzo, y parece que es un reto mayor de lo que esperábamos. Echemos un vistazo a lo que está mal con DeFi, y lo que tenemos que mejorar.
Los desarrolladores de plataformas y los desarrolladores de DeFi son dos grupos separados
Los servicios de DeFi se implementan a través de contratos inteligentes que son redactados por los desarrolladores de DeFi. Los usuarios suelen acceder a los servicios de DeFi a través de aplicaciones descentralizadas (dApps). Los desarrolladores de DeFi utilizan redes basadas en blockchain, y motores de ejecución que representan las piedras básicas de cada plataforma de contratos inteligentes. Si lo miramos desde el punto de vista de la confianza y la fiabilidad, podemos simplificarlo y decir que los usuarios tienen que confiar en los desarrolladores de DeFi, y que los desarrolladores de DeFi necesitan confiar en una plataforma. Si una plataforma falla entonces las dApps se verán afectadas, y por lo tanto también los usuarios se verán perjudicados. Así que los usuarios confían básicamente en ambas plataformas que son creadas por los desarrolladores de la plataforma, y en los contratos inteligentes que son creados por los desarrolladores de DeFi. ¿Por qué hacemos la distinción entre plataformas y dApps? Bueno, la plataforma puede ser confiable, estable y bien preparada para escribir buenas dApps, pero la calidad de las dApps siempre depende de la habilidad de los desarrolladores de DeFi. En otras palabras, los desarrolladores de plataformas son responsables sólo de la calidad de la plataforma. Por lo tanto, son responsables de la blockchain, el mecanismo de consenso, y la construcción de lenguajes de contrato inteligentes, las herramientas necesarias, y la infraestructura que los desarrolladores de DeFi pueden utilizar para escribir sus dApps. El equipo de la plataforma no puede influir directamente en la calidad de las dApps creadas por los desarrolladores de DeFi. Si los desarrolladores DeFi escriben dApps de manera inadecuada, crean un bug, o no prueban el contrato correctamente, entonces es su responsabilidad.
La mayoría de los servicios actuales de DeFi están construidos en Ethereum, y sobre esto podemos ver dos problemas importantes. En primer lugar, hemos visto muchos fallos de contratos inteligentes que resultaron en pérdidas financieras. Los errores han sido cometidos en su mayoría por desarrolladores de DeFi. Sin embargo, cabe señalar que los desarrolladores de DeFi pueden cometer muchos errores debido también a los problemas inherentes al lenguaje de contratos inteligentes. Verás un ejemplo a continuación.
En segundo lugar, las comisiones por transacción son demasiado elevadas para usuarios comunes. Este es un problema que deben resolver los desarrolladores de las plataformas, donde los desarrolladores de DeFi no pueden prácticamente nada.
Cómo Cardano puede mejorar la elaboración de contratos inteligentes
Primero abordemos el primer tema. Los contratos inteligentes escritos en Solidity están llenos de vulnerabilidades de seguridad que han sido explotadas en muchos ataques muy conocidos. La razón por la que se considera que Solidity no es amigable para escribir contratos inteligentes es el hecho de que el lenguaje ha sido influenciado por JavaScript y C++. Los desarrolladores sin experiencia que vienen de la web o del desarrollo tradicional de aplicaciones son llevados a trazar paralelos entre Solidity y estos lenguajes, incluso cuando no existen. Para poder escribir contratos inteligentes seguros en Solidity, es esencial tener una comprensión sólida del sistema Ethereum subyacente y sus diversas sutilezas. Echemos un vistazo a algunos problemas con Solidity.
Uno de los muchos problemas de Solidity es el de la reentrada. La reentrada se produce cuando se permite a las llamadas de contratos externos hacer nuevas llamadas al contrato de llamada antes de que se complete la ejecución inicial. Esto significa que el estado del contrato puede cambiar en medio de su ejecución como resultado de una llamada a un contrato no confiable, o el uso de una función de bajo nivel con una dirección externa. Esto abre el contrato a una serie de riesgos y en algunos casos, todo el saldo de tokens podría agotarse como ocurrió cuando DAO fue hackeado y se perdieron 3,6M de ETH. Los underflows y overflows de enteros no son una nueva clase de vulnerabilidad en el mundo de la programación tradicional, pero son especialmente peligrosos en los contratos inteligentes. Esta vulnerabilidad permitió a los atacantes robar enormes cantidades de ETH. Los investigadores descubrieron que al menos una docena de tokens ERC-20 eran susceptibles a este ataque.
Se demostró que es necesario crear un lenguaje que sea significativamente más fácil y más adecuado para escribir contratos inteligentes. Un buen lenguaje para escribir contratos inteligentes debe evitar que los desarrolladores escriban intencionalmente código engañoso o malicioso, y también protege a los desarrolladores de generar involuntariamente vulnerabilidades en el código de sus contratos. Cardano puede aportar un nuevo nivel de calidad en lo que respecta a la escritura de contratos inteligentes. El equipo ha inventado el lenguaje de contratos inteligentes Plutus, que se ha inspirado en el lenguaje funcional Haskell.
En general, hay dos grandes familias de lenguajes de programación. Estos son los imperativos y los funcionales. Solidity, pero también C++ o Java, son ejemplos de lenguajes de programación imperativos. Cuando un desarrollador quiere escribir un programa simple o un contrato inteligente, es necesario especificar todos los pasos que la computadora necesita realizar para alcanzar un objetivo esperado. Este tipo de enfoque de programación también se llama programación algorítmica. Si un desarrollador quiere sumar dos números, entonces son necesarios múltiples pasos para alcanzar el objetivo. Cada paso cambia constantemente el estado del programa. Los pasos se procesan individualmente, en el orden que el desarrollador determinó durante la fase de desarrollo. Veamos un ejemplo:
int numeroA = 100;
int numeroB = 200;
int resultado;
resultado = numeroA + numeroB;
El desarrollador tuvo que declarar 3 variables, asignar valor a dos de ellas, y disponer de una tercera para almacenar el resultado de la suma.
Los lenguajes de programación funcional, como Haskell y Plutus, han sido creados para construir un enfoque funcional en la resolución de problemas. Este tipo de enfoque de programación también se llama programación declarativa. Es un paradigma de programación que expresa la lógica de un cálculo (qué hacer) sin necesidad de describir su flujo de control (cómo hacerlo). La programación declarativa trata de desdibujar la distinción entre un programa como un conjunto de instrucciones y un programa como una afirmación sobre la respuesta deseada.
La computación es tratada como la evaluación de las funciones matemáticas, y evita el estado y los datos mutables. Hace hincapié en la aplicación de las funciones, en contraste con el estilo de programación imperativa, que hace hincapié en los cambios de estado. En un lenguaje puramente funcional, como el de Haskell y Plutus, todas las funciones no tienen efectos secundarios, y los cambios de estado sólo se representan como funciones que transforman el estado.
Supongamos que existe una función f(x) que un desarrollador quiere utilizar para calcular una función g(x). Luego quiere usarla para trabajar con una función h(x). En lugar de resolver todas ellas en una secuencia, es posible unir todas las funciones en una sola función como esta:
h(g(f(x)))
Este enfoque permite a los desarrolladores considerar los problemas de una manera matemática. Se supone que los programas funcionales son un enfoque más seguro para la creación de contratos inteligentes. Esto también ayuda a una verificación formal más simple, lo que significa que es más fácil probar matemáticamente lo que hace un programa y cómo se comportará en todas las condiciones posibles. Esto le da a Cardano su propiedad de Código de Alta Seguridad. Es cierto para la red de Cardano y será lo mismo para las aplicaciones que se escriban en Plutus.
Solidity fue el primer lenguaje diseñado para escribir contratos inteligentes, y se podían esperar problemas. Por otro lado, podemos decir que el equipo subestimó la complejidad y las habilidades de los desarrolladores para usar el lenguaje de forma segura. Incluso los desarrolladores experimentados afirman que todavía tienen mucho respeto cuando escriben un contrato inteligente en Solidity. Definitivamente tomará algún tiempo aprender Plutus, pero el esfuerzo será recompensado. DeFi necesita contratos inteligentes seguros y confiables sin efectos secundarios inesperados o vulnerabilidades que puedan ser fácilmente explotadas. No es posible desplegar un contrato inteligente que pueda ser hackeado literalmente en pocos días. Hemos visto tales problemas y definitivamente no atraerá a más gente al espacio DeFi. No necesitamos proyectos que ofrezcan una alta recompensa por tomar un alto riesgo. Necesitamos proyectos que tengan modelos económicos o de incentivos sostenibles y, sobre todo, que sean fiables, estables, rápidos y fáciles de usar.
Cómo Cardano puede mejorar la experiencia del usuario
Las comisiones altas son definitivamente una característica muy poco amigable. Sobre todo si has pagado una pequeña comisión cuando comenzaste a utilizar algún servicio DeFi y luego tienes que pagar una comisión significativamente más alta cuando deseas mover activos a otro lugar. En el momento de escribir este artículo, una comisión estándar son unos cuántos dólares por transacción en la red Ethereum. Algunas personas afirmaron que necesitaban pagar una comisión de 50 dólares para cerrar una posición. La tarifa puede ser más alta que el beneficio que los usuarios han obtenido. Algunas personas no están dispuestas a pagar una comisión tan alta, y más bien dejan que la posición se abra incluso si desean cerrarla. No es económicamente inteligente pagar comisiones tan altas en muchos casos.
Ethereum todavía funciona bajo el sistema PoW, y no es un buen mecanismo de consenso en cuanto a escalabilidad. Cada red blockchain tiene un límite en cuanto al número de transacciones que puede procesar en un momento dado. Cuando se supera el límite, algunas transacciones tienen que esperar más tiempo para ser procesadas. Los mineros seleccionan las transacciones por el tamaño de las comisiones de la transacción, y prefieren comisiones más altas. Los usuarios pueden fijar ellos mismos las comisiones por transacción. Cuando una red se obstruye, los usuarios tienen que establecer una comisión más alta para que sus transacciones se procesen más rápido. Las transacciones más antiguas con tarifas más bajas pueden esperar en el pool de memoria durante mucho tiempo, ya que las nuevas transacciones con tarifas más altas pasan por encima de ellas.
En el momento de redactar el presente artículo, la red podía procesar aproximadamente 13 transacciones por segundo. Había más de 150.000 transacciones pendientes en el pool de memoria. He visto transacciones esperando más de 12 días por haber fijado una comisión baja. Las transacciones más nuevas tenían aproximadamente 80 veces más comisiones. La experiencia del usuario no es buena cuando las condiciones cambian tan dramáticamente en un corto período de tiempo. Cuando una red procesa una transacción económica en pocos segundos y de repente tarda días, y hay que pagar una comisión significativamente más alta, entonces los usuarios probablemente se encontrarán muy insatisfechos.
Definitivamente es bueno que la gente se interese por las criptomonedas y el espacio DeFi. Las altas comisiones por transacción y el largo tiempo necesario para procesar las transacciones no pueden ser un obstáculo para que los recién llegados interactúen con los servicios descentralizados. Los recién llegados nunca lograrán depositar su confianza en los servicios descentralizados si la experiencia de usuario en realidad es peor de la que pueden ofrecer los servicios tradicionales. Los bancos solían ser, y a menudo siguen siendo, rígidos, lentos y la gente tiene que pagar unas tasas bastante elevadas. Las criptomonedas están aquí no sólo para proporcionar servicios descentralizados, sino también para ser más rápidas y económicas.
Para superar estos obstáculos, las redes de blockchain deben resolver el problema de la escalabilidad. Una red descentralizada que no ofrezca una buena experiencia de usuario, fiabilidad, estabilidad y seguridad, no será revolucionaria. En realidad, a la gente no le importa mucho la descentralización, y no va a cambiar mucho hasta que los servicios descentralizados puedan ofrecer servicios financieros realmente competitivos. Cardano tiene el potencial para aportar estas cualidades, y atraer a la gente a los servicios descentralizados que no presentan los problemas de la primera y la segunda generación de blockchain. La red de Cardano está configurada para seleccionar al azar un líder de slot aproximadamente cada 20 segundos. Puede ser más rápido o puede tomar más tiempo. Cuando un líder de slot seleccionado no produce un bloque, entonces el slot permanecerá vacío. Esto significa que las transacciones podrán ser procesadas en el siguiente slot. En cuanto a la escalabilidad, Cardano es aproximadamente 20 veces más escalable que Ethereum. Es una mejora tecnológica sobresaliente, y será suficiente durante los primeros años. Se espera que el tema de las comisiones altas pase a la historia. Hydra es la solución de segunda capa para Cardano, y una vez que se despliegue, los usuarios la adorarán. El tiempo por bloque podría ser de aproximadamente un segundo. A diferencia de otras soluciones de segunda capa, Hydra será capaz de procesar contratos inteligentes y trabajar directamente con el modelo UTxO de la primera capa (en realidad con la versión UTxO extendido (EUTxO)). EUTxO será enviada de la primera a la segunda capa durante la apertura de canales, y luego de vuelta de la segunda capa a la primera durante el cierre de canales. Es muy probable que garantice un alto nivel de seguridad para los servicios descentralizados. Las dApps serán muy rápida ya que la ejecución de los contratos inteligentes también se procesará en Hydra. La experiencia del usuario será muy satisfactoria.
Conclusión
La calidad de las dApps siempre dependerá de la calidad de la tecnología de la blockchain subyacente y la infraestructura para los contratos inteligentes. El consenso de la red de la primera capa influye directamente en la experiencia de usuario de los contratos inteligentes. Los usuarios quieren básicamente utilizar un servicio seguro y fiable sin preocuparse por los detalles técnicos. Los usuarios sólo quieren descargar aplicaciones a sus teléfonos celulares y usarlas. Considerarán la usabilidad, el valor añadido y los beneficios que las aplicaciones pueden ofrecer. Nada más. Sólo los servicios que funcionen de manera fiable y sin problemas durante algunos años podrán ser adoptados por las masas. El equipo de IOG entregará un convertidor de ERC-20 que permitirá el despliegue en la red de Cardano de tokens ERC-20 preexistentes. Veremos cuántos equipos considerarán esta opción. Sería beneficioso para los usuarios y para el espacio DeFi.
¿Has disfrutado de la lectura de nuestro artículo?
Puedes compartir este artículo en Twitter o Facebook, o convertirte en un orgulloso Cardanian en Patreon
Si te gusta nuestro trabajo, apreciaremos cualquier donación
Cardano [ADA]: Ae2tdPwUPEZKXn3Qr2jButWgRJRB4S8TrnQvsy6uFnDCbGwc9XgtUSvbxKG
Bitcoin [BTC]: 13rxBopLWDqdUS3KzG3Jj1JNZoK43sLXde
Ethereum [ETH, ERC20]: 0x448AC9321B12490Ac8faf121B40fc6c7CDBa8fA4
Ripple [XRP]: rUi2KPLRgCG7ZeAmujDXe8QWueDUEBdpsS
¡Gracias por el apoyo!