October 9, 2020

Ethereum 2.0

Ethereum fue propuesto en 2013 gracias a Vitalik Buterin y nació en 2014, con el principal objetivo de mejorar la tecnología que ofrecía Bitcoin. La principal mejora fue el concepto de Smart Contract (contrato inteligente) que permite que se convierta en dinero programable, una gran revolución para la industria. Si Bitcoin se considera el Oro de internet, la red Ethereum es considerada como el protocolo sobre el que se sustentará un nuevo internet basado en Blockchain.

La Blockchain tiene infinidad de aplicaciones aparte de las simples transacciones, pero por ejemplo en la red de Bitcoin las posibilidades son muy limitadas. Por lo tanto, se necesitaba crear un sistema más complejo para ofrecer más posibilidades conservando la descentralización.

Ethereum está considerada como la base para las aplicaciones descentralizadas (Dapps). Si se quieren crear aplicaciones descentralizadas y que nadie pueda tomar el control se puede hacer con el lenguaje de Ethereum llamado Solidity. Con este lenguaje se pueden escribir lo que se conoce como Smart Contracts (Contratos inteligentes) que permiten realizar acciones según algunas condiciones.

Ejemplo práctico: Si pagáramos el alquiler a través de un contrato inteligente, habría dos opciones: si pago la mensualidad se abriría la puerta del alojamiento, si no la pago no me dejaría entrar.

smartContract

Es muy importante que los contratos tengan en cuenta todo tipo de detalles y excepciones ya que si no está bien escrito podríamos encontrarnos con situaciones no deseadas ya que el contrato ejecutará exactamente lo que está escrito. Una vez el contrato es liberado a la red Blockchain no se puede modificar, ni siquiera su propio creador puede hacerlo.

La red de Ethereum tiene miles de nodos haciéndola funcionar. Estos nodos se asegurarán de que las aplicaciones funcionan tal y como están escritas. Si el sistema se volviese escalable y rápido se podría conseguir un internet descentralizado sin necesidad de intermediarios.

Hay que diferenciar Ethereum que es la Blockchain que es donde se construye todo el ecosistema y Ether que es la moneda (ETH). Las operaciones son ejecutadas mediante Ethereum Virtual Machine (EVM).

Los principales problemas que enfrenta la red de Ethereum en la actualidad son: la escalabilidad, transacciones por segundo, el costo por las transacciones y el impacto medioambiental. Por esos motivos se ha planteado el cambio más grande en la historia de Ethereum.

El procesador de pagos Visa puede hacer miles de transacciones por segundo y Ethereum sólo puede hacer 15 y a un coste muy elevado. La descentralización con el sistema POW (proof of work) es costosa de mantener y afecta directamente a las comisiones por transacción y a la velocidad de envío. Uno de los problemas principales de su lentitud es que los nodos más rápidos deben esperar a los más lentos. Ocurre así porque si no tuviesen que esperar, los más lentos no podrían seguir el ritmo y al final sólo operarían los grandes centros de datos. Si unos no esperaran a los demás, llegaría un punto que los lentos no podrían mantener el ritmo y los grandes podrían tomar el control mayoritario de la red. Lo más importante es no tener que confiar en un tercero para que la red funcione, por eso la clave es la descentralización, sin ella la Blockchain pierde sentido.

Actualmente hay dos estilos principales de minería:

POW (proof of work)

Fue el primer sistema ideado para ejecutar las transacciones y dar seguridad a la Blockchain (cadena de bloques). Miles de mineros que tienen ordenadores especializados para resolver ecuaciones matemáticas muy complejas para procesar transacciones, dar seguridad a la red y crear nuevas monedas. El sistema funciona con bloques que van encadenados con el anterior y el siguiente, en esos bloques se contiene una cantidad limitada de transacciones o información. Los mineros compiten entre sí para ser los primeros en encontrar el nuevo bloque resolviendo complejas ecuaciones matemáticas que solo se pueden solventar mediante la fuerza bruta, es decir probando todas las opciones posibles.

Cuando un minero encuentra el bloque, los demás mineros confirman que es correcto y de ser así el minero ganador se lleva la recompensa. Hoy en día en la mayoría de casos es un poco distinto. Un solo minero no puede resolver el problema matemático. Para hacer frente a esta complejidad se crearon las Pools (piscinas) que es un lugar donde se conectan varios grupos mineros y comparten su poder de computación para resolver el problema matemático. Por lo tanto, si una Pool descubre un nuevo bloque, el premio se reparte equitativamente según el poder de cómputo que haya ofrecido cada minero para resolver el problema.

Para que no se puedan modificar los bloques, cada bloque contiene algo llamado Hash que es como un número de seguridad único e irrepetible que, si cambiases una sola letra del mismo bloque, cambiaría por completo el Hash y ese bloque quedaría invalidado por fraudulento. Los bloques se enlazan unos con otros porque en cada bloque, aparte de su propio Hash, incluye el Hash del bloque anterior.

Contra más mineros hay en la red, más se incrementa el nivel de dificultad de los acertijos matemáticos para resolver los bloques y eso hace la red más segura pero más lenta. Según algunos datos, una transacción de Ethereum utiliza 29kw/h, suficiente para alimentar un hogar medio durante un día. Mucho menos que Bitcoin que consume anualmente la misma energía que Chile. Pese a que el consumo eléctrico es muy elevado, este sigue siendo menor que el consumo de entidades bancarias y procesadores de pagos tradicionales. Además, como los costos del equipo y de las instalaciones de minería son tan elevados, se debe conseguir el coste de la electricidad, al precio más bajo posible para que sea rentable, lo cual sólo pueden ofrecer las energías renovables como las placas solares o plantas hidroeléctricas.

