En primer lugar destacar que este articulo es una traducción adaptada de la entrada con nombre: «History of Ethereum Hard Forks» de la web Medium.com. Todos el contenido que aquí se encuentra es fruto del esfuerzo de Luit Hollander, agradecemos desde Bitcoin.es que haya recopilado y explicado toda la información pertinente.
Una descripción general de todos los eventos en 5 años.
El pasado 4 de mayo de 2020, se ha extraído el bloque número 10 millones de la cadena de bloques Ethereum. Combinados, estos bloques se extrajeron calculando más de 15 zettahashes en los últimos 5 años. Se necesitaría una tarjeta gráfica moderna, como la GTX 1080 Ti y más de 150 millones de años para hacer esto.
En el transcurso del camino hacia este hito, se ha producido una cantidad reconocible de horquillas. Aunque las bifurcaciones siempre crean una división de cadena, la cadena antigua a menudo se abandona, por lo que a veces se las denomina «actualizaciones de red». Hoy, echaremos un vistazo a los eventos que nos han llevado en conjunto a nuestra cadena de bloques Ethereum mainnet actual.
Prelanzamiento: Olímpico – # 0
El 9 de mayo de 2015, la Fundación Ethereum anunció el prelanzamiento de Olympic: Frontier . El lanzamiento fue una prueba de concepto e incluyó un programa de recompensas que abarcaba hasta los 25,000 Ether que se utilizarían para efectuar la mayoría de las transacciones, ser el minero que suma la mayoría de las transacciones o encontrar problemas serios como crear un (sustancial) bifurcación entre clientes Go y C ++.
Duró 14 días. Aunque técnicamente Olímpico era una red diferente y, por lo tanto, no se añade a esta lista, esta etapa definió una parte del llamado bloque «Génesis» en el lanzamiento de Frontier.
Frontier – # 0
Frontier marca el primer lanzamiento oficial de Ethereum, » Ethereum 1.0 «. El lanzamiento consistió en un bloque Genesis , que incluyó 8893 transacciones de todos los que compraron Ether durante su preventa oficial. En total, un poco más de 72 millones de ETH fueron «minados previamente», de los cuales casi 12 millones fueron asignados para el fondo de desarrollo Ethereum.
Descongelamiento de Frontier
Inicialmente, Ethereum tenía un límite de gas codificado por bloque de 5,000 gases. Debido a que cada transacción tiene un costo base de 21,000 gas, esto significa que la cadena de bloques Ethereum solo permite bloques minados. Según una publicación de blog publicada por Ethereum.org:
Este período de «descongelación» permitirá a los mineros comenzar sus operaciones y los primeros usuarios instalarán a sus clientes sin tener que «apurarse». Después de unos días (probablemente 3–4, pero esto podría cambiar), lanzaremos una pequeña actualización de software que todos los clientes deberán instalar. Esta actualización verá el límite de Gas por bloque elevado a 3 millones, un número inicial desde el cual se expandirá o disminuirá según la configuración predeterminada del minero.
Aproximadamente 5 días después del lanzamiento de Ethereum, este límite se cambió a un valor objetivo predeterminado de 3.141.592 de gas. Sin embargo, esto no fue un cambio inmediato, ya que a los mineros solo se les permite aumentar / disminuir el límite de gas real a través de (previous block limit) / 1024
gas en cada bloque.
El bloque número 46,147 contenía la primera transacción de Ethereum, una transferencia de 31337 wei.
Edad de hielo – # 200,000
En el entorno blockchain, el término » dificultad» se refiere a cuánto esfuerzo le toma a una computadora extraer el siguiente bloque. La dificultad se reajusta automáticamente para estabilizar los tiempos de bloqueo. A medida que se extraen más bloques en un período de tiempo determinado, aumenta la dificultad y viceversa.
Para garantizar otro punto bifuración duro se cambia de «PoW» a «PoS» dentro de los 16 meses posteriores al lanzamiento inicial de Ethereum, se agregó un aumento de dificultad exponencial que ralentizaría notablemente los nuevos bloques que se extraen después de aproximadamente un año. Después de ese tiempo, la red alcanzaría una » Edad de Hielo » , donde la dificultad aumentaría exponencialmente hasta que fuera demasiado alta para que alguien pudiera encontrar un bloque.
La imagen anterior muestra el tiempo promedio necesario para minar un bloque. Son visibles tres picos claros, estos se dan cuando «La Edad de Hielo» comenzó a entrar en acción. Cada vez que terminaba un pico, la edad de hielo se retrasaba manualmente por una nueva bifurcación dura. Aunque la edad de hielo debió retrasarse varias veces, el trabajo de prueba de participación todavía está en progreso.
Homestead – # 1,150,000
Homestead era la segunda versión principal planificada para Ethereum e incluía tres llamados EIP , o » Propuestas de mejora para Ethereum» :
- EIP 2: cambios de la hard-fork de Homestead
- EIP 7: «DELEGATECALL«
- EIP 8: Requisitos de compatibilidad en cuanto al reenvío de devp2p para Homestead
Bifuracción DAO – # 1,920,000
El 17 de junio de 2016, se utilizó una vulnerabilidad encontrada dentro del contrato DAO para sustraer aproximadamente 3.6 millones de ETH del fondo. Debido a la forma en que se diseñó este contrato, estos fondos se congelarían durante 28 días antes de que pudieran transferirse.
Si no se hubiera tomado ninguna medida, el hacker habría poseído por sí solo alrededor del 4,4% del suministro total de ETH. Debido a esto, se elaboró una propuesta controversial, el EIP 779. Esta cambiaría el código del contrato de bloqueo del atacante para que todos pudieran retirar su ETH del contrato DAO.
El 20 de julio, la mayoría del poder minero apoyó una bifurcación que implementó este cambio, mientras que una comunidad más pequeña decidió separarse y cambiar el nombre de la antigua cadena a Ethereum Classic.
Tangerine Whistle (Silbato de mandarina) – # 2,463,000
«Tangerine Whistle» fue una pequeña bifurcación no planificada que incluía solo el EIP-150. La propuesta cambió el precio de algunos códigos de operaciones para evitar que los ataques de denegación de servicio (DdoS) sean efectivos contra la red.
Spurious Dragon (Dragón espurio) – # 2,675,000
«Spurious Dragon» fue otra bifurcación no planificada el 22 de noviembre de 2016, incluyó cuatro propuestas para reparar algunos comportamientos no deseados:
- EIP 155: protección de ataque de repetición simple
- EIP 160: aumento de costos de EXP
- EIP 161: compensación de trie estatal (alternativa de preservación invariante)
- EIP 170: límite de tamaño del código del contrato
Bizancio – # 4,370,000
Bizancio es la primera mitad de «Metrópolis« , que fue el nombre dado a la tercera etapa planificada de Ethereum. Contenía una amplia variedad de cambios, incluidos 4 nuevos códigos de operación, 4 precompilaciones, una reducción de la recompensa de bloque y otro retraso de la subida de dificultad de la Edad de Hielo. La lista completa de propuestas de mejora incluidos es:
- EIP 100: cambie el ajuste de dificultad al tiempo de bloqueo medio objetivo, incluidos los tíos
- EIP 140: instrucción REVERT
- EIP 196: contratos precompilados para la suma y la multiplicación escalar en la curva elíptica alt_bn128
- EIP 197: contratos precompilados para una comprobación óptima de emparejamiento de ate en la curva elíptica alt_bn128
- EIP 198: Exposición modular de enteros grandes
- EIP 211: Nuevos códigos de operación: RETURNDATASIZE y RETURNDATACOPY
- EIP 214: Nuevo código de operación STATICCALL
- EIP 649: Dificultad de bomba de Metropolis y reducción de recompensa de bloque
- EIP 658: incrustación del código de estado de la transacción en recibos
Constantinopla / San Petersburgo – # 7,280,000
La segunda mitad de la etapa de Metrópolis consistió en la bifurcación conocida como Constantinopla, que se suponía que sucedería en el bloque número 7,080,000 , incluía cinco propuestas de mejora:
- EIP 145: instrucciones de desplazamiento bit a bit en EVM
- EIP 1014: CREATE2
- EIP 1052: código de operación EXTCODEHASH
- EIP 1234: dificultad de Constantinopla, retraso de la subida y ajuste de recompensa de bloque
- EIP 1283: Medición neta de gas para SSTORE sin mapas sucios
Sin embargo, solo 32 horas antes de la supuesta bifurcación, Constantinopla se pospuso debido al descubrimiento de un efecto secundario no deseado de EIP-1283, que introdujo un ataque de reentrada en muchos contratos desplegados.
Como resultado, EIP-1283 se eliminó de la lista de integraciones planificadas, y la bifurcación se reprogramó para bloquear 7.280.000. Además, la bifurcación recibió un nuevo nombre: San Petersburgo.
Estambul – # 9,069,000
Después de las bifurcaciones de Bizancio y Constantinopla, el nombre de esta bifurcación no sorprende a muchos. La bifurcacón incluye dos nuevos códigos de operación, una nueva precompilación y algunos ajustes de gas.
- EIP 152: Agregue la función de compresión BLAKE2 `F` precompilar
- EIP 1108: reduzca los costos de gas de precompilación alt_bn128
- EIP 1344: código de operación de ChainID
- EIP 1884: cambio de precios para códigos de operación dependientes del tamaño de trie
- EIP 2028: reducción de costos de gas de datos de transacciones
- EIP 2200: definiciones estructuradas para la medición neta de gas
El propio Luit Hollander ha redactado otro artículo acerca de la bifurcación de Estambul dando una explicación técnica, recomendamos su lectura como complemento en este punto.
Glaciar Muir – # 9,200,000
El glaciar Muir solo incluía un EIP, EIP-2384 , para retrasar una vez más la subida o pico de dificultad.
Serenity / ETH 2.0 -?
El siguiente paso en la hoja de ruta de Ethereum es Serenity, también conocido como ETH 2.0. Esta actualización implicaría una «Beacon Chain» de prueba de participación, cadenas de fragmentos, eWASM y más.
Una «Beacon Chain» es una Blockchain central que coordina otros cientos de fragmentos. Estos fragmentos son otras redes disponibles y operativas dentro de Ethereum.
Referencias
- Buterin, V. (2015). Olímpico: prelanzamiento de la frontera
- Gupta, V. (2015). El proceso de lanzamiento de Ethereum
- Tual, S. (2015). Actualización 1 del protocolo Ethereum
- Wilcke, J. (2016). Lanzamiento de Homestead
- Buterin, V. (2016). ACTUALIZACIÓN CRÍTICA Re: Vulnerabilidad DAO
- Jameson, H. (2016). Preguntas frecuentes: próxima bifurcación dura de Ethereum
- Jameson, H. (2016). Horquilla dura №4: Dragón espurio
- Fundación Ethereum . (2017) Anuncio de Byzantium HF
- Jameson, H. (2019). Aplazamiento de Ethereum Constantinopla
- Jameson, H. (2019). Ethereum Constantinopla / St. Anuncio de actualización de Petersburgo
- Jameson, H. (2019). Anuncio de actualización de Ethereum Istanbul
De nuevo agradecer a Medium y a Luit Hollander y reconocer a este ultimo como autor del contenido ofrecido.
Seguir leyendo acerca de como OKEX ha pasado a ser un validador de Ethereum 2.0 puede que te parezca interesante.