092015–2017

Blocksize War: quién puede cambiar las reglas de Bitcoin

La disputa no empezó con héroes y villanos, sino con bloques llenos. Terminó con varias cadenas y una respuesta práctica: ni el hashpower, ni las empresas ni los desarrolladores deciden por sí solos qué debe aceptar un nodo.

Un megabyte parecía un parámetro técnico que resolverían ordenadores más rápidos y una prueba de rendimiento decente. Para 2015 se había convertido en una disputa sobre la forma futura del dinero y sobre las personas autorizadas a decir qué es Bitcoin. Gavin Andresen y Mike Hearn defendían bloques mucho mayores. Desarrolladores como Pieter Wuille y Gregory Maxwell advertían del coste que recaería sobre quienes operaban nodos. Mineros, exchanges, inversores y usuarios anónimos añadían su propia presión. La Blocksize War no fue una única pelea ni el duelo de dos bandos. Fue una sucesión de propuestas, ultimátums, conferencias, versiones de software y plazos a lo largo de dos años, durante la cual cada grupo descubrió la diferencia entre aquello en lo que podía influir y aquello que podía imponer.

01

Bloques llenos y dos temores distintos

A medida que crecía el uso, los bloques se acercaban al límite y las comisiones subían. Quienes defendían bloques mayores advertían de que las transacciones caras expulsarían los pagos cotidianos y convertirían Bitcoin en una red para ricos. Quienes preferían avanzar con más cautela advertían de que el rápido crecimiento de los datos y los requisitos reduciría la posibilidad de operar un Full Node en casa y concentraría la verificación en centros de datos.

Ambos bandos hablaban de descentralización, pero la medían de manera distinta. Uno contaba cuántas personas podían permitirse una transacción; el otro, cuántas podían permitirse verificar las reglas de forma independiente. Las propuestas Bitcoin XT, Classic y más tarde Unlimited prometían un aumento directo. El desarrollo de SegWit buscaba cambiar el formato de las transacciones y aprovechar el espacio con mayor eficiencia.

El límite de un megabyte no era una ley natural ni el objetivo original de Bitcoin. Satoshi lo había introducido para proteger a la red joven de bloques demasiado grandes. La disputa, por tanto, no consistía en decidir si se podía tocar una única constante sagrada, sino en determinar a qué velocidad crecer sin trasladar la verificación a quienes tuvieran la conexión más rápida, los discos más grandes y mayor paciencia para la sincronización inicial. Incluso un pequeño cambio técnico contenía una visión a largo plazo de quién podría decir: yo mismo he verificado las reglas.

El BIP101 de Andresen proponía saltar a ocho megabytes y aumentar después el límite de forma previsible. Hearn lo incorporó al cliente Bitcoin XT y ambos pidieron públicamente a mineros y usuarios que apoyaran el cambio. Para ellos, una cola de transacciones llena traicionaba la promesa original de efectivo electrónico barato. Si un usuario nuevo tenía que competir con una comisión elevada para hacer un pago pequeño, la red, a su juicio, perdería frente a las tarjetas antes de integrarse en la vida cotidiana.

Al otro lado no estaban personas empeñadas en mantener pequeño a Bitcoin. Pieter Wuille propuso Segregated Witness, mientras Gregory Maxwell y otros desarrolladores hablaban de segundas capas y de aprovechar mejor cada byte. Su preocupación miraba varios pasos más allá: un bloque mayor hoy significa requisitos más altos de conexión, almacenamiento y verificación para siempre. Cuando deja de ser práctico tener un nodo en casa, el usuario empieza a confiar en el servidor de otra persona. Ambos bandos protegían la accesibilidad; cada uno la veía en un lado diferente de la transacción.

02

El acuerdo de Nueva York

En mayo de 2017, un grupo de grandes empresas y mineros anunció el New York Agreement. El plan SegWit2x unía una activación rápida de SegWit con un posterior Hard Fork hacia un bloque base de dos megabytes. Los firmantes afirmaban representar una gran parte del hashpower y del volumen de transacciones, y actuaban como si la coordinación de las principales compañías pudiera cerrar la disputa.

Sin embargo, el acuerdo no obligaba a los usuarios que ejecutaban otro software. Sus críticos rechazaban ante todo la idea de que una reunión a puerta cerrada pudiera prometer, en nombre de la red, un cambio incompatible. Los mineros pueden proponer bloques y las empresas ponerles una marca; un nodo todavía puede declararlos inválidos.

El anuncio original hablaba de 58 empresas de 22 países y del 83,28 por ciento del hashpower. Las cifras tenían peso, pero no medían el consentimiento de los nodos independientes ni el de las personas que guardaban bitcoin fuera de los servicios de los firmantes. Unir SegWit y el Hard Fork posterior creó además un pacto político: cada parte recibiría algo de lo que quería. Cuando se activó la primera parte y la segunda siguió siendo polémica, quedó claro que el paquete no tenía ninguna institución capaz de obligar a completarlo.

