Independientemente del PoW de prueba de carga de trabajo, PoS de prueba de equidad o DPoS de prueba de equidad delegada, siempre que exista un problema de consenso, en teoría, el 51% de los ataques no se pueden evitar. El atacante controla la red principal a través del 51% de bloques reversibles. , resultando en Flor doble.

conocimiento de fondo

Como sistema descentralizado de almacenamiento de datos públicos distribuidos, blockchain no tiene una organización de gestión central para la gestión, sino que se mantiene conjuntamente mediante nodos distribuidos que utilizan protocolos criptográficos, y cada nodo mantiene todo el sistema. el protocolo de consenso subyacente. Las cadenas de bloques tienen diferentes usos prácticos en diferentes escenarios de la vida real, como cadenas públicas, cadenas privadas y cadenas de alianzas. Diferentes cadenas utilizan diferentes algoritmos de consenso, como el consenso PoW utilizado por Bitcoin y el consenso PoW utilizado por Ethereum, el DPoS. El consenso utilizado por EOS y la seguridad involucrada en diferentes algoritmos de consenso son diferentes.

Este artículo detallará los riesgos de ataque presentes en los protocolos de consenso PoW utilizados por Bitcoin y Ethereum.

Mecanismo de consenso de PoW

Primero, echemos un vistazo a qué es el protocolo de consenso de PoW.

Desde la perspectiva de un sistema de contabilidad descentralizado, cada nodo que se une al sistema debe mantener un libro de contabilidad completo, pero cada nodo no puede llevar cuentas al mismo tiempo porque los nodos se encuentran en entornos diferentes y reciben información diferente. Por lo tanto, se necesita llegar a un consenso. qué nodo tiene derecho a llevar cuentas. Las cadenas de bloques de Bitcoin y Ethereum resuelven el problema de coherencia del sistema de contabilidad descentralizado mediante una contabilidad competitiva, es decir, un mecanismo que utiliza la potencia informática de cada nodo, es decir, el "poder informático" para competir por los derechos contables. es “minería”.​

Sin embargo, en un sistema descentralizado, ¿quién tiene derecho a determinar el resultado de la competencia? Los sistemas blockchain de Bitcoin y Ethereum se logran mediante un mecanismo de consenso llamado Prueba de trabajo (PoW).

PoW (Prueba de trabajo), es decir, "Prueba de trabajo". En pocas palabras, PoW es un certificado que confirma que el trabajador ha realizado una determinada cantidad de trabajo. El extremo de trabajo necesita realizar una cierta cantidad de trabajo difícil para obtener un resultado, y el verificador utiliza los resultados para comprobar si el extremo de trabajo ha realizado el trabajo correspondiente.

En la minería mediante consenso de prueba de trabajo, se deben seguir tres reglas:

  • Sólo una persona puede registrar cuentas exitosamente dentro de un período de tiempo.

  • Compite para obtener el derecho exclusivo de contabilidad resolviendo acertijos criptográficos (es decir, prueba de trabajo)

  • Otros nodos verifican y copian los resultados contables.

Por ejemplo, dada la cadena "blockchain", el requisito de carga de trabajo que damos es que podemos concatenar una cadena de valor entero llamada nonce después de esta cadena y realizar una operación hash SHA256 en la cadena concatenada si el resultado hash obtenido (expresado en hexadecimal). formulario) comienza con varios ceros, luego se pasa la verificación. Para lograr este objetivo de prueba de trabajo, debemos incrementar continuamente el valor nonce y realizar una operación hash SHA256 en la nueva cadena obtenida.

Hash (el valor del Hash anterior, el conjunto de información del registro de transacciones) = 29329385BNDH749 Hash (el valor del Hash anterior, el conjunto de información del registro de transacciones, el número aleatorio nonce) = 000029329385BNDH749

Por ejemplo, el hash de la altura del bloque 512884 en Bitcoin es:

000000000000000000188d44fd53064469b17c3590a0c4df8e90626d11e25a69

La prueba de trabajo requerida para generar este bloque a través de la contabilidad son 16**18 cálculos hash, que es una cantidad muy grande de cálculo.

51% ataque

Después de presentar brevemente los principios simples de empaquetar bloques mediante contabilidad y PoW, volvamos a nuestra pregunta: ¿qué es un ataque del 51 % y qué es un ataque de doble gasto?

Un ataque de doble gasto simplemente se refiere a un ataque en el que se utiliza un token a través de múltiples métodos de pago, lo que significa que la misma moneda se gasta varias veces. Hay muchas formas de lanzar un ataque de doble gasto, incluidas las siguientes:

  • 51% ataque

  • Ataque racial

  • Ataque del vector 76

  • ataque de historia alternativa

Es decir, si el atacante controla más del 50% de la potencia informática de toda la red, puede implementar un doble gasto mediante un ataque del 51%.

Aquí solo analizamos el proceso de ataque del 51%.

