¿Qué es Ethereum?
En este artículo vamos a ver qué es eso de Ethereum, pero antes…
Un poco de historia…
En 2013 Vitalik Buterin explica, por primera vez, la idea en la que se basará Ethereum. Una plataforma sobre la que se pueden construir aplicaciones descentralizadas.
Un año más tarde, comienza la venta pública con el objetivo de juntar fondos para el desarrollo del proyecto. Finalmente, en mayo de 2015, sale la versión beta, llamada Olympic. Un mes más tarde aparecerá la versión Frontier.
Desde entonces se ha seguido mejorando el desarrollo de la plataforma hasta llegar a Homestead. Esta versión es considerada la primera estable y fue lanzada el 14 de marzo de 2016.
Un año más tarde, el 17 de octubre de 2017, sale a la luz Metropolis parte 1: Byzantium. Introduce mejoras a la EVM (Ethereum Virtual Machine) y en lo relativo a los smart contracts.
Actualmente, nos encontramos en la versión Metropolis parte 2: Constantinople.
Mientras el proyecto fue avanzando en su desarrollo tuvo lugar el problema The Dao. Ése hace referencia a una organización autónoma descentralizada llamada The DAO, la cual consistía en una serie de smart contracts que se desarrollaron sobre Ethereum y que consiguieron reunir alrededor de 150 millones de dólares. Aprovechándose de un error en el código de los smart contract, un atacante consiguió hacerse con gran parte de los fondos.
Este evento abrió el debate en la comunidad Ethereum sobre si habría que realizar un hard fork para que los afectados recuperaran los fondos. Esto llevó a la ruptura de la comunidad en dos, Ethereum y Ethereum Classic.
Ahora veamos qué es…
Ethereum viene a cambiar la forma en la que Internet está construido. Por ponerlo simple, cuando usas internet, accedes a páginas web que ofrecen ciertos servicios. El funcionamiento sería: solicitas algo, la página lo procesa y te devuelve un resultado. Este modelo se llama cliente-servidor. En él, tus datos están guardados en el servidor de otras personas, por ejemplo: Google, tu banco, Facebook, etc.
A pesar de que este modelo funciona correctamente, tiene una vulnerabilidad. Un tercero, por ejemplo un hacker o un gobierno, puede llegar a acceder a dicha información sin ni siquiera nosotros saberlo.
Ethereum cambia este modelo buscando convertirse en la “Computadora del Mundo” y descentralizar Internet. Lo consigue mediante:
- La sustitución de los servidores por nodos: un nodo es cualquier ordenador que participe del mantenimiento de la cadena de bloques de Ethereum descargándola y/o convirtiéndose en minero. Cualquier persona con acceso a internet puede hacerlo.
- Aplicaciones descentralizadas: la infraestructura anterior permite a los desarrolladores construir aplicaciones encima de ella, los llamados smart contracts. Estos programas serán ejecutados por los nodos pertenecientes a la red.
Entonces podemos decir que Ethereum es una plataforma de computación distribuida teniendo como base blockchain, sobre la cual podemos escribir códigos ejecutables, llamados smart contracts, con los que podemos crear aplicaciones descentralizadas.
¿Qué es eso de la “Computadora del mundo”?
Si pensamos en lo que es una computadora…es una máquina que toma unas entradas, las procesa ejecutando una serie de instrucciones y devuelve unas salidas. Partiendo de esta idea, Ethereum es capaz de procesar una serie de entradas y devolver salidas apoyándose en el poder computacional y capacidad de almacenamiento de los múltiples nodos que participan en la red. Por lo que cuando ejecutamos el código de un smart contract, éste está siendo procesado por los nodos de la red Ethereum.
Esto se ha conseguido gracias al desarrollo de la EVM (Ethereum Virtual Machine). Se encarga de, por un lado, procesar las instrucciones escritas en los smart contracts y, por otro, trabajar con la cadena de bloques de Ethereum.
La EVM es un software que reproduce una máquina de Turing completa. Esto quiere decir que es capaz de ejecutar cualquier programa, sin importar el lenguaje de programación, dado suficiente tiempo y memoria.
¿Cómo funciona?
A grandes rasgos, Ethereum trabaja con cambios de estados. Es decir, pasa de un estado al siguiente basándose en las transacciones que son ejecutadas. Este estado refleja, entre otros datos, los balances de todas las cuentas. Dicho estado no se almacena en la cadena de bloques, sino en un Merkle Patricia tree separado.
La minería es el proceso mediante el cual las transacciones son validadas y añadidas a un bloque. Este proceso consiste en que el nodo crea un bloque y modificando el nonce buscará que el hash obtenido cumpla una serie de requisitos de dificultad, es lo que se llama Prueba de trabajo (Proof-of-work). Una vez que consiga un hash que cumpla los requisitos de dificultad, es enviado a la red para que sea añadido a la cadena y el minero es recompensado con ethers.
Por tanto, al guardarse las transacciones en la cadena de bloques y al ser ésta inmutable, podríamos recorrer la cadena entera, ver las transacciones y los cambios de estado que provocan.
¿Qué son los ether?
Es el token de Ethereum. Puede ser transferido entre cuentas y es utilizado para compensar a los mineros. Sin embargo, también tiene otro uso, permite a los smart contracts ejecutarse. Cuando queremos lanzar alguna acción en un smart contract o crear uno ,debemos pagar para que la red procese el código correspondiente. Es una especie de tarifa por cada operación que la EVM tiene que realizar. De esta forma se evita el spam o ataques de denegación de servicio.
Las operaciones de la EVM están medidas en Gas. Éste representa la unidad de trabajo computacional requerido para ejecutar ciertas operaciones. El gas no tiene un token que lo represente, se paga en ether. Se mantiene la diferencia debido a la volatilidad de los ether, ya que el coste computacional no varía de la misma forma que el valor de los ether. Si el valor de éste sube mucho, la cantidad de gas necesaria bajará y viceversa. De esta forma se busca mantener la estabilidad en la compensación a los mineros.
¿Por qué debemos pagar por las operaciones?
Por varios motivos. Primero, con el objetivo de que existan mayores incentivos para que los mineros hagan su trabajo y ayuden a sostener la red. Segundo, gracias al gas evitamos que haya programas que se ejecuten indefinidamente utilizando todos los recursos de la red. Si alguien lanzara una transacción que no terminara nunca y se iniciara su ejecución, cuando se acabara el gas aportado por el atacante, se terminaría la transacción.
Ventajas y Desventajas de Ethereum
Ventajas
Tiene todas las que pueda tener un proyecto basado en blockchain: no hay un punto central de fallo, alta disponibilidad, etc. Además de ello, al ser una plataforma sobre la que se puede construir aplicaciones, Ethereum brinda otra serie de beneficios:
- Facilita la construcción de aplicaciones que utilicen una cadena de bloques
- Al poder desarrollar aplicaciones sobre Ethereum, permite la participación de una mayor cantidad de programadores.
- Relacionado con el anterior punto, al ser una comunidad mayor facilita la aparición de nuevas ideas y propuestas lo que favorece el desarrollo de la plataforma.
Desventajas
Al ser una plataforma que permite a otros la construcción de aplicaciones, éstas serán tan buenas como la gente que las programe. Por tanto, es más fácil ver casos de fraude, hackeos y problemas derivados de errores que en Bitcoin. Es por ello que la inmutabilidad y la descentralización, en Ethereum, son armas de doble filo. Por un lado aseguran la transparencia y hacen las aplicaciones resistentes a la censura. Sin embargo, por otro, si hay un error en un smart contract y un atacante lo aprovecha para robar fondos, hay poco que se pueda hacer para evitarlo. Podemos citar el famoso ejemplo de The DAO.
Todo muy bien, pero ¿Para qué sirve?
Las aplicaciones son muy variadas, ya que permite la construcción de aplicaciones. Por tanto, dependerá de lo que los desarrolladores hagan con ella. Pasemos a ver algunos ejemplos:
- Crowdfunding: gracias a los smart contracts se pueden construir plataformas que unan a las start-ups directamente con los inversores, sin necesidad de intermediarios. Al mismo tiempo, esta posibilidad fue lo que permitió el florecimiento de las ICO (Initial Coin Offering). Un ejemplo, Weifund.
- Plataformas: sobre Ethereum podríamos desarrollar aplicaciones como Uber o Airbnb en la que los usuarios podrían interactuar directamente sin necesidad de un tercero que no aporta valor, por el contrario, cobra comisiones.
- Derechos de propiedad: una vez que las transacciones son almacenadas en blockchain, éstas se vuelven inmutables y tienen la marca de tiempo de cuando fueron guardadas. En consecuencia, esto puede servirnos para crear un registro de propiedad, tanto inmobiliaria como intelectual.
Otras aplicaciones:
- EtherTweet — Equivalente a Twitter, pero sin éste. Permite la comunicación entre los usuarios sin censura
- Ethlance: Plataforma para freelance. Éstos podrán cambiar trabajo por ethers
- Alice — Una plataforma que pretende aportar transparencia a las donaciones caritativas.
Conclusiones
Todavía estamos, aunque no lo parezca, en etapas tempranas del entorno y todavía quedan muchos obstáculos a superar, pero su evolución es muy rápida debido a la enorme comunidad de desarrolladores que trabaja para ello.
Ethereum ha abierto un sin número de posibilidades para que desarrolladores de cualquier parte del mundo puedan crear aplicaciones que utilicen la cadena de bloques. Esto permite el florecimiento de ideas muy diversas, las cuales podrán cambiar totalmente muchas industrias, mercados y el propio Internet. Ethereum abrió un laboratorio público para que cualquiera pueda experimentar e innovar.
Fuentes:
https://btcdirect.eu/en-gb/about-ethereum
https://en.wikipedia.org/wiki/Ethereum
https://blockgeeks.com/guides/es/que-es-ethereum
https://consensys.net/knowledge-base/what-is-ethereum-eth/
https://www.coindesk.com/information/what-is-ethereum
https://es.cointelegraph.com/ethereum-for-beginners/what-is-ethereum
https://hackernoon.com/ethereum-for-dummies-af5aeacb13d4
https://medium.com/@micheledaliessi/what-is-ethereum-f4c5e566ff77