El acuerdo fue organizado por Barry Silbert, fundador de Digital Currency Group, durante la conferencia Consensus de Nueva York. En la mesa se sentaron representantes de exchanges, wallets, compañías de pagos y empresas mineras; Jeff Garzik encabezó la implementación de SegWit2x. Para los empresarios agotados por una disputa tan larga, aquello parecía un compromiso adulto: personas influyentes por fin acordaban una fecha y estampaban debajo el nombre de sus compañías. Pero Bitcoin no tenía un registro de miembros en el que sus firmas constituyeran una mayoría cualificada.

Los críticos no reaccionaron solo ante los dos megabytes, sino también ante la forma de decidir. Adam Back, Gregory Maxwell y otros advirtieron de que un cambio incompatible con un plazo tan corto colocaba a los usuarios ante hechos consumados. Los firmantes controlaban servicios por los que pasaban muchas personas y los mineros podían aportar la mayoría del hashpower. Pero no podían cambiar a distancia las reglas de validación de un nodo que funcionaba en el piso de otra persona. El acuerdo creó así una situación extraña: las mayores empresas podían anunciar qué llamarían Bitcoin, pero el dueño de cada nodo conservaba su propio botón de rechazo.

03

UASF, BIP91 y la cadena que no se dividió

El BIP148 propuso un user-activated Soft Fork: a partir del 1 de agosto, los nodos participantes rechazarían los bloques que no señalizaran SegWit. Era una medida de presión arriesgada. Si una parte económicamente importante de la red se mantenía al margen, podían aparecer historiales competidores o reorganizaciones caóticas.

Antes de la fecha decisiva, sin embargo, los mineros empezaron a señalizar mediante BIP91 las condiciones que dejarían fijada la activación de SegWit. Por eso no es honesto atribuir el resultado a un único actor: la amenaza del UASF cambió los incentivos, los mineros coordinaron la señalización y los nodos existentes hicieron cumplir las reglas de un Soft Fork compatible. SegWit se activó el 24 de agosto de 2017.

Los nodos con BIP148 no podían minar SegWit por sí mismos ni obligar a los demás a usarlo. Solo podían prometer por adelantado que, después de la fecha fijada, no aceptarían cierto grupo de bloques. La fuerza de aquella promesa dependía de que la siguieran exchanges, comerciantes, wallets y tenedores cuyas monedas daban significado económico a la cadena. El UASF funcionó así como un compromiso público dentro de un juego de coordinación: su efecto no procedía de una orden, sino de la posibilidad creíble de que una cadena desobediente conservara hashpower pero tuviera menos compradores.

La propuesta BIP148 fue publicada por un desarrollador bajo el seudónimo Shaolinfry. La gente empezó a ponerse gorras con las letras UASF y a llamar al 1 de agosto el día de la independencia. Detrás de los memes había una apuesta seria. Si los mineros seguían adelante sin señalizar y una parte importante de la economía adoptaba BIP148, los historiales podían dividirse durante un tiempo y los usuarios no sabrían qué transferencia recibida conservaría su validez. El activista que operaba un nodo no arriesgaba solo un eslogan; arriesgaba su propia capacidad para recibir dinero de forma segura.

El BIP91 de James Hilliard ofreció una vía para que los mineros se coordinaran antes de la fecha y dejaran fijada la señalización de SegWit con un umbral más bajo. Cuando el apoyo subió de repente, cada parte interpretó el resultado a su manera. Los defensores del UASF vieron la prueba de que la presión de los usuarios había alterado los incentivos. Los mineros señalaron su propia coordinación y los firmantes del New York Agreement, su compromiso. La historia no ofrece un experimento de control en el que podamos retirar a uno de esos grupos. Lo seguro es que la amenaza de conflicto obligó a todos a actuar antes.

04

Bitcoin Cash se marchó, SegWit2x dio un paso atrás

El 1 de agosto se separó Bitcoin Cash, con bloques mayores y reglas propias. No fue una reescritura de los nodos originales, sino una nueva cadena incompatible que compartía el historial hasta el punto de la división. Desde entonces, el mercado y los usuarios podían valorar y operar ambos activos por separado.

La segunda parte del New York Agreement debía activar en noviembre un Hard Fork a dos megabytes. Sus organizadores lo suspendieron el 8 de noviembre porque reconocieron que no habían logrado el consenso suficiente para una actualización limpia. La elevada señalización del hashpower no se convirtió en la certeza de que la economía aceptaría los nuevos bloques como Bitcoin.

En el instante de la separación, ambas cadenas compartían el historial anterior y la misma imagen de monedas no gastadas. Quien controlaba las claves antes de la división podía, bajo determinadas condiciones, disponer después de los activos correspondientes en ambos lados. Pero a partir de ese punto cada cadena aceptó futuros bloques distintos y construyó su propio efecto de red. La división no obligó a los nodos antiguos a cambiar su definición de una transacción válida; brindó a quienes defendían reglas distintas la posibilidad de asumir tanto los costes como el resultado de su elección.

