El mecanismo de consenso de Bitcoin se refiere al hecho de que es muy difícil, al menos teóricamente, que un minero (o un grupo de mineros) intente utilizar su propia potencia aritmética para practicar el engaño o el sabotaje. El mecanismo de consenso de Bitcoin se basa en la premisa de que la gran mayoría de los mineros, en su propio mejor interés, mantendrán todo el sistema de Bitcoin minando honestamente. Sin embargo, cuando surge un minero o un grupo de mineros con una gran cantidad de potencia de cálculo en el sistema, pueden lograr el objetivo de socavar la seguridad y la fiabilidad de la red de Bitcoin atacando el mecanismo de consenso de Bitcoin.
Cabe señalar que los ataques de consenso solo pueden afectar el consenso futuro de toda la cadena de bloques, o, como máximo, el consenso de unos pocos bloques en el pasado reciente (hasta 10 bloques atrás). Y a medida que pasa el tiempo, cada vez es menos probable que toda la cadena de bloques de Bitcoin sea manipulada. En teoría, una bifurcación de la cadena de bloques puede volverse muy larga, pero en la práctica, la potencia aritmética requerida para implementar una bifurcación de la cadena de bloques muy larga es muy, muy grande, y a medida que toda la cadena de bloques de Bitcoin crece gradualmente, los bloques pasados básicamente se pueden considerar inalterables por la bifurcación. Además, los ataques de consenso no afectan la clave privada del usuario ni el algoritmo de cifrado (ECDSA). Tampoco un ataque de consenso puede robar bitcoins de otras billeteras, pagar bitcoins sin firma, redistribuir bitcoins, cambiar transacciones pasadas o cambiar registros de tenencia de bitcoins. El único impacto que puede tener un ataque de consenso es afectar los bloques más recientes (hasta 10) y afectar la generación futura de bloques a través de la denegación de servicio.
Un escenario típico de ataque de consenso es el "ataque del 51%". Imagine un escenario en el que un grupo de mineros controla el 51% de la potencia de cálculo de toda la red de Bitcoin, y unen fuerzas con la intención de atacar todo el sistema de Bitcoin. Dado que este grupo de mineros puede generar la mayoría de los bloques, pueden crear intencionalmente una bifurcación de la cadena de bloques para "doble pago" o bloquear una transacción específica o atacar una dirección de billetera específica a través de una denegación de servicio. Un ataque de bifurcación/doble pago de la cadena de bloques es cuando un atacante reniega de una transacción reciente y reconstruye un nuevo bloque antes de esa transacción, creando así una nueva bifurcación y permitiendo el doble pago. Con la garantía de suficiente potencia aritmética, un atacante puede manipular seis o más bloques recientes a la vez, haciendo así que las transacciones contenidas en estos bloques, que de otro modo serían inalterables, desaparezcan. Cabe señalar que los dobles pagos solo se pueden realizar en transacciones que ocurran en billeteras propiedad del atacante, ya que solo el propietario de la billetera puede generar una firma legítima para las transacciones de doble pago. Un atacante solo puede realizar un ataque de doble pago en sus propias transacciones, pero dicho ataque es rentable cuando la transacción corresponde a una compra irreversible.
Veamos un ejemplo real de un "ataque del 51%". En el Capítulo 1, hablamos de una transacción entre Alice y Bob por una taza de café usando Bitcoin. Bob, el propietario de la cafetería, está dispuesto a proporcionarle a Alice un café cuando su transferencia se confirme en cero, porque el riesgo de un "ataque del 51%" en una transacción tan pequeña es pequeño en comparación con la inmediatez de la compra del cliente (Alice puede obtener el café de inmediato). Es lo mismo que la mayoría de las cafeterías no se toman el tiempo y el esfuerzo de pedir una firma para las compras con tarjeta de crédito por menos de $25, porque es más caro pedir una firma con tarjeta de crédito que el riesgo de que el cliente pueda revocar el pago con tarjeta de crédito. En consecuencia, el riesgo de doble pago para transacciones grandes pagadas con Bitcoin es mucho mayor, ya que el comprador (atacante) puede cancelar la transacción real transmitiendo una transacción falsificada en toda la red que es idéntica al UTXO de la transacción real. El doble pago se puede hacer de dos maneras: ya sea antes de que la transacción se confirme o por el atacante a través de una bifurcación de la cadena de bloques. La persona que realiza el ataque del 51% puede cancelar la transacción registrada en la bifurcación antigua y luego regenerar una transacción de la misma cantidad en la nueva bifurcación, logrando así el doble pago.
Para evitar este tipo de ataque, los comerciantes que venden artículos a granel deben esperar hasta que la transacción haya recibido seis confirmaciones en toda la red antes de entregar el artículo. Alternativamente, el comerciante debe usar una cuenta de terceros, con múltiples firmas, para la transacción y también esperar hasta que la cuenta de la transacción haya recibido múltiples confirmaciones en toda la red antes de entregar el artículo. Cuantas más confirmaciones tenga una transacción, más difícil será para un atacante manipularla a través de un ataque del 51%. Para transacciones grandes, usar pagos de Bitcoin es conveniente y eficiente tanto para compradores como para vendedores, incluso si los productos se envían 24 horas después del pago. Después de 24 horas, la transacción tendrá al menos 144 confirmaciones en toda la red (reduciendo efectivamente la probabilidad de un ataque del 51%).
Además del ataque de "doble pago", otro escenario de ataque en el ataque de consenso es la denegación de servicio a una dirección de bitcoin específica. Un atacante que tiene la mayoría de la potencia de cálculo en el sistema puede ignorar fácilmente una transacción particular. Si la transacción existe en un bloque generado por otro minero, el atacante puede bifurcar intencionalmente el bloque, regenerarlo y eliminar la transacción que desea ignorar del bloque. El resultado de este ataque es que, mientras este atacante tenga la gran mayoría de la potencia de cálculo en el sistema, puede interferir continuamente con todas las transacciones generadas por una dirección de billetera particular o un grupo de direcciones con el propósito de negar el servicio a esas direcciones.
Tenga en cuenta que el ataque del 51% no requiere al menos el 51% de la potencia de cálculo del atacante para lanzarlo, como su nombre indica; de hecho, aún puede intentar lanzar dicho ataque incluso si tiene menos del 51% de la potencia de cálculo del sistema. La razón por la cual se llama ataque del 51% es simplemente porque cuando la potencia de cálculo del atacante alcanza el umbral del 51%, su intento de ataque casi seguramente tendrá éxito. Esencialmente, un ataque de consenso es como un sistema en el que toda la aritmética de los mineros se divide en dos grupos, uno con aritmética honesta y otro con aritmética de atacante, y ambos grupos compiten para ser los primeros en calcular nuevos bloques en la cadena de bloques, excepto que la aritmética de atacante calcula bloques cuidadosamente construidos que contienen o excluyen ciertas transacciones. Por lo tanto, cuanta menos potencia de cálculo tenga el atacante, menos probable será que gane el duelo. Por otro lado, cuanta más potencia de cálculo tenga un atacante, más larga será la cadena de bloques bifurcados que pueda crear intencionalmente, y más bloques recientes que puedan ser manipulados o bloques futuros bajo su control. Algunos grupos de investigación de seguridad han utilizado modelos estadísticos para concluir que el 30% de la potencia de cálculo de la red sería suficiente para lanzar un ataque del 51%.
El drástico aumento de la potencia de cálculo en toda la red ha hecho imposible que el sistema de Bitcoin sea atacado por un solo minero, ya que ya no es posible que un solo minero ocupe siquiera el 1% de la potencia de cálculo de la red. Pero los grupos de minería controlados centralmente introducen el riesgo de que un operador de grupo ataque con fines de lucro. El operador del grupo controla la generación de bloques candidatos y también controla qué transacciones se colocan en los bloques recién generados. De esta manera, el operador del grupo tiene el poder de excluir transacciones específicas o dobles pagos. Si este poder es abusado por el operador del grupo de manera sutil y medida, entonces el operador del grupo puede lanzar ataques de consenso y beneficiarse de ellos sin ser detectado.
Sin embargo, no todos los atacantes buscan el lucro. Un escenario posible es que el atacante esté lanzando un ataque simplemente para interrumpir todo el sistema de Bitcoin, en lugar de para obtener beneficios. Tal atacante con la intención de interrumpir el sistema de Bitcoin requeriría una gran inversión y una planificación cuidadosa, por lo que es concebible que tal ataque provenga de una organización financiada por el gobierno. Del mismo modo, tales atacantes podrían comprar máquinas de minería, operar grupos de minería y realizar ataques de consenso como la denegación de servicio al abusar del poder antes mencionado del operador del grupo. Sin embargo, a medida que la potencia de cálculo de la red de Bitcoin crece geométrica y rápidamente, estos escenarios de ataque teóricamente factibles se han vuelto cada vez más difíciles de implementar en la práctica. Las actualizaciones recientes del sistema de Bitcoin, como el protocolo de minería P2Pool, que tiene como objetivo descentralizar aún más el control de la minería, también están haciendo que estos ataques teóricamente factibles sean cada vez más difíciles.
No hay duda de que un ataque de consenso grave sin duda reducirá la confianza en el sistema de Bitcoin, lo que a su vez podría conducir a una caída en el precio de Bitcoin. Sin embargo, el sistema de Bitcoin y el software relacionado también están en constante mejora, por lo que la comunidad de Bitcoin también responderá rápidamente a cualquier ataque de consenso para hacer que todo el sistema de Bitcoin sea más robusto y confiable que nunca.
