Hubo un desacuerdo en las reglas de consenso entre dos grupos de desarrolladores y al no alcanzar acuerdo se hace un hard fork: se separan las cadenas y cada una sigue su camino.
En el caso de Bitcoin Cash, los que le apoyan defienden la literalidad de white paper en donde Satoshi dice que es una red de pagos descentralizada. Con bloques de 1 Mb es imposible escalar para intentar hacer un mínimo de competencia a Visa y Master Card como medios de pago, por lo que este hard fork subió el tamaño de bloque a 8 Mb y posteriormente a 32 Mb.
Posteriormente, el mercado le hizo un crash a Bitcoin cash. Bitcoin no aspira a ser Visa.
Un hard fork se da por un desacuerdo “grave”, a nivel de reglas de consenso. Es lo que protege la red de un ataque del 51%: además de carísimo, sus resultados serían bastante ineficientes, ya que la red siempre puede hacer un hard fork, decidir seguir apoyando a la cadena honesta y hacer una especie de “reset” desde el último bloque minado antes del inicio del ataque. Ese hard fork sólo tendría sentido tras un cambio en el algoritmo de minado (SHA256 actualmente) ya que no querrías que el atacante pudiera volver a minar en la cadena honesta y beneficiarse. Un cambio en el algoritmo de minado hace inservibles a los ASICs actuales, que solo pueden correr el SHA256. Sería un cambio doloroso, pero necesario en aras de la continuidad de la red.
Un ataque del 51% tiene como objetivo realizar un doble gasto, en teoría de unos fondos enormes, si no no tendría sentido económico. Veamos cómo podría ser:
Tras meses o años acopiando mineros ASICs y asegurando una fuente de energía fiable (el ataque va a ser largo…):
En el bloque N comienzo en secreto a minar una cadena paralela que no hago pública.
En el bloque N+1 hago un gran gasto, por ejemplo, soy el banco central chino y compro varios billion en oro al banco central suizo.
Sigo minando la cadena paralela en secreto.
En el bloque N+X, cuando efectivamente, en nuestro escenario, ya hubiera recibido el oro y esté a salvo en la cámara de mi banco central (¿semanas o meses depués?), hago pública la cadena maliciosa (en la cual yo nunca he hecho la transacción del bloque N+1 y por tanto esos fondos aún están bajo mi control) y como los nodos siguen las reglas de consenso que dicen que hay que retransmitir y hacer caso a la cadena con más prueba de trabajo acumulada, de repente la cadena maliciosa pasaría a ser la cadena válida.
Aquí la cadena honesta podría hacer una “pausa y reset”, haciendo que el minero deshonesto se quede con una cadena que no sigue nadie y ¿cientos de millones? de dólares en un HW de minado inutil.
La cantidad de capex para preparar el ataque, de opex necesario para mantenerlo y las características del potencial doble gasto que quiero hacer, me hacen pensar, EMHO, que hay un incentivo muy grande para no lanzar un ataque del 51%. Lo más rentable es ser un minero honesto. La siempre presente posibilidad del hard fork por este motivo, protege a la red.
La red Bitcoin es una red descentralizada y parecería que los incentivos no invitan a cambiar las reglas de consenso que la haría menos descentralizada.
Cambiar las reglas de consenso importantes como el tiempo entre bloques (10 minutos), el tamaño del bloque (1 Mb), el método de validación por prueba de trabajo, la curva de emisión de nuevas monedas (los halvings) y por supuesto, el hard cap de 21 millones, además de afectar a la política monetaria que hace única a la red Bitcoin, incidirían negativamente en la descentralización ya que harían más difícil (en realidad caro) correr un nodo y propiciarían una concentración geográfica de los mineros.