Mastering Bitcoin

Mastering Bitcoin


10. Minería y Consenso » Ataques de Consenso

Página 79 de 98

Ataques de Consenso

El mecanismo de consenso de bitcoin es, al menos en teoría, vulnerable a los ataques de los mineros (o pools) que tratan de utilizar su potencia de hash para fines deshonestos o destructivos. Como vimos, el mecanismo de consenso depende de que una mayoría de los mineros actúen honestamente por su propio interés. Sin embargo, si un minero o un grupo de mineros pueden alcanzar una participación significativa en la potencia de minería, pueden atacar el mecanismo de consenso perturbando la seguridad y disponibilidad de la red bitcoin.

Es importante tener en cuenta que los ataques de consenso solo pueden afectar el consenso futuro, o a lo sumo, el pasado más reciente (decenas de bloques). El libro contable de bitcoin se vuelve más y más inmutable a medida que pasa el tiempo. Aunque en teoría, una bifurcación puede lograrse a cualquier profundidad, en la práctica, la potencia de cálculo necesaria para forzar una bifurcación muy profunda es inmensa, lo que hace a los bloques antiguos prácticamente inmutables. Los ataques de consenso tampoco afectan a la seguridad de la clave privada ni al algoritmo de firma (ECDSA). Un ataque de consenso no puede robar bitcoins, gastar bitcoins sin firmas, redirigir bitcoins, ni cambiar transacciones pasadas o registros de propiedad. Los ataques de consenso solo pueden afectar a los bloques más recientes y causar interrupciones de denegación de servicio en la creación de bloques futuros.

Un escenario de ataque contra el mecanismo de consenso se llama el «ataque del 51%». En este escenario un grupo de mineros, con el control de la mayoría (51%) de la potencia de hashing total de la red, conspira para atacar bitcoin. Con la capacidad de extraer la mayoría de los bloques, los mineros atacantes pueden causar «bifurcaciones» deliberadas en la cadena de bloques y hacer doble de gasto de transacciones o ejecutar ataques de denegación de servicio contra transacciones o direcciones específicas. En un ataque de bifurcación/doble gasto, el atacante invalida bloques que habían sido confirmados previamente, bifurcando por debajo de ellos y reconvergiendo en una cadena sustituta.

Con la potencia suficiente, un atacante puede invalidar seis o más bloques de una sola vez, haciendo que las transacciones que se consideraban inmutables (seis confirmaciones) sean invalidadas. Tenga en cuenta que un doble gasto solo puede hacerse sobre las transacciones propias del atacante, para las que el atacante pueda producir una firma válida. Hacer doble gasto de las transacciones propias resulta rentable si invalidando una transacción el atacante puede obtener un pago irreversible de una casa de cambio o un producto sin tener que pagar por ello.

Examinemos un ejemplo práctico de un ataque del 51%. En el primer capítulo, nos fijamos en una transacción entre Alice y Bob para una taza de café. Bob, el dueño del café, está dispuesto a aceptar el pago de tazas de café sin esperar la confirmación (minado en un bloque), porque el riesgo de un doble gasto en una taza de café es baja en comparación con la comodidad de dar un servicio rápido al cliente. Esto es similar a la práctica de las tiendas de café que aceptan pagos con tarjeta de crédito sin una firma para montos inferiores a $25, porque el riesgo de una devolución de cargo de tarjeta de crédito es baja, mientras que el costo de retrasar la operación para obtener una firma es comparativamente mayor. Por el contrario, la venta de un artículo más caro con bitcoin corre el riesgo de un ataque de doble gasto, donde el comprador emite una transacción paralela que gasta las mismas entradas (UTXO) y cancela el pago al comerciante. Un ataque de doble gasto puede suceder de dos maneras: antes de que se confirme una transacción, o si el atacante se aprovecha de una bifurcación de la cadena de bloques para deshacer varios bloques. Un ataque del 51% permite a los atacantes hacer doble gasto de sus propias transacciones en la nueva cadena, deshaciendo así la transacción correspondiente en la cadena antigua.

En nuestro ejemplo, el atacante malicioso Mallory va a la galería de Carol y compra una hermosa pintura tríptica que representa a Satoshi Nakamoto como Prometeo. Carol vende pinturas «El Gran Fuego» por $250.000 en bitcoin, a Mallory. En lugar de esperar seis o más confirmaciones sobre la transacción, Carol envuelve y entrega las pinturas a Mallory después de solo una confirmación.

