Lo que trajo Byzantium, la actualización de blockchain de Ethereum


Vitalik Buterin y sus amigos celebran el exitoso tenedor de Bizancio. 16 de octubre de 2017

El 16 de octubre de 2017 a las 05:22 UTC, ocurrió la quinta bifurcación en la historia del sistema Ethereum, la segunda criptomoneda más popular en el mercado mundial después de Bitcoin. La capitalización de Ethereum ha crecido particularmente en los últimos meses, en medio de un aumento asombroso en la popularidad de los tokens ICO que usan el estándar de token Ethereum ERC-20 .

La actualización de software no se puede llamar completamente exitosa. En los últimos días, el software Ethereum con soporte Byzantium ha sido llamado repetidamente debido a errores graves. Los desarrolladores (en la foto de arriba) tenían prisa por cumplir el plazo antes de la bifurcación prevista. No todos creían que tendrían éxito: algunos expresaron la opinión de que con errores tan graves, la bifurcación debería posponerse durante varios días. Pero no La actualización de Bizancio se realizó de acuerdo con el plan.

Bizancio y el futuro Constantinopla son dos partes de la gran actualización de Metrópolis. Esta es la mayor de todas las actualizaciones del sistema Ethereum previstas en 2015, cuando se elaboró ​​el plan de desarrollo de Ethereum.

Bizancio


Bizancio incluye nueve protocolos de mejora de Ethereum (EIP), es decir, nueve parches separados. Entre ellos se encuentran la corrección de problemas de ajuste de complejidad, operaciones REVERT , operaciones de LLAMADA ESTÁTICA , función de retraso de complejidad e inserción de datos de devolución de transacciones en el recibo. Aquí está la lista completa de cambios: EIP 100 , EIP 140 , EIP 196 , EIP 197 , EIP 198 , EIP 211 , EIP 214 , EIP 649 , EIP 658 .

Todos estos parches deberían mejorar el rendimiento de la red y reducir los riesgos de exploits. La mayoría de ellos traen cambios bastante menores, que no son inmediatamente obvios para aquellos que no están involucrados en el desarrollo del protocolo. Pero hay cambios bastante importantes.

Por ejemplo, uno de ellos está asociado con el procesamiento de código incorrecto en contratos inteligentes. El pago no funcionará si hay errores de programación, y puede ocurrir una acción programada, dependiendo del tipo de error. Además, este parche realiza cambios en el ciclo de vida del contrato. Por lo tanto, ahora las actualizaciones de contrato pueden preprogramarse, es decir, configurarse en el código fuente.

Además, los contratos obtienen una mejor protección. Se han desarrollado medidas especiales que protegen contra posibles ataques de reentrada (ataque de reentrada). Si alguien no ha encontrado ataques de reentrada, mire el código para dicho contrato :

pragma solidity ^0.4.8; import "./HoneyPot.sol"; contract HoneyPotCollect { HoneyPot public honeypot; function HoneyPotCollect (address _honeypot) { honeypot = HoneyPot(_honeypot); } function kill () { suicide(msg.sender); } function collect() payable { honeypot.put.value(msg.value)(); honeypot.get(); } function () payable { if (honeypot.balance >= msg.value) { honeypot.get(); } } } 

Aquí vemos cómo se organiza un ataque de reentrada. El contrato de HoneyPot enviará continuamente monedas a la dirección de HoneyPotCollect siempre que tenga dinero, hasta que esté completamente vacío.

Dicho código puede integrarse en los contratos de otras personas, de los cuales los parches de Bizancio intentan proteger el sistema.

La nueva función de insertar datos de devolución de transacciones en el recibo permite a los clientes ligeros determinar el éxito de una transacción sin ejecutarla realmente en la máquina virtual Ethereum.

Otro parche EIP 649 retrasa el uso de la "bomba de complejidad" con un cambio a la prueba de propiedad (PoS), lo que hace que la minería no tenga sentido. Debe proteger contra el hecho de que el tiempo de transacción será demasiado largo (ahora las transacciones de ether toman 25 segundos, que es mucho más que el estándar para Ethereum en 10 segundos). Este parche también debería reducir la recompensa a los mineros por bloques de 5 ETH a 3 ETH, acelerar y reducir el costo de la minería.

Otro parche corrige un error en el algoritmo para cambiar la complejidad de la minería, por lo que ahora la velocidad de cálculo del bloque se volverá más estable.

Finalmente, Bizancio contiene algo llamado zk-SNARK (argumento de conocimiento no interactivo sucinto de conocimiento cero): confirmación de transacciones con conocimiento cero, la base del protocolo del criptosistema anónimo Zcash. Ahora, las transacciones privadas absolutamente anónimas estarán disponibles en Ethereum.

Después de Bizancio, la próxima actualización programada es Constantinopla, la segunda parte de la actualización de Metrópolis. Se presentarán aún más cambios y se corregirán los nuevos errores que probablemente salgan en el futuro después de las actualizaciones actuales. El sistema solo se encuentra en la etapa inicial de desarrollo, y hasta ahora tiene demasiados agujeros. Pero gradualmente estos agujeros se cierran, por lo que encontrar nuevas hazañas es cada vez más difícil.

La bifurcación actual es la primera que se lleva a cabo en el contexto de gran interés público y gran popularidad de Ethereum, por lo tanto, se le presta especial atención. A juzgar por el registro de la bifurcación , la minería en la antigua cadena de bloques se ha detenido. Todos se mudaron a uno nuevo. Y Ethereum casi se recuperó después de un colapso por delante de la bifurcación.

En general, todo salió bien. Y los desarrolladores de Ethereum, junto con Vitalik , ya han celebrado este evento en un ambiente íntimo, es decir, en casa junto a una mesa con tenedores en el aire.

Source: https://habr.com/ru/post/es407509/


All Articles