Bitcoin Cash dio a los defensores de bloques mayores algo que un debate interminable no podía ofrecer: una cadena funcional con sus reglas. Los exchanges tuvieron que asignarle un ticker, las wallets resolver la protección contra la repetición de transacciones y los tenedores decidir si vendían, conservaban o ignoraban las nuevas monedas. Parte del conflicto pasó de las listas de correo al mercado. El precio, el hashpower y el uso de ambas cadenas empezaron a expresar una decisión continua, no una votación única con un solo vencedor.

SegWit2x debía ser diferente. Sus defensores querían que la cadena de dos megabytes heredara la marca BTC y se convirtiera en la continuación, no en una rama secundaria. Al acercarse noviembre, faltaba un apoyo amplio en el software cliente y un plan claro para manejar dos cadenas de forma segura. El 8 de noviembre, Mike Belshe, Wences Casares, Jihan Wu, Jeff Garzik, Peter Smith y Erik Voorhees anunciaron el aplazamiento. Admitieron que, sin un acuerdo mayor, seguir adelante dividiría a la comunidad que pretendían unir.

05

El poder está repartido, no ausente

A menudo se presenta la guerra como una victoria limpia de los usuarios. La conclusión más precisa es más compleja. Los desarrolladores controlan la atención y la calidad del código; los mineros, el orden de los bloques; las empresas, la liquidez y la marca; los usuarios, la elección del software y las contrapartes. Ningún grupo posee por sí solo todas las palancas, aunque algunos tienen muchas más que otros.

Bitcoin no votó entonces mediante una sola cifra. Se coordinó a través del código, los argumentos públicos, las decisiones comerciales, los plazos y la disposición a arriesgar una división. El resultado no fue silencioso ni barato. Ahí reside precisamente su importancia: las reglas se mantuvieron iguales no porque no existiera un conflicto, sino porque para cambiarlas no bastó con convencer únicamente a la sala más visible.

El consenso de Nakamoto decide el orden de las transacciones dentro de unas reglas aceptadas en común; no es un parlamento que reescriba las propias reglas mediante una votación del hashpower. Un minero puede producir un bloque con una enorme cantidad de trabajo y el nodo lo descartará si infringe su software. La elección de las reglas ocurre, por tanto, fuera de la propia blockchain: en el código, las versiones de los clientes, los precios, los contratos y las personas con las que otros están dispuestos a comerciar. La Blocksize War no descubrió una constitución sencilla de Bitcoin. Mostró un sistema en el que el cambio es posible, pero nadie tiene garantizado el derecho a llamarlo consenso.

Personas de todos los bandos pagaron un precio personal. Mike Hearn abandonó públicamente el proyecto en enero de 2016 y declaró que el experimento había fracasado. Gavin Andresen perdió la posición que había ocupado en Bitcoin Core. Los desarrolladores soportaron campañas, las empresas boicots y los individuos ataques que convertían una discrepancia técnica en una prueba de carácter. El relato del vencedor suele reducir a esas personas a traidores y héroes. Es más exacto admitir que muchas protegían visiones diferentes del mismo objetivo y que, en ocasiones, utilizaron una presión que ellas mismas consideraban una defensa necesaria.

Después de la guerra, la palabra consenso quedó rodeada de mayor cautela. Ya no significaba simplemente contar señales de mineros, enumerar empresas o recabar la aprobación de los principales desarrolladores. Describía un estado en el que suficientes actores consideran que el cambio es más seguro que la división y los demás carecen de la voluntad o la fuerza para sostener reglas competidoras. No es un sistema de votación elegante. Es una negociación continua en la que la posibilidad de marcharse da peso incluso a quienes no tienen cargo alguno y, al mismo tiempo, nunca garantiza que su cadena conserve valor, usuarios o seguridad.

Atlas

Personajes y conceptos en el Atlas

2017Guerra del tamaño de bloqueBIP141SegWitNODEFull NodeFORK↓Soft ForkFORK↑Hard ForkRULESReglas de consensoCOREBitcoin CoreGAVINGavin AndresenHEARNMike HearnSIPAPieter WuilleGMAXGregory MaxwellBACKAdam BackGARZIKJeff Garzik
  1. 01
    BIP 101 — Increase maximum block size

    Una de las principales propuestas formales para el crecimiento automático del límite.

  2. 02
    BIP 141 — Segregated Witness

    Especificación técnica de SegWit y del block weight.

  3. 03
    Digital Currency Group — Bitcoin Scaling Agreement at Consensus 2017

    Texto original del New York Agreement y lista de firmantes.

  4. 04
    SegWit2x Working Group — archived repository

    Documentación contemporánea del objetivo y la implementación de SegWit2x.

  5. 05
    BIP 148 — Mandatory activation of SegWit deployment

    Especificación y calendario del UASF.

  6. 06
    BIP 91 — Reduced threshold SegWit MASF

    Mecanismo de coordinación de los mineros que dejó fijada la señalización antes del 1 de agosto.

  7. 07
    Bitcoin ABC — UAHF technical specification

    Especificación contemporánea de la separación de Bitcoin Cash.

  8. 08
    SegWit2x mailing list — Onwards

    Anuncio del 8 de noviembre de 2017 de que el Hard Fork no contaba con consenso suficiente.

Siguiente historia · 10FTX: el saldo que no estaba donde debía