Sistemas de cadenas de bloques basados ​​en POW Ataque mayoritario

TL; DR: con solo el 30% de la potencia de la red, un ataque mayoritario es posible y rentable. ¿Me estoy perdiendo algo?


En términos generales, las cadenas de bloques basadas en las autenticaciones de prueba de trabajo utilizan la cantidad de trabajo como el peso del voto.

Hablaré específicamente sobre bitcoin para simplificar la discusión (aunque odio leer a las personas que hablan sobre criptomonedas aquí).

Una transacción se considera confirmada generalmente después de que se hayan minado 6 bloques por encima de ella. En su mayoría, incluso 2 bloques se consideran suficientes, pero examinemos la decisión segura de 6 bloques. Ahora suponga que tengo el 30% de la potencia de la red.

La red y yo tenemos el mismo prefijo de blockchain. En este punto, estoy comenzando a trabajar y agregarle mis propios bloques, ignorando el resto de la red. Las posibilidades de que logré construir una cadena de bloques que sea al menos tan larga como la cadena más larga de la red, para cuando se "confirme" la transacción, son aproximadamente del 15% (referencia a continuación).

Eso significa que puedo revertir mis transacciones confirmadas el 15% de las veces. Ahora todo lo que necesito es ganar más dinero en un bloque revertido de lo que estoy pagando por la potencia informática total. Esto no es imposible. Si un bloque "confirmado" se llena incluso a la mitad con mis transacciones, la cantidad total de dinero puede ser fácilmente de 2 millones de dólares (referencia a continuación). Revertir a una tasa de éxito del 15% significa al menos un bloque cada dos horas (un bloque cada diez minutos).

Pero 2 horas de trabajo solo me costaron unos 140.000 usd.

O más importante: jugar limpio no parece necesariamente más rentable.

Seguir las reglas durante dos horas equivale hoy a unos ingresos de 1,2 millones de dólares (si posee el 30 % de la potencia de la red).

Parece rentable atacar el sistema de vez en cuando, incluso con el 30% de la potencia de la red.

(Obviamente, prefiero revertir muchas transacciones "pequeñas" que grandes, para que nadie sospeche y espere más confirmaciones).

¿Qué me estoy perdiendo?

Algunos puntos: - Prefiero no abordar problemas como "un atacante se puede encontrar fácilmente". Esto puede o no ser cierto. Pero no es relevante para la pregunta: ¿Es posible y rentable atacar la red con un 30 % de potencia de red? - Si está afirmando que no me equivoco y esto es cierto (lo que dudo), especifique su nivel de familiaridad con el protocolo y la seguridad del sistema.

Referencias:

¿No es lo que llaman 'minería egoísta'?
@OsiasJota: No. El ataque de minería egoísta es un ataque diferente que se detalla en el documento correspondiente . El ataque de minería egoísta es un ataque a la calidad de la cadena, es decir, permite que un minero obtenga más bloques en la cadena de bloques que la estrategia honesta. No tiene nada que ver con el doble gasto.

Respuestas (1)

El ataque que estás describiendo es correcto. Este es un ataque contra la propiedad "Prefijo común" de la cadena de bloques, que establece de manera aproximada que debería ser difícil para un adversario hacer que dos partes honestas adopten dos cadenas de bloques diferentes al mismo tiempo cuando han divergido por más de kbloques, donde kes un parámetro. En su caso, ha establecido k = 6.

De hecho, el ataque que estás describiendo ha sido analizado en el artículo original de Satoshi . Si observa la última sección (11. Cálculos), Satoshi calcula la probabilidad de éxito del ataque que describió. Específicamente, examina la probabilidad de éxito del adversario para varios valores de la variable que llama q, que indica el poder minero del adversario. Para su caso, q = 0.3. Luego usa la variable zpara indicar el número de bloques que uno espera antes de aceptar una transacción como confirmada, en su caso z = 6. En el análisis de Satoshi, esto sigue una distribución de Poisson y, aproximadamente, la probabilidad de éxito del adversario es, de hecho, p ~= 0.15. De hecho, Satoshi calcula con precisión el caso z = 5y q = 0.3obtiene p = 0.1773.

En el documento original, hay ciertas zrecomendaciones sobre cuántos bloques se deben esperar para lograr un límite de probabilidad contradictorio de p < 0.1%. Porque q = 0.3, lo mínimo zque logra esto es z = 24. Entonces, si quieres poder resistir a un adversario del 30%, debes esperar 24 confirmaciones.

El análisis de Satoshi es un poco tosco, porque solo tiene en cuenta un ataque en particular. Análisis posteriores nos han permitido cuantificar estas probabilidades frente a adversarios arbitrarios , incluso desconocidos. La referencia principal aquí es el análisis Backbone . En este documento, la propiedad Prefijo común se establece con precisión y se demuestra que es válida frente a adversarios arbitrarios.

El análisis de Backbone es una mejora con respecto al de Satoshi por varias razones. Mencionaré algunos:

  • Las distribuciones de probabilidad se especifican con precisión (como distribuciones binomiales y de Bernoulli) y no aproximadamente (como distribuciones de Poisson).
  • El adversario es arbitrario y no necesariamente sigue una estrategia que le hayamos previsto o conozcamos.
  • La seguridad está probada y no simplemente se conjetura intuitivamente.
  • El sistema se modela y analiza con precisión utilizando herramientas informáticas teóricas hasta máquinas de Turing interactivas.

