Si las transacciones en un bloque son válidas, para agregar ese bloque en la cadena de bloques, se debe encontrar una prueba de trabajo. He leído el artículo de bitcoin de Satoshi.
Si la dificultad de la prueba de trabajo requiere, digamos, 2^52 cálculos (13 ceros hexadecimales) en promedio, y dado que cada nodo de la red funciona de forma independiente, ¿por qué el poderoso adversario no puede superar la longitud de la cadena de bloques actual y presentar su versión de cadena de bloques a la red? Específicamente, ¿por qué el atacante tiene que controlar el 1 por ciento o el x por ciento de la potencia computacional de la red, cuando los nodos honestos de la red no están trabajando en colaboración para encontrar la prueba de trabajo?
Si el adversario puede encontrar una prueba de trabajo más rápido que el homólogo honesto más poderoso, puede calcular una cadena de bloques más larga y transmitirla a la red.
Supongamos que hay 2 ^ 20 nodos en la red, cada uno de los cuales calcula 2 ^ 40 hashes por segundo en promedio. Luego, cada nodo requeriría 68 minutos para encontrar una prueba de trabajo (probando 2^52 hashes). La potencia informática total de la red es número de nodos * potencia informática de cada nodo = 2^20*2^40 = 2^60.
Si el adversario opera a la velocidad de 2^45 hashes por segundo, necesita solo 2^7 = 2 min para encontrar una prueba de trabajo (2^52 hashes).
Ahora, la potencia informática de la red es 2^60, sin embargo, cada nodo está tratando de encontrar una prueba de trabajo de forma independiente. La potencia informática del adversario en comparación con la red es 32.000 veces menor. La cantidad de poder de cómputo controlado por el adversario es 1/32000 = 0.00001%, pero aun así puede calcular la cadena de bloques más larga.
Por favor, ayuda, si estoy asumiendo que algo está mal aquí. Los nodos honestos de la red no funcionan en colaboración. Por lo tanto, el atacante no necesita controlar el 50 % de la potencia de cómputo en la red y tiene que gastar potencia de cómputo un poco más que la potencia de cómputo promedio de los nodos honestos.
Hay dos suposiciones en su pregunta que no son completamente correctas.
1) Cada nodo requeriría 68 minutos para encontrar una prueba de trabajo (probar 2^52 hashes).
El proceso de encontrar un nuevo bloque no es una tarea lineal de trabajo que deba acumularse. Más bien es un proceso aleatorio. En lugar de un montón de trabajo por el que estás pasando que tiene un tamaño fijo, podrías considerarlo como una lotería: cada intento puede ganar , pero en promedio se necesitan 2^52 intentos para ganar. Esta distinción es muy importante, porque…
2) Los nodos honestos de la red no trabajan en colaboración.
…¡permite que la red colabore sin coordinarse!
Cada entidad minera está tratando de confirmar un bloque diferente . Esto es así, porque cada uno está tratando de reclamar la recompensa del bloque por sí mismo, por lo tanto, al menos una transacción, la transacción coinbase , debe diferir.¹
Entonces, dado que hemos establecido que estamos viendo un proceso aleatorio, y todos están trabajando en diferentes datos, nos damos cuenta de que los nodos honestos no están duplicando el trabajo de los demás. Por lo tanto, todos los nodos honestos están pasando por muchas más entradas juntas que el adversario y, de hecho, están colaborando para encontrar un nuevo bloque.
Como cpast ha señalado en los comentarios., también es muy importante darse cuenta de que nadie pierde el progreso al cambiar. Por lo tanto, solo se pierde el tiempo que el bloque requiere para propagarse a través de la red, y todos cambiarán al nuevo bloque con el que acaban de encontrar como padre tan pronto como lo reciban. Finalmente, esto significa que necesitamos comparar el poder de minería de la red honesta con el poder de minería del adversario para ver quién puede crear la cadena mayor. Y como tú mismo has dicho, con tus números ejemplares la red es 2^15 veces más poderosa que el adversario.
¹ Además, pueden trabajar con diferentes conjuntos de transacciones, las transacciones estarán en un orden diferente para diferentes mineros, la marca de tiempo cambia cada segundo y agregan más datos aleatorios para probar diferentes entradas.
Porque es irrelevante cuánto tiempo le toma a un nodo honesto individual extraer un bloque. Los nodos honestos funcionan de forma independiente, pero si alguno de ellos extrae un bloque, todos pasan al siguiente bloque. No todos los nodos intentan lo mismo; cada uno de los 2^20 nodos honestos busca diferentes valores hash, por lo que mientras un nodo individual solo tiene éxito cada 16 minutos en promedio, alguien tendrá suerte y tendrá éxito después de una minúscula fracción de segundo (por ejemplo, hay un 1/16 posibilidad de que un minero honesto tenga éxito en el primer minuto, por lo que con 16 mineros honestos esperaría que alguien tuviera éxito en ese momento).
muro
Curioso
muro
muro
Janes
Janes
muro
Janes
Curioso