¿Qué hace que las billeteras HD sean resistentes a los ataques de fuerza bruta?

Para ser más específicos, consideremos billeteras que usan 12 palabras como semilla.

El ancho total de bits es 132, con 4 bits utilizados como suma de verificación, por lo que el tamaño real de la semilla es de 128 bits. Sé que 2^128 permite MUCHAS combinaciones.

No tengo experiencia formal en seguridad, pero esto es lo que me hace pensar, como aficionado, que mis bitcoins no son seguros.

  • el atacante no está aplicando fuerza bruta a una contraseña/semilla específica; no hay un nombre de usuario asociado con la semilla; todo lo que necesita el atacante es una semilla que esté utilizando alguien que no haya gastado todos sus bitcoins

  • con la red bitcoin y las billeteras HD cada vez más populares, habría más semillas que conducirían a direcciones no vacías. Considere que si el tipo de cambio BTC/fiduciario se dispara con la adopción generalizada, incluso si el bruting requiere mucho poder de cómputo, las recompensas por un bruting exitoso aumentan.

¿Dónde me equivoqué con mi forma de pensar?

Básicamente, te estás enfocando en el tamaño relativo de los números involucrados y aún no prestas suficiente atención a su tamaño absoluto. 2^128 es realmente muy grande. Es cierto que tener más direcciones significa una mayor probabilidad de que la búsqueda aleatoria llegue a una dirección que tenga fondos. Pero recomiendo el ejercicio de estimar cuál es realmente esa posibilidad y cuánto tiempo llevaría lograrlo, dada una suposición generosa pero realista de cuánta potencia de cómputo se dedicaría.

Respuestas (1)

No tiene acceso a todas las claves privadas de una billetera HD y sus direcciones correspondientes de inmediato y no puede verificar si hay fondos de inmediato.

Al generar las semillas de 128 bits y luego generar las primeras direcciones de esas billeteras HD, encontrará duplicados. Incluso si ignoramos esto y asumimos que cada clave privada y cada dirección correspondiente son únicas (lo que facilita las matemáticas para que más personas puedan entenderlo), es un esfuerzo inviable.

Actualmente hay alrededor de 4.67*10^7 UTXO. El mejor de los casos para robar al menos algo de dinero es que cada UTXO esté en manos de una clave privada diferente en una dirección diferente. En lugar de pensar en cómo nuestras posibilidades de éxito son peores que eso, supongamos que es cierto.

Las billeteras HD solo usan sus semillas después de 10^5 rondas de sha256. Descuidamos el esfuerzo adicional de crear una clave privada privada, crear una clave pública a partir de eso, crear una dirección a partir de eso, orar al Monstruo de Espagueti Volador para que el usuario realmente haya usado la primera dirección en su billetera HD y los fondos en esa primera todavía no se han gastado y están haciendo la búsqueda real. Debido a que es más difícil determinar el costo de esos y, como pronto resultará, es inviable incluso si literalmente tenemos un costo cero para eso.

Dados los números anteriores y nuestras generosas suposiciones, tenemos que calcular 2^128÷(4.67*10^7)*10^5 = 7.28656032*10^35hashes sha256 para obtener acceso a 1 UTXO.

La tasa de hash actual de toda la red de Bitcoin es de 3*10^18hash por segundo. Por supuesto, en realidad no podemos usar mineros porque esos 10^5 hashes que necesitamos calcular por semilla no son independientes entre sí. De hecho, todos ellos (excepto el primero) dependen del anterior. Ese es el peor escenario posible para calcular muchos hashes.

Pero incluso si asumimos que tenemos acceso a todos los mineros de Bitcoin del mundo, nuevos medios mágicos para ejecutar cálculos puramente secuenciales en paralelo (lo cual es imposible, por supuesto), y obtener toda la electricidad de esos mineros de forma gratuita porque nuestro tío acaba de Sucede que apenas usa su planta de energía nuclear, recientemente, de todos modos, todavía tenemos que esperar 7.28656032*10^35 / (3*10^18) = 2.42885344*10^17segundos por UTXO para poder robarlo.

Afortunadamente para nosotros, eso es solo 7'701'843'734 años, que es poco más de la mitad de la edad del universo. Creo que tenemos ese 1 UTXO . Por otra parte, nuestras suposiciones fueron bastante generosas. Puede que tardemos un poco más en hacernos con esa 1 UTXO. La mayoría de los grandes UTXO probablemente ni siquiera estén almacenados en billeteras HD, sino en almacenamiento en frío, por lo que tenemos aún menos esperanzas de apoderarnos de ellos, pero lo que sea.