¿Por qué 6 es el número de confirmaciones que se considera seguro? No he encontrado ninguna explicación matemática o de otro tipo que explique por qué es 6 y no 5 o 7. ¿Hay una razón histórica para 6? ¿Hay una forma específica de calcularlo para que 6 sea solo un número que se eligió?
Creo que esto se aborda en la página 8 del documento de Bitcoin de Satoshi cuando muestra la probabilidad de que un atacante se ponga al día.
La wiki dice:
"Solo 6 bloques o 1 hora son suficientes para que la reversión no sea práctica desde el punto de vista computacional".
La palabra clave es "poco práctico".
La oración importante en el artículo de Satoshi es:
"Asumiendo que los bloques honestos tomaron el tiempo promedio esperado por bloque, el progreso potencial del atacante será una distribución de Poisson ".
Entonces, no es que alguien no pueda crear el mundo primero y poseer una granja ASIC de $ 50 millones, para tener la capacidad de superar la cadena de bloques desde una bifurcación seis bloques antes, pero hacerlo sería a.) una empresa enorme , b.) obvio para todos y c.) tremendamente improductivo para el atacante.
Muchas personas citan erróneamente el papel de Satoshi y asumen que 6 es un valor duro.
El documento de Satoshi describe la cantidad de confirmaciones necesarias para estar 99,9% seguro (menos de 1 en 1000 de probabilidad de éxito) de que un atacante no pudo construir una cadena más larga para revertir la transacción.
http://bitcoin.org/bitcoin.pdf
P < 0.001
q=0.10 z=5
q=0.15 z=8
q=0.20 z=11
q=0.25 z=15
q=0.30 z=24
q=0.35 z=41
q=0.40 z=89
q=0.45 z=340
p es la posibilidad de que el atacante finalmente obtenga una cadena más larga y revierta una transacción (0.1% en este caso). q es el % del poder de hashing que controla el atacante. z es el número de bloques para poner el riesgo de reversión por debajo de p (0,1%).
Entonces puede ver si el atacante tiene un pequeño% del poder de hashing 6 bloques es suficiente. Recuerde que el 10 % de la red en el momento de escribir este artículo es de ~100 GH/s. Sin embargo, si el atacante tuviera un mayor porcentaje de poder de hash, tomaría cada vez más tiempo asegurarse de que una transacción no se pueda revertir.
Si el atacante tuviera significativamente más poder de hash, digamos el 25% de la red, requeriría 15 confirmaciones para estar seguro (99,9% de probabilidad) de que un atacante no puede revertirlo.
Si el atacante tiene una q > 50 % ("el ataque del 51 %"), dado un tiempo ilimitado, el atacante inevitablemente terminará con la cadena más larga.
En edición: para aclarar el "tiempo ilimitado", la cadena con el hashrate más alto inevitablemente terminará siendo la más larga, sin embargo, la probabilidad aún entra en juego. No podemos decir con 100% de certeza cuánto tiempo tomará, en el mejor de los casos podemos proporcionar un intervalo de confianza. Si el atacante es apenas un poco más rápido que los buenos mineros (51 % frente a 49 %), entonces un atacante puede tardar mucho en superar un déficit de 6 bloques. Cuanto más domina el atacante (es decir, 70 % frente a 30 %), más rápido y más corto se alcanza el intervalo de confianza del 95 %.
Estas son algunas de las secciones relevantes del artículo de Satoshi: http://bitcoin.org/bitcoin.pdf
"11. Cálculos Consideramos el escenario de un atacante que intenta generar una cadena alternativa más rápido que la cadena honesta... La carrera entre la cadena honesta y una cadena atacante se puede caracterizar como un paseo aleatorio binomial. El evento de éxito es el la cadena honesta se extiende en un bloque, aumentando su ventaja en +1, y el evento de falla es que la cadena del atacante se extiende en un bloque, reduciendo la brecha en -1... La probabilidad de que un atacante alcance un déficit dado es análogo al problema de la ruina del jugador. ...
p = probabilidad de que un nodo honesto encuentre el siguiente bloque q = probabilidad de que el atacante encuentre el siguiente bloque qz = probabilidad de que el atacante alguna vez lo alcance desde z bloques atrás
Dada nuestra suposición de que p > q, la probabilidad cae exponencialmente a medida que aumenta el número de bloques que el atacante tiene que alcanzar. Con las probabilidades en su contra, si no hace una arremetida afortunada desde el principio, sus posibilidades se vuelven cada vez más pequeñas a medida que se queda más atrás... el progreso potencial del atacante será una distribución de Poisson... Para obtener la probabilidad, el atacante todavía podría ponerse al día ahora, multiplicamos la densidad de Poisson por cada cantidad de progreso que podría haber hecho por la probabilidad de que pudiera ponerse al día desde ese punto.
Convirtiendo a código C..
include <math.h>
double AttackerSuccessProbability(double q, int z)
{
double p = 1.0 - q;
double lambda = z * (q / p);
double sum = 1.0;
int i, k;
for (k = 0; k <= z; k++)
{
double poisson = exp(-lambda);
for (i = 1; i <= k; i++)
poisson *= lambda / i;
sum -= poisson * (1 - pow(q / p, z - k));
}
return sum;
}
Ejecutando algunos resultados, podemos ver que la probabilidad cae exponencialmente con z. "
La cifra de 6 bloques es completamente arbitraria. Se basa en la suposición de que el atacante no acumulará más del 10 % de la tasa de hash de la red y que es aceptable una posibilidad insignificante del 0,1 % de duplicar el gasto con éxito.
Un análisis más detallado de esto está disponible en Análisis del doble gasto basado en hashrate
Con más confirmaciones probabilidad de hacer una exitosa disminución de doble gasto. Si bien es posible realizar un doble gasto con menos del 51% del poder de hash, se requiere que uno tenga más suerte que el resto de los mineros, es decir. resolver bloques más rápido que otros. Esto continuará para siempre (para ser correcto: es muy poco probable), por lo que el atacante no podrá bifurcar toda la cadena. Con los pools hasta hace muy poco controlando el 30-40% del poder total de hash, la regla de las 6 confirmaciones no habría sido segura si el operador del pool hubiera decidido cometer un acto maligno.
david perry
ósmosis
david perry
Meni Rosenfeld
Grifo
Meni Rosenfeld
usuario5107