Ataque del 51%, también conocido como ataque mayoritario. Este ataque logra el doble de gasto al controlar la potencia informática de la red. Si un atacante controla más del 50% de la potencia informática de la red, durante el período en el que controla la potencia informática, puede revertir el bloqueo, realizar transacciones inversas y lograr el doble gasto.

En el protocolo de consenso PoW, el sistema blockchain permite que existan múltiples cadenas bifurcadas al mismo tiempo, y cada cadena puede declarar al mundo exterior que es correcta. Sin embargo, existe un principio efectivo más largo en el concepto de diseño de blockchain: "No importa ¿En qué punto la cadena más larga se considera la cadena principal con mayor trabajo?"

Simulemos brevemente el proceso de ataque del 51%:

Si existe un atacante de este tipo, transmite deliberadamente la primera transacción a la mitad de la red y transmite la segunda transacción a la otra mitad de la red, y luego hay exactamente dos mineros en ambos lados para obtener derechos de contabilidad casi al mismo tiempo. tiempo, y sus respectivos derechos contables son El bloque se transmite a todos. Puede elegir cualquier libro mayor en este momento, el libro mayor unificado original se ha bifurcado.

A continuación, si el próximo minero elige continuar con la contabilidad basándose en A, la rama A será más larga que la rama B. De acuerdo con las reglas de la cadena de bloques, se reconocerá la rama más larga, la rama corta se abandonará y el libro mayor seguirá volverá a ser uno y solo una transacción es válida.

En este momento, se reconoce la sucursal A y se confirma la transacción correspondiente. Si el atacante obtiene el producto, inmediatamente se transforma en minero y gana dos derechos contables consecutivos, y luego agrega dos bloques a la sucursal B.

Entonces la sucursal B se convierte en una sucursal reconocida. En este momento, la sucursal A se abandona. La moneda de pago del atacante en la sucursal A ya no es válida, pero el atacante ya obtuvo los bienes A. El ataque de gasto se ha completado con éxito. El problema es que, cuando la rama B se queda atrás, es muy difícil obligarla a superar a la rama A en la realidad y, sin embargo, la probabilidad de éxito es muy baja si el atacante controla más del 50% de la potencia informática de la misma. toda la red, incluso si se queda atrás, mucho, y es sólo cuestión de tiempo antes de que se ponga al día. Este es el "ataque del 51%" mencionado anteriormente.

Análisis de casos de ataque del 51% a Bitcoin Gold

En el mundo real de blockchain, ha habido muchos gastos dobles causados ​​por ataques del 51%.

Por ejemplo, el problema del doble gasto en Bitcoin Gold (moneda BTG) es un ataque del 51%. El proceso de ataque es el siguiente:

  1. El atacante controla más del 51% de la potencia informática en la red Bitcoin Gold. Durante el período de control de la potencia informática, envió una cierta cantidad de BTG a su billetera en el intercambio. Llamamos a esta sucursal sucursal A.

  2. Al mismo tiempo, envió estos BTG a otra billetera que controlaba. A esta sucursal la llamamos sucursal B.

  3. Una vez confirmada la transacción en la sucursal A, el atacante vende inmediatamente BTG y obtiene efectivo. En este momento, la rama A se convierte en la cadena principal.

  4. Luego, el atacante mina en la rama B. Dado que controla más del 51% de la potencia informática, el atacante tiene una alta probabilidad de obtener derechos de contabilidad, por lo que pronto la longitud de la rama B excede la cadena principal (es decir, la longitud de la rama B). A), entonces la rama B se convertirá en la cadena principal y las transacciones en la rama A se revertirán, restaurando los datos al último estado correcto.

  5. En otras palabras, la sucursal A vuelve al estado anterior al que el atacante iniciaba la primera transacción, y los BTG que el atacante había convertido previamente en efectivo vuelven a estar en sus manos.

  1. Finalmente, el atacante envía estos BTG a otra billetera suya. De esta forma, el atacante controlaba más del 51% de la potencia informática para lograr el "doble gasto" del mismo token.

Según el informe de datos de blockchain de este ataque, el atacante revirtió con éxito 22 bloques. La dirección de Bitcoin Gold involucrada en este ataque recibió más de 388.200 $BTG. Suponiendo que todas estas transacciones estén relacionadas con el doble gasto, el atacante hasta $18,6 millones. Es posible que se hayan robado fondos por valor del intercambio.

Además del problema de doble gasto que ocurrió en Bitcoin Gold, hay muchos casos de ataques de doble gasto causados ​​por ataques del 51%:

  • La moneda digital anónima Verge extrajo maliciosamente más de 35 millones de #xvg en tan solo unas horas, por un valor aproximado de 1,75 millones de dólares.

  • La criptomoneda japonesa monacoin aparentemente fue afectada por un ataque de deducción de bloques después de que un minero obtuviera hasta el 57% del poder de hash de la red.

  • Noticias oficiales de Litecoin Cash (LCC), LCC ha sufrido un ataque del 51%.

  • La moneda digital #zen también ha sufrido un ataque del 51%.

  • Recientemente, Ethereum Classic #etc sufrió un ataque del 51%.