Sostenibilidad del hash actual

Soy un laico de bitcoin/blockchain. Solo me estoy dando cuenta del hash de bloques y el aumento en la dificultad (número de ceros) requerido a medida que se involucran más mineros. Entiendo que esto es para mantener la tasa de hash de 10 minutos.

Entiendo que la generación de hashes más difíciles es atractiva porque hace que la cadena sea más difícil de reescribir y, por lo tanto, más segura.

Mientras leo, el uso escalado de la potencia informática requerida es un punto de conflicto en mi mente. ¿No podemos seguir aumentando la dificultad porque los valores hash tienen una longitud fija y deben ser únicos? No puedo seguir agregando ceros. ¿Me estoy perdiendo de algo?

¿Cuál es el plan, resúmenes de hash más largos con un algoritmo diferente?

¿Hay investigaciones que pueda leer sobre el desarrollo de algoritmos hash?

Respuestas (2)

Los hashes únicos no son algo que probablemente nos quedemos sin en un futuro a corto o mediano plazo, a menos que se realicen grandes avances en la computación (en cuyo caso tendríamos otros problemas de los que preocuparnos).

Cuando Bitcoin agrega un cero al frente del objetivo, no es un cero en hexadecimal (cómo se visualizan generalmente los hash), sino que lo agrega en binario. La diferencia es enorme:

0FFF -> 00FF

significa esto en binario:

0000111111111111 -> 0000000011111111

Lo que realmente sucede es esto:

0000111111111111 -> 0000011111111111

O en hexadecimal:

0FFF -> 07FF

Esto significa que tardará 4 veces más en llegar a su punto de preocupación de lo que pensaba. Además, echemos un vistazo al hash de bloque que publicaste:

000000000000000000bbfa2afceac352a16db934867103aa85e6a83dc0fb6dfb

Actualmente hay 18 ceros hexadecimales iniciales, lo que se traduce en 72 ceros binarios iniciales. Esto deja 184 bits (256 - 72) para un valor hash único, o 2^184 hash únicos. Entonces, en este momento, si la dificultad nunca aumentó y suponiendo un tiempo de bloque de 10 minutos, eso todavía nos deja con 4.66 * 10 ^ 50 años de hash (que es aproximadamente 5 veces la edad del universo). Cuando la dificultad se duplica, ahora solo tenemos 183 bits de espacio hash. Esto significa que tiene aproximadamente 4,66 * 10 ^ 25 años, o aproximadamente 2,5 veces la edad del universo del espacio hash que queda. Como puede ver, la dificultad tardará algún tiempo en llegar a un punto en el que el espacio hash sea un problema razonable.

Sin embargo, el verdadero problema no es con el espacio hash total, sino con las probables colisiones. Digamos que hemos llegado al punto en el que solo hay 56 bits disponibles para el espacio hash. En primer lugar, esto requeriría un aumento de hashing verdaderamente masivo en la red de Bitcoin (la dificultad tendría que duplicarse 128 veces), pero lo ignoraremos en este ejemplo. Si bien 2^56 puede parecer un pequeño hash en la criptografía moderna, para este caso de uso, no lo es. Todavía nos quedan suficientes hashes para cubrir toda la edad del universo, pero nuevamente, nos preocupa que alguien encuentre un bloque con un hash que coincida con un bloque existente (o un bloque de la competencia).

Entonces, ¿qué haríamos? Estoy seguro de que habría algún debate si esto surgiera alguna vez, pero creo que la solución simple sería rechazar ese hash, como si estuviera por encima de la dificultad objetivo. Los mineros se verían obligados a continuar con el hash hasta que se encontrara otro bloque. Después de todo, todavía hay mucho espacio en el espacio hash, incluso cuando se reduce a 56 bits (lo que actualmente es absurdo). Tal cambio en el protocolo solo sería una bifurcación suave.

Para resumir, incluso con nuestras mejores estimaciones de la tecnología informática futura, el tiempo restante para los hashes de Bitcoin se mide mejor en múltiplos de la edad del universo. Incluso si esto se convirtiera en un problema, una simple bifurcación suave podría solucionarlo. Realmente no hay mucho de qué preocuparse aquí.

Tu aritmética está mal. 2^184 bloques son aproximadamente 4,7e50 años, pero 2^183 reduce la mantisa a 2,4e50 años, no el exponente a 4,7e25. Y esos son aproximadamente 3.4e41 y 1.7e41 veces la edad del universo (1.4e10 años) no 5 y 2.5.
¡Vaya! Matemáticas nocturnas.

Este es otro de los problemas de escalado. Bitcoin ha sido diseñado para durar mucho tiempo, pero muchos problemas, como el relativo al tamaño de bloque reciente, aún tardarán un tiempo en entrar en juego. Como puede ver aquí: https://blockchain.info/block/0000000000000000000bbfa2afceac352a16db934867103aa85e6a83dc0fb6dfb , el último bloque tiene aproximadamente 1/3 del objetivo potencial total como ceros. Eso quiere decir que la dificultad podría duplicarse y seguiríamos estando bien.

Duplicar la dificultad solo daría como resultado un cero inicial adicional. ¡Crecimiento exponencial FTW! Duplicar el número de ceros iniciales requeriría elevar al cuadrado la dificultad.
("Cero inicial" aquí es en términos de bits, por supuesto).