En los últimos días hemos vivido un episodio muy interesante y divertido de guerra entre mineros y otros miembros de la comunidad. Algunos de los acontecimientos no habían ocurrido en el pasado y han sido realmente instructivos para practicamente todos, sobre todo porque se ha visto en la practica aspectos sobre los que muchos hemos teorizado bastante en el pasado. Este artículo está ademas especialmente motivado a servirnos de memoria para acudir a el cuando lleguen otros a posteriori intentando reescribir la historia.
Como muchos lectores han tomado partido por uno u otro bando en esta historía voy a intentar ser lo mas objetivo posible y cuando no pueda serlo intentaré reflejarlo.
Antecedentes.
Desde aproximadamente Febrero de 2020 cuando se anunció por priera vez el IFP (Infraestructure Funding Plan), todos los que estamos relacionados con la criptomoneda Bitcoin Cash (desarrolladores, mineros, mercados de intercambio, y usuarios) hemos estado divididos. Algunos se oponen frontalmente al concepto del IFP, otros no se oponen a el pero si a los términos en los que se plantea (basícamente a quien van a parar los fondos) y por último algunos que hemos estado de acuerdo tanto con el concepto como con las diferentes versiones de detalle por las que ha ido evolucionando así como a donde van a parar dichos fondos. Esto es una simplificación, puede haber algunos de acuerdo con alguna de ellas pero no con la última, pero son casos muy poco significativos.
Tras unas discusiones entre los diferentes equipos de desarrollo a la hora de elegir una solución consensuada para el ajuste del algoritmo de dificultad, algo completamente tangencial al problema del IFP, el equipo de desarrollo de ABC optó por ceder en el tema del ajuste del algoritmo de dificultad pero a cambio de forzar el IFP en su software de nodo para la actualización del 15 de Noviembre de 2020, de modo que si era respaldada por una mayoría de mineros BCH incorporaría el IFP a la cadena de bloques mientras que si no era mayoría habría una separación de cadenas (split).
Parecía que no iba a llegar nunca el 15 de Noviembre, pero el tiempo es inexorable y tras la actualización la rama en contra del IFP, capitaneada por el equipo de desarrollo de "Bitcoin Cash Node" BCHN (pero con otros equipos mas como Bincoin Unlimited, BCHD, ...) se alzó con una abrumadora victoria en la batalla de hash. Ese mismo día ABC y muchos de sus seguidores reconocimos la derrota y otorgamos el "derecho" a permanecer con la marca Bitcoin Cash y el ticker BCH en los mercados de intercambios al bando contrario. A la rama perdedora me voy a referir como Bitcoin Cash ABC o BCHA y estamos pendientes de un cambio de nombre y marca que se efectuará en los próximos días.
A pesar de no contar con "replay protection" la separación ha contado con bastante "fair play" por muchos de los participantes, aunque no todos como veremos, ya que a algunos no les ha bastado con haber vencido y haberse quedado con el nombre, el legado y el ticker, sino que han querido ir mas allá.
Primeras escaramuzas.
Algunos componentes del bando ganador han considerado que la parte que se ha escindido les ha causado un gran daño por perder efecto de red, y cabreados con ABC por su iniciativa, así como la debilidad aparente del perdedor, han querido ir mas allá. A estos actores les voy a agrupar bajo el nombre de mineros "cabreados" con ABC y desconozco si es una persona con mucho poder de hash o varios, pero en cualquier caso han tenido además seguidores que han aplaudido y alentado su comportamiento.
Sus primeras acciones consistieron en minar bloques vacios de transacciones a perdidas para que el algoritmo de ajuste de la dificultad tardase mas tiempo en ajustarse y dificultar de esa forma la entrada de mas mineros. Este comportamiento es perfectamente legítimo, no parece muy racional desde el punto de vista de los incentivos, pero para ellos intentar que la cadena BCHA no existiera era un incentivo en si mismo. Desconozco si disponían de una posición a corto en BCHA para equilibrar las perdidas pero parece poco probable por la dificultad para tomar dicha posición en los albores de BCHA. Los bloques vacios de transacciones eran un incordio para los usuarios que veían como sus txs estaban en el mempool pero no entraban en los bloques, pero dicho incordio se compensaba cuando otro minero con intenciones mas amigables con BCHA descubría un bloque e insertaba un gran número de ellas. El éxito que tuvo en esta fase fué, en mi opinión pequeño, ya que con un coste alto tan solo ralentizaba la confirmación de las txs de los usuarios, pero no las paralizaba.
Su segunda acción consistió en anunciar en los bloques que iba a realizar un "dump" en los mercados el 25 de Noviembre. Seguía minando a perdidas y mantenía los bloques vacíos excepto aquellos que se doblegasen a escribir un texto en las txs acorde a sus ideas, algo así como "Nunca ha habido un problema de financiación en Bitcoin Cash", mensaje político en contra de los ideales fundacionales de BCHA y que tan solo usuarios de monederos mas avanzados podía optar a añadir. Llegó el 25 de Noviembre y no se si debido a su amenza o a otra cosa, ese mismo día BCHA sufrió una bajada "normalita" en los mercados. Minando con perdidas conseguia mantener la campaña de ralentización de BCHA en los momentos mas dificiles, su nacimiento como split minoritario, pero supongo que si conseguía impedir el nacimiento de BCHA lo consideraría un precio justo a pagar.
Pasarse de la raya.
Con todas estas acciones el minero "cabreado" tan solo ralentizaba el normal uso de la cadena de bloques. Entonces pensó que debía ir mas allá y realizar un ataque mayor a BCHA y dijo que el solo iba a minar bloques vacios (o tan solo con aquellas txs que adjuntaran su mensaje político en contra de BCHA), y que aquellos bloques no minados por el los iba a dejar huerfanos debido a que disponía de una potencia de hash mayor del 51%. No lo decía con estas palabras, utilizaba triquiñuelas como que iba a respetar los bloques que los mineros otorgasen toda la recompensa a la cuenta de ABC, era una forma sarcástica porque ningún minero está dispuesto a minar bloques sin ninguna recompensa.
Esta es la parte sobre la que muchos hemos teorizado en el pasado de que podía pasar. Algunos pronosticaban que era la forma de acabar con una cadena de bloques minoritaria y de esa forma dar un aviso a navegantes de que no hay que separarse de una criptomoneda o si no sufrirás este castigo si no eres la parte mayoritaria.
En las guerras de hash anteriores (split entre BTC y BCH primero y split entre BCH y BSV después), el bando minoritarío nunca recibió un ataque por parte de mineros cabreados, cada cadena de bloques siguió su camino con mayor o menor éxito, lo máximo acontecido son los ataques entre los miembros de las diferentes comunidades en las redes sociales. Quizás en esta ocasión el resultado tan favorable de los mineros apoyando una de las cadenas le dió alas a los mineros "cabreados" para atacar a la cadena minoritaría y si se consigue que no dicha cadena minoritaria ni siquiera llegase a nacer el costo estaría bien empleado.
Durante los dias 27 al 29 de Noviembre, el minero "cabreado" cumplió su amenza y minaba bloques vacios. Cuando un minero "amistoso" con BCHA lograba minar un bloque lleno de txs, el minero "cabreado" hacia uso de su posición dominante y ignoraba dichos bloques para posteriormente desplazarlos por los suyos y dejando huerfanos a los bloques de los demas. Esta acción tenía dos consecuencias, la primera para los mineros que veían como sus bloques quedaban huerfanos y perdían su recompensa, y la segunda para los usuarios que veían como sus txs no se incluían en los bloques y la cadena de bloques de BCHA era completamente inútil. Hubo un total de 36 bloques llenos de txs que quedaron huerfanos por este motivo.
El único "beneficiado" era el grupo del minero "cabreado" que veía como todos los bloques minados eran suyos y además la cadena BCHA carecía de utilidad. Mientras esta estrategía tenía éxito varios contrarios a BCHA aplaudían las acciones de este minero cabreado y algunos hasta habían sido capaces de deducir esa estrategía de sus interpretaciones personales del white paper original de Satoshi Nakamoto.
Desenlace final.
Como muchos podeis intuir, atacar a mucha gente tiene consecuencias, levanta callos y te crea enemigos. El minero "cabreado" se creía que iba ganando pero los mineros que veian como desaparecian sus bloques (Mining-Dutch, una pequeña parte del pool de ViaBTC, y un minero desconocido) estaban urdiendo su venganza, supongo que buscando si tenian o no apoyos para las acciones requeridas en su defensa.
El pasado lunes 30 de Noviembre, aproximadamente a las 6 de la tarde, cuando un minero amigable con BCHA encontró un bloque y cuando el minero cabreado dejó de minar encima de él para dejarlo huerfano como había hecho tantas y tantas otras veces anteriormente. A pesar de tener una malloría de hash, no consiguió dejarlo huerfano porque en esta ocasión fueron los mineros "amigables" los que dieron por bueno el bloque original y se negaron a minar encima de la cadena del minero "cabreado" a pesar de que esta disponía de mas trabajo acumulado. El que a hierro mata a hierro muere. O utilizando la cita del mismo Satoshi "They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them.". La consecuencia es una separación de la cadena de bloques, una rama seguía al minero "cabreado" y la otra seguía a los mineros amigables con BCHA.
Los usuarios tardamos bastante tiempo en reconocer la situación. Yo el martes 1 de Diciembre por la tarde me percaté de la situación y tuve que tomar una decisión: cual de las dos cadenas debían de seguir mis nodos y por ende mi servidor Electrum que da soporte a los monederos (Electron Cash y Electrum ABC) que quieran apuntar a la cadena de BCHA. Lo tuve muy facil. Una cadena tiene un minero centralizado (el minero "cabreado") y bloques vacios que la restan utilidad. La otra cadena tiene varios mineros y crean bloques grandes que incluyen todas las txs pendientes hasta llegar a vaciar el mempool acumulado manteniendo toda su funcionalidad. A pesar de que la cadena del minero "cabreado" acumulaba mas esfuerzo de trabajo y por lo tanto mi nodo hasta ese momento era la que seguía, realizé las correciones para pasarme a la cadena que yo considero es la de BCHA, la de los mineros amigables. No debí ser el único en optar por esa posibilidad, ya que otros me siguieron a continuación. En mi opinión "todos" los que queremos ver a la cadena BCHA peleando por sus objetivos optamos por seguir la cadena funcional y de mineros descentralizados honestos. Los que quieren que la cadena BCHA no funcione, quizás para que así tenga mas posibilidades la que ellos han elegido, son los que querian que la cadena del minero "cabreado" fuese finalmente elegida, pero esta opción no ha contado con el respaldo del resto de la comunidad BCHA, por lo que el minero "cabreado" ha visto como le dejaban huerfanos 174 bloques que había minado con anterioridad. El que ríe el último ríe mejor.
Conclusión.
La buena noticia, no solo para la cadena de bloques de BCHA, sino también para el resto de cadenas, es que BCHA se ha enfrentado a un ataque del 51% y ha sobrevivido, aunque no haya sido facil.
Muchos piensan que esta ha sido solo una victoria temporal, que el atacante puede repetirla en otro momento en la cadena BCHA que ha sobrevivido, pero el resultado actual sirve de aviso a navegantes, ya que el minero "cabreado" ha perdido mucho mas dinero del que esperaba y se gana tiempo hasta la solución mas definitiva que está descrita en la hoja de ruta de Bitcoin Cash y explicada en este artículo de Diciembre de 2018 , Avalanche post-consensus. que te recomiendo leas con mucha atención.
La lección aprendida es que una cadena de bloques puede defenderse y no ser sometida por un grupo con mayoría de potencia de hash, sea un minero que no coincide con tus ideas o una fuerte corporación o uno o varios estados los que la ataquen.
Si podrás en cambio minar los bloques vacios que te de la gana, pero eso solo perjudica temporalmente la utilidad y pagarás un coste por ello.
Lo que no vas a poder hacer es que solo haya bloques vacios dejando huerfanos los de los mineros honestos porque estarás sujeto al mismo destino de lo que ha pasado en estos últimos 3 días.
Moraleja, dedicate a construir en la cadena o cadenas de bloques que mas te interese, no a destruir lo que los demas hagan en otra cadena de bloques porque la consideres competidora.
Gracias por compartir tus experiencias y reflexiones, admiro tu madurez. Muchas veces asociamos madurez con edad, pero he visto personas grandes de edad con muy poca madurez. Feliz dia!