Es una tecnología ineficiente y podría ser susceptible a una monopolización del mercado. Alrededor del 65% de Bitcoin es realizada por 5 grandes grupos mineros que teóricamente podrían unirse para controlar la mayor parte de la red.

POS (Proof of Stake)

Pese a ser muy distinta a la minería tradicional, permanece el concepto de cadena de bloques. Mejora la eficiencia energética y la velocidad de las transacciones porque reduce la complejidad de la tarea. Principalmente se diferencia en que no son necesarios equipos tan sofisticados ya que no es necesario resolver complejos acertijos matemáticos para garantizar la seguridad de la red. En este nuevo método se bloquea (congela) una cantidad determinada de monedas en los nodos y si alguno intenta manipular la red de forma fraudulenta, pierde una parte o la totalidad de monedas que tiene congeladas en los nodos.

Si alguien quisiera controlar la red debería tener el control del 51% de los nodos y pondría en riesgo todas las monedas que hubiera congeladas en ellos. Por tanto, la seguridad de la red depende del valor de la moneda. Este mecanismo ofrece un gran incentivo para seguir las reglas del protocolo. Otra ventaja es que la red no compite entre sí, por ese motivo no son necesarias las Pools de minería y eso favorece la descentralización. El costo del equipo electrónico de POS comparativamente es mucho más económico y es más accesible y anima a más gente a participar haciendo así la red más descentralizada.

Otra gran diferencia es que en POW todos minan al mismo tiempo y en POS solo algunos nodos son seleccionados para verificar. Los nodos que validan las transacciones se escogen de forma parcialmente aleatoria, también se tiene en cuenta la cantidad que tiene depositada cada nodo y el tiempo que lleva operativo. Una vez creado el bloque otros nodos comprueban que se haya hecho correctamente y cuando llegan al consenso del 51% se da por válido. Algunas criptomonedas que usan este sistema tienen ligeras modificaciones, pero el concepto principal se conserva.

Actualización a Ethereum 2.0

ethereum 2.0

La versión actual de Ethereum se llama Constantinopla. La principal mejora fue la posibilidad del desarrollo de Dapps (aplicaciones descentralizadas). Ethereum 2.0 que también se conoce como ETH2 o Serenity es la mayor actualización hasta la fecha que traerá consigo muchas mejoras.

Los principales objetivos son los de mejorar la eficiencia de la minería, la descentralización y la escalabilidad. La idea principal ha sido migrar del sistema de consenso de Proof of Work a Proof of Stake pero con algunas variaciones al sistema actual conocido.

La variación más importante es que no todos los nodos tengan que procesar toda la información. Es decir que se divida dicha información y se reparta la carga en trozos pequeños. Este concepto es conocido como Sharding y permitiría procesar miles de transacciones por segundo. En lugar de tener que procesar cada transacción, un validador sólo tendrá que verificar un fragmento y cada fragmento tendrá la misma seguridad que cualquier otro. Para romper un solo fragmento deberías romper todo el sistema. La fragmentación se cree que es la mejor solución de escalabilidad de la red conservando la descentralización.

También se cambia el sistema de recompensas que ya no vendrán por resolver acertijos matemáticos sino por validar información.

Otro punto importante es la simplificación, la complejidad de la red debe ser minimizada, aunque se pierdan algunas eficiencias.

La red también debe ser resistente al fallo y estar operativa el mayor tiempo posible, incluso cuando la mayor parte de los nodos dejarán de estar online. También es importante que haya un bajo precio de entrada para validar transacciones y favorecer la descentralización. Todos los procesos del sistema de validaciones deben ser reducidos a la media de cualquier usuario con un ordenador pueda convertirse en validador.

También permitirá que todos los desarrolladores puedan usar sus propias reglas para realizar transacciones. Es decir que se podrían usar reglas de otra criptomoneda dentro del ecosistema de Ethereum para ejecutar las transacciones.

ETH2 está siendo construido por 9 equipos de ingenieros y cada equipo está creando aplicaciones llamadas Clientes. La premisa de tener varios sistemas es que si uno se rompiese o tuviese un error no caería toda la red.

La implementación de ETH2 se divide en distintas fases y las más importantes serán las 3 primeras.

La primera (fase 0) implementará la cadena de balizas que será responsable de organizar los validadores y asignar los fragmentos. La cadena de balizas también será la responsable de quitar dinero a los nodos que se comporten de forma fraudulenta. Es como una cadena de bloques que gestiona otra cadena de bloques. Unos nodos se encargarán de organizar los fragmentos y otros de validarlos.

La fase 1 sería como un entorno de pruebas en los que se pueda testear que las cadenas de fragmentos puedan comunicarse entre sí y con la cadena de balizas. Las Dapps podrán usarlo para aumentar su escalabilidad, pero en esta fase no se podrán realizar cálculos dentro de los datos, pero sí se podría almacenar información. Durante esta fase seguirán coexistiendo ETH1 y ETH2 para hacer menos rentable la minería tradicional de Proof of Work y que vayan pasando al nuevo sistema en una actualización llamada Bizantio. Se aplicó el concepto de bombas de Ethereum que lo que hace es ir incrementando la dificultad de la minería y de esta forma reduciendo la rentabilidad de POW para que vayan pasando a POS.

La última será la fase 2 y se prevé que ocurrirá alrededor de 2022 y cumplirá con el objetivo de ETH2. Los fragmentos podrán procesar transacciones y se podrá usar para aplicaciones comerciales reales. También en esta fase se implementarán los contratos inteligentes en los fragmentos con la nueva máquina virtual que se llamará WebAssembly (eWASM). La versatilidad de estos contratos será mejorada e incluso se podrán crear entornos de ejecución, los cuales podrían imitar las reglas de transacciones de otras Blockchains.