Ethereum - la llegada del dinero programable
Como la introducción de contratos inteligentes en la blockchain puede cambiar la economía en el mundo
A poco que hayas leído sobre blockchain y criptomonedas, conocerás al menos las dos más grandes, Bitcoin por supuesto, y Ethereum.
Ethereum llega para aumentar las capacidades que ofrecía Bitcoin y mejorar algunos aspectos que su fundador consideraba que Bitcoin no tenía optimizados. Pero empecemos por el principio.
Un poco de historia
Al principio de los tiempos, allá por 2009, sólo existía Bitcoin dentro del mundo de Blockchain. Sin embargo, gracias a internet, su popularidad se extendió rápidamente.1
Mucha gente vio potencial no sólo en Bitcoin, sino en la tecnología detrás de él, la blockchain. Se empezó a valorar que dicha tecnología podía valer para más aplicaciones además de la transferencia de valor económico. Es así como surgen diferentes proyectos que tratan de utilizar dicha tecnología con otros objetivos.
Uno de los primeros fue Namecoin, en 2010. Namecoin nació como la primera base de datos descentralizada para registros de nombres. De esta forma, se podía simplificar el uso de las cuentas de Bitcoin, que se identificaban exclusivamente como una cadena de caracteres pseudoaleatoria. De esta forma, alguien podía registrar el nombre de "Pedro" y vincular su cuenta a dicho nombre.
Fueron surgiendo diferentes proyectos, pero sin duda el que más lejos ha llegado y otro de los cambios de paradigma tecnológicos fue Ethereum.
Ethereum, nacida en 2014, es la primera blockchain que permite la ejecución de programas personalizados de forma distribuida. A diferencia de Bitcoin, que nace con el propósito principal de transferir valor monetario, Ethereum nace con un propósito más general, ser una base o entorno sobre el que crear aplicaciones descentralizadas (más comúnmente conocidas como dapps). Aunque tenga un propósito más general, para su sostenibilidad e incentivar a los nodos a que participen en la red sigue siendo necesario la creación de valor económico dentro de ella, con lo que es imprescindible una moneda o token de pago. Así como la moneda en la red Bitcoin es el bitcoin, en Ethereum es el ether.
Ethereum. Principales características
Veamos a continuación las principales características de Ethereum:
Si Bitcoin es simplemente un registro de transacciones asociadas a direcciones de carteras, Ethereum presenta una diferencia importante. Ethereum incluye el concepto de "cuentas". Una cuenta en Ethereum presentará:
Un balance de ether disponible (el ether que ha entrado menos el ether que ha salido).
El código asociado al contrato, si lo tiene.
Un valor numérico nonce, diferente al nonce de los bloques. En este caso es simplemente un contador del número de transacciones ya realizadas por la cuenta.
Un campo de almacenaje de la cuenta, vacío por defecto.
A su vez, las cuentas pueden ser de dos tipos: Cuentas de propietario externo y cuentas de contrato. Las primeras serían las cuentas que pueden ser manejadas por una persona física que tenga sus claves privadas (al estilo de Bitcoin). Las segundas serían cuentas que incluyen código de programación y que son controladas por su propio código interno (que es el que determina si dicha cuenta emite transacciones o no).
Se permite enviar "mensajes" entre cuentas (no solo transacciones económicas) con el objetivo de activar el código asociado a las mismas.
Se incluye un concepto llamado Gas que es el coste en ether de las comisiones asociadas a una transacción determinada entre cuentas. Para cada transacción se definirá un precio de la unidad Gas (algo así como el precio del litro de gasolina) y una cantidad máxima de unidades de Gas necesaria para la ejecución de dicha transacción (los litros máximos necesarios de gasolina para hacer el viaje). Estos valores deben ir definidos dentro de la propia transacción, de manera que se debe calcular previamente cuánto Gas será necesario para dicha transacción (en función de si se va a activar código en la cuenta destino y cuánto consumo computacional tendrá asociado dicho código).
Para la ejecución de código de programación existe lo que se conoce como Ethereum Virtual Machine (máquina virtual de Ethereum). Los nodos de Ethereum pueden procesar el código incluido en las cuentas, realizando las tareas descritas en dicho código.
En resumen, en Ethereum se pueden hacer transacciones entre usuarios, o enviar transacciones de un usuario a una cuenta de contrato o viceversa. Al enviar una transacción a una cuenta de contrato, el objetivo es que dicha cuenta de contrato ejecute alguna tarea descrita en su código interno. Para ello el usuario que envía la transacción debe pagar por adelantado el Gas asociado (el coste de la propia transacción más el coste de ejecutar el código interno de la cuenta de contrato). En caso de que el saldo no sea suficiente, la tarea no se ejecutará.
El potencial de Ethereum es muy alto y su versatilidad ha hecho que sea, junto con Bitcoin, la cadena de bloques más usada y, de lejos, sobre la que más proyectos descentralizados se están realizando.
Smart Contracts. Dapps y DeFi
La posibilidad de incluir código de programación en las cuentas de contrato y poder ejecutarlo es lo que ha permitido la gran expansión de Ethereum por todo el mundo. Estos bloques de código incluidos en las cuentas es lo que se conoce como Smart Contracts o Contratos Inteligentes.
Al igual que se puede programar una web en un servidor que está conectado a internet, y permitir que terceros interactúen con dicha web a través de internet, se pueden crear programas dentro de una cuenta de contrato con los que interactúen otros usuarios a través de otras cuentas de contrato o a través de cuentas externas.
Esto se puede ver mejor con un ejemplo:
Imaginemos que Lucía y Ana son dos personas que no se conocen. Lucía y Ana quieren apostar una determinada cantidad de dinero al resultado de un partido de baloncesto. Lo hacen a través de una plataforma de apuestas descentralizada en Ethereum. Para ello ambas hacen una transferencia de una cantidad determinada a una cuenta de contrato inteligente. Cuando el partido finalice, en función del resultado, el contrato inteligente realizará la transferencia de la cantidad apostada a Lucía o a Ana, la que haya ganado. No será necesario ningún intermediario (casa de apuestas) ya que todo el trabajo lo realizará el programa informático incluido en el contrato inteligente2.
Una de las principales ventajas de esta solución es la desaparición del intermediario (la casa de apuestas), con la consecuente reducción de costes. A su vez, al no depender de ningún intermediario (que tenga que estar atado a la legislación de un determinado país), las posibilidades de expropiación o cierre de la plataforma se reducen drásticamente. La plataforma no depende de nadie (el contrato inteligente es ejecutado en cada uno de los nodos de la red, no en un servidor central que depende de una empresa). A su vez, la potencial mala praxis del intermediario, en una red descentralizada y pública como la de Ethereum, se reduce ya que es muy fácil auditar el sistema —cualquiera puede revisar el código informático del contrato inteligente para analizar si está bien desarrollado o no y encontrar posibles fallos—.
Gracias a esta posibilidad de programación y ejecución de código dentro de la blockchain, ha habido una explosión en el mundo cripto en los últimos años. Han surgido multitud de criptomonedas, han aparecido conceptos nuevos como el de los NFTs (Non Fungible Tokens, que veremos más adelante), se han creado plataformas descentralizadas que permiten el intercambio entre criptomonedas, préstamos, incluso se han creado otras blockchain independientes a Ethereum y Bitcoin que pueden interactuar con ellas y que buscan solucionar problemas que estas dos redes principales presentan (costes de transacción, velocidad de transacción...)
Tokens nativos y algo más
Otra de las características principales de Ethereum es la posibilidad de crear tokens no nativos. ¿Qué es un token nativo? Un token nativo es el token principal de una red blockchain, con el que se pagan las transacciones en la misma. En Bitcoin el token nativo es bitcoin, en Ethereum es ether.
En el caso de Ethereum, además de su token nativo, se pueden transaccionar dos tipos más de tokens, que son los que veremos a continuación.
Tokens ERC-20
Este tipo de tokens siguen una estructura similar al token nativo ether, pero no pueden usarse para pagar el Gas de la red. Por lo demás son similares y se puede llevar una contabilidad de los mismos en las cuentas. Estos tokens siguen un protocolo especial llamado ERC-20, este protocolo es una especie de estándar que hace que esos tokens tengan la misma estructura entre ellos y se puedan intercambiar entre sí. Tokens de este tipo son multitud de las criptomonedas que ya conocemos (USDT, BNB, Matic…).
Para la creación de este tipo de tokens se genera un smart contract alojado en una cuenta de contrato. En dicho código se programan los tokenomics del token, es decir, cómo va a funcionar el mismo. Ahí se definen, entre otras cosas, la cantidad que se emite inicialmente, cual es el mecanismo de creación gradual del mismo (inflación), si existe un proceso de quema o desaparición de dichos tokens (deflación) etc.
Cuando se crea un token de tipo ERC-20, se decide una emisión de una cantidad de los mismos, estas unidades de tokens entre sí son iguales, son conocidos como tokens fungibles ya que cada unidad tiene exactamente el mismo valor que otra unidad del mismo token, al igual que un dólar tiene exactamente el mismo valor que otro dólar.
Esto los diferencia del siguiente tipo de tokens, los tokens no fungibles, más conocidos como NFTs.
Tokens ERC-721
Los NFTs son tokens únicos, es decir, si en los tokens ERC-20 un mismo contrato podía generar una cantidad enorme de tokens iguales entre sí, aquí un mismo contrato puede generar una cantidad de NFTs diferentes entre sí. Para ello, este estándar ERC-721 cuenta con un id_token que es diferente para cada token emitido por el mismo contrato.
Esto ofrece un potencial enorme ya que, con este identificador único (id_token + dirección de contrato emisor), una dapp puede mostrar una imagen única asociada a este identificador, o dar acceso a determinados servicios dentro de la app. Es gracias a este estándar nativo de la red Ethereum (y que otras redes han importado posteriormente) que se puede tokenizar la propiedad de un activo único (sea un activo físico o digital), permitiendo, por ejemplo, la explosión de arte digital sin precedentes que vivimos hace un par de años y el nacimiento de plataformas dedicadas exclusivamente a la compraventa de activos digitales.
Proof of Work vs Proof of Stake
Dentro de la red Ethereum, una de las novedades más recientes ha sido su transición de un sistema de consenso tipo prueba de trabajo (o Proof of Work - PoW) a una prueba de acumulación, más conocida por su nombre en inglés, Proof of Stake - PoS.
Sin entrar en demasiado detalle, (una explicación detallada de lo que es Proof of Work la puedas encontrar aquí), el sistema de consenso de una blockchain es el que permite, a todos los nodos que crean bloques de la red, ponerse de acuerdo entre sí para decidir qué bloques son válidos para añadir y cuáles no.
PoW requiere que los mineros resuelvan problemas matemáticos complejos para validar transacciones y recibir una recompensa. Esto consume una gran cantidad de energía y recursos, lo que aumenta el costo de mantener la red.
Por otro lado, PoS elige a un nodo validador al azar basado en la cantidad de tokens que posee y está dispuesto a "apostar". El validador luego valida las transacciones y recibe una recompensa. PoS es más eficiente en términos de energía y recursos que PoW, lo que reduce los costos de mantenimiento de la red.
Cada nodo validador, si quiere tener más posibilidades de crear y validar nuevos bloques (y ganar recompensas por ello), debe tener “almacenada” una cantidad mínima de ether, sin posibilidad de retirarlo de la red ni gastarlo. Tener almacenado su ether en la red es una forma de firmar su compromiso con la red. A mayor cantidad de ether bloqueado en la red, más posibilidades tiene el nodo de que sea su bloque el que se elija y por tanto reciba más ether como recompensa. En el caso de que quiera actuar maliciosamente, menoscabaría la integridad de la red, generaría desconfianza y eso provocaría que el valor de ether cayese, lo cual va en contra de sus intereses como poseedor de esta moneda.
Existen multitud de opiniones acerca de qué sistema de consenso es mejor. Existen argumentos a favor y en contra de ambos. Contra PoW se argumenta que el consumo de energía es excesivo y atenta contra el medio ambiente. Es cierto que el consumo de energía es muy alto, pero en mi opinión este argumento por sí solo es demasiado simplista —¿acaso los Bancos Centrales con sus oficinas, sus máquinas de imprimir billetes y todo el sistema bancario en general consume menos que las redes PoW? lo dudo—.
Los contrarios a PoS argumentan que premiar a los nodos con mayor ether bloqueado tiene mayor riesgo de centralización ya que los nodos con más ether tienen más probabilidades de generar bloques, lo que les generará más recompensas, lo que alimenta esta diferencia. Por otra parte, es cierto que este sistema permite mayor creación de valor dentro de la red los nodos —para poder conseguir más bloques y tener más peso en la red deben comprar más ether y bloquearlo, en PoW lo que se incentiva es vender el token e invertir en equipos informáticos para poder generar más bloques—. Este sistema de consenso a la larga incentiva la acumulación de ether y por tanto es una fuerza más que empuja el valor del activo hacia arriba.
La realidad es que existen blockchains con ambos sistemas de consenso (y con otros) y todas tienen sus pros y sus contras, no hay una solución “buena”. A mi modo de ver, aunque tengo que reconocer que tengo importantes lagunas de conocimiento respecto a este tema, creo que tiene sentido esa migración de Ethereum a PoS. Creo que Proof of Work es un sistema más seguro, pero Proof of Stake es más escalable y puede ayudar a aumentar la dimensión de la red de Ethereum, facilitando la creación de nodos validadores que ya no tendrán que invertir en grandes equipos informáticos, posiblemente reduciendo el coste de Gas de las transacciones y, en general, preparando a la red para una salto de varias órdenes de magnitud en cuando a su uso y adopción.3
Para mí ambos sistemas no son excluyentes. Una red debe escoger el sistema de consenso que quiere para sus objetivos, pero nosotros como inversores no tenemos por qué decantarnos por una sola opción (desde luego, no deberíamos). Para mí, Bitcoin es el oro digital y Ethereum es la economía digital.
Disclaimer: no soy asesor de inversión y por tanto no tengo permitido legalmente dar consejos sobre ello. Este artículo es meramente informativo y refleja mi opinión, la cual, como cualquier opinión, es sesgada. Haz tu propia investigación antes de poner tu dinero a funcionar y, si así lo consideras, acude a un asesor financiero.
Entendamos “rápidamente”. Por aquella época Bitcoin era una cosa de frikis de la programación pero, gracias a internet, muchos frikis pudieron enterarse de esto y empezar a trabajar en esta incipiente tecnología. Y a muchos de ellos no les fue nada mal la verdad.
Seguramente te estés preguntando ¿y cómo se entera el contrato inteligente del resultado del partido?. Para que la blockchain pueda incorporar, de forma fiable, datos de fuera de la red, se utilizan lo que se conoce como oráculos. Los oráculos son sistemas que interactúan con la blockchain y aportan datos del exterior de forma segura. Por si quieres indagar en el tema, uno de los más conocidos es Chainlink, que en sí mismo también es una red blockchain. Seguramente en un futuro próximo le dedique un artículo ya que el tema de los oráculos es apasionante.
Hola! He visto que también hablas de criptomonedas. Sería genial que me añadieses a la sección de "Recomendaciones" de Substack ¿Podrías dedicar 5 minutos a leer la mía a ver si te interesa esa recomendación? Si quieres podemos hablar por Twitter (@AlexPaz0X) o por Telegram si te es más cómodo (@alexpaz96) ¡Gracias de antemano por tu tiempo!