Ethereum es una plataforma abierta de blockchain que permite a cualquier persona crear y utilizar aplicaciones descentralizadas que funcionan con la tecnología blockchain. Al igual que Bitcoin, nadie controla ni posee Ethereum. Es un proyecto de código abierto construido por muchas personas en todo el mundo. Pero a diferencia del protocolo de Bitcoin, Ethereum fue diseñado para ser adaptable y flexible. Es fácil crear nuevas aplicaciones en la plataforma Ethereum. Y con el lanzamiento de Homestead, ahora es seguro para cualquiera usar esas aplicaciones.
Un blockchain de próxima generación
La tecnología blockchain es la base tecnológica de Bitcoin. Descrita por primera vez por su misterioso autor Satoshi Nakamoto en su libro blanco «Bitcoin. Un sistema de efectivo electrónico punto a punto», publicado en 2008. Mientras que el uso de blockchain para labores más generales ya estaba discutido en el documento original. No fue hasta algunos años más tarde que la tecnología blockchain surgió como un término genérico.
La naturaleza de blockchain
Blockchain es una arquitectura de computación distribuida donde cada nodo de red ejecuta y registra las mismas transacciones, que se agrupan en bloques. Solo se puede agregar un bloque a la vez. Cada bloque contiene una prueba matemática que verifica que sigue en secuencia desde el bloque anterior. De esta forma, la «base de datos distribuida» de blockchain se mantiene en consenso en toda la red. Las interacciones individuales del usuario con el libro mayor (transacciones) están aseguradas por una fuerte criptografía. Los nodos que mantienen y verifican la red se ejecutan mediante incentivos económicos aplicados matemáticamente codificados en el protocolo.
En el caso de Bitcoin, la base de datos distribuida se concibe como una tabla de saldos de cuenta y un libro mayor. Las transacciones son transferencias del token de bitcoin para facilitar el financiamiento sin confianza entre las personas. Pero a medida que el bitcoin comenzó a atraer mayor atención de los desarrolladores y tecnólogos. Los proyectos novedosos comenzaron a usar la red de bitcoin para fines distintos de las transferencias de tokens de valor.
Muchos de ellos tomaron la forma de «monedas alternativas», bloques separados con criptomonedas propias que mejoraron el protocolo original de bitcoin para agregar nuevas características o capacidades. A finales de 2013, el inventor de Ethereum, Vitalik Buterin. Propuso que una cadena de bloques única con la capacidad de reprogramarse para realizar cualquier cálculo arbitrariamente complejo podría incluir estos muchos otros proyectos.
En 2014, los fundadores de Ethereum, Vitalik Buterin, Gavin Wood y Jeffrey Wilcke. Comenzaron a trabajar en una cadena de bloques de próxima generación que tenía la ambición de implementar una plataforma de contratos inteligentes general, totalmente confiable.
Máquina virtual de Ethereum
Ethereum es una cadena de bloques programable. En lugar de darles a los usuarios un conjunto de operaciones predefinidas (por ejemplo, transacciones de bitcoin), Ethereum les permite a los usuarios crear sus propias operaciones de cualquier complejidad que deseen. De esta manera, sirve como una plataforma para muchos tipos diferentes de aplicaciones de blockchain descentralizadas, que incluyen pero no se limitan a las criptomonedas.
Ethereum en el sentido estricto se refiere a un conjunto de protocolos que definen una plataforma para aplicaciones descentralizadas. En el corazón está la Máquina Virtual Ethereum («EVM»). Que puede ejecutar códigos de complejidad algorítmica arbitraria. En términos de informática, Ethereum es «Turing completo». Los desarrolladores pueden crear aplicaciones que se ejecutan en EVM utilizando amigables lenguajes de programación basados en JavaScript y Python.
Al igual que cualquier cadena de bloques, Ethereum también incluye un protocolo de red punto a punto. La base de datos blockchain Ethereum es mantenida y actualizada por muchos nodos conectados a la red. Todos y cada uno de los nodos de la red ejecutan el EVM y activan las mismas instrucciones. Por esta razón, Ethereum a veces se describe evocativamente como una «computadora mundial».
Blockchain es la base de Ethereum
Esta paralelización masiva de la informática en toda la red Ethereum no se hace para que el cálculo sea más eficiente. De hecho, este proceso hace que el cálculo en Ethereum sea mucho más lento y más costoso que en una «computadora» tradicional. Por el contrario, cada nodo Ethereum ejecuta el EVM con el fin de mantener el consenso a través de la cadena de bloques. El consenso descentralizado le otorga a Ethereum niveles extremos de tolerancia a fallas, asegura cero tiempo de inactividad y hace que los datos almacenados en la cadena de bloques permanezcan invariables y resistentes a la censura.
La plataforma Ethereum en sí misma no tiene características ni es un valor agnóstico. Al igual que en los lenguajes de programación, depende de los empresarios y desarrolladores decidir para qué se debe usar. Sin embargo, está claro que ciertos tipos de aplicaciones se benefician más que otros de las capacidades de Ethereum. Específicamente, Ethereum es adecuado para aplicaciones que automatizan la interacción directa entre pares. También facilita la acción grupal coordinada a través de una red. Por ejemplo, aplicaciones para coordinar mercados de igual a igual. O la automatización de contratos financieros complejos.
Bitcoin permite a las personas intercambiar efectivo sin involucrar intermediarios como instituciones financieras, bancos o gobiernos. El impacto de Ethereum puede ser de mayor alcance. En teoría, las interacciones financieras o los intercambios de cualquier complejidad podrían llevarse a cabo de manera automática y confiable utilizando el código que se ejecuta en Ethereum. Más allá de las aplicaciones financieras, cualquier entorno donde la confianza, la seguridad y la permanencia sean importantes. Por ejemplo, registros de activos, votación, gobernanza e Internet de cosas podría verse enormemente afectado por la plataforma Ethereum.
¿Cómo funciona Ethereum?
Ethereum incorpora muchas características y tecnologías que serán familiares para los usuarios de Bitcoin, a la vez que introduce muchas modificaciones e innovaciones propias.
Mientras que la cadena de bloques de Bitcoin era puramente una lista de transacciones. La unidad básica de Ethereum es la cuenta. Blockchain de Ethereum rastrea el estado de cada cuenta. Todas las transiciones de estado en la cadena de bloques de Ethereum son transferencias de valor e información entre cuentas. Hay dos tipos de cuentas.
- Cuentas de propiedad externa (EOA), que están controladas por claves privadas.
- Cuentas de contrato, que están controladas por su código de contrato y solo pueden ser «activadas» por un EOA.
Para la mayoría de los usuarios, la diferencia básica entre estos es que los usuarios humanos controlan los EOA. Ya que pueden controlar las claves privadas que dan dominio sobre un EOA. Las cuentas de contrato, por otro lado, se rigen por su código interno. Si son «controlados» por un usuario humano, es porque están programados para ser controlados por un EOA con una dirección determinada. Que a su vez está controlada por quien tenga las claves privadas que controlan ese EOA. El término popular «contratos inteligentes» se refiere al código en una cuenta de contrato. Programas que se ejecutan cuando se envía una transacción a esa cuenta. Los usuarios pueden crear nuevos contratos implementando códigos en blockchain.
Las cuentas de contrato solo realizan una operación cuando se lo indica un EOA. Por lo tanto, no es posible que una cuenta de contrato realice operaciones nativas. Como la generación de números aleatorios o las llamadas API, solo puede hacer estas cosas si se lo solicita un EOA. Esto se debe a que Ethereum requiere que los nodos puedan ponerse de acuerdo sobre el resultado de la computación. Lo que requiere una garantía de ejecución estrictamente determinista.
Tarifas de transacción
Al igual que en Bitcoin, los usuarios deben pagar pequeñas tarifas de transacción a la red. Esto protege a blockchain de Ethereum de tareas computacionales frívolas o maliciosas, como ataques DDoS o bucles infinitos. El remitente de una transacción debe pagar por cada paso del «programa» que activó, incluidos el cómputo y el almacenamiento en memoria. Estas tarifas se pagan en cantidades de token de valor nativo de Ethereum, éter.
Estas tarifas de transacción son recolectadas por los nodos que validan la red. Estos «mineros» son nodos de la red Ethereum que reciben, propagan, verifican y ejecutan transacciones. Luego, los mineros agrupan las transacciones, que incluyen muchas actualizaciones del «estado» de cuentas en la cadena de bloques de Ethereum, en lo que se denominan «bloques», y los mineros luego compiten entre sí para que su bloque sea el siguiente en ser agregado a blockchain. Los mineros son recompensados con ETH por cada bloque exitoso que extraigan. Esto proporciona el incentivo económico para que las personas dediquen hardware y electricidad a la red de Ethereum.
Al igual que en la red de Bitcoin, los mineros tienen la tarea de resolver un problema matemático complejo con el fin de «minar» con éxito un bloque. Esto se conoce como una «Prueba de trabajo». Cualquier problema computacional que requiera órdenes de magnitud más recursos para resolver algorítmicamente de lo que se necesita para verificar que la solución es un buen candidato para la prueba de trabajo.
Con el fin de desalentar la centralización debido al uso de hardware especializado (por ejemplo, ASIC), como ha ocurrido en la red de Bitcoin, Ethereum eligió un problema de cómputo duro para la memoria. Si el problema requiere memoria y CPU, el hardware ideal es, de hecho, la computadora general. Esto hace que la Prueba de trabajo de Ethereum sea resistente a ASIC, lo que permite una distribución de seguridad más descentralizada que las cadenas de bloques cuya minería está dominada por hardware especializado, como Bitcoin.