La regla empírica ya no se aplica, las personas que realizan grandes transacciones necesitan evaluar el riesgo de transacción en tiempo real, según el estado actual de la minería.

 

Escrito por: Jameson Lopp, Cypherpunk Cogitations

Compilado por: aididiaojp.eth, Foresight News

 

Si alguna vez has realizado transacciones en la red de Bitcoin, probablemente te hayas dado cuenta de que aceptar transacciones no confirmadas (también conocidas como cero confirmaciones) es arriesgado. En condiciones no confirmadas, los receptores de Bitcoin son vulnerables a ataques de carrera, ataques Finney y ataques del 51%.

 

Una vez que hayas pasado al menos una confirmación de transacción, ya no serás tan vulnerable a ataques de carrera o ataques Finney. Ahora lo único que te preocupa son los ataques del 51%. ¿Cuál es la regla empírica para la cantidad aceptable de confirmaciones?

 

  • 1 confirmación: Suficiente para pagos pequeños por debajo de $1,000.

  • 3 confirmaciones: Para montos de pago entre $1,000 y $10,000, la mayoría de los intercambios requieren 3 confirmaciones de depósito.

  • 6 confirmaciones: Adecuado para pagos grandes entre $10,000 y $1,000,000. Seis confirmaciones se consideran el estándar seguro.

  • 10 confirmaciones: Recomendadas para pagos grandes superiores a $1,000,000.

 

Exploración profunda

 

Naturalmente, Bitcoin no es tan simple, y nuestra llamada regla empírica de confirmación se basa en suposiciones que en realidad no hemos discutido.

 

Por ejemplo, los umbrales de confirmación de las reglas empíricas enumeradas anteriormente están realmente basados en un atacante con una tasa de hash global del 10%, donde en este caso, 6 confirmaciones pueden garantizar con un 99.99% que el atacante no puede reescribir una cantidad significativa de historial en la red de blockchain.

 

Sin embargo, estos cálculos (que se pueden encontrar en el libro blanco) se realizaron mucho antes de los pools de minería y la minería industrial, cuando era razonable suponer que sería difícil para alguien tener más del 10% de la tasa de hash global. Desde 2011, ha habido un auge en la aparición de entidades de producción de bloques en la red (pools de minería) que acumulan muy por encima del 10% de la tasa de hash global. Al momento de escribir esto, hay 5 de tales pools.

 

Cuantificación del riesgo en tiempo real

 

Las páginas 6 y 7 del libro blanco de Bitcoin describen cómo calcular el riesgo de que un atacante reescriba la blockchain después de un número dado de confirmaciones de transacción.

 

La competencia entre la cadena honesta y la cadena del atacante puede describirse como un paseo aleatorio binomial. Un evento exitoso es que la cadena honesta se extiende por un bloque, incrementando su ventaja en 1, mientras que un evento fallido es que la cadena del atacante se extiende por un bloque, reduciendo la brecha en 1. La probabilidad de que la cadena del atacante alcance la cadena honesta es similar al problema de la quiebra del jugador. En términos simples: el jugador (atacante) tiene una esperanza de ganar negativa la mayor parte del tiempo, así que cuanto más tiempo juegue este juego de esperanza negativa, menor será la probabilidad de que se convierta en un ganador.

 

Dado que asumimos que el atacante tiene menos del 50% de la tasa de hash de la red, la probabilidad de que el atacante alcance se reduce exponencialmente a medida que aumenta el número de bloques que necesita alcanzar. Cuanto más se prolongue el tiempo, más en desventaja estará el atacante; si no corre afortunadamente hacia adelante pronto, sus oportunidades se volverán mínimas a medida que se quede cada vez más atrás. La probabilidad de progreso potencial del atacante es similar a la distribución de Poisson, ya que toda la minería es un proceso de Poisson, por lo que los resultados exitosos siguen esta distribución.

 

Para determinar la probabilidad de que un atacante pueda reescribir la blockchain desde z bloques atrás, multiplicamos la densidad de Poisson de cada avance que el atacante puede lograr por la probabilidad de que pueda alcanzar esa posición, donde:

 

  • p = Probabilidad de que un minero honesto encuentre el siguiente bloque

  • q = Probabilidad de que un atacante encuentre el siguiente bloque

  • z = Número de bloques (confirmaciones) que deben ser reorganizados

  • lambda = z * (q / p)

  • k = Entero de 0 a z

 

 

Esta no es una fórmula de cálculo interesante, así que parece ser una buena opción para proyectos de código abierto.

 

Calculadora de riesgo de confirmación

 

He creado la siguiente herramienta que calculará dinámicamente el riesgo de reorganización de la cadena actual basado en pools de minería con estimaciones de tasa de hash más alta (provenientes de bloques extraídos). Por supuesto, puedes usar cualquier otro porcentaje de tasa de hash para sobreescribir este parámetro y la cantidad de confirmaciones necesarias para obtener la puntuación de riesgo.

 

 

Ahora es fácil ver que si queremos tener un 99.9% de probabilidad de asegurar que nuestra transacción no será doble gastada, para un atacante con un porcentaje de tasa de hash dado, la cantidad de confirmaciones aumentará drásticamente a medida que la tasa de hash del atacante se acerque al 50%.

 

 

¿Por qué debería preocuparme?

 

Al momento de escribir esto, Foundry tiene el 36% de la tasa de hash global, lo que significa que si aceptas un pago después de 3 confirmaciones, Foundry todavía tiene un 49% de probabilidad de reescribir la cadena de bloques y lanzar un ataque de doble gasto.

 

 

Supón que el atacante tiene el 10% de tasa de hash, la regla empírica de 6 bloques de confirmación asegura que un 99.99% no habrá doble gasto, y ahora se requieren 60 confirmaciones de transacción para alcanzar el mismo nivel de confianza.

 

En cuanto a la viabilidad de este tipo de ataques: los pools de minería definitivamente no tienen incentivos para atacar, porque si lo hicieran, podrían perder una gran cantidad de negocios. Los mineros suelen ser poseedores a largo plazo que no quieren dañar la confianza de las personas en el ecosistema. Sin embargo, los pools de minería aún pueden presentar un punto único de fallo, donde alguien puede explotar una vulnerabilidad para tomar el control del pool en un corto período de tiempo. Situaciones similares han ocurrido antes, como el ataque BGP que redirigió una gran cantidad de tráfico de pools de minería para minar para el atacante.

 

Resumen

 

Aunque Bitcoin tiene robustez y estabilidad en algunos aspectos, en otros es muy inestable. Para aquellos que realizan grandes transacciones en la blockchain de Bitcoin, es importante que sean conscientes de que deberían ajustar su evaluación de riesgos según el estado actual del ecosistema de minería.

 

Es importante aclarar que las opiniones anteriores sobre Foundry no deben interpretarse como una amenaza inminente o sistémica a la integridad de la red de Bitcoin. En la última década, hemos visto altibajos en el grado de centralización de los mineros por diversas razones. Por ejemplo:

 

 

 

Sigo siendo optimista de que los incentivos que impulsan a los mineros industriales de Bitcoin son razonables. Seguirán buscando fuentes de energía baratas, desaprovechadas y en exceso, y la naturaleza de la energía es que puede ser utilizada de manera efectiva en todo el mundo. A largo plazo, espero que veamos una distribución de tasa de hash de los pools de minería más descentralizada. Además, hay algunas mejoras técnicas, como Stratum V2, que han devuelto el poder de los operadores de pools de minería a los individuos.