¿Qué es Ethereum (ETH) y cómo funciona?
Introducción
Ethereum es una plataforma pública de código abierto, no permisionada y basada en tecnología blockchain, que mantiene un registro permanente de transacciones digitales y permite la implementación de “smart contracts” -programas informáticos que ejecutan de forma automática acuerdos entre dos o más partes, cuando se cumplen una serie de condiciones establecidas de antemano.
Una manera simple de imaginarse Ethereum es como un libro mayor contable, que a diferencia de los tradicionales, funciona de manera distribuida -esto significa que no requiere de una autoridad central encargada de su mantenimiento y seguridad. La tecnología que utiliza la plataforma para operar como libro mayor distribuido se denomina blockchain -en ocasiones, también se habla de DLT o Distributed Ledger Technology, aunque algunos consideran que ambos conceptos no designan exactamente lo mismo. Sin entrar a discutir las potenciales diferencias, lo que es indudable es que tanto una blockchain como un sistema DLT comparten el hecho de ser bases de datos distribuidas a lo largo de una serie de nodos -que no son otra cosa que ordenadores ejecutando un software especial. Dichos nodos se conectan formando una red peer-to peer, que integra diversos sistemas de seguridad propios de la criptografía asimétrica o de clave pública -como por ejemplo, las firmas digitales.
Una de las funciones más interesantes de Ethereum es que permite digitalizar el concepto de “valor”. Esto significa crear criptoactivos financieros que, o bien son nativos de la plataforma -ETH y todos los tokens ERC20 compatibles-; o bien actúan como representaciones virtuales de bienes del mundo real -como obras de arte o inmuebles-, lo que se logra a través de un proceso denominado tokenización.
Otra de las características de Ethereum es que permite transferir valor de manera “trustless” -término inglés que alude al hecho de no necesitar a terceras partes que actúen como intermediario. Para funcionar de manera verdaderamente “trustless”, es necesario que todos los nodos de Ethereum dispongan de una copia de la base de datos con el “estado” actual de la red -es decir, que refleje el balance vigente de todas y cada una de las cuentas.
Como acabamos de indicar, los usuarios podrán realizar transacciones peer-to-peer sin necesidad de pedir permiso o requerir la intevención de un tercero. Pero dichas transacciones provocarán cambios en el “estado” del libro mayor de Ethereum -en inglés, ledger-; por lo que las mismas deberán ser verificadas y validadas por una mayoría de nodos, en base a una serie de reglas determinadas por un algoritmo de consenso. Es por este motivo, que las redes blockchain son consideradas sistemas inmutables -no se pueden modificar si no se cumplen una serie de reglas- y resistentes a la censura.
La red Ethereum proporciona infraestructura para computación distribuida y actividades económicas, y, en sus inicios, se concibió como el germen de un nuevo internet del “valor” -la Open Web o Web3.
Entre sus funciones podemos destacar:
La posibilidad de realizar transacciones económicas transnacionales, sin necesidad de depender de terceras partes, ni las limitaciones temporales y costes que imponen los sistemas tradicionales.
La posibilidad de emitir tokens -representaciones digitales de valor-, que podrán ser utilizados como mecanismos de incentivo económico.
La posibilidad de crear y desplegar aplicaciones descentralizadas -Dapps- de todo tipo.
La posibilidad de programar smart contracts -contratos autoejecutables que permiten la automatización de transacciones- para diseñar toda clase de lógicas de negocio sin necesidad de intermediarios de confianza.
Ethereum integra una divisa nativa -denominada Ether o ETH- que actúa como mecanismo de recompensa para los mineros -nodos que mediante su potencia computacional ejecutan una serie de operaciones fundamentales para alcanzar consenso y proteger la integridad de la red.
Esta es una función esencial que se logra, en la actualidad, mediante un mecanismo de consenso denominado Proof-of-Work (Prueba de Trabajo). Alcanzar consenso significa que todos los nodos integrantes de la red compartirán una versión canónica de la “verdad” -lo que en este contexto significa ponerse de acuerdo respecto al “estado” más reciente del libro mayor, con la actualización de los balances de todas las cuentas.
Es interesante destacar que, al facilitar la emisión de toda clase de tokens, Ethereum permite a los usuarios acceder a un sinfín de aplicaciones financieras enmarcadas en lo que se ha dado en llamar DeFi -Decentralized Finance-, un ecosistema financiero de acceso libre y universal, en el que los usuarios nunca ceden la propiedad de sus datos.
La promesa de este nuevo “Internet del Valor” sólo es posible porque la infraestructura sobre la que se erige Ethereum es pública, neutral y de libre acceso -no está controlada por ninguna compañía o persona, sino por sus propios usuarios.
Funcionamiento de Ethereum
Como acabamos de explicar, Ethereum no deja de ser en esencia más que una blockchain. Una plataforma que permite realizar transacciones económicas, y que está protegida mediante mecanismos criptográficos -lo que hace que resulte prácticamente imposible falsear o eliminar las entradas registradas en su libro mayor. Al tratarse de una máquina de instancia única -en inglés, singleton machine-, en Ethereum siempre existirá una versión canónica de la verdad -un “estado”, que será compartido por todos los nodos.
Lo que la diferencia de otras plataformas blockchain como Bitcoin es su elevada expresividad y su naturaleza Turing-completa -lo que le permite la programación de smart contracts de lógica compleja.
Transición de estados
Desde un punto de vista puramente técnico, Ethereum es lo que se conoce en ciencias computacionales como una máquina de estados de naturaleza transaccional. Una máquina de estados es cualquier sistema que lea inputs (datos de entrada), y en base a éstos, transicione a un nuevo “estado” (en este caso, un cambio en los balances de las cuentas). En el caso de Ethereum, el estado inicial -aquel en el que todavía no se han producido ni registrado transacciones- se denomina “génesis” .
Es importante comprender que, como en todas las blockchains, Ethereum agrupa las transacciones en bloques que irá enlazando sucesivamente.
Para transicionar de un estado a otro, las transacciones deben ser consideradas válidas -lo que en el actual sistema de consenso de la red, Proof of Work, requiere pasar por un proceso de verificación denominado minado. El minado no es más que una competición entre nodos repartidos por todo el mundo que, de forma simultánea, tratan de crear y validar bloques -empleando para ello sus recursos computacionales y presentando una prueba criptográfica como garantía.
El nodo minero que completa el trabajo de forma más rápida obtiene como recompensa un número preestablecido de ETH -el token nativo de la red Ethereum. Esto significa que cada vez que un minero crea y valida un bloque, la masa monetaria total de ETH se ve incrementada.
Forks
Anteriormente, hemos definido las blockchains como máquinas de instancia única. Esto significa que el estado más reciente del libro mayor contable compartido por los nodos de Ethereum, será la versión canónica que todos los participantes de la red aceptarán como válida. Cuando no existe un consenso respecto al “estado” actual de la red debido a una controversia irresoluble, se puede llegar a un punto en que la cadena de bloques acabe bifurcándose -es lo que se denomina en inglés un fork.
El ejemplo más célebre de este fenómeno se produciría en julio de 2016, cuando la propia comunidad Ethereum forzaría un hard fork para recuperar el ETH depositado en un fondo de capital riesgo descentralizado -denominado THE DAO- que había sido hackeado. Este incidente provocaría un cisma en la comunidad y una bifurcación de la blockchain. Los nodos que migraron a la nueva cadena conforman la red que a día de hoy conocemos como Ethereum; mientras que aquellos que decidieron seguir en la cadena original -la que había sido objeto del hackeo- darían lugar a una nueva plataforma bautizada como Ethereum Classic.
En general, la forma que tiene Ethereum de determinar cuál es la versión canónica de la blockchain y evitar constantes forks, es mediante el protocolo GHOST -Greedy Heaviest Observed Subtree. Explicado de forma simple y llana, dicho protocolo establece que los bloques deberán alargar la cadena siguiendo la ruta en la que los mineros hayan gastado una mayor cantidad de recursos computacionales.
Cuentas
Es necesario tener en cuenta que en la plataforma Ethereum existen dos tipos de cuentas:
EOA (Externally Owned Accounts, es decir, cuentas de posesión externa). Son aquellas controladas mediante claves privadas y que, por lo tanto, no están asociadas a un smart contract (la cuenta del monedero de un usuario común sería, por lo general, un ejemplo clásico de EOA).
Contract Accounts (cuentas de contratos). Son aquellas controladas por el código del smart contract al que están asociadas.
Una cuenta EOA crea transacciones, las firma con sus claves privadas, y las envía en forma de mensajes. Dichos mensajes son simples transferencias de valor económico -cuando el receptor es la cuenta EOA de otro usuario-; o, por el contrario, actúan como activador del smart contract de una Contract Account -que se encargará de ejecutar alguna acción como transferir tokens, almacenar un registro, emitir nuevas monedas.
Es importante entender que las Contract Accounts no pueden ejecutar transacciones por iniciativa propia. Podemos imaginárnoslas como automatismos que se hayan inactivos por defecto, y que sólo la recepción de una transacción externa -remitida por una EOA u otra Contract Account- pone en marcha para ejecutar las funciones para las que han sido programados.
Almacenamiento de datos
Otro aspecto interesante de Ethereum es la forma que tiene de almacenar el estado global de la red -es decir, la “instantánea” general de los balances de todas las direcciones y cuentas. Para ello, utiliza una estructura de datos denominada Merkle Patricia tree. Esta estructura permite ligar un gran número de datos independientes, mediante un único valor de hash -que es como se denomina al producto que se obtiene tras pasar los citados datos por una función hash.
La importancia del árbol de Merkel como estructura de datos es fundamental, ya que permite a ciertos nodos -denominados light clients- descargar y almacenar sólo las cabeceras de los bloques producidos por los mineros, en lugar de sincronizar la cadena completa. Los nodos que optan por esto último -conocidos como full archive nodes-se ven obligados a ejecutar todas las transacciones del historial de la blockchain, lo que conlleva unos requisitos a nivel de hardware considerables.
Gas
Otro de los conceptos fundamentales para comprender el funcionamiento de Ethereum es el de Gas -unidad que determina la comisión que debe pagarse al realizar una transacción en la plataforma, ya sea para transmitir valor o poner en marcha un smart contract.
El cobro de comisiones (fees) por las transacciones no es más que una forma de preservar el buen funcionamiento de la red -ya que los recursos computacionales de Ethereum son limitados-, y evitar así que la plataforma se vea congestionada por acciones de tipo spam.
Por otro lado, como ya hemos avanzado antes, Ethereum es una máquina de Turing completa. Esto significa que la plataforma puede ejecutar cualquier tipo de lógica computacional, pero se ve sujeta al “problema de parada” -si no limitamos mediante una comisión la cantidad de computación a ejecutar, los programas pueden entrar en un loop infinito y no detenerse jamás, consumiendo una enorme cantidad de recursos.
Por tanto, como unidad de medida, lo que el gas determina son los recursos computacionales que el usuario va a consumir en el momento de realizar una operación en Ethereum -enviar un token, operación simple, consumirá muchos menos recursos y gas, que poner en marcha un smart contract complejo.
La comisión que se paga por una operación concreta, se calcula multiplicando la cantidad de gas que la misma demanda -en función de su complejidad-, por el precio del gas. El precio del gas no está predeterminado: es la cantidad de ETH que el usuario está dispuesto a pagar por cada unidad de gas, medida en Gwei -el wei es la fracción más pequeña de ETH, podemos imaginárnosla como si fueran céntimos de dólar o de euro.
1 ETH = 1 trillón de Wei.
1 Gwei = 1000 millones de Wei.
1 ETH = 1000 millones de Gwei.
En cada transacción, el emisor establecerá un gas limit -cantidad límite de gas que está dispuesto a consumir- y un gas price -la cantidad de ETH por unidad de gas que está dispuesto a pagar. El coste total a pagar por la transacción será = gas limit * gas price.
Si no se dispone de la cantidad mínima de gas requerida para ejecutar la transacción, ésta será abortada -sin embargo, el gas que se haya consumido, no será reembolsado.
Minado
El gas que se paga como comisión por utilizar la blockchain de Ethereum es, junto a los block rewards, una de las recompensas que reciben los mineros por el trabajo computacional que realizan -básicamente, la creación y validación de los bloques en que las transacciones se agrupan y registran.
Una de las diferencias de la blockchain de Ethereum respecto a la de Bitcoin es el intervalo de generación de los bloques -aproximadamente 15 segundos en el caso de la primera, frente a los 10 minutos de la segunda. Ambas blockchains comparten, eso sí, la capacidad de ajustar la dificultad de minado de los bloques -lo que les permite asegurar que éstos se generan dentro del intervalo previsto. Cuando el tiempo de generación de los bloques se acorta, las blockchains de Bitcoin y Ethereum responden incrementando la dificultad de minado; mientras que cuando el intervalo se alarga, lo que hacen es disminuir la dificultad.
El problema de contar con intervalos de bloque más cortos en la blockchain de Ethereum, es que los mineros tenderán a encontrar un mayor número de bloques competidores -bloques que también son válidos, pero que en el caso de no terminar formando parte de la cadena más larga, se consideran uncle blocks -este tipo de bloques en la blockchain de Bitcoin se denominan orphan blocks. A diferencia de lo que ocurre en Bitcoin con los orphan blocks, los uncle blocks de Ethereum sí reciben una recompensa -aunque menor que la de los bloques válidos.
Ethereum Virtual Machine
Finalmente, debemos hablar del entorno de ejecución, que en el caso de la blockchain de Ethereum, depende de la EVM (Ethereum Virtual Machine).
La EVM es una máquina virtual de Turing completa. Como hemos explicado anteriormente, las únicas limitaciones de ésta respecto a una máquina virtual de Turing completa tradicional, tienen que ver con el empleo de gas para acotar la cantidad de computación que puede ejecutarse -evitando de esta forma el spam de la red y el problema de parada.
Gobernanza de la Red Ethereum
A pesar de su naturaleza puramente digital, las redes blockchains tienen también un importante componente social -al final, los encargados de manejar los nodos, conferir un valor de mercado a los tokens nativos y actualizar el software, son seres humanos. Este segundo componente, que podríamos definir como la comunidad de la plataforma y su contrato social, es especialmente relevante cuando hay que cambiar alguna de las reglas del protocolo para hacer frente a una amenaza, o cuando se desea mejorarlo -como es el caso de Ethereum, que suele llevar a cabo recurrentes actualizaciones para incorporar nuevas funcionalidades.
El tipo de cambios que pueden adoptarse, y la manera en que éstos son implementados, vienen determinados por un proceso de gobernanza. Obviamente, cada uno de los grupos que participa en la gobernanza de una red pública y abierta como Ethereum tendrá unos incentivos que no siempre se verán alineados -por lo general, las potenciales disputas girarán en torno a cuestiones relacionadas con las fórmulas de recompensa, la política monetaria y los equilibrios de poder.
Ante esta situación, la habilidad de cada grupo para coordinarse en torno a incentivos comunes resultará crítica para determinar su capacidad para promover los cambios que más le interesan. Si un grupo es capaz de coordinarse mejor que otro, tendrá más posibilidades de acabar imponiendo su criterio.
A grandes rasgos, existen dos modelos contrapuestos para articular los procesos de gobernanza de una red blockchain con el objetivo de promover cambios en su protocolo base: sistemas de gobernanza off-chain -sería el caso de Ethereum- y sistemas de gobernanza on-chain -los ejemplos más destacados son Tezos y Polkadot.
Aunque en general se considera que la coordinación on-chain de una comunidad blockchain es más sencilla, también es más peligrosa porque facilita la captura de la red por parte de grupos de interés. Tal como dice el refrán "hecha la ley, hecha la trampa": en el momento en que se establece un proceso formal para la implementación de cambios en el código, agentes poderosos se las ingeniarán para cooptarlo.
Gobernanza Off-chain
El sistema de gobernanza de la red Ethereum es de tipo off-chain -fue diseñado partiendo de una ética favorable a la descentralización, originalmente planteada por Satoshi Nakamoto en el whitepaper de Bitcoin. El hecho de que el proceso de gobernanza no haya sido formalizado -es decir, que no haya sido incorporado al código base del protocolo-, conlleva que cualquier propuestas de mejora -denominada EIP en el caso de Ethereum- deberá ser presentada por el grupo principal de desarrolladores y, a continuación, sometidas a debate entre el resto de stakeholders que componen la comunidad: mineros y otros operadores de nodos, inversores y usuarios.
Los sistemas de gobernanza off-chain siguen procesos similares a los de la política tradicional. Los distintos grupos de interés que participan en la red, intentan imponer su criterio y controlarla mediante estrategias de coordinación. El juego consiste en convencer al mayor número posible de miembros de la comunidad para que se unan a su facción.
Dado que los distintos stakeholders no están sujetos a ningún código de comportamiento, éstos tenderán a apoyar aquellas medidas que resulten más favorables a sus intereses. Al tratarse de situaciones en que hay intereses contrapuestos y las decisiones de unos afectan a los otros, las mismas suelen analizarse desde la óptica de la teoría de juegos -lo que significa que los cálculos y estrategias de los distintos participantes se verán condicionados por la expectativa de lo que "probablemente" harán los otros. Por lo tanto, en los sistemas de gobernanza off-chain, la tecnología blockchain y la teoría de juegos acaban yendo de la mano.
¿Cómo funciona?
Las propuestas de mejora -EIPs- para implementar cambios en el protocolo de Ethereum son presentadas por los desarrolladores principales. Éstos serán los responsables de coordinar al resto de miembros de la comunidad -nodos, inversores y usuarios- con el objetivo de alcanzar un consenso.
Dichos grupos de stakeholders señalarán su conformidad o disconformidad respecto a las propuestas de mejora presentadas por los core developers, a través de debates comunitarios y privados. Dichos debates permitirán a los desarrolladores hacerse una idea del sentimiento comunitario -es decir, de las posibilidades de aprobación que tendrán sus propuestas de actualización del software por parte operadores de nodos, inversores y usuarios. Lo ideal es que todas las partes se pongan de acuerdo y que los cambios en el código se produzcan sin problemas -generalmente, el proceso se anuncia de antemano y los stakeholders cuentan con un plazo razonable de tiempo para actualizar el software.
Ahora bien, en caso de que se produzca una controversia, la comunidad tendrá dos opciones:
En primer lugar, los impulsores de la propuesta de mejora -EIP- pueden tratar de persuadir al resto de stakeholders de los beneficios de ésta para la estabilidad y seguridad de la red, hasta recabar los apoyos suficientes para acabar de inclinar la balanza a su favor.
Si al final no se logra alcanzar un consenso, la opción que queda es realizar un hard fork: los nodos decidirán si rechazan los cambios propuestos y siguen formando parte de la cadena original, o implementan la nueva versión del software -con el EIP propuesto por los desarrolladores- y se sincronizan con la nueva cadena. En este segundo escenario, nos encontramos por tanto con dos cadenas que deberán competir por la marca, usuarios, hash power y atención de los desarrolladores.
Componentes del Sistema de Gobernanza de Ethereum
EIPs
Los Ethereum Improvement Proposals -EIPs- son propuestas de mejora del protocolo que se plantean de forma totalmente off-chain. Esto significa que ni se presentan, ni se registran, ni se votan en la blockchain de Ethereum. En su lugar, las propuestas se plantean a través de repositorios de código abierto -generalmente GitHub-, que permiten un debate abierto a gran escala por parte de los miembros de la comunidad.
Los EIPs normalmente se ven acompañados de una documentación detallada, que deberá aclarar su motivación y la forma en que impactarán de manera positiva en la blockchain de Ethereum -generalmente, mediante la optimización de servicios existentes, la inclusión de nuevas funcionalidades y la resolución de fallos en el código (bugs).
De acuerdo con las directrices generales de Ethereum, los EIPs deben ser respaldados mediante conocimiento técnico y especificaciones. El autor del EIP, por su parte, deberá contar con la influencia necesaria, o ser capaz de reunir los apoyos suficientes, para que su propuesta sea aceptada sin que provoque escisiones dentro de la comunidad. Los distintos stakeholders dispondrán de acceso directo a la documentación del EIP, así como a las discusiones asociadas a su aprobación. De esta manera, el procedimiento garantiza la transparencia total del proceso, y que todos los puntos de vista son tenidos en cuenta.
El proceso que se sigue es el mismo, cuando los EIPs se originan a a partir de fórmulas más simples como la de los Ethereum Request for Comments -ERCs.
ERCs
Los EIPs, en ocasiones, se originan como ERCs -es decir, como sugerencias que se presentan para ser sometidas a revisión paritaria por parte del resto de la comunidad Ethereum. Dichas sugerencias, generalmente, versan sobre los estándares de las aplicaciones, así como los procesos operativos vinculados a ellas -un ejemplo sería el abordaje de la forma en que ciertos smart contracts deben funcionar.
Si los ERCs presentados resultan prometedores en cuanto a las potenciales mejoras que introducirán en el protocolo Ethereum, a continuación son sometidos a discusión dentro de la comunidad de una forma más amplia. Posteriormente, adquieren el estatus de EIPs, y se somete a consideración su definitiva implementación. El célebre ERC20 que daría nombre a los populares tokens homónimos, sería fruto del mismo proceso que acabamos de describir.
En cuanto un ERC alcanza la fase EIP, las cosas tienden a ponerse más serias. Por eso, para llegar hasta ahí, el ERC deberá demostrar previamente que tiene suficiente tracción y que sus potenciales beneficios para la red son muy prometedores.
Aplicaciones de Ethereum
La enorme expresividad de la plataforma Ethereum desde un punto de vista computacional, permite que ésta sea adecuada para un sinfín de aplicaciones. A continuación, enumeramos algunos de los casos de uso que a día de hoy están demostrando una mayor tracción o, inclusive, lo que los anglosajones denominan “Product/market fit”-es decir, la satisfacción de una demanda concreta del mercado.
DeFi (Descentralized Finance): como su nombre indica,se trata de protocolos descentralizados que pretenden ser la piedra angular de un nuevo sistema financiero abierto. Entre las características que los diferencian del modelo tradicional figuran su carácter no permisionado, resistencia a la censura, transparencia, eficiencia, programabilidad, así como el hecho de no depender de intermediarios. Ejemplos de protocolos DeFi son los DEX -exchanges que permiten el intercambio de criptoactivos sin necesidad de apoyarse en una autoridad centralizada- o aplicaciones de lending que emplean pools de liquidez. Una de las principales ventajas de este tipo de protocolos es el hecho de que la custodia de los fondos sigue en manos de los usuarios -lo que previene la posibilidad de hackeos y otros riesgos asociados a los mismos.
Gaming y coleccionables digitales: Ethereum también puede ser considerada una plataforma ideal para el despliegue de juegos basados en tecnología blockchain. Entre las ventajas asociadas a este tipo de juegos podemos citar la posibilidad de emitir coleccionables digitales en formato ERC-721, que pueden ser transferidos desde el entorno de un videojuego particular al de otro. A los coleccionables digitales también se los conoce como NFTs -non fungible tokens, en español, tokens no fungibles- y abarcan un espectro muy amplio de intereses: cromos de todo tipo, obras de arte, representaciones digitales de objetos de serie limitada -ropa, merchandising-, dominios ENS. Ethereum permite, a su vez, diseñar marketplaces específicos para este tipo de coleccionables digitales o NFTs.
Identidad digital: la plataforma Ethereum también permite el desarrollo de sistemas de identidad digital descentralizados. Entre éstos destacan los Self-sovereign Identity Systems, en los que los usuarios no sólo se encuentran en el centro de los procesos de identidad, sino que se convierten en los amos de ésta.