El mecanismo de consenso de Bitcoin se refiere al hecho de que es muy difícil, al menos teóricamente, que un minero (o grupo de minería) intente usar su propio poder aritmético para practicar engaños o 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 poder computacional en el sistema, pueden lograr el objetivo de socavar la seguridad y confiabilidad 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 algunos 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, el poder aritmético requerido para implementar una bifurcación de la cadena de bloques muy larga es muy, muy grande, y a medida que 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 una 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 de bloques futuros 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% del poder computacional 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 de cadena de bloques / doble pago ocurre cuando un atacante desconoce 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 poder aritmético, un atacante puede manipular seis o más bloques recientes a la vez, haciendo que desaparezcan las transacciones contenidas en esos bloques, que de otro modo serían inalterables. Cabe señalar que los dobles pagos solo se pueden realizar en transacciones que ocurren 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 del mundo 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 para pedir una firma para las compras con tarjeta de crédito de menos de $25, porque es más caro pedir una firma de 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 al transmitir una transacción falsificada a través de la red que es idéntica a la UTXO de la transacción real. El doble pago se puede realizar de dos maneras: antes de que se confirme la transacción 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 mult Firma 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á que un atacante la manipule a través de un ataque del 51%. Para transacciones grandes, el uso de pagos con 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 tenga la mayoría del poder computacional 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 del poder computacional en el sistema, puede interferir continuamente con todas las transacciones generadas por una dirección de billetera específica 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% del poder computacional del atacante para lanzarlo, como su nombre indica; de hecho, aún puede intentar lanzar dicho ataque incluso si tiene menos del 51% del poder computacional del sistema. La razón por la que se llama ataque del 51% es simplemente porque cuando el poder computacional 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 todo el poder aritmético de los mineros se divide en dos grupos, uno con poder aritmético honesto y otro con poder aritmético de atacante, y ambos grupos compiten para ser los primeros en calcular nuevos bloques en la cadena de bloques, excepto que el poder aritmético del atacante calcula bloques cuidadosamente construidos que contienen o excluyen ciertas transacciones. Por lo tanto, cuanto menos poder computacional tenga el atacante, menos probable será que gane el duelo. Por otro lado, cuanto más poder computacional 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 futuros bloques bajo su control. Algunos grupos de investigación de seguridad han utilizado modelos estadísticos para concluir que el 30% del poder computacional de la red sería suficiente para lanzar un ataque del 51%.
El dramático aumento en el poder computacional en toda la red ha hecho imposible que el sistema Bitcoin sea atacado por un solo minero, ya que ya no es posible que un solo minero ocupe ni siquiera el 1% del poder computacional 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 incluyen en los bloques recién generados. De esta manera, el operador del grupo tiene el poder de excluir transacciones específicas o realizar 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 obtener ganancias. Un escenario posible es que el atacante esté lanzando un ataque simplemente para interrumpir todo el sistema de Bitcoin, en lugar de para obtener ganancias. Dicho 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 dicho ataque provenga de una organización financiada por el gobierno. De manera similar, dichos atacantes podrían comprar máquinas de minería, operar grupos de minería y realizar ataques de consenso como denegación de servicio al abusar del poder antes mencionado del operador del grupo. Sin embargo, a medida que el poder computacional 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 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 provocar 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.
