-
Todd confiesa que considera el hard-fork realizado en Ethereum como un โrescateโ a la DAO.
-
Las transacciones replicadas fue el efecto negativo mรกs notable del hard-fork de Ethereum.
El desarrollador Peter Todd, miembro activo del cliente Bitcoin Core, ha publicado una serie de observaciones sobre el pasado hard-fork realizado a la plataforma de contratos inteligentes de Ethereum. Considerando tambiรฉn escenarios prรณximos a la implementaciรณn de Segregated Witness en Bitcoin, donde la realizaciรณn de una bifurcaciรณn para el agrandamiento del tamaรฑo del bloque sea necesaria para la red.
El protocolo de Bitcoin estรก prรณximo a recibir las primeras pruebas previas a la implementaciรณn definitiva de Segregated Witness (SegWit), una tรฉcnica para reducir la cantidad de datos de las transacciones que se registran en los bloques de la red Bitcoin.
Con la llegada de SegWit, se espera que puedan registrarse inclusive cuatro veces mรกs transacciones en los bloques de Bitcoin, prescindiendo ademรกs de informaciรณn referente a las claves de usuarios utilizadas en las transacciones que puede ser usada para perpetrar ataques de maleabilidad a la red.
La experiencia reciente de Ethereum
Todd confiesa que considera el hard-fork realizado en Ethereum como un โrescateโ a la Organizaciรณn Autรณnoma Descentralizada (DAO), pero dejando las opiniones polรญticas a un lado, el desarrollador se enfoca en las consecuencias derivadas de este evento que, a su juicio, deben ser evitadas en la red de Bitcoin en el caso de la ejecuciรณn de una bifurcaciรณn.
El fenรณmeno de las transacciones repetidas o replicadas (replay transactions) fue sin duda el efecto negativo mรกs notable en la ejecuciรณn del hard-fork de Ethereum, a lo cual Todd denomina un โcompleto desastreโ que pudo evitarse y que precisamente los desarrolladores de Ethereum estaban al tanto de dichos riesgos.
.@petertoddbtc we knew it would happen weeks before launch, we didn’t want to implement replay-protection b.c. of implementation complexity
mdash; Vlad Zamfir (@VladZamfir) 31 de julio de 2016
Para quienes no estรกn al tanto, este fenรณmeno de transacciones repetidas se refiere al caso en que luego de una bifurcaciรณn en una cadena de bloques, los usuarios pueden realizar una transacciรณn a una cartera cualquiera y este movimiento serรก repetido, replicado o โcopiadoโ en la otra cadena de bloques reciรฉn creada. Logrando de esta forma generar de la nada la misma cantidad de criptomonedas en otra cartera correspondiente a la nueva red.
Estas transacciones, que son consideradas como โataquesโ, fueron realizadas por numerosos usuarios que, utilizando Ethers (ETH) minados antes del hard-fork, los transferรญan a carteras en las casas de cambio para obtener por duplicada la misma cantidad de criptomonedas (ETH y ETC) en ambas cadenas.
Por supuesto, esta caracterรญstica era desconocida para muchos usuarios e inclusive para diversas casas de cambio como BTC-e y Coinbase, que sin estar debidamente preparadas ante el fenรณmeno, sufrieron significativas pรฉrdidas monetarias debido al mal manejo de esta caracterรญstica en sus plataformas.
Garantizando una bifurcaciรณn segura
Para Todd, ejecutar una bifurcaciรณn de forma segura es posible utilizando diversos algoritmos que ya han sido propuestos, y algunos desarrollados, por varios de los programadores que forman parte del equipo del cliente Bitcoin Core.
La principal alternativa es una que fue desarrollada por Luke Dashjr en trabajos previos a los que Todd hace referencia en su publicaciรณn y le llama un โsoft-fork forzadoโ. En tรฉrminos bรกsicos, esta propuesta โenvuelveโ una bifurcaciรณn en un soft-fork y obliga a los nodos a seguir la cadena principal sugerida o de lo contrario estarรกn completamente inhabilitados para procesar y realizar transacciones, incluso en la cadena de bloques alternativa.
En esta opciรณn, los usuarios que deseen oponerse a operar en la cadena de bloques propuesta, deberรกn ejecutar un nuevo hard-fork para recuperar la operabilidad y asรญ poder realizar transacciones en la cadena de bloques alterna.
Todd destaca que esta propuesta evitarรญa los inconvenientes experimentados con la bifurcaciรณn de Ethereum, como los ya mencionados ataques con transacciones replicadas y la migraciรณn de muchos usuarios hacia la cadena de bloques minoritaria, hoy llamada Ethereum Classic.
Ademรกs, Todd menciona otros mecanismos para evitar los ataques por transacciones replicadas luego de un hard-fork, mencionando las propuestas de Tom Harding y Gregory Maxwell, quienes respectivamente declaran que a travรฉs del uso de bits en las transacciones y hashes en determinados bloques, puede evitarse este tipo de ataques.
Mientras que la propuesta de Harding configura las carteras para identificar determinados bits enย las transacciones para bloquear las replicadas, la alternativa de Maxwell en cambio hace invรกlidas todas las transacciones realizadas en un rango de bloques determinado que garantice que la posibilidad de replicar transacciones no exista.
Entre otras medidas consideradas en la publicaciรณn de Todd para reducir riesgos en la ejecuciรณn de un hard-fork, destaca la propuesta de Matt Corallo de Compact Blocks. Esta es una tรฉcnica para reducir los tiempos de propagaciรณn de los bloques en la red de nodos, al mismo tiempo que se disminuye el ancho de banda utilizado para tal tarea. Se espera que Compact Blocks sea incluida en la versiรณn 0.13.0 del cliente Bitcoin Core.
Bitcoin Core divisa la posibilidad del hard-fork
Aunque la publicaciรณn fue realizada de manera personal por Peter Todd y no en el blog oficial de Bitcoin Core, son obvias las referencias a distintos trabajos y propuestas que ya estรกn siendo desarrolladas por otros programadores y contribuyentes al cรณdigo fuente de Bitcoin. Esto nos dice que Bitcoin Core tiene en mente el escenario posterior a la implementaciรณn de SegWit, donde la aplicaciรณn de un hard-fork sea una medida necesaria para agrandar el tamaรฑo de los bloques de la red.
En la hoja de ruta de Bitcoin Core esta posibilidad de la bifurcaciรณn tambiรฉn estรก presente, pero con los efectos ya vividos en la comunidad de Ethereum con la pasada bifurcaciรณn a su cadena de bloques, es obvio que Bitcoin Core no quiere correr los mismos riesgos para el protocolo y estรก considerando diversas alternativas para evitarlo.