Para ver la declaración Prefijo común con precisión, mire la Definición 3 (Prefijo común) en la sección 3.2 (Propiedades deseadas del protocolo). El hecho de que bitcoin tenga esta propiedad se demuestra en la Sección 4.2 (Propiedad de prefijo común) bajo el Teorema 15 (Prefijo común). Allí, se proporciona una fórmula precisa para k, el número de bloques que debe esperar para saber que la cadena no se puede reorganizar hasta ese punto: k = ηκf. Las variables η, κ, fse precisan en la Sección 4 (Análisis) en la Tabla 1 (Los parámetros en nuestro análisis). Es difícil dar números concretos a estas variables, ya que dependen de la salud y el rendimiento de la red, así como de la dificultad de la minería. Para bitcoin, tenemos esoκ = 256es la longitud en bits de la función hash (minería). Estimo que la duración de la ronda es, con optimismo, de unos 10 segundos (el tiempo que tarda una gran parte, digamos el 90%, de la red en enterarse de un encabezado de bloque recién extraído) y, dado que se encuentra un bloque en promedio cada 10 minutos, tenemos que fse trata 0.0003de bitcoin. No sé cómo estimar con ηprecisión.

La cuestión es que se cumple el teorema del Prefijo Común para kcuando “la ejecución es típica” (la tipicidad se establece en el Teorema 10), que depende de los parámetros ηκ. Un requisito previo para la tipicidad es que las secuencias de rondas consecutivas examinadas tengan al menos una ηκlongitud. La suposición de que esta cantidad es grande es necesaria para aplicar los límites de Chernoff a la distribución binomial: la tipicidad se alcanza con una probabilidad abrumadora en este número. Si este número es pequeño, la probabilidad ya no es abrumadora y la seguridad del sistema puede fallar.

Dichos análisis son típicos en los sistemas criptográficos, incluidas las firmas digitales, los esquemas de cifrado, las pruebas de conocimiento cero, etc. El adversario es capaz de tener éxito con una probabilidad que está limitada por una función con una variable libre: Esa variable libre es el parámetro de seguridad ( ηκen el caso de la red troncal) y la función es insignificante en ese parámetro, lo que significa que la probabilidad cae exponencialmente a medida que la aumenta el parámetro. En el caso de Bitcoin, la probabilidad de duplicar el gasto cae exponencialmente a medida que aumenta el tamaño de la cadena de bloques en la parte superior, pero no es despreciable para k = 6, especialmente cuando el adversario es poderoso.

Para abordar su punto más concreto de que esto es económicamente factible: tiene razón en que puede transferir $ 2 millones en una sola transacción de bitcoin. Sin embargo, me parece poco probable que el destinatario de tal transacción lo considere seguro después de k = 6; k = 25debe utilizarse un valor cercano a . Es sensato aceptar valores más bajos de kpara cantidades más pequeñas y exigir valores más grandes dekpara cantidades mayores. Si bien la probabilidad exacta es difícil de calcular, la mayoría de los intercambios y otros servicios automatizados que aceptan pagos con criptomonedas aplican límites razonables y espero que los aumenten por montos de millones de dólares (por lo general, esto se hace al requerir la aprobación humana de una transacción). para transacciones de valor extremadamente alto, lo que definitivamente da mucho tiempo para una prueba de trabajo adecuada además). El costo económico de bifurcar la cadena para provocar el abandono de bloques se analiza brevemente en el artículo Sobre bitcoin como fuente pública de aleatoriedad. Dado ese análisis, uno puede equilibrar el costo de bifurcar la cadena de bloques con las ganancias potenciales que uno podría obtener al realizar un doble gasto exitoso, multiplicado por la probabilidad adversa de éxito calculada desde Backbone. Esto puede permitir que una parte determine con precisión su valor deseado kpara varios parámetros monetarios, dados límites adversarios precisos como q = 0.3.

Sé que esta respuesta fue un poco técnica y no brindó muchos números concretos, pero espero que arroje algo de luz sobre por qué el ataque que está describiendo es posible, aunque todavía lo llamaríamos "insignificante". Ya que me pidió mis credenciales, soy un estudiante de doctorado en Criptografía que se enfoca en los fundamentos de los protocolos de cadena de bloques en el departamento de Ciencias de la Computación de la Universidad de Atenas. Aggelos Kiayias, quien escribió el artículo de Backbone, es mi asesor (yo no contribuí a ese artículo). Como es mi profesor, estoy bastante familiarizado con su trabajo, especialmente porque estamos usando el modelo desarrollado en backbone para trabajos posteriores. Soy investigador en IOHK, donde estamos construyendo los cimientos de una criptomoneda que llamamos Cardano y analizándola desde un punto de vista matemático. Las probabilidades de éxito de los adversarios en los intentos de realizar bifurcaciones de blockchain, así como su análisis, surgen en mi propio trabajo en el que estoy tratando de construir cadenas laterales que interactúan con múltiples blockchains. A menudo demostramos límites de insignificancia en estos entornos.