Mallory trabaja con un cómplice, Paul, que opera un gran pool de minería, y el cómplice lanza un ataque del 51% tan pronto como la transacción de Mallory se ha incluido en un bloque. Paul dirige el pool de minería para que vuelva a minar a la misma altura de bloque que el bloque que contiene la transacción de Mallory, sustituyendo el pago de Mallory a Carol con una transacción que haga doble gasto de la misma entrada que el pago de Mallory. La operación de doble gasto consume la misma UTXO y devuelve el pago a la cartera de Mallory, en lugar de pagar a Carol, esencialmente permitiendo a Mallory que conserve el bitcoin. Paul dirige entonces el pool de minería para que extraiga un bloque adicional, a fin de que la cadena que contiene la transacción de doble gasto sea más larga que la cadena original (causando una bifurcación por debajo del bloque que contiene la transacción de Mallory). Cuando la bifurcación de la cadena de bloques se resuelve en favor de la nueva cadena (más larga), la transacción de doble gasto reemplaza al pago original a Carol. Carol está perdiendo las tres pinturas y tampoco tiene ningún pago de bitcoin. A lo largo de toda esta actividad, los participantes del pool de minería de Paul podrían permanecer totalmente ignorantes de la tentativa de doble gasto, ya que minan con equipos de minería automatizados y no pueden supervisar cada transacción o bloque.

Para protegerse contra este tipo de ataque, un comerciante que venda artículos de gran valor deberá esperar al menos seis confirmaciones antes de entregar el producto al comprador. Por otra parte, el comerciante debería utilizar un depósito de garantía multifirma (en inglés, «escrow»), esperando de nuevo a que se generen varias confirmaciones después de proveer de fondos al depósito de garantía.

Cuantas más confirmaciones se generen, más difícil será invalidar una transacción con un ataque del 51%. El pago con Bitcoin también es conveniente y eficiente para artículos de alto valor, incluso en el caso de que el comprador tenga que esperar 24 horas para la entrega, lo que correspondería a aproximadamente 144 confirmaciones.

Además de un ataque de doble gasto, el otro escenario de un ataque de consenso es negar el servicio a participantes bitcoin específicos (direcciones específicas de bitcoin). Un atacante con una mayoría de la potencia de minería puede simplemente ignorar transacciones específicas. Si se incluyen en un bloque extraído por otro minero, el atacante puede bifurcar deliberadamente y volver a minar ese bloque, excluyendo de nuevo las transacciones específicas. Este tipo de ataque puede resultar en una denegación de servicio sostenida contra una dirección específica o un conjunto de direcciones durante el tiempo que el atacante controle la mayoría de la potencia de minería.

A pesar de su nombre, la posibilidad de un ataque del 51% en realidad no requiere el 51% de la potencia de hash. De hecho, este tipo de ataque se puede intentar con un porcentaje menor de la potencia de hash. El umbral del 51% es simplemente el nivel en el que el ataque es casi seguro que tenga éxito. Un ataque de consenso es esencialmente una lucha por el siguiente bloque y el grupo «más fuerte» es el que tiene más probabilidades de ganar. Con menor poder de hash, la probabilidad de éxito se reduce, debido a que otros mineros controlan la generación de algunos bloques con su potencia de minería «honesta». Una forma de verlo es que cuanta más potencia de hash tenga un atacante, mayor será la longitud de la bifurcación que pueda crear deliberadamente, mayor será el número de bloques del pasado reciente que pueda invalidar, o mayor será el número de bloques en el futuro que pueda controlar. Existen grupos de investigación de seguridad que han utilizado modelos estadísticos para afirmar que es posible llevar a cabo diversos tipos de ataques de consenso con tan solo el 30% de la potencia de hash.

El aumento masivo de la potencia de hash total ha hecho que probablemente bitcoin sea inmune a los ataques de un solo minero. No hay manera posible de que un minero en solitario pueda controlar más de un pequeño porcentaje de la potencia de minería total. Sin embargo, la centralización del control causado por los pools de minería ha introducido el riesgo de ataques con afán de lucro por parte de un operador de pool de minería. El operador del pool en un pool gestionado controla la construcción de bloques candidatos y también controla qué transacciones se incluyen. Esto le da al operador del pool la facultad de excluir transacciones o de introducir transacciones de doble gasto. Si ese abuso de poder se hace de una manera limitada y sutil, un operador de pool posiblemente podría pasar desapercibido y beneficiarse de un ataque de consenso.

Sin embargo, no todos los atacantes estarán motivados por el lucro. Un escenario de posible ataque es donde un atacante tiene la intención de interrumpir la red bitcoin sin la posibilidad de beneficiarse de dichas perturbaciones. Un ataque malicioso con la intención de paralizar bitcoin requeriría enormes inversiones y planificación encubierta, pero posiblemente podría ser lanzado por un atacante bien financiado, probablemente patrocinado por el estado. Alternativamente, un atacante bien financiado podría atacar el consenso de bitcoin acumulando simultáneamente hardware de minería, comprometiendo los operadores de pool y atacando a otros pools con ataques de denegación de servicio. Todos estos escenarios son teóricamente posibles, pero cada vez más impracticables a medida que la potencia de hash total de la red bitcoin sigue creciendo exponencialmente.

Sin lugar a dudas, un ataque de consenso grave erosionaría la confianza en bitcoin en el corto plazo, causando posiblemente una disminución significativa del precio. Sin embargo, la red y el software bitcoin están en constante evolución, por lo que los ataques de consenso se enfrentarían con contramedidas inmediatas por la comunidad bitcoin, haciendo a bitcoin más resistente, más sigiloso, y más robusto que nunca.

Ir a la siguiente